1. 20 Aug, 2015 3 commits
    • Richard Yao's avatar
      genksyms: Duplicate function pointer type definitions segfault · 1c722503
      Richard Yao authored
      I noticed that genksyms will segfault when it sees duplicate function
      pointer type declaration when I placed the same function pointer
      definition in two separate headers in a local branch as an intermediate
      step of some refactoring. This can be reproduced by piping the following
      minimal test case into `genksyms -r /dev/null` or alternatively, putting
      it into a C file attempting a build:
      typedef int (*f)();
      typedef int (*f)();
      Attaching gdb to genksyms to understand this failure is useless without
      changing CFLAGS to emit debuginfo. Once you have debuginfo, you will
      find that the failure is that `char *s` was NULL and the program
      executed `while(*s)`. At which point, further debugging requires
      familiarity with compiler front end / parser development.
      What happens is that flex identifies the first instance of the token "f"
      as IDENT and the yacc parser adds it to the symbol table. On the second
      instance, flex will identify "f" as TYPE, which triggers an error case
      in the yacc parser. Given that TYPE would have been IDENT had it not
      been in the symbol table, the the segmentaion fault could be avoided by
      treating TYPE as IDENT in the affected rule.
      Some might consider placing identical function pointer type declarations
      in different headers to be poor style might consider a failure to be
      beneficial. However, failing through a segmentation fault makes the
      cause non-obvious and can waste the time of anyone who encounters it.
      Signed-off-by: default avatarRichard Yao <richard.yao@clusterhq.com>
      Acked-by: default avatarMadhuri Yechuri <madhuriyechuri@clusterhq.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
    • Andi Kleen's avatar
      kbuild: Fix .text.unlikely placement · 9bebe9e5
      Andi Kleen authored
      When building a kernel with .text.unlikely text the unlikely text for
      each translation unit was put next to the main .text code in the
      final vmlinux.
      The problem is that the linker doesn't allow more specific submatches
      of a section name in a different linker script statement after the
      main match.
      So we need to move them all into one line. With that change
      .text.unlikely is at the end of everything again.
      I also moved .text.hot into the same statement though, even though
      that's not strictly needed.
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
    • Pavel Fedin's avatar
      Avoid conflict with host definitions when cross-compiling · 3c0561e0
      Pavel Fedin authored
      Certain platforms (e. g. BSD-based ones) define some ELF constants
      according to host. This patch fixes problems with cross-building
      Linux kernel on these platforms (e. g. building ARM 32-bit version
      on x86-64 host).
      Signed-off-by: default avatarPavel Fedin <p.fedin@samsung.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
  2. 05 Jul, 2015 4 commits
    • Linus Torvalds's avatar
      Linux 4.2-rc1 · d770e558
      Linus Torvalds authored
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.2-2' of... · a585d2b7
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      Pull late x86 platform driver updates from Darren Hart:
       "The following came in a bit later and I wanted them to bake in next a
        few more days before submitting, thus the second pull.
        A new intel_pmc_ipc driver, a symmetrical allocation and free fix in
        dell-laptop, a couple minor fixes, and some updated documentation in
        the dell-laptop comments.
         - Add Intel Apollo Lake PMC IPC driver
         - Delete an unnecessary check before the function call "kfree"
         - Fix allocating & freeing SMI buffer page
         - Show info about WiGig and UWB in debugfs
         - Update information about wireless control"
      * tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        intel_pmc_ipc: Add Intel Apollo Lake PMC IPC driver
        tc1100-wmi: Delete an unnecessary check before the function call "kfree"
        dell-laptop: Fix allocating & freeing SMI buffer page
        dell-laptop: Show info about WiGig and UWB in debugfs
        dell-laptop: Update information about wireless control
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 1dc51b82
      Linus Torvalds authored
      Pull more vfs updates from Al Viro:
       "Assorted VFS fixes and related cleanups (IMO the most interesting in
        that part are f_path-related things and Eric's descriptor-related
        stuff).  UFS regression fixes (it got broken last cycle).  9P fixes.
        fs-cache series, DAX patches, Jan's file_remove_suid() work"
      [ I'd say this is much more than "fixes and related cleanups".  The
        file_table locking rule change by Eric Dumazet is a rather big and
        fundamental update even if the patch isn't huge.   - Linus ]
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (49 commits)
        9p: cope with bogus responses from server in p9_client_{read,write}
        p9_client_write(): avoid double p9_free_req()
        9p: forgetting to cancel request on interrupted zero-copy RPC
        dax: bdev_direct_access() may sleep
        block: Add support for DAX reads/writes to block devices
        dax: Use copy_from_iter_nocache
        dax: Add block size note to documentation
        fs/file.c: __fget() and dup2() atomicity rules
        fs/file.c: don't acquire files->file_lock in fd_install()
        fs:super:get_anon_bdev: fix race condition could cause dev exceed its upper limitation
        vfs: avoid creation of inode number 0 in get_next_ino
        namei: make set_root_rcu() return void
        make simple_positive() public
        ufs: use dir_pages instead of ufs_dir_pages()
        pagemap.h: move dir_pages() over there
        remove the pointless include of lglock.h
        fs: cleanup slight list_entry abuse
        xfs: Correctly lock inode when removing suid and file capabilities
        fs: Call security_ops->inode_killpriv on truncate
        fs: Provide function telling whether file_remove_privs() will do anything
    • Linus Torvalds's avatar
      bluetooth: fix list handling · 9b284cbd
      Linus Torvalds authored
      Commit 835a6a2f ("Bluetooth: Stop sabotaging list poisoning")
      thought that the code was sabotaging the list poisoning when NULL'ing
      out the list pointers and removed it.
      But what was going on was that the bluetooth code was using NULL
      pointers for the list as a way to mark it empty, and that commit just
      broke it (and replaced the test with NULL with a "list_empty()" test on
      a uninitialized list instead, breaking things even further).
      So fix it all up to use the regular and real list_empty() handling
      (which does not use NULL, but a pointer to itself), also making sure to
      initialize the list properly (the previous NULL case was initialized
      implicitly by the session being allocated with kzalloc())
      This is a combination of patches by Marcel Holtmann and Tedd Ho-Jeong
      [ I would normally expect to get this through the bt tree, but I'm going
        to release -rc1, so I'm just committing this directly   - Linus ]
      Reported-and-tested-by: default avatarJörg Otte <jrg.otte@gmail.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Original-by: default avatarTedd Ho-Jeong An <tedd.an@intel.com>
      Original-by: Marcel Holtmann <marcel@holtmann.org>:
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
  3. 04 Jul, 2015 33 commits