Skip to content
  1. Dec 03, 2016
    • Arnd Bergmann's avatar
      default exported asm symbols to zero · 8ab2ae65
      Arnd Bergmann authored
      
      
      With binutils-2.26 and before, a weak missing symbol was kept during the
      final link, and a missing CRC for an export would lead to that CRC being
      treated as zero implicitly.  With binutils-2.27, the crc symbol gets
      dropped, and any module trying to use it will fail to load.
      
      This sets the weak CRC symbol to zero explicitly, making it defined in
      vmlinux, which in turn lets us load the modules referring to that CRC.
      
      The comment above the __CRC_SYMBOL macro suggests that this was always
      the intention, although it also seems that all symbols defined in C have
      a correct CRC these days, and only the exports that are now done in
      assembly need this.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Tested-by: default avatarAdam Borowski <kilobyte@angband.pl>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8ab2ae65
  2. Dec 02, 2016
  3. Dec 01, 2016
  4. Nov 30, 2016
    • Linus Torvalds's avatar
      Merge tag 'arc-4.9-final' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · ded6e842
      Linus Torvalds authored
      Pull ARC fixes from Vineet Gupta:
      
       - fix PAE40 crash [Yuriy]
      
       - disable IO-Coherency by default
      
       - use a different inline asm constraint for Zero Overhead loops
      
      * tag 'arc-4.9-final' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: mm: PAE40: Fix crash at munmap
        ARC: mm: IOC: Don't enable IOC by default
        ARC: Don't use "+l" inline asm constraint
      ded6e842
    • Linus Torvalds's avatar
      Re-enable CONFIG_MODVERSIONS in a slightly weaker form · faaae2a5
      Linus Torvalds authored
      
      
      This enables CONFIG_MODVERSIONS again, but allows for missing symbol CRC
      information in order to work around the issue that newer binutils
      versions seem to occasionally drop the CRC on the floor.  binutils 2.26
      seems to work fine, while binutils 2.27 seems to break MODVERSIONS of
      symbols that have been defined in assembler files.
      
      [ We've had random missing CRC's before - it may be an old problem that
        just is now reliably triggered with the weak asm symbols and a new
        version of binutils ]
      
      Some day I really do want to remove MODVERSIONS entirely.  Sadly, today
      does not appear to be that day: Debian people apparently do want the
      option to enable MODVERSIONS to make it easier to have external modules
      across kernel versions, and this seems to be a fairly minimal fix for
      the annoying problem.
      
      Cc: Ben Hutchings <ben@decadent.org.uk>
      Acked-by: default avatarMichal Marek <mmarek@suse.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      faaae2a5
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 22d3d4fb
      Linus Torvalds authored
      Pull CIFS fixes from Steve French:
       "A few misc important cifs fixes, including a fix for a 4.9 regression
        in posix_acl xattr handling"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        CIFS: iterate over posix acl xattr entry correctly in ACL_to_cifs_posix()
        Call echo service immediately after socket reconnect
        CIFS: Fix BUG() in calc_seckey()
      22d3d4fb
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · ab59d1f4
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Four small fixes.
      
        The be2iscsi is a potential device overrun in consistent memory, which
        could have nasty consequences if the consistent allocations are
        packed.
      
        The hpsa one fixes a regression where older controllers can now get a
        numbering clash between the first internal disk and the controller.
      
        The libfc one is a regression in timespec conversions which causes a
        user visible issue in a command line tool and the mpt3sas one fixes a
        regression where the controller could remain permanently blocked after
        an ATA pass through command followed by a reset"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: be2iscsi: allocate enough memory in beiscsi_boot_get_sinfo()
        scsi: mpt3sas: Unblock device after controller reset
        scsi: hpsa: use bus '3' for legacy HBA devices
        scsi: libfc: fix seconds_since_last_reset miscalculation
      ab59d1f4
    • Yuriy Kolerov's avatar
      ARC: mm: PAE40: Fix crash at munmap · 6a8b2ca7
      Yuriy Kolerov authored
      commit 1c3c9093 broke PAE40. Macro pfn_pte(pfn, prot) creates paddr
      from pfn, but the page shift was getting truncated to 32 bits since we lost
      the proper cast to 64 bits (for PAE400
      
      Instead of reverting that commit, use a better helper which is 32/64 bits
      safe just like ARM implementation.
      
      Fixes: 1c3c9093
      
       ("ARC: mm: fix build breakage with STRICT_MM_TYPECHECKS")
      Cc: <stable@vger.kernel.org>   #4.4+
      Signed-off-by: default avatarYuriy Kolerov <yuriy.kolerov@synopsys.com>
      [vgupta: massaged changelog]
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      6a8b2ca7
    • Aaron Lu's avatar
      mremap: move_ptes: check pte dirty after its removal · a2ce2666
      Aaron Lu authored
      Linus found there still is a race in mremap after commit 5d190420
      
      
      ("mremap: fix race between mremap() and page cleanning").
      
      As described by Linus:
       "the issue is that another thread might make the pte be dirty (in the
        hardware walker, so no locking of ours will make any difference)
        *after* we checked whether it was dirty, but *before* we removed it
        from the page tables"
      
      Fix it by moving the check after we removed it from the page table.
      
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarAaron Lu <aaron.lu@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a2ce2666
  5. Nov 29, 2016
    • Johan Hovold's avatar
      pwm: Fix device reference leak · 0e1614ac
      Johan Hovold authored
      Make sure to drop the reference to the parent device taken by
      class_find_device() after "unexporting" any children when deregistering
      a PWM chip.
      
      Fixes: 0733424c
      
       ("pwm: Unexport children before chip removal")
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
      0e1614ac
    • Miklos Szeredi's avatar
      ovl: fix d_real() for stacked fs · c4fcfc16
      Miklos Szeredi authored
      
      
      Handling of recursion in d_real() is completely broken.  Recursion is only
      done in the 'inode != NULL' case.  But when opening the file we have
      'inode == NULL' hence d_real() will return an overlay dentry.  This won't
      work since overlayfs doesn't define its own file operations, so all file
      ops will fail.
      
      Fix by doing the recursion first and the check against the inode second.
      
      Bash script to reproduce the issue written by Quentin:
      
       - 8< - - - - - 8< - - - - - 8< - - - - - 8< - - - -
      tmpdir=$(mktemp -d)
      pushd ${tmpdir}
      
      mkdir -p {upper,lower,work}
      echo -n 'rocks' > lower/ksplice
      mount -t overlay level_zero upper -o lowerdir=lower,upperdir=upper,workdir=work
      cat upper/ksplice
      
      tmpdir2=$(mktemp -d)
      pushd ${tmpdir2}
      
      mkdir -p {upper,work}
      mount -t overlay level_one upper -o lowerdir=${tmpdir}/upper,upperdir=upper,workdir=work
      ls -l upper/ksplice
      cat upper/ksplice
       - 8< - - - - - 8< - - - - - 8< - - - - - 8< - - - - 
      
      Reported-by: default avatarQuentin Casasnovas <quentin.casasnovas@oracle.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      Fixes: 2d902671 ("vfs: merge .d_select_inode() into .d_real()")
      Cc: <stable@vger.kernel.org> # v4.8+
      c4fcfc16
    • Eryu Guan's avatar
      CIFS: iterate over posix acl xattr entry correctly in ACL_to_cifs_posix() · ae9ebe7c
      Eryu Guan authored
      Commit 2211d5ba
      
       ("posix_acl: xattr representation cleanups")
      removes the typedefs and the zero-length a_entries array in struct
      posix_acl_xattr_header, and uses bare struct posix_acl_xattr_header
      and struct posix_acl_xattr_entry directly.
      
      But it failed to iterate over posix acl slots when converting posix
      acls to CIFS format, which results in several test failures in
      xfstests (generic/053 generic/105) when testing against a samba v1
      server, starting from v4.9-rc1 kernel. e.g.
      
        [root@localhost xfstests]# diff -u tests/generic/105.out /root/xfstests/results//generic/105.out.bad
        --- tests/generic/105.out       2016-09-19 16:33:28.577962575 +0800
        +++ /root/xfstests/results//generic/105.out.bad 2016-10-22 15:41:15.201931110 +0800
        @@ -1,3 +1,4 @@
         QA output created by 105
         -rw-r--r-- root
        +setfacl: subdir: Invalid argument
         -rw-r--r-- root
      
      Fix it by introducing a new "ace" var, like what
      cifs_copy_posix_acl() does, and iterating posix acl xattr entries
      over it in the for loop.
      
      Signed-off-by: default avatarEryu Guan <guaneryu@gmail.com>
      Signed-off-by: default avatarSteve French <smfrench@gmail.com>
      ae9ebe7c
    • Sachin Prabhu's avatar
      Call echo service immediately after socket reconnect · b8c60012
      Sachin Prabhu authored
      Commit 4fcd1813
      
       ("Fix reconnect to not defer smb3 session reconnect
      long after socket reconnect") changes the behaviour of the SMB2 echo
      service and causes it to renegotiate after a socket reconnect. However
      under default settings, the echo service could take up to 120 seconds to
      be scheduled.
      
      The patch forces the echo service to be called immediately resulting a
      negotiate call being made immediately on reconnect.
      
      Signed-off-by: default avatarSachin Prabhu <sprabhu@redhat.com>
      Reviewed-by: default avatarPavel Shilovsky <pshilov@microsoft.com>
      Signed-off-by: default avatarSteve French <smfrench@gmail.com>
      b8c60012
    • Sachin Prabhu's avatar
      CIFS: Fix BUG() in calc_seckey() · 5f4b5569
      Sachin Prabhu authored
      
      
      Andy Lutromirski's new virtually mapped kernel stack allocations moves
      kernel stacks the vmalloc area. This triggers the bug
       kernel BUG at ./include/linux/scatterlist.h:140!
      at calc_seckey()->sg_init()
      
      Signed-off-by: default avatarSachin Prabhu <sprabhu@redhat.com>
      Signed-off-by: default avatarSteve French <smfrench@gmail.com>
      Reviewed-by: default avatarJeff Layton <jlayton@redhat.com>
      5f4b5569
    • Linus Torvalds's avatar
      Merge branch 'for-4.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 88abd824
      Linus Torvalds authored
      Pull libata fixes from Tejun Heo:
       "The recent changes in ahci MSI handling need one more fix.  Hopefully,
        this restores parity with before.
      
        The other two are minor fixes with both low impact and risk"
      
      * 'for-4.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ahci: always fall back to single-MSI mode
        libata-scsi: Fixup ata_gen_passthru_sense()
        mvsas: fix error return code in mvs_task_prep()
      88abd824
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 96e52d3a
      Linus Torvalds authored
      Pull sparc fixes from David Miller:
       "Two ugly build warning fixes"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        dbri: Fix compiler warning
        qlogicpti: Fix compiler warnings
      96e52d3a
    • Tushar Dave's avatar
      dbri: Fix compiler warning · 16f46050
      Tushar Dave authored
      
      
      dbri uses 'u32' for dma handle while invoking kernel DMA APIs,
      instead of using dma_addr_t. This hasn't caused any 'incompatible
      pointer type' warning on SPARC because until now dma_addr_t is of
      type u32. However, recent changes in SPARC ATU (iommu) enabled 64bit
      DMA and therefore dma_addr_t became of type u64. This makes
      'incompatible pointer type' warnings inevitable.
      
      e.g.
      sound/sparc/dbri.c: In function ‘snd_dbri_create’:
      sound/sparc/dbri.c:2538: warning: passing argument 3 of ‘dma_zalloc_coherent’ from incompatible pointer type
      ./include/linux/dma-mapping.h:608: note: expected ‘dma_addr_t *’ but argument is of type ‘u32 *’
      
      For the record, dbri(sbus) driver never executes on sun4v. Therefore
      even though 64bit DMA is enabled on SPARC, dbri continues to use
      legacy iommu that guarantees DMA address is always in 32bit range.
      
      This patch resolves above compiler warning.
      
      Signed-off-by: default avatarTushar Dave <tushar.n.dave@oracle.com>
      Reviewed-by: default avatarthomas tai <thomas.tai@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      16f46050
    • Tushar Dave's avatar
      qlogicpti: Fix compiler warnings · e58566b1
      Tushar Dave authored
      
      
      qlogicpti uses '__u32' for dma handle while invoking kernel DMA APIs,
      instead of using dma_addr_t. This hasn't caused any 'incompatible
      pointer type' warning on SPARC because until now dma_addr_t is of
      type u32. However, recent changes in SPARC ATU (iommu) enabled 64bit
      DMA and therefore dma_addr_t became of type u64. This makes
      'incompatible pointer type' warnings inevitable.
      
      e.g.
      drivers/scsi/qlogicpti.c: In function ‘qpti_map_queues’:
      drivers/scsi/qlogicpti.c:813: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type
      ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’
      drivers/scsi/qlogicpti.c:822: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type
      ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’
      
      For the record, qlogicpti never executes on sun4v. Therefore even
      though 64bit DMA is enabled on SPARC, qlogicpti continues to use
      legacy iommu that guarantees DMA address is always in 32bit range.
      
      This patch resolves aforementioned compiler warnings.
      
      Signed-off-by: default avatarTushar Dave <tushar.n.dave@oracle.com>
      Reviewed-by: default avatarthomas tai <thomas.tai@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e58566b1
    • Vineet Gupta's avatar
      ARC: mm: IOC: Don't enable IOC by default · 23cb1f64
      Vineet Gupta authored
      
      
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      23cb1f64
    • Vineet Gupta's avatar
      ARC: Don't use "+l" inline asm constraint · 3c7c7a2f
      Vineet Gupta authored
      
      
      Apparenty this is coming in the way of gcc fix which inhibits the usage
      of LP_COUNT as a gpr.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      3c7c7a2f
  6. Nov 28, 2016
    • Linus Torvalds's avatar
      Linux 4.9-rc7 · e5517c2a
      Linus Torvalds authored
      v4.9-rc7
      e5517c2a
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/intel-iommu · 105ecadc
      Linus Torvalds authored
      Pull IOMMU fixes from David Woodhouse:
       "Two minor fixes.
      
        The first fixes the assignment of SR-IOV virtual functions to the
        correct IOMMU unit, and the second fixes the excessively large (and
        physically contiguous) PASID tables used with SVM"
      
      * git://git.infradead.org/intel-iommu:
        iommu/vt-d: Fix PASID table allocation
        iommu/vt-d: Fix IOMMU lookup for SR-IOV Virtual Functions
      105ecadc
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · ff17bf8a
      Linus Torvalds authored
      Pull MIPS fixes from Ralf Baechle:
       "Another round of MIPS fixes for 4.9:
      
         - Fix unreadable output in __do_page_fault due to the KERN_CONT
           patchset
      
         - Correctly handle MIPS R6 fixes to the c0_wired register"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: mm: Fix output of __do_page_fault
        MIPS: Mask out limit field when calculating wired entry count
      ff17bf8a
  7. Nov 27, 2016