1. 08 Dec, 2019 7 commits
    • Linus Torvalds's avatar
      Merge tag 'ntb-5.5' of git://github.com/jonmason/ntb · 9455d25f
      Linus Torvalds authored
      Pull NTB update from Jon Mason:
       "Just a simple patch to add a new Hygon Device ID to the AMD NTB device
        driver"
      
      * tag 'ntb-5.5' of git://github.com/jonmason/ntb:
        NTB: Add Hygon Device ID
      9455d25f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 73721451
      Linus Torvalds authored
      Pull more input updates from Dmitry Torokhov:
      
       - fixups for Synaptics RMI4 driver
      
       - a quirk for Goodinx touchscreen on Teclast tablet
      
       - a new keycode definition for activating privacy screen feature found
         on a few "enterprise" laptops
      
       - updates to snvs_pwrkey driver
      
       - polling uinput device for writing (which is always allowed) now works
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers
        Input: synaptics-rmi4 - re-enable IRQs in f34v7_do_reflash
        Input: goodix - add upside-down quirk for Teclast X89 tablet
        Input: add privacy screen toggle keycode
        Input: uinput - fix returning EPOLLOUT from uinput_poll
        Input: snvs_pwrkey - remove gratuitous NULL initializers
        Input: snvs_pwrkey - send key events for i.MX6 S, DL and Q
      73721451
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.5-merge-14' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 95207d55
      Linus Torvalds authored
      Pull iomap fixes from Darrick Wong:
       "Fix a race condition and a use-after-free error:
      
         - Fix a UAF when reporting writeback errors
      
         - Fix a race condition when handling page uptodate on fragmented file
           with blocksize < pagesize"
      
      * tag 'iomap-5.5-merge-14' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: stop using ioend after it's been freed in iomap_finish_ioend()
        iomap: fix sub-page uptodate handling
      95207d55
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.5-merge-17' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 50caca9d
      Linus Torvalds authored
      Pull xfs fixes from Darrick Wong:
       "Fix a couple of resource management errors and a hang:
      
         - fix a crash in the log setup code when log mounting fails
      
         - fix a hang when allocating space on the realtime device
      
         - fix a block leak when freeing space on the realtime device"
      
      * tag 'xfs-5.5-merge-17' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: fix mount failure crash on invalid iclog memory access
        xfs: don't check for AG deadlock for realtime files in bunmapi
        xfs: fix realtime file data space leak
      50caca9d
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.5-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux · 316933cf
      Linus Torvalds authored
      Pull orangefs update from Mike Marshall:
       "orangefs: posix open permission checking...
      
        Orangefs has no open, and orangefs checks file permissions on each
        file access. Posix requires that file permissions be checked on open
        and nowhere else. Orangefs-through-the-kernel needs to seem posix
        compliant.
      
        The VFS opens files, even if the filesystem provides no method. We can
        see if a file was successfully opened for read and or for write by
        looking at file->f_mode.
      
        When writes are flowing from the page cache, file is no longer
        available. We can trust the VFS to have checked file->f_mode before
        writing to the page cache.
      
        The mode of a file might change between when it is opened and IO
        commences, or it might be created with an arbitrary mode.
      
        We'll make sure we don't hit EACCES during the IO stage by using
        UID 0"
      
      [ This is "posixish", but not a great solution in the long run, since a
        proper secure network server shouldn't really trust the client like this.
        But proper and secure POSIX behavior requires an open method and a
        resulting cookie for IO of some kind, or similar.    - Linus ]
      
      * tag 'for-linus-5.5-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
        orangefs: posix open permission checking...
      316933cf
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.5' of git://linux-nfs.org/~bfields/linux · 911d137a
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "This is a relatively quiet cycle for nfsd, mainly various bugfixes.
      
        Possibly most interesting is Trond's fixes for some callback races
        that were due to my incomplete understanding of rpc client shutdown.
        Unfortunately at the last minute I've started noticing a new
        intermittent failure to send callbacks. As the logic seems basically
        correct, I'm leaving Trond's patches in for now, and hope to find a
        fix in the next week so I don't have to revert those patches"
      
      * tag 'nfsd-5.5' of git://linux-nfs.org/~bfields/linux: (24 commits)
        nfsd: depend on CRYPTO_MD5 for legacy client tracking
        NFSD fixing possible null pointer derefering in copy offload
        nfsd: check for EBUSY from vfs_rmdir/vfs_unink.
        nfsd: Ensure CLONE persists data and metadata changes to the target file
        SUNRPC: Fix backchannel latency metrics
        nfsd: restore NFSv3 ACL support
        nfsd: v4 support requires CRYPTO_SHA256
        nfsd: Fix cld_net->cn_tfm initialization
        lockd: remove __KERNEL__ ifdefs
        sunrpc: remove __KERNEL__ ifdefs
        race in exportfs_decode_fh()
        nfsd: Drop LIST_HEAD where the variable it declares is never used.
        nfsd: document callback_wq serialization of callback code
        nfsd: mark cb path down on unknown errors
        nfsd: Fix races between nfsd4_cb_release() and nfsd4_shutdown_callback()
        nfsd: minor 4.1 callback cleanup
        SUNRPC: Fix svcauth_gss_proxy_init()
        SUNRPC: Trace gssproxy upcall results
        sunrpc: fix crash when cache_head become valid before update
        nfsd: remove private bin2hex implementation
        ...
      911d137a
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-5.5-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · fb9bf40c
      Linus Torvalds authored
      Pull NFS client updates from Trond Myklebust:
       "Highlights include:
      
        Features:
      
         - NFSv4.2 now supports cross device offloaded copy (i.e. offloaded
           copy of a file from one source server to a different target
           server).
      
         - New RDMA tracepoints for debugging congestion control and Local
           Invalidate WRs.
      
        Bugfixes and cleanups
      
         - Drop the NFSv4.1 session slot if nfs4_delegreturn_prepare waits for
           layoutreturn
      
         - Handle bad/dead sessions correctly in nfs41_sequence_process()
      
         - Various bugfixes to the delegation return operation.
      
         - Various bugfixes pertaining to delegations that have been revoked.
      
         - Cleanups to the NFS timespec code to avoid unnecessary conversions
           between timespec and timespec64.
      
         - Fix unstable RDMA connections after a reconnect
      
         - Close race between waking an RDMA sender and posting a receive
      
         - Wake pending RDMA tasks if connection fails
      
         - Fix MR list corruption, and clean up MR usage
      
         - Fix another RPCSEC_GSS issue with MIC buffer space"
      
      * tag 'nfs-for-5.5-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (79 commits)
        SUNRPC: Capture completion of all RPC tasks
        SUNRPC: Fix another issue with MIC buffer space
        NFS4: Trace lock reclaims
        NFS4: Trace state recovery operation
        NFSv4.2 fix memory leak in nfs42_ssc_open
        NFSv4.2 fix kfree in __nfs42_copy_file_range
        NFS: remove duplicated include from nfs4file.c
        NFSv4: Make _nfs42_proc_copy_notify() static
        NFS: Fallocate should use the nfs4_fattr_bitmap
        NFS: Return -ETXTBSY when attempting to write to a swapfile
        fs: nfs: sysfs: Remove NULL check before kfree
        NFS: remove unneeded semicolon
        NFSv4: add declaration of current_stateid
        NFSv4.x: Drop the slot if nfs4_delegreturn_prepare waits for layoutreturn
        NFSv4.x: Handle bad/dead sessions correctly in nfs41_sequence_process()
        nfsv4: Move NFSPROC4_CLNT_COPY_NOTIFY to end of list
        SUNRPC: Avoid RPC delays when exiting suspend
        NFS: Add a tracepoint in nfs_fh_to_dentry()
        NFSv4: Don't retry the GETATTR on old stateid in nfs4_delegreturn_done()
        NFSv4: Handle NFS4ERR_OLD_STATEID in delegreturn
        ...
      fb9bf40c
  2. 07 Dec, 2019 22 commits
  3. 06 Dec, 2019 11 commits
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 347f56fb
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A set of fixes that we've merged late, but for the most part that have
        been sitting in -next for a while through platform maintainer trees:
      
         - Fixes to suspend/resume on Tegra, caused by the added features this
           merge window
      
         - Cleanups and minor fixes to TI additions this merge window
      
         - Tee fixes queued up late before the merge window, included here.
      
         - A handful of other fixlets
      
        There's also a refresh of the shareed config files (multi_v* on
        32-bit, and defconfig on 64-bit), to avoid conflicts when we get new
        contributions"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (32 commits)
        ARM: multi_v7_defconfig: Restore debugfs support
        ARM: defconfig: re-run savedefconfig on multi_v* configs
        arm64: defconfig: re-run savedefconfig
        ARM: pxa: Fix resource properties
        soc: mediatek: cmdq: fixup wrong input order of write api
        soc: aspeed: Fix snoop_file_poll()'s return type
        MAINTAINERS: Switch to Marvell addresses
        MAINTAINERS: update Cavium ThunderX drivers
        Revert "arm64: dts: juno: add dma-ranges property"
        MAINTAINERS: Make Nicolas Saenz Julienne the new bcm2835 maintainer
        firmware: arm_scmi: Avoid double free in error flow
        arm64: dts: juno: Fix UART frequency
        ARM: dts: Fix sgx sysconfig register for omap4
        arm: socfpga: execute cold reboot by default
        ARM: dts: Fix vcsi regulator to be always-on for droid4 to prevent hangs
        ARM: dts: dra7: fix cpsw mdio fck clock
        ARM: dts: am57xx-beagle-x15: Update pinmux name to ddr_3_3v
        ARM: dts: omap3-tao3530: Fix incorrect MMC card detection GPIO polarity
        soc/tegra: pmc: Add reset sources and levels on Tegra194
        soc/tegra: pmc: Add missing IRQ callbacks on Tegra194
        ...
      347f56fb
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 98884281
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - ZONE_DMA32 initialisation fix when memblocks fall entirely within the
         first GB (used by ZONE_DMA in 5.5 for Raspberry Pi 4).
      
       - Couple of ftrace fixes following the FTRACE_WITH_REGS patchset.
      
       - access_ok() fix for the Tagged Address ABI when called from from a
         kernel thread (asynchronous I/O): the kthread does not have the TIF
         flags of the mm owner, so untag the user address unconditionally.
      
       - KVM compute_layout() called before the alternatives code patching.
      
       - Minor clean-ups.
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: entry: refine comment of stack overflow check
        arm64: ftrace: fix ifdeffery
        arm64: KVM: Invoke compute_layout() before alternatives are applied
        arm64: Validate tagged addresses in access_ok() called from kernel threads
        arm64: mm: Fix column alignment for UXN in kernel_page_tables
        arm64: insn: consistently handle exit text
        arm64: mm: Fix initialisation of DMA zones on non-NUMA systems
      98884281
    • David Howells's avatar
      pipe: Fix iteration end check in fuse_dev_splice_write() · 76f6777c
      David Howells authored
      Fix the iteration end check in fuse_dev_splice_write().  The iterator
      position can only be compared with == or != since wrappage may be involved.
      
      Fixes: 8cefc107 ("pipe: Use head and tail pointers for the ring, not cursor and length")
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      76f6777c
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 43a28986
      Linus Torvalds authored
      Pull more powerpc updates from Michael Ellerman:
       "A few commits splitting the KASAN instrumented bitops header in three,
        to match the split of the asm-generic bitops headers.
      
        This is needed on powerpc because we use the generic bitops for the
        non-atomic case only, whereas the existing KASAN instrumented bitops
        assume all the underlying operations are provided by the arch as
        arch_foo() versions.
      
        Thanks to: Daniel Axtens & Christophe Leroy"
      
      * tag 'powerpc-5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        docs/core-api: Remove possibly confusing sub-headings from Bit Operations
        powerpc: support KASAN instrumentation of bitops
        kasan: support instrumented bitops combined with generic bitops
      43a28986
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · f89d416a
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "One fix for a regression introduced by our recent rework of cache
        flushing on memory hotunplug.
      
        Like several other arches, our VDSO clock_getres() needed a fix to
        match the semantics of posix_get_hrtimer_res().
      
        A fix for a boot crash on Power9 LPARs using PCI LSI interrupts.
      
        A commit disabling use of the trace_imc PMU (not the core PMU) on
        Power9 systems, because it can lead to checkstops, until a workaround
        is developed.
      
        A handful of other minor fixes.
      
        Thanks to: Aneesh Kumar K.V, Anju T Sudhakar, Ard Biesheuvel,
        Christophe Leroy, Cédric Le Goater, Madhavan Srinivasan, Vincenzo
        Frascino"
      
      * tag 'powerpc-5.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/perf: Disable trace_imc pmu
        powerpc/powernv: Avoid re-registration of imc debugfs directory
        powerpc/pmem: Convert to EXPORT_SYMBOL_GPL
        powerpc/archrandom: fix arch_get_random_seed_int()
        powerpc: Fix vDSO clock_getres()
        powerpc/pmem: Fix kernel crash due to wrong range value usage in flush_dcache_range
        powerpc/xive: Skip ioremap() of ESB pages for LSI interrupts
        powerpc/kasan: Fix boot failure with RELOCATABLE && FSL_BOOKE
      f89d416a
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 3cf2890f
      Linus Torvalds authored
      Pull more sound updates from Takashi Iwai:
       "A few last-minute updates, most of them are the regression fixes:
      
         - AMD HD-audio HDMI runtime PM improvements
      
         - Fixes for HD-audio HDMI regressions wrt DP-MST
      
         - A regression fix for the previous aloop enhancement
      
         - A fix for a long-time problem in PCM OSS layer that was spotted by
           fuzzer now
      
         - A few HD-audio quirks"
      
      * tag 'sound-fix-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: pcm: oss: Avoid potential buffer overflows
        ALSA: hda: hdmi - Keep old slot assignment behavior for Intel platforms
        ALSA: hda: Modify stream stripe mask only when needed
        ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen
        ALSA: hda: hdmi - preserve non-MST PCM routing for Intel platforms
        ALSA: hda: hdmi - fix kernel oops caused by invalid PCM idx
        ALSA: hda/realtek - Fix inverted bass GPIO pin on Acer 8951G
        ALSA: hda/realtek - Dell headphone has noise on unmute for ALC236
        ALSA: hda: hdmi - fix regression in connect list handling
        ALSA: aloop: Avoid pointer dereference before null-check
        ALSA: hda/hdmi - enable automatic runtime pm for AMD HDMI codecs by default
        ALSA: hda/hdmi - enable runtime pm for newer AMD display audio
        ALSA: hda/hdmi - Add new pci ids for AMD GPU display audio
        ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD
      3cf2890f
    • Linus Torvalds's avatar
      pipe: fix incorrect caching of pipe state over pipe_wait() · ec057595
      Linus Torvalds authored
      Similarly to commit 8f868d68 ("pipe: Fix missing mask update after
      pipe_wait()") this fixes a case where the pipe rewrite ended up caching
      the pipe state incorrectly over a pipe lock drop event.
      
      It wasn't quite as obvious, because you needed to splice data from a
      pipe to a file, which is a fairly unusual operation, but it's completely
      wrong.
      
      Make sure we load the pipe head/tail/size information only after we've
      waited for there to be data in the pipe.
      
      While in that file, also make one of the splice helper functions use the
      canonical arghument order for pipe_empty().  That's syntactic - pipe
      emptiness is just that head and tail are equal, and thus mixing up head
      and tail doesn't really matter.  It's still wrong, though.
      Reported-by: default avatarDavid Sterba <dsterba@suse.cz>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ec057595
    • Dmitry Torokhov's avatar
      Merge branch 'next' into for-linus · afbd65f5
      Dmitry Torokhov authored
      Prepare second round of updates for 5.5 merge window.
      afbd65f5
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2019-12-06' of git://anongit.freedesktop.org/drm/drm · 7ada90eb
      Linus Torvalds authored
      Pull more drm updates from Dave Airlie:
       "Rob pointed out I missed his pull request for msm-next, it's been in
        next for a while outside of my tree so shouldn't cause any unexpected
        issues, it has some OCMEM support in drivers/soc that is acked by
        other maintainers as it's outside my tree.
      
        Otherwise it's a usual fixes pull, i915, amdgpu, the main ones, with
        some tegra, omap, mgag200 and one core fix.
      
        Summary:
      
        msm-next:
         - OCMEM support for a3xx and a4xx GPUs.
         - a510 support + display support
      
        core:
         - mst payload deletion fix
      
        i915:
         - uapi alignment fix
         - fix for power usage regression due to security fixes
         - change default preemption timeout to 640ms from 100ms
         - EHL voltage level display fixes
         - TGL DGL PHY fix
         - gvt - MI_ATOMIC cmd parser fix, CFL non-priv warning
         - CI spotted deadlock fix
         - EHL port D programming fix
      
        amdgpu:
         - VRAM lost fixes on BACO for CI/VI
         - navi14 DC fixes
         - misc SR-IOV, gfx10 fixes
         - XGMI fixes for arcturus
         - SRIOV fixes
      
        amdkfd:
         - KFD on ppc64le enabled
         - page table optimisations
      
        radeon:
         - fix for r1xx/2xx register checker.
      
        tegra:
         - displayport regression fixes
         - DMA API regression fixes
      
        mgag200:
         - fix devices that can't scanout except at 0 addr
      
        omap:
         - fix dma_addr refcounting"
      
      * tag 'drm-next-2019-12-06' of git://anongit.freedesktop.org/drm/drm: (100 commits)
        drm/dp_mst: Correct the bug in drm_dp_update_payload_part1()
        drm/omap: fix dma_addr refcounting
        drm/tegra: Run hub cleanup on ->remove()
        drm/tegra: sor: Make the +5V HDMI supply optional
        drm/tegra: Silence expected errors on IOMMU attach
        drm/tegra: vic: Export module device table
        drm/tegra: sor: Implement system suspend/resume
        drm/tegra: Use proper IOVA address for cursor image
        drm/tegra: gem: Remove premature import restrictions
        drm/tegra: gem: Properly pin imported buffers
        drm/tegra: hub: Remove bogus connection mutex check
        ia64: agp: Replace empty define with do while
        agp: Add bridge parameter documentation
        agp: remove unused variable num_segments
        agp: move AGPGART_MINOR to include/linux/miscdevice.h
        agp: remove unused variable size in agp_generic_create_gatt_table
        drm/dp_mst: Fix build on systems with STACKTRACE_SUPPORT=n
        drm/radeon: fix r1xx/r2xx register checker for POT textures
        drm/amdgpu: fix GFX10 missing CSIB set(v3)
        drm/amdgpu: should stop GFX ring in hw_fini
        ...
      7ada90eb
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20191205' of git://git.kernel.dk/linux-block · 9feb1af9
      Linus Torvalds authored
      Pull more block and io_uring updates from Jens Axboe:
       "I wasn't expecting this to be so big, and if I was, I would have used
        separate branches for this. Going forward I'll be doing separate
        branches for the current tree, just like for the next kernel version
        tree. In any case, this contains:
      
         - Series from Christoph that fixes an inherent race condition with
           zoned devices and revalidation.
      
         - null_blk zone size fix (Damien)
      
         - Fix for a regression in this merge window that caused busy spins by
           sending empty disk uevents (Eric)
      
         - Fix for a regression in this merge window for bfq stats (Hou)
      
         - Fix for io_uring creds allocation failure handling (me)
      
         - io_uring -ERESTARTSYS send/recvmsg fix (me)
      
         - Series that fixes the need for applications to retain state across
           async request punts for io_uring. This one is a bit larger than I
           would have hoped, but I think it's important we get this fixed for
           5.5.
      
         - connect(2) improvement for io_uring, handling EINPROGRESS instead
           of having applications needing to poll for it (me)
      
         - Have io_uring use a hash for poll requests instead of an rbtree.
           This turned out to work much better in practice, so I think we
           should make the switch now. For some workloads, even with a fair
           amount of cancellations, the insertion sort is just too expensive.
           (me)
      
         - Various little io_uring fixes (me, Jackie, Pavel, LimingWu)
      
         - Fix for brd unaligned IO, and a warning for the future (Ming)
      
         - Fix for a bio integrity data leak (Justin)
      
         - bvec_iter_advance() improvement (Pavel)
      
         - Xen blkback page unmap fix (SeongJae)
      
        The major items in here are all well tested, and on the liburing side
        we continue to add regression and feature test cases. We're up to 50
        topic cases now, each with anywhere from 1 to more than 10 cases in
        each"
      
      * tag 'for-linus-20191205' of git://git.kernel.dk/linux-block: (33 commits)
        block: fix memleak of bio integrity data
        io_uring: fix a typo in a comment
        bfq-iosched: Ensure bio->bi_blkg is valid before using it
        io_uring: hook all linked requests via link_list
        io_uring: fix error handling in io_queue_link_head
        io_uring: use hash table for poll command lookups
        io-wq: clear node->next on list deletion
        io_uring: ensure deferred timeouts copy necessary data
        io_uring: allow IO_SQE_* flags on IORING_OP_TIMEOUT
        null_blk: remove unused variable warning on !CONFIG_BLK_DEV_ZONED
        brd: warn on un-aligned buffer
        brd: remove max_hw_sectors queue limit
        xen/blkback: Avoid unmapping unmapped grant pages
        io_uring: handle connect -EINPROGRESS like -EAGAIN
        block: set the zone size in blk_revalidate_disk_zones atomically
        block: don't handle bio based drivers in blk_revalidate_disk_zones
        block: allocate the zone bitmaps lazily
        block: replace seq_zones_bitmap with conv_zones_bitmap
        block: simplify blkdev_nr_zones
        block: remove the empty line at the end of blk-zoned.c
        ...
      9feb1af9
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 0aecba61
      Linus Torvalds authored
      Pull vfs d_inode/d_flags memory ordering fixes from Al Viro:
       "Fallout from tree-wide audit for ->d_inode/->d_flags barriers use.
        Basically, the problem is that negative pinned dentries require
        careful treatment - unless ->d_lock is locked or parent is held at
        least shared, another thread can make them positive right under us.
      
        Most of the uses turned out to be safe - the main surprises as far as
        filesystems are concerned were
      
         - race in dget_parent() fastpath, that might end up with the caller
           observing the returned dentry _negative_, due to insufficient
           barriers. It is positive in memory, but we could end up seeing the
           wrong value of ->d_inode in CPU cache. Fixed.
      
         - manual checks that result of lookup_one_len_unlocked() is positive
           (and rejection of negatives). Again, insufficient barriers (we
           might end up with inconsistent observed values of ->d_inode and
           ->d_flags). Fixed by switching to a new primitive that does the
           checks itself and returns ERR_PTR(-ENOENT) instead of a negative
           dentry. That way we get rid of boilerplate converting negatives
           into ERR_PTR(-ENOENT) in the callers and have a single place to
           deal with the barrier-related mess - inside fs/namei.c rather than
           in every caller out there.
      
        The guts of pathname resolution *do* need to be careful - the race
        found by Ritesh is real, as well as several similar races.
        Fortunately, it turns out that we can take care of that with fairly
        local changes in there.
      
        The tree-wide audit had not been fun, and I hate the idea of repeating
        it. I think the right approach would be to annotate the places where
        we are _not_ guaranteed ->d_inode/->d_flags stability and have sparse
        catch regressions. But I'm still not sure what would be the least
        invasive way of doing that and it's clearly the next cycle fodder"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs/namei.c: fix missing barriers when checking positivity
        fix dget_parent() fastpath race
        new helper: lookup_positive_unlocked()
        fs/namei.c: pull positivity check into follow_managed()
      0aecba61