1. 12 Nov, 2015 6 commits
    • David Howells's avatar
      X.509: Fix the time validation [ver #2] · cc25b994
      David Howells authored
      This fixes CVE-2015-5327.  It affects kernels from 4.3-rc1 onwards.
      
      Fix the X.509 time validation to use month number-1 when looking up the
      number of days in that month.  Also put the month number validation before
      doing the lookup so as not to risk overrunning the array.
      
      This can be tested by doing the following:
      
      cat <<EOF | openssl x509 -outform DER | keyctl padd asymmetric "" @s
      -----BEGIN CERTIFICATE-----
      MIIDbjCCAlagAwIBAgIJAN/lUld+VR4hMA0GCSqGSIb3DQEBCwUAMCkxETAPBgNV
      BAoMCGxvY2FsLWNhMRQwEgYDVQQDDAtzaWduaW5nIGtleTAeFw0xNTA5MDEyMTMw
      MThaFw0xNjA4MzEyMTMwMThaMCkxETAPBgNVBAoMCGxvY2FsLWNhMRQwEgYDVQQD
      DAtzaWduaW5nIGtleTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANrn
      crcMfMeG67nagX4+m02Xk9rkmsMKI5XTUxbikROe7GSUVJ27sPVPZp4mgzoWlvhh
      jfK8CC/qhEhwep8Pgg4EJZyWOjhZb7R97ckGvLIoUC6IO3FC2ZnR7WtmWDgo2Jcj
      VlXwJdHhKU1VZwulh81O61N8IBKqz2r/kDhIWiicUCUkI/Do/RMRfKAoDBcSh86m
      gOeIAGfq62vbiZhVsX5dOE8Oo2TK5weAvwUIOR7OuGBl5AqwFlPnXQolewiHzKry
      THg9e44HfzG4Mi6wUvcJxVaQT1h5SrKD779Z5+8+wf1JLaooetcEUArvWyuxCU59
      qxA4lsTjBwl4cmEki+cCAwEAAaOBmDCBlTAMBgNVHRMEBTADAQH/MAsGA1UdDwQE
      AwIHgDAdBgNVHQ4EFgQUyND/eKUis7ep/hXMJ8iZMdUhI+IwWQYDVR0jBFIwUIAU
      yND/eKUis7ep/hXMJ8iZMdUhI+KhLaQrMCkxETAPBgNVBAoMCGxvY2FsLWNhMRQw
      EgYDVQQDDAtzaWduaW5nIGtleYIJAN/lUld+VR4hMA0GCSqGSIb3DQEBCwUAA4IB
      AQAMqm1N1yD5pimUELLhT5eO2lRdGUfTozljRxc7e2QT3RLk2TtGhg65JFFN6eml
      XS58AEPVcAsSLDlR6WpOpOLB2giM0+fV/eYFHHmh22yqTJl4YgkdUwyzPdCHNOZL
      hmSKeY9xliHb6PNrNWWtZwhYYvRaO2DX4GXOMR0Oa2O4vaYu6/qGlZOZv3U6qZLY
      wwHEJSrqeBDyMuwN+eANHpoSpiBzD77S4e+7hUDJnql4j6xzJ65+nWJ89fCrQypR
      4sN5R3aGeIh3QAQUIKpHilwek0CtEaYERgc5m+jGyKSc1rezJW62hWRTaitOc+d5
      G5hh+9YpnYcxQHEKnZ7rFNKJ
      -----END CERTIFICATE-----
      EOF
      
      If it works, it emit a key ID; if it fails, it should give a bad message
      error.
      Reported-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
      Acked-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: default avatarJames Morris <james.l.morris@oracle.com>
      cc25b994
    • James Morris's avatar
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · 5d50ac70
      Linus Torvalds authored
      Pull xfs updates from Dave Chinner:
       "There is nothing really major here - the only significant addition is
        the per-mount operation statistics infrastructure.  Otherwises there's
        various ACL, xattr, DAX, AIO and logging fixes, and a smattering of
        small cleanups and fixes elsewhere.
      
        Summary:
      
         - per-mount operational statistics in sysfs
         - fixes for concurrent aio append write submission
         - various logging fixes
         - detection of zeroed logs and invalid log sequence numbers on v5 filesystems
         - memory allocation failure message improvements
         - a bunch of xattr/ACL fixes
         - fdatasync optimisation
         - miscellaneous other fixes and cleanups"
      
      * tag 'xfs-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (39 commits)
        xfs: give all workqueues rescuer threads
        xfs: fix log recovery op header validation assert
        xfs: Fix error path in xfs_get_acl
        xfs: optimise away log forces on timestamp updates for fdatasync
        xfs: don't leak uuid table on rmmod
        xfs: invalidate cached acl if set via ioctl
        xfs: Plug memory leak in xfs_attrmulti_attr_set
        xfs: Validate the length of on-disk ACLs
        xfs: invalidate cached acl if set directly via xattr
        xfs: xfs_filemap_pmd_fault treats read faults as write faults
        xfs: add ->pfn_mkwrite support for DAX
        xfs: DAX does not use IO completion callbacks
        xfs: Don't use unwritten extents for DAX
        xfs: introduce BMAPI_ZERO for allocating zeroed extents
        xfs: fix inode size update overflow in xfs_map_direct()
        xfs: clear PF_NOFREEZE for xfsaild kthread
        xfs: fix an error code in xfs_fs_fill_super()
        xfs: stats are no longer dependent on CONFIG_PROC_FS
        xfs: simplify /proc teardown & error handling
        xfs: per-filesystem stats counter implementation
        ...
      5d50ac70
    • Linus Torvalds's avatar
      Merge tag 'nfsd-4.4' of git://linux-nfs.org/~bfields/linux · 31c1febd
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "Apologies for coming a little late in the merge window.  Fortunately
        this is another fairly quiet one:
      
        Mainly smaller bugfixes and cleanup.  We're still finding some bugs
        from the breakup of the big NFSv4 state lock in 3.17 -- thanks
        especially to Andrew Elble and Jeff Layton for tracking down some of
        the remaining races"
      
      * tag 'nfsd-4.4' of git://linux-nfs.org/~bfields/linux:
        svcrpc: document lack of some memory barriers
        nfsd: fix race with open / open upgrade stateids
        nfsd: eliminate sending duplicate and repeated delegations
        nfsd: remove recurring workqueue job to clean DRC
        SUNRPC: drop stale comment in svc_setup_socket()
        nfsd: ensure that seqid morphing operations are atomic wrt to copies
        nfsd: serialize layout stateid morphing operations
        nfsd: improve client_has_state to check for unused openowners
        nfsd: fix clid_inuse on mount with security change
        sunrpc/cache: make cache flushing more reliable.
        nfsd: move include of state.h from trace.c to trace.h
        sunrpc: avoid warning in gss_key_timeout
        lockd: get rid of reference-counted NSM RPC clients
        SUNRPC: Use MSG_SENDPAGE_NOTLAST when calling sendpage()
        lockd: create NSM handles per net namespace
        nfsd: switch unsigned char flags in svc_fh to bools
        nfsd: move svc_fh->fh_maxsize to just after fh_handle
        nfsd: drop null test before destroy functions
        nfsd: serialize state seqid morphing operations
      31c1febd
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · b4a23759
      Linus Torvalds authored
      Pull DeviceTree fixes from Rob Herring:
      
       - Add empty of_translate_address needed for HiSilicon network driver.
      
       - Fix alignment requirements for CMA regions in DT.
      
       - Fix booting on PPC systems which can't do WARN() early.
      
       - Rename ak4554 binding doc from .c to .txt.
      
      * tag 'devicetree-fixes-for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        of: Provide static inline function for of_translate_address if needed
        drivers: of: of_reserved_mem: fixup the alignment with CMA setup
        of: Print rather than WARN'ing when overlap check fails
        dt-bindings: ak4554: extension should be .txt
      b4a23759
    • Caesar Wang's avatar
      thermal: rockchip: fix compile error · c970872e
      Caesar Wang authored
      Missing a include file caused compile error.
      
        drivers/thermal/rockchip_thermal.c: In function 'rockchip_thermal_suspend':
        drivers/thermal/rockchip_thermal.c:720:2: error: implicit declaration of function 'pinctrl_pm_select_sleep_state' [-Werror=implicit-function-declaration]
        ...
      
      Fixes: 7e38a5b1 ("thermal: rockchip: support the sleep pinctrl state
      to avoid glitches")
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Signed-off-by: default avatarEduardo Valentin <edubezval@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c970872e
  2. 11 Nov, 2015 34 commits
    • Linus Torvalds's avatar
      Merge tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · 8d3de01c
      Linus Torvalds authored
      Pull firewire fix from Stefan Richter:
       "Work around JMicron initialization quirk, which ffected isochronous
        transmission, e.g. audio via FFADO or ALSA"
      
      * tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire: ohci: fix JMicron JMB38x IT context discovery
      8d3de01c
    • Linus Torvalds's avatar
      Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 842cf0b9
      Linus Torvalds authored
      Pull vfs update from Al Viro:
      
       - misc stable fixes
      
       - trivial kernel-doc and comment fixups
      
       - remove never-used block_page_mkwrite() wrapper function, and rename
         the function that is _actually_ used to not have double underscores.
      
      * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs: 9p: cache.h: Add #define of include guard
        vfs: remove stale comment in inode_operations
        vfs: remove unused wrapper block_page_mkwrite()
        binfmt_elf: Correct `arch_check_elf's description
        fs: fix writeback.c kernel-doc warnings
        fs: fix inode.c kernel-doc warning
        fs/pipe.c: return error code rather than 0 in pipe_write()
        fs/pipe.c: preserve alloc_file() error code
        binfmt_elf: Don't clobber passed executable's file header
        FS-Cache: Handle a write to the page immediately beyond the EOF marker
        cachefiles: perform test on s_blocksize when opening cache file.
        FS-Cache: Don't override netfs's primary_index if registering failed
        FS-Cache: Increase reference of parent after registering, netfs success
        debugfs: fix refcount imbalance in start_creating
      842cf0b9
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 65d57b30
      Linus Torvalds authored
      Pull crypto fix from Herbert Xu:
       "This fixes a bug in the algif_hash interface that may lead to crashes
        when used with certain algorithms such as HMAC"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: algif_hash - Only export and import on sockets with data
      65d57b30
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-4.4-rc1' of... · c8fff3ed
      Linus Torvalds authored
      Merge tag 'pwm/for-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This round contains a couple of new drivers for the Marvell Berlin
        family of SoCs, various SoCs from Renesas and Broadcom as well as the
        backlight PWM present on MediaTek SoCs.
      
        Further existing drivers are extended to support a wider range of
        hardware.
      
        The remaining patches are minor fixes and cleanups across the board.
      
        Note that one of the patches included in this pull request is against
        arch/unicore32.  I've included it here because I couldn't get a
        response from Guan Xuetao and I consider the change low-risk.
        Equivalent patches have been merged and tested in Samsung and PXA
        trees.  The goal is to finally get rid of legacy code paths that have
        repeatedly been causing headaches"
      
      * tag 'pwm/for-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (24 commits)
        pwm: sunxi: Fix whitespace issue
        pwm: sysfs: Make use of the DEVICE_ATTR_[RW][WO] macro's
        pwm: sysfs: Remove unnecessary temporary variable
        unicore32: nb0916: Use PWM lookup table
        pwm: pwm-rcar: Revise the device tree binding document about compatible
        pwm: Return -ENODEV if no PWM lookup match is found
        pwm: sun4i: Add support for PWM controller on sun5i SoCs
        pwm: Set enable state properly on failed call to enable
        pwm: lpss: Add support for runtime PM
        pwm: lpss: Add more Intel Broxton IDs
        pwm: lpss: Support all four PWMs on Intel Broxton
        pwm: lpss: Add support for multiple PWMs
        pwm-pca9685: enable ACPI device found on Galileo Gen2
        pwm: Add MediaTek display PWM driver support
        dt-bindings: pwm: Add MediaTek display PWM bindings
        pwm: tipwmss: Enable on TI DRA7x and AM437x
        pwm: atmel-hlcdc: add sama5d2 SoC support.
        pwm: Add Broadcom BCM7038 PWM controller support
        Documentation: dt: add Broadcom BCM7038 PWM controller binding
        pwm: Add support for R-Car PWM Timer
        ...
      c8fff3ed
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · baf51c43
      Linus Torvalds authored
      Pull thermal updates from Zhang Rui:
      
       - Implement generic devfreq cooling mechanism through frequency
         reduction for devices using devfreq.  From Ørjan Eide and Javi
         Merino.
      
       - Introduce OMAP3 support on TI SoC thermal driver.  From Pavel Mack
         and Eduardo Valentin.
      
       - A bounch of small fixes on devfreq_cooling, Exynos, IMX, Armada, and
         Rockchip thermal drivers.
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (24 commits)
        thermal: exynos: Directly return 0 instead of using local ret variable
        thermal: exynos: Remove unneeded semicolon
        thermal: exynos: Use IS_ERR() because regulator cannot be NULL
        thermal: exynos: Fix first temperature read after registering sensor
        thermal: exynos: Fix unbalanced regulator disable on probe failure
        devfreq_cooling: return on allocation failure
        thermal: rockchip: support the sleep pinctrl state to avoid glitches in s2r
        dt-bindings: rockchip-thermal: Add the pinctrl states in this document
        thermal: devfreq_cooling: Make power a u64
        thermal: devfreq_cooling: use a thermal_cooling_device for register and unregister
        thermal: underflow bug in imx_set_trip_temp()
        thermal: armada: Fix possible overflow in the Armada 380 thermal sensor formula
        thermal: imx: register irq handler later in probe
        thermal: rockhip: fix setting thermal shutdown polarity
        thermal: rockchip: fix handling of invalid readings
        devfreq_cooling: add trace information
        thermal: Add devfreq cooling
        PM / OPP: get the voltage for all OPPs
        tools/thermal: tmon: use pkg-config also for CFLAGS
        linux/thermal.h: rename KELVIN_TO_CELSIUS to DECI_KELVIN_TO_CELSIUS
        ...
      baf51c43
    • Tzvetelin Katchov's avatar
      fs: 9p: cache.h: Add #define of include guard · 7c7afc44
      Tzvetelin Katchov authored
      The include file was intended to have an include guard, but the #define
      part is missing.
      Signed-off-by: default avatarTzvetelin Katchov <katchov@gmail.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7c7afc44
    • Ross Zwisler's avatar
      vfs: remove stale comment in inode_operations · c8fffa64
      Ross Zwisler authored
      The big warning comment that is currently at the end of struct
      inode_operations was added as part of this commit:
      
      4aa7c634 ("vfs: add i_op->dentry_open()")
      
      It was added to warn people not to use the newly added 'dentry_open'
      function pointer.
      
      This function pointer was removed as part of this commit:
      
      4bacc9c9 ("overlayfs: Make f_path always point to the overlay and
      		f_inode to the underlay")
      
      The comment was left behind and now refers to nothing, so remove it.
      Signed-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      c8fffa64
    • Ross Zwisler's avatar
      vfs: remove unused wrapper block_page_mkwrite() · 5c500029
      Ross Zwisler authored
      The function currently called "__block_page_mkwrite()" used to be called
      "block_page_mkwrite()" until a wrapper for this function was added by:
      
      commit 24da4fab ("vfs: Create __block_page_mkwrite() helper passing
      	error values back")
      
      This wrapper, the current "block_page_mkwrite()", is currently unused.
      __block_page_mkwrite() is used directly by ext4, nilfs2 and xfs.
      
      Remove the unused wrapper, rename __block_page_mkwrite() back to
      block_page_mkwrite() and update the comment above block_page_mkwrite().
      Signed-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.com>
      Cc: Jan Kara <jack@suse.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      5c500029
    • Maciej W. Rozycki's avatar
      binfmt_elf: Correct `arch_check_elf's description · 54d15714
      Maciej W. Rozycki authored
      Correct `arch_check_elf's description, mistakenly copied and pasted from
      `arch_elf_pt_proc'.
      Signed-off-by: default avatarMaciej W. Rozycki <macro@imgtec.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      54d15714
    • Randy Dunlap's avatar
      fs: fix writeback.c kernel-doc warnings · 88a578d8
      Randy Dunlap authored
      Fix kernel-doc warnings in fs/fs-writeback.c by moving a #define macro
      to after the function's opening brace. Also #undef this macro at the
      end of the function.
      
      ..//fs/fs-writeback.c:1984: warning: Excess function parameter 'inode' description in 'I_DIRTY_INODE'
      ..//fs/fs-writeback.c:1984: warning: Excess function parameter 'flags' description in 'I_DIRTY_INODE'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      88a578d8
    • Randy Dunlap's avatar
      fs: fix inode.c kernel-doc warning · 034ae4ba
      Randy Dunlap authored
      Fix kernel-doc warning in fs/inode.c:
      
      ..//fs/inode.c:1606: warning: No description found for parameter 'inode'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      034ae4ba
    • Eric Biggers's avatar
      fs/pipe.c: return error code rather than 0 in pipe_write() · 6ae08069
      Eric Biggers authored
      pipe_write() would return 0 if it failed to merge the beginning of the
      data to write with the last, partially filled pipe buffer.  It should
      return an error code instead.  Userspace programs could be confused by
      write() returning 0 when called with a nonzero 'count'.
      
      The EFAULT error case was a regression from f0d1bec9 ("new helper:
      copy_page_from_iter()"), while the ops->confirm() error case was a much
      older bug.
      
      Test program:
      
      	#include <assert.h>
      	#include <errno.h>
      	#include <unistd.h>
      
      	int main(void)
      	{
      		int fd[2];
      		char data[1] = {0};
      
      		assert(0 == pipe(fd));
      		assert(1 == write(fd[1], data, 1));
      
      		/* prior to this patch, write() returned 0 here  */
      		assert(-1 == write(fd[1], NULL, 1));
      		assert(errno == EFAULT);
      	}
      
      Cc: stable@vger.kernel.org # at least v3.15+
      Signed-off-by: default avatarEric Biggers <ebiggers3@gmail.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      6ae08069
    • Eric Biggers's avatar
      fs/pipe.c: preserve alloc_file() error code · e9bb1f9b
      Eric Biggers authored
      If sys_pipe() was unable to allocate a 'struct file', it always failed
      with ENFILE, which means "The number of simultaneously open files in the
      system would exceed a system-imposed limit." However, alloc_file()
      actually returns an ERR_PTR value and might fail with other error codes.
      Currently, in addition to ENFILE, it can fail with ENOMEM, potentially
      when there are few open files in the system.  Update sys_pipe() to
      preserve this error code.
      
      In a prior submission of a similar patch (1) some concern was raised
      about introducing a new error code for sys_pipe().  However, for most
      system calls, programs cannot assume that new error codes will never be
      introduced.  In addition, ENOMEM was, in fact, already a possible error
      code for sys_pipe(), in the case where the file descriptor table could
      not be expanded due to insufficient memory.
      
      	(1) http://comments.gmane.org/gmane.linux.kernel/1357942Signed-off-by: default avatarEric Biggers <ebiggers3@gmail.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      e9bb1f9b
    • Maciej W. Rozycki's avatar
      binfmt_elf: Don't clobber passed executable's file header · b582ef5c
      Maciej W. Rozycki authored
      Do not clobber the buffer space passed from `search_binary_handler' and
      originally preloaded by `prepare_binprm' with the executable's file
      header by overwriting it with its interpreter's file header.  Instead
      keep the buffer space intact and directly use the data structure locally
      allocated for the interpreter's file header, fixing a bug introduced in
      2.1.14 with loadable module support (linux-mips.org commit beb11695
      [Import of Linux/MIPS 2.1.14], predating kernel.org repo's history).
      Adjust the amount of data read from the interpreter's file accordingly.
      
      This was not an issue before loadable module support, because back then
      `load_elf_binary' was executed only once for a given ELF executable,
      whether the function succeeded or failed.
      
      With loadable module support supported and enabled, upon a failure of
      `load_elf_binary' -- which may for example be caused by architecture
      code rejecting an executable due to a missing hardware feature requested
      in the file header -- a module load is attempted and then the function
      reexecuted by `search_binary_handler'.  With the executable's file
      header replaced with its interpreter's file header the executable can
      then be erroneously accepted in this subsequent attempt.
      
      Cc: stable@vger.kernel.org # all the way back
      Signed-off-by: default avatarMaciej W. Rozycki <macro@imgtec.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b582ef5c
    • David Howells's avatar
      FS-Cache: Handle a write to the page immediately beyond the EOF marker · 102f4d90
      David Howells authored
      Handle a write being requested to the page immediately beyond the EOF
      marker on a cache object.  Currently this gets an assertion failure in
      CacheFiles because the EOF marker is used there to encode information about
      a partial page at the EOF - which could lead to an unknown blank spot in
      the file if we extend the file over it.
      
      The problem is actually in fscache where we check the index of the page
      being written against store_limit.  store_limit is set to the number of
      pages that we're allowed to store by fscache_set_store_limit() - which
      means it's one more than the index of the last page we're allowed to store.
      The problem is that we permit writing to a page with an index _equal_ to
      the store limit - when we should reject that case.
      
      Whilst we're at it, change the triggered assertion in CacheFiles to just
      return -ENOBUFS instead.
      
      The assertion failure looks something like this:
      
      CacheFiles: Assertion failed
      1000 < 7b1 is false
      ------------[ cut here ]------------
      kernel BUG at fs/cachefiles/rdwr.c:962!
      ...
      RIP: 0010:[<ffffffffa02c9e83>]  [<ffffffffa02c9e83>] cachefiles_write_page+0x273/0x2d0 [cachefiles]
      
      Cc: stable@vger.kernel.org # v2.6.31+; earlier - that + backport of a17754fb (at least)
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      102f4d90
    • NeilBrown's avatar
      cachefiles: perform test on s_blocksize when opening cache file. · 95201a40
      NeilBrown authored
      cachefiles requires that s_blocksize in the cache is not greater than
      PAGE_SIZE, and performs the check every time a block is accessed.
      
      Move the test to the place where the file is "opened", where other
      file-validity tests are performed.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      95201a40
    • Kinglong Mee's avatar
      FS-Cache: Don't override netfs's primary_index if registering failed · b130ed59
      Kinglong Mee authored
      Only override netfs->primary_index when registering success.
      
      Cc: stable@vger.kernel.org # v2.6.30+
      Signed-off-by: default avatarKinglong Mee <kinglongmee@gmail.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b130ed59
    • Kinglong Mee's avatar
      FS-Cache: Increase reference of parent after registering, netfs success · 86108c2e
      Kinglong Mee authored
      If netfs exist, fscache should not increase the reference of parent's
      usage and n_children, otherwise, never be decreased.
      
      v2: thanks David's suggest,
       move increasing reference of parent if success
       use kmem_cache_free() freeing primary_index directly
      
      v3: don't move "netfs->primary_index->parent = &fscache_fsdef_index;"
      
      Cc: stable@vger.kernel.org # v2.6.30+
      Signed-off-by: default avatarKinglong Mee <kinglongmee@gmail.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      86108c2e
    • Daniel Borkmann's avatar
      debugfs: fix refcount imbalance in start_creating · 0ee9608c
      Daniel Borkmann authored
      In debugfs' start_creating(), we pin the file system to safely access
      its root. When we failed to create a file, we unpin the file system via
      failed_creating() to release the mount count and eventually the reference
      of the vfsmount.
      
      However, when we run into an error during lookup_one_len() when still
      in start_creating(), we only release the parent's mutex but not so the
      reference on the mount. Looks like it was done in the past, but after
      splitting portions of __create_file() into start_creating() and
      end_creating() via 190afd81 ("debugfs: split the beginning and the
      end of __create_file() off"), this seemed missed. Noticed during code
      review.
      
      Fixes: 190afd81 ("debugfs: split the beginning and the end of __create_file() off")
      Cc: stable@vger.kernel.org # v4.0+
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      0ee9608c
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · c5a37883
      Linus Torvalds authored
      Merge final patch-bomb from Andrew Morton:
       "Various leftovers, mainly Christoph's pci_dma_supported() removals"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        pci: remove pci_dma_supported
        usbnet: remove ifdefed out call to dma_supported
        kaweth: remove ifdefed out call to dma_supported
        sfc: don't call dma_supported
        nouveau: don't call pci_dma_supported
        netup_unidvb: use pci_set_dma_mask insted of pci_dma_supported
        cx23885: use pci_set_dma_mask insted of pci_dma_supported
        cx25821: use pci_set_dma_mask insted of pci_dma_supported
        cx88: use pci_set_dma_mask insted of pci_dma_supported
        saa7134: use pci_set_dma_mask insted of pci_dma_supported
        saa7164: use pci_set_dma_mask insted of pci_dma_supported
        tw68-core: use pci_set_dma_mask insted of pci_dma_supported
        pcnet32: use pci_set_dma_mask insted of pci_dma_supported
        lib/string.c: add ULL suffix to the constant definition
        hugetlb: trivial comment fix
        selftests/mlock2: add ULL suffix to 64-bit constants
        selftests/mlock2: add missing #define _GNU_SOURCE
      c5a37883
    • Linus Torvalds's avatar
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 5dfe5b2c
      Linus Torvalds authored
      Pull misc kbuild updates from Michal Marek:
       "This is the non-critical part of kbuild:
      
         - several coccinelle updates
         - make deb-pkg creates an armhf package if CONFIG_VFP=y
         - make tags understands some more powerpc macros"
      
      * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        coccinelle: Improve checking for missing NULL terminators
        coccinelle: ifnullfree: handle various destroy functions
        coccinelle: ifnullfree: various cleanups
        cocinelle: iterators: semantic patch to delete unneeded of_node_put
        deb-pkg: Add automatic support for armhf architecture
        scripts/coccinelle: fix typos
        coccinelle: misc: remove "complex return code" warnings
        Coccinelle: fix incorrect -include option transformation
        coccinelle: tests: improve odd_ptr_err.cocci
        coccinelle: misc: move constants to the right
        scripts/tags.sh: Teach tags about some powerpc macros
      5dfe5b2c
    • Linus Torvalds's avatar
      Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 152813e6
      Linus Torvalds authored
      Pull kconfig updates from Michal Marek:
      
       - 'make xconfig' ported to Qt5, dropping support for Qt3
      
       - merge_config.sh supports a single-input-file mode and also respects
         $KCONFIG_CONFIG
      
       - Fix for incorrect display of >= and > in dependency expressions
      
      * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (44 commits)
        Add current selection check.
        Use pkg-config to find Qt 4 and 5 instead of direct qmake
        kconfig: Fix copy&paste error
        kconfig/merge_config.sh: Accept a single file
        kconfig/merge_config.sh: Support KCONFIG_CONFIG
        Update the buildsystem for KConfig finding Qt
        Port xconfig to Qt5 - Update copyright.
        Port xconfig to Qt5 - Fix goParent issue.
        Port xconfig to Qt5 - on Back clicked, deselect old item.
        Port xconfig to Qt5 - Add(back) one click checkbox toggle.
        Port xconfig to Qt5 - Add(back) lineedit editing.
        Port xconfig to Qt5 - Remove some commented code.
        Port xconfig to Qt5 - Source format.
        Port xconfig to Qt5 - Add horizontal scrollbar, and scroll per pixel.
        Port xconfig to Qt5 - Change ConfigItem constructor parent type.
        Port xconfig to Qt5 - Disable ConfigList soring
        Port xconfig to Qt5 - Remove ConfigList::updateMenuList template.
        Port xconfig to Qt5 - Add ConfigList::mode to initializer list.
        Port xconfig to Qt5 - Add ConfigItem::nextItem to initializer list.
        Port xconfig to Qt5 - Tree widget set column titles.
        ...
      152813e6
    • Linus Torvalds's avatar
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · c34e6e0b
      Linus Torvalds authored
      Pull kbuild update from Michal Marek:
       "The kbuild branch for v4.4-rc1 only has one commit: A new make
        kselftest-clean target cleans tools/testing/selftests"
      
      * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        kselftest: add kselftest-clean rule
      c34e6e0b
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.4-rc1' of... · 6a177af7
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
       "This 12 patch update for 4.4-rc1 consists of a new pstore test and
        fixes to existing tests"
      
      * tag 'linux-kselftest-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests: breakpoint: Actually build it
        selftests: vm: Try harder to allocate huge pages
        selftests: Make scripts executable
        selftests: kprobe: Choose an always-defined function to probe
        selftests: memfd: Stop unnecessary rebuilds
        selftests: Add missing #include directives
        selftests/seccomp: Be more precise with syscall arguments.
        selftests/seccomp: build and pass on arm64
        selftests: memfd_test: Revised STACK_SIZE to make it 16-byte aligned
        selftests/pstore: add pstore test scripts going with reboot
        selftests/pstore: add pstore test script for pre-reboot
        selftests: add .gitignore for efivarfs
      6a177af7
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · ae36ce07
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Two build fixes, one for VC4, one for nouveau where the ARM only code
        is doing something a bit strange.  While people are discussing that,
        just workaround it and fix the build for now.  The code in question
        will never get used on anything non-ARM anyways.
      
        Also one fix for AST that SuSE had been hiding in their kernel, that
        allows all fbdev apps to work on that driver"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/nouveau: fix build failures on all non ARM.
        drm/ast: Initialized data needed to map fbdev memory
        drm/vc4: Add dependency on HAVE_DMA_ATTRS, and select DRM_GEM_CMA_HELPER
      ae36ce07
    • Dave Airlie's avatar
      drm/nouveau: fix build failures on all non ARM. · 10855aeb
      Dave Airlie authored
      gk20a is an ARM only GPU, so we can just do the correct thing on
      ARM but fail on other architectures. The other option was to use
      SWIOTLB as the define, which means phys_to_page exists, but
      this seems clearer.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      10855aeb
    • Egbert Eich's avatar
      drm/ast: Initialized data needed to map fbdev memory · 28fb4cb7
      Egbert Eich authored
      Due to a missing initialization there was no way to map fbdev memory.
      Thus for example using the Xserver with the fbdev driver failed.
      This fix adds initialization for fix.smem_start and fix.smem_len
      in the fb_info structure, which fixes this problem.
      Requested-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarEgbert Eich <eich@suse.de>
      [pulled from SuSE tree by me - airlied]
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      28fb4cb7
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 2df4ee78
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix null deref in xt_TEE netfilter module, from Eric Dumazet.
      
       2) Several spots need to get to the original listner for SYN-ACK
          packets, most spots got this ok but some were not.  Whilst covering
          the remaining cases, create a helper to do this.  From Eric Dumazet.
      
       3) Missiing check of return value from alloc_netdev() in CAIF SPI code,
          from Rasmus Villemoes.
      
       4) Don't sleep while != TASK_RUNNING in macvtap, from Vlad Yasevich.
      
       5) Use after free in mvneta driver, from Justin Maggard.
      
       6) Fix race on dst->flags access in dst_release(), from Eric Dumazet.
      
       7) Add missing ZLIB_INFLATE dependency for new qed driver.  From Arnd
          Bergmann.
      
       8) Fix multicast getsockopt deadlock, from WANG Cong.
      
       9) Fix deadlock in btusb, from Kuba Pawlak.
      
      10) Some ipv6_add_dev() failure paths were not cleaning up the SNMP6
          counter state.  From Sabrina Dubroca.
      
      11) Fix packet_bind() race, which can cause lost notifications, from
          Francesco Ruggeri.
      
      12) Fix MAC restoration in qlcnic driver during bonding mode changes,
          from Jarod Wilson.
      
      13) Revert bridging forward delay change which broke libvirt and other
          userspace things, from Vlad Yasevich.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (65 commits)
        Revert "bridge: Allow forward delay to be cfgd when STP enabled"
        bpf_trace: Make dependent on PERF_EVENTS
        qed: select ZLIB_INFLATE
        net: fix a race in dst_release()
        net: mvneta: Fix memory use after free.
        net: Documentation: Fix default value tcp_limit_output_bytes
        macvtap: Resolve possible __might_sleep warning in macvtap_do_read()
        mvneta: add FIXED_PHY dependency
        net: caif: check return value of alloc_netdev
        net: hisilicon: NET_VENDOR_HISILICON should depend on HAS_DMA
        drivers: net: xgene: fix RGMII 10/100Mb mode
        netfilter: nft_meta: use skb_to_full_sk() helper
        net_sched: em_meta: use skb_to_full_sk() helper
        sched: cls_flow: use skb_to_full_sk() helper
        netfilter: xt_owner: use skb_to_full_sk() helper
        smack: use skb_to_full_sk() helper
        net: add skb_to_full_sk() helper and use it in selinux_netlbl_skbuff_setsid()
        bpf: doc: correct arch list for supported eBPF JIT
        dwc_eth_qos: Delete an unnecessary check before the function call "of_node_put"
        bonding: fix panic on non-ARPHRD_ETHER enslave failure
        ...
      2df4ee78
    • Linus Torvalds's avatar
      Merge branch 'for-4.4/io-poll' of git://git.kernel.dk/linux-block · 3419b450
      Linus Torvalds authored
      Pull block IO poll support from Jens Axboe:
       "Various groups have been doing experimentation around IO polling for
        (really) fast devices.  The code has been reviewed and has been
        sitting on the side for a few releases, but this is now good enough
        for coordinated benchmarking and further experimentation.
      
        Currently O_DIRECT sync read/write are supported.  A framework is in
        the works that allows scalable stats tracking so we can auto-tune
        this.  And we'll add libaio support as well soon.  Fow now, it's an
        opt-in feature for test purposes"
      
      * 'for-4.4/io-poll' of git://git.kernel.dk/linux-block:
        direct-io: be sure to assign dio->bio_bdev for both paths
        directio: add block polling support
        NVMe: add blk polling support
        block: add block polling support
        blk-mq: return tag/queue combo in the make_request_fn handlers
        block: change ->make_request_fn() and users to return a queue cookie
      3419b450
    • Linus Torvalds's avatar
      Merge tag 'upstream-4.4-rc1' of git://git.infradead.org/linux-ubifs · 01504f5e
      Linus Torvalds authored
      Pull UBI/UBIFS updates from Richard Weinberger:
      
       - access time support for UBIFS by Dongsheng Yang
      
       - random cleanups and bug fixes all over the place
      
      * tag 'upstream-4.4-rc1' of git://git.infradead.org/linux-ubifs:
        ubifs: introduce UBIFS_ATIME_SUPPORT to ubifs
        ubifs: make ubifs_[get|set]xattr atomic
        UBIFS: Delete unnecessary checks before the function call "iput"
        UBI: Remove in vain semicolon
        UBI: Fastmap: Fix PEB array type
        UBIFS: Fix possible memory leak in ubifs_readdir()
        fs/ubifs: remove unnecessary new_valid_dev check
        ubi: fastmap: Implement produce_free_peb()
        UBIFS: print verbose message when rescanning a corrupted node
        UBIFS: call dbg_is_power_cut() instead of reading c->dbg->pc_happened
        UBI: drop null test before destroy functions
        UBI: Update comments to reflect UBI_METAONLY flag
        UBI: Fix debug message
        UBI: Fix typo in comment
        UBI: Fastmap: Simplify expression
        UBIFS: fix a typo in comment of ubifs_budget_req
        UBIFS: use kmemdup rather than duplicating its implementation
      01504f5e
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 4bde961e
      Linus Torvalds authored
      Pull UML updates from Richard Weinberger:
      
       - a new hrtimer based clocksource by Anton Ivanov
      
       - ptrace() enhancments by Richard Weinberger
      
       - random cleanups and bug fixes all over the place
      
      * 'for-linus-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: Switch clocksource to hrtimers
        um: net: replace GFP_KERNEL with GFP_ATOMIC when spinlock is held
        um: Report host OOM more nicely
        um: Simplify STUB_DATA loading
        um: Remove dead symbol from i386 syscall stub
        um: Remove dead code from x86_64 syscall stub
        um: Get rid of open coded NR_SYSCALLS
        um: Store syscall number after syscall_trace_enter()
        um: Define PTRACE_OLDSETOPTIONS
      4bde961e
    • Christoph Hellwig's avatar
      pci: remove pci_dma_supported · 247e75db
      Christoph Hellwig authored
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Cc: Helge Deller <deller@gmx.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      247e75db
    • Christoph Hellwig's avatar
      usbnet: remove ifdefed out call to dma_supported · 704c16db
      Christoph Hellwig authored
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Oliver Neukum <oneukum@suse.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      704c16db
    • Christoph Hellwig's avatar
      kaweth: remove ifdefed out call to dma_supported · 21fd6c09
      Christoph Hellwig authored
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Oliver Neukum <oliver@neukum.org>
      Cc: Alexey Khoroshilov <khoroshilov@ispras.ru>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      21fd6c09