1. 27 Jul, 2019 3 commits
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-fixes-5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 523634db
      Linus Torvalds authored
      Pull libnvdimm fixes from Dan Williams:
       "A collection of locking and async operations fixes for v5.3-rc2. These
        had been soaking in a branch targeting the merge window, but missed
        due to a regression hunt. This fixed up version has otherwise been in
        -next this past week with no reported issues.
      
        In order to gain confidence in the locking changes the pull also
        includes a debug / instrumentation patch to enable lockdep coverage
        for libnvdimm subsystem operations that depend on the device_lock for
        exclusion. As mentioned in the changelog it is a hack, but it works
        and documents the locking expectations of the sub-system in a way that
        others can use lockdep to verify. The driver core touches got an ack
        from Greg.
      
        Summary:
      
         - Fix duplicate device_unregister() calls (multiple threads competing
           to do unregister work when scheduling device removal from a sysfs
           attribute of the self-same device).
      
         - Fix badblocks registration order bug. Ensure region badblocks are
           initialized in advance of namespace registration.
      
         - Fix a deadlock between the bus lock and probe operations.
      
         - Export device-core infrastructure to coordinate async operations
           via the device ->dead state.
      
         - Add device-core infrastructure to validate device_lock() usage with
           lockdep"
      
      * tag 'libnvdimm-fixes-5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        driver-core, libnvdimm: Let device subsystems add local lockdep coverage
        libnvdimm/bus: Fix wait_nvdimm_bus_probe_idle() ABBA deadlock
        libnvdimm/bus: Stop holding nvdimm_bus_list_mutex over __nd_ioctl()
        libnvdimm/bus: Prepare the nd_ioctl() path to be re-entrant
        libnvdimm/region: Register badblocks before namespaces
        libnvdimm/bus: Prevent duplicate device_unregister() calls
        drivers/base: Introduce kill_device()
      523634db
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190726-2' of git://git.kernel.dk/linux-block · 5168afe6
      Linus Torvalds authored
      Pull block DMA segment fix from Jens Axboe:
       "Here's the virtual boundary segment size fix"
      
      * tag 'for-linus-20190726-2' of git://git.kernel.dk/linux-block:
        block: fix max segment size handling in blk_queue_virt_boundary
      5168afe6
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20190726' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 40233e7c
      Linus Torvalds authored
      Pull selinux fix from Paul Moore:
       "One small SELinux patch to add some proper bounds/overflow checking
        when adding a new sid/secid"
      
      * tag 'selinux-pr-20190726' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: check sidtab limit before adding a new entry
      40233e7c
  2. 26 Jul, 2019 17 commits
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · a6898389
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Nine fixes: The most important core one is the dma_max_mapping_size
        fix that corrects the boot problem Gunter Roeck was having. A couple
        of other driver only fixes are significant, like the cxgbi selector
        support addition, the alua 2 second delay and the fdomain build fix"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: scsi_dh_alua: always use a 2 second delay before retrying RTPG
        scsi: ibmvfc: fix WARN_ON during event pool release
        scsi: fcoe: fix a typo
        scsi: megaraid_sas: Make some functions static
        scsi: megaraid_sas: fix panic on loading firmware crashdump
        scsi: megaraid_sas: fix spelling mistake "megarid_sas" -> "megaraid_sas"
        scsi: core: fix the dma_max_mapping_size call
        scsi: fdomain: fix building pcmcia front-end
        scsi: target: cxgbit: add support for IEEE_8021QAZ_APP_SEL_STREAM selector
      a6898389
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2019-07-26' of git://anongit.freedesktop.org/drm/drm · e2921f9f
      Linus Torvalds authored
      Pull drm fixes from Daniel Vetter:
       "Dave seems to collect an entire streak of things happening, so again
        me typing pull summary.
      
        Nothing nefarious here, most of the fixes are for new stuff or things
        users won't see. The amd-display patches are a bit different, and very
        much look like they should have at least some cc: stable tags. Might
        be amd is a bit too comfortable with their internal tree and not
        enough looking at upstream. Dave&me are looking into this, in case
        something needs rectified with process here.
      
        Also no intel fixes pull, but intel CI is general become rather good,
        still I guess expect a notch more for -rc3.
      
        Summary:
      
        amdgpu:
         - fixes for (new in 5.3) hw support (vega20, navi)
         - disable RAS
         - lots of display fixes all over (audio, DSC, dongle, clock mgr)
      
        ttm:
         - fix dma_free_attrs calls to appease dma debugging
      
        msm:
         - fixes for dma-api, locking debug and compiler splats
      
        core:
         - fix cmdline mode to not apply rotation if not specified (new in 5.3)
         - compiler warn fix"
      
      * tag 'drm-fixes-2019-07-26' of git://anongit.freedesktop.org/drm/drm: (46 commits)
        drm/amd/display: Set enabled to false at start of audio disable
        drm/amdgpu/smu: move fan rpm query into the asic specific code
        drm/amd/powerplay: custom peak clock freq for navi10
        drm: silence variable 'conn' set but not used
        drm/msm: stop abusing dma_map/unmap for cache
        drm/msm/dpu: Correct dpu encoder spinlock initialization
        drm/msm: correct NULL pointer dereference in context_init
        drm/amd/display: handle active dongle port type is DP++ or DP case
        drm/amd/display: do not read link setting if edp not connected
        drm/amd/display: Increase size of audios array
        drm/amd/display: drop ASSERT() if eDP panel is not connected
        drm/amd/display: Only enable audio if speaker allocation exists
        drm/amd/display: Fix dc_create failure handling and 666 color depths
        drm/amd/display: allocate 4 ddc engines for RV2
        drm/amd/display: put back front end initialization sequence
        drm/amd/display: Wait for flip to complete
        drm/amd/display: Change min_h_sync_width from 8 to 4
        drm/amd/display: use encoder's engine id to find matched free audio device
        drm/amd/display: fix DMCU hang when going into Modern Standby
        drm/amd/display: Disable Audio on reinitialize hardware
        ...
      e2921f9f
    • Christoph Hellwig's avatar
      block: fix max segment size handling in blk_queue_virt_boundary · c6c84f78
      Christoph Hellwig authored
      We should only set the max segment size to unlimited if we actually
      have a virt boundary.  Otherwise we accidentally clear that limit
      when called from the SCSI midlayer, which always calls
      blk_queue_virt_boundary, even if that mask is 0.
      
      Fixes: 7ad388d8
      
       ("scsi: core: add a host / host template field for the virt boundary")
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      c6c84f78
    • Linus Torvalds's avatar
      Merge tag 'docs-5.3-1' of git://git.lwn.net/linux · 3ea54d9b
      Linus Torvalds authored
      Pull documentation fixes from Jonathan Corbet:
       "This is mostly a set of follow-on fixes from Mauro fixing various
        fallout from the massive RST conversion; a few other small fixes as
        well"
      
      * tag 'docs-5.3-1' of git://git.lwn.net/linux: (21 commits)
        docs: phy: Drop duplicate 'be made'
        doc:it_IT: translations in process/
        docs/vm: transhuge: fix typo in madvise reference
        doc:it_IT: rephrase statement
        doc:it_IT: align translation to mainline
        docs: load_config.py: ensure subdirs end with "/"
        docs: virtual: add it to the documentation body
        docs: remove extra conf.py files
        docs: load_config.py: avoid needing a conf.py just due to LaTeX docs
        scripts/sphinx-pre-install: seek for Noto CJK fonts for pdf output
        scripts/sphinx-pre-install: cleanup Gentoo checks
        scripts/sphinx-pre-install: fix latexmk dependencies
        scripts/sphinx-pre-install: don't use LaTeX with CentOS 7
        scripts/sphinx-pre-install: fix script for RHEL/CentOS
        docs: conf.py: only use CJK if the font is available
        docs: conf.py: add CJK package needed by translations
        docs: pdf: add all Documentation/*/index.rst to PDF output
        docs: fix broken doc references due to renames
        docs: power: add it to to the main documentation index
        docs: powerpc: convert docs to ReST and rename to *.rst
        ...
      3ea54d9b
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0ed28866
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "There's more here than we usually have at this stage, but that's
        mainly down to the stacktrace changes which came in slightly too late
        for the merge window.
      
        Summary:
      
         - Big bad batch of MAINTAINERS updates
      
         - Fix handling of SP alignment fault exceptions
      
         - Fix PSTATE.SSBS handling on heterogeneous systems
      
         - Fix fallout from moving to the generic vDSO implementation
      
         - Fix stack unwinding in the face of frame corruption
      
         - Fix off-by-one in IORT code
      
         - Minor SVE cleanups"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        ACPI/IORT: Fix off-by-one check in iort_dev_find_its_id()
        arm64: entry: SP Alignment Fault doesn't write to FAR_EL1
        arm64: Force SSBS on context switch
        MAINTAINERS: Update my email address
        MAINTAINERS: Update my email address
        MAINTAINERS: Fix spelling mistake in my name
        MAINTAINERS: Update my email address to @kernel.org
        arm64: mm: Drop pte_huge()
        arm64/sve: Fix a couple of magic numbers for the Z-reg count
        arm64/sve: Factor out FPSIMD to SVE state conversion
        arm64: stacktrace: Better handle corrupted stacks
        arm64: stacktrace: Factor out backtrace initialisation
        arm64: stacktrace: Constify stacktrace.h functions
        arm64: vdso: Cleanup Makefiles
        arm64: vdso: fix flip/flop vdso build bug
        arm64: vdso: Fix population of AT_SYSINFO_EHDR for compat vdso
      0ed28866
    • Linus Torvalds's avatar
      Merge tag 'for-5.3-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 4792ba1f
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "Two regression fixes:
      
         - hangs caused by a missing barrier in the locking code
      
         - memory leaks of extent_state due to bad handling of a cached
           pointer"
      
      * tag 'for-5.3-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fix extent_state leak in btrfs_lock_and_flush_ordered_range
        btrfs: Fix deadlock caused by missing memory barrier
      4792ba1f
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 863fa888
      Linus Torvalds authored
      Pull vfs umount_tree() leak fix from Al Viro:
       "Fix braino introduced in 'switch the remnants of releasing the
        mountpoint away from fs_pin'.
      
        The most visible result is leaking struct mount when mounting btrfs,
        making it impossible to shut down"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fix the struct mount leak in umount_tree()
      863fa888
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190726' of git://git.kernel.dk/linux-block · 04412819
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - Several io_uring fixes/improvements:
           - Blocking fix for O_DIRECT (me)
           - Latter page slowness for registered buffers (me)
           - Fix poll hang under certain conditions (me)
           - Defer sequence check fix for wrapped rings (Zhengyuan)
           - Mismatch in async inc/dec accounting (Zhengyuan)
           - Memory ordering issue that could cause stall (Zhengyuan)
            - Track sequential defer in bytes, not pages (Zhengyuan)
      
       - NVMe pull request from Christoph
      
       - Set of hang fixes for wbt (Josef)
      
       - Redundant error message kill for libahci (Ding)
      
       - Remove unused blk_mq_sched_started_request() and related ops (Marcos)
      
       - drbd dynamic alloc shash descriptor to reduce stack use (Arnd)
      
       - blkcg ->pd_stat() non-debug print (Tejun)
      
       - bcache memory leak fix (Wei)
      
       - Comment fix (Akinobu)
      
       - BFQ perf regression fix (Paolo)
      
      * tag 'for-linus-20190726' of git://git.kernel.dk/linux-block: (24 commits)
        io_uring: ensure ->list is initialized for poll commands
        Revert "nvme-pci: don't create a read hctx mapping without read queues"
        nvme: fix multipath crash when ANA is deactivated
        nvme: fix memory leak caused by incorrect subsystem free
        nvme: ignore subnqn for ADATA SX6000LNP
        drbd: dynamically allocate shash descriptor
        block: blk-mq: Remove blk_mq_sched_started_request and started_request
        bcache: fix possible memory leak in bch_cached_dev_run()
        io_uring: track io length in async_list based on bytes
        io_uring: don't use iov_iter_advance() for fixed buffers
        block: properly handle IOCB_NOWAIT for async O_DIRECT IO
        blk-mq: allow REQ_NOWAIT to return an error inline
        io_uring: add a memory barrier before atomic_read
        rq-qos: use a mb for got_token
        rq-qos: set ourself TASK_UNINTERRUPTIBLE after we schedule
        rq-qos: don't reset has_sleepers on spurious wakeups
        rq-qos: fix missed wake-ups in rq_qos_throttle
        wait: add wq_has_single_sleeper helper
        block, bfq: check also in-flight I/O in dispatch plugging
        block: fix sysfs module parameters directory path in comment
        ...
      04412819
    • Linus Torvalds's avatar
      Merge tag 'sound-5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 750c930b
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "All relatively small changes:
      
         - a regression fix for PCM link code with CONFIG_REFCOUNT_FULL;
           stumbled on a slight difference between atomic_t and refcount_t
      
         - a couple of HD-audio stabilization patches addressing the too slow
           PM resume seen on some Intel chips
      
         - a series of ALSA compress-offload API fixes, including the
           regression by the previous capture stream support
      
         - trivial LINE6 USB-audio driver fixes, a new Conexant HD-audio chip
           coverage, and a fix in AC97 bus error path"
      
      * tag 'sound-5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Add a conexant codec entry to let mute led work
        ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips
        ALSA: ac97: Fix double free of ac97_codec_device
        ALSA: compress: Be more restrictive about when a drain is allowed
        ALSA: compress: Don't allow paritial drain operations on capture streams
        ALSA: compress: Prevent bypasses of set_params
        ALSA: compress: Fix regression on compressed capture streams
        ALSA: line6: Fix a typo
        ALSA: pcm: Fix refcount_inc() on zero usage
        ALSA: line6: Fix wrong altsetting for LINE6_PODHD500_1
        ALSA: hda - Optimize resume for codecs without jack detection
      750c930b
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · b381c016
      Linus Torvalds authored
      Pull IOMMU fixes from Joerg Roedel:
      
       - revert an Intel VT-d patch that caused boot problems on some machines
      
       - fix AMD IOMMU interrupts with x2apic enabled
      
       - fix a potential crash when Intel VT-d domain allocation fails
      
       - fix crash in Intel VT-d driver when accessing a domain without a
         flush queue
      
       - formatting fix for new Intel VT-d debugfs code
      
       - fix for use-after-free bug in IOVA code
      
       - fix for a NULL-pointer dereference in Intel VT-d driver when PCI
         hotplug is used
      
       - compilation fix for one of the previous fixes
      
      * tag 'iommu-fixes-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/amd: Add support for X2APIC IOMMU interrupts
        iommu/iova: Fix compilation error with !CONFIG_IOMMU_IOVA
        iommu/vt-d: Print pasid table entries MSB to LSB in debugfs
        iommu/iova: Remove stale cached32_node
        iommu/vt-d: Check if domain->pgd was allocated
        iommu/vt-d: Don't queue_iova() if there is no flush queue
        iommu/vt-d: Avoid duplicated pci dma alias consideration
        Revert "iommu/vt-d: Consolidate domain_init() to avoid duplication"
      b381c016
    • Linus Torvalds's avatar
      Merge branch 'for-linus-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft · 55d31aae
      Linus Torvalds authored
      Pull iscsi_ibft fix from Konrad Rzeszutek Wilk:
       "One tiny fix to enable iSCSI IBFT to be compiled under ARM"
      
      * 'for-linus-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft:
        iscsi_ibft: make ISCSI_IBFT depend on ACPI instead of ISCSI_IBFT_FIND
      55d31aae
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.3-rc2' of... · 6108cd47
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "A couple of hwmon bug fixes:
      
         - Update k8temp documentation URL
      
         - Register address fixes in nct6775 driver
      
         - Fix potential division by zero in occ driver"
      
      * tag 'hwmon-for-v5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (k8temp) documentation: update URL of datasheet
        hwmon: (nct6775) Fix register address and added missed tolerance for nct6106
        hwmon: (occ) Fix division by zero issue
      6108cd47
    • Guido Günther's avatar
      docs: phy: Drop duplicate 'be made' · d2eba640
      Guido Günther authored
      
      
      Fix duplicate words.
      
      Signed-off-by: default avatarGuido Günther <agx@sigxcpu.org>
      Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
      d2eba640
    • Al Viro's avatar
      fix the struct mount leak in umount_tree() · 19a1c409
      Al Viro authored
      	We need to drop everything we remove from the tree, whether
      mnt_has_parent() is true or not.  Usually the bug manifests as a slow
      memory leak (leaked struct mount for initramfs); it becomes much more
      visible in mount_subtree() users, such as btrfs.  There we leak
      a struct mount for btrfs superblock being mounted, which prevents
      fs shutdown on subsequent umount.
      
      Fixes: 56cbb429
      
       ("switch the remnants of releasing the mountpoint away from fs_pin")
      Reported-by: default avatarNikolay Borisov <nborisov@suse.com>
      Tested-by: default avatarNikolay Borisov <nborisov@suse.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      19a1c409
    • Naohiro Aota's avatar
      btrfs: fix extent_state leak in btrfs_lock_and_flush_ordered_range · a3b46b86
      Naohiro Aota authored
      btrfs_lock_and_flush_ordered_range() loads given "*cached_state" into
      cachedp, which, in general, is NULL. Then, lock_extent_bits() updates
      "cachedp", but it never goes backs to the caller. Thus the caller still
      see its "cached_state" to be NULL and never free the state allocated
      under btrfs_lock_and_flush_ordered_range(). As a result, we will
      see massive state leak with e.g. fstests btrfs/005. Fix this bug by
      properly handling the pointers.
      
      Fixes: bd80d94e
      
       ("btrfs: Always use a cached extent_state in btrfs_lock_and_flush_ordered_range")
      Reviewed-by: default avatarNikolay Borisov <nborisov@suse.com>
      Signed-off-by: default avatarNaohiro Aota <naohiro.aota@wdc.com>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      a3b46b86
    • Dave Airlie's avatar
      Merge tag 'drm-fixes-5.3-2019-07-24' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · 4d5308e7
      Dave Airlie authored
      
      
      drm-fixes-5.3-2019-07-24:
      
      amdgpu:
      - RAS fixes for vega20
      - Navi VCN fix
      - DC audio fixes
      - DC DSC fixes
      - DC dongle fixes
      - DC clk mgr fixes
      - Fix DDC lines on some RV2 boards
      - GDS fixes for compute
      - Navi SMU fixes
      
      ttm:
      - Use the same attributes when freeing d_page->vaddr
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexdeucher@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190724210527.3415-1-alexander.deucher@amd.com
      4d5308e7
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2019-07-25' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · f480de3f
      Dave Airlie authored
      
      
      - pick up the cmdline fix which missed the merge window (Dmitry)
      - a handful of msm fixes so i don't have to spin up msm-fixes (Various)
      - fix -Wunused-but-set-variable warning in drm_framebuffer (Qian)
      
      Cc: Dmitry Osipenko <digetx@gmail.com>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Qian Cai <cai@lca.pw>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Sean Paul <sean@poorly.run>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190725160909.GA106249@art_vandelay
      f480de3f
  3. 25 Jul, 2019 9 commits
  4. 24 Jul, 2019 11 commits
    • Takashi Iwai's avatar
      ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips · 2756d914
      Takashi Iwai authored
      It turned out that the recent Intel HD-audio controller chips show a
      significant stall during the system PM resume intermittently.  It
      doesn't happen so often and usually it may read back successfully
      after one or more seconds, but in some rare worst cases the driver
      went into fallback mode.
      
      After trial-and-error, we found out that the communication stall seems
      covered by issuing the sync after each verb write, as already done for
      AMD and other chipsets.  So this patch enables the write-sync flag for
      the recent Intel chips, Skylake and onward, as a workaround.
      
      Also, since Broxton and co have the very same driver flags as Skylake,
      refer to the Skylake driver flags instead of defining the same
      contents again for simplification.
      
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=201901
      
      
      Reported-and-tested-by: default avatarTodd Brandt <todd.e.brandt@linux.intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2756d914
    • Masanari Iida's avatar
      aecea57f
    • Linus Torvalds's avatar
      access: avoid the RCU grace period for the temporary subjective credentials · d7852fbd
      Linus Torvalds authored
      
      
      It turns out that 'access()' (and 'faccessat()') can cause a lot of RCU
      work because it installs a temporary credential that gets allocated and
      freed for each system call.
      
      The allocation and freeing overhead is mostly benign, but because
      credentials can be accessed under the RCU read lock, the freeing
      involves a RCU grace period.
      
      Which is not a huge deal normally, but if you have a lot of access()
      calls, this causes a fair amount of seconday damage: instead of having a
      nice alloc/free patterns that hits in hot per-CPU slab caches, you have
      all those delayed free's, and on big machines with hundreds of cores,
      the RCU overhead can end up being enormous.
      
      But it turns out that all of this is entirely unnecessary.  Exactly
      because access() only installs the credential as the thread-local
      subjective credential, the temporary cred pointer doesn't actually need
      to be RCU free'd at all.  Once we're done using it, we can just free it
      synchronously and avoid all the RCU overhead.
      
      So add a 'non_rcu' flag to 'struct cred', which can be set by users that
      know they only use it in non-RCU context (there are other potential
      users for this).  We can make it a union with the rcu freeing list head
      that we need for the RCU case, so this doesn't need any extra storage.
      
      Note that this also makes 'get_current_cred()' clear the new non_rcu
      flag, in case we have filesystems that take a long-term reference to the
      cred and then expect the RCU delayed freeing afterwards.  It's not
      entirely clear that this is required, but it makes for clear semantics:
      the subjective cred remains non-RCU as long as you only access it
      synchronously using the thread-local accessors, but you _can_ use it as
      a generic cred if you want to.
      
      It is possible that we should just remove the whole RCU markings for
      ->cred entirely.  Only ->real_cred is really supposed to be accessed
      through RCU, and the long-term cred copies that nfs uses might want to
      explicitly re-enable RCU freeing if required, rather than have
      get_current_cred() do it implicitly.
      
      But this is a "minimal semantic changes" change for the immediate
      problem.
      
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Jan Glauber <jglauber@marvell.com>
      Cc: Jiri Kosina <jikos@kernel.org>
      Cc: Jayachandran Chandrasekharan Nair <jnair@marvell.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d7852fbd
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · bed38c3e
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "An assortment of non-regression fixes that have accumulated since the
        start of the merge window.
      
         - A fix for a user triggerable oops on machines where transactional
           memory is disabled, eg. Power9 bare metal, Power8 with TM disabled
           on the command line, or all Power7 or earlier machines.
      
         - Three fixes for handling of PMU and power saving registers when
           running nested KVM on Power9.
      
         - Two fixes for bugs found while stress testing the XIVE interrupt
           controller code, also on Power9.
      
         - A fix to allow guests to boot under Qemu/KVM on Power9 using the
           the Hash MMU with >= 1TB of memory.
      
         - Two fixes for bugs in the recent DMA cleanup, one of which could
           lead to checkstops.
      
         - And finally three fixes for the PAPR SCM nvdimm driver.
      
        Thanks to: Alexey Kardashevskiy, Andrea Arcangeli, Cédric Le Goater,
        Christoph Hellwig, David Gibson, Gautham R. Shenoy, Michael Neuling,
        Oliver O'Halloran, Satheesh Rajendran, Shawn Anastasio, Suraj Jitindar
        Singh, Vaibhav Jain"
      
      * tag 'powerpc-5.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/papr_scm: Force a scm-unbind if initial scm-bind fails
        powerpc/papr_scm: Update drc_pmem_unbind() to use H_SCM_UNBIND_ALL
        powerpc/pseries: Update SCM hcall op-codes in hvcall.h
        powerpc/tm: Fix oops on sigreturn on systems without TM
        powerpc/dma: Fix invalid DMA mmap behavior
        KVM: PPC: Book3S HV: XIVE: fix rollback when kvmppc_xive_create fails
        powerpc/xive: Fix loop exit-condition in xive_find_target_in_mask()
        powerpc: fix off by one in max_zone_pfn initialization for ZONE_DMA
        KVM: PPC: Book3S HV: Save and restore guest visible PSSCR bits on pseries
        powerpc/pmu: Set pmcregs_in_use in paca when running as LPAR
        KVM: PPC: Book3S HV: Always save guest pmu for guest capable of nesting
        powerpc/mm: Limit rma_size to 1TB when running without HV mode
      bed38c3e
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 76260774
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "Bugfixes, a pvspinlock optimization, and documentation moving"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: X86: Boost queue head vCPU to mitigate lock waiter preemption
        Documentation: move Documentation/virtual to Documentation/virt
        KVM: nVMX: Set cached_vmcs12 and cached_shadow_vmcs12 NULL after free
        KVM: X86: Dynamically allocate user_fpu
        KVM: X86: Fix fpu state crash in kvm guest
        Revert "kvm: x86: Use task structs fpu field for user"
        KVM: nVMX: Clear pending KVM_REQ_GET_VMCS12_PAGES when leaving nested
      76260774
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.3-2' of git://git.infradead.org/users/hch/dma-mapping · c2626876
      Linus Torvalds authored
      Pull dma-mapping regression fix from Christoph Hellwig:
       "Ensure that dma_addressing_limited doesn't crash on devices without a
        dma mask (Eric Auger)"
      
      * tag 'dma-mapping-5.3-2' of git://git.infradead.org/users/hch/dma-mapping:
        dma-mapping: use dma_get_mask in dma_addressing_limited
      c2626876
    • Ondrej Mosnacek's avatar
      selinux: check sidtab limit before adding a new entry · acbc372e
      Ondrej Mosnacek authored
      We need to error out when trying to add an entry above SIDTAB_MAX in
      sidtab_reverse_lookup() to avoid overflow on the odd chance that this
      happens.
      
      Cc: stable@vger.kernel.org
      Fixes: ee1a84fd
      
       ("selinux: overhaul sidtab to fix bug and improve performance")
      Signed-off-by: default avatarOndrej Mosnacek <omosnace@redhat.com>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
      acbc372e
    • Wanpeng Li's avatar
      KVM: X86: Boost queue head vCPU to mitigate lock waiter preemption · 266e85a5
      Wanpeng Li authored
      Commit 11752adb
      
       (locking/pvqspinlock: Implement hybrid PV queued/unfair locks)
      introduces hybrid PV queued/unfair locks
       - queued mode (no starvation)
       - unfair mode (good performance on not heavily contended lock)
      The lock waiter goes into the unfair mode especially in VMs with over-commit
      vCPUs since increaing over-commitment increase the likehood that the queue
      head vCPU may have been preempted and not actively spinning.
      
      However, reschedule queue head vCPU timely to acquire the lock still can get
      better performance than just depending on lock stealing in over-subscribe
      scenario.
      
      Testing on 80 HT 2 socket Xeon Skylake server, with 80 vCPUs VM 80GB RAM:
      ebizzy -M
                   vanilla     boosting    improved
       1VM          23520        25040         6%
       2VM           8000        13600        70%
       3VM           3100         5400        74%
      
      The lock holder vCPU yields to the queue head vCPU when unlock, to boost queue
      head vCPU which is involuntary preemption or the one which is voluntary halt
      due to fail to acquire the lock after a short spin in the guest.
      
      Cc: Waiman Long <longman@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Signed-off-by: default avatarWanpeng Li <wanpengli@tencent.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      266e85a5
    • Christoph Hellwig's avatar
      Documentation: move Documentation/virtual to Documentation/virt · 2f5947df
      Christoph Hellwig authored
      Renaming docs seems to be en vogue at the moment, so fix on of the
      grossly misnamed directories.  We usually never use "virtual" as
      a shortcut for virtualization in the kernel, but always virt,
      as seen in the virt/ top-level directory.  Fix up the documentation
      to match that.
      
      Fixes: ed16648e
      
       ("Move kvm, uml, and lguest subdirectories under a common "virtual" directory, I.E:")
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      2f5947df
    • Hannes Reinecke's avatar
      scsi: scsi_dh_alua: always use a 2 second delay before retrying RTPG · 20122994
      Hannes Reinecke authored
      
      
      Retrying immediately after we've received a 'transitioning' sense code is
      pretty much pointless, we should always use a delay before retrying.  So
      ensure the default delay is applied before retrying.
      
      Signed-off-by: default avatarHannes Reinecke <hare@suse.com>
      Tested-by: default avatarZhangguanghui <zhang.guanghui@h3c.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      20122994
    • Tyrel Datwyler's avatar
      scsi: ibmvfc: fix WARN_ON during event pool release · 5578257c
      Tyrel Datwyler authored
      
      
      While removing an ibmvfc client adapter a WARN_ON like the following
      WARN_ON is seen in the kernel log:
      
      WARNING: CPU: 6 PID: 5421 at ./include/linux/dma-mapping.h:541
      ibmvfc_free_event_pool+0x12c/0x1f0 [ibmvfc]
      CPU: 6 PID: 5421 Comm: rmmod Tainted: G            E     4.17.0-rc1-next-20180419-autotest #1
      NIP:  d00000000290328c LR: d00000000290325c CTR: c00000000036ee20
      REGS: c000000288d1b7e0 TRAP: 0700   Tainted: G            E      (4.17.0-rc1-next-20180419-autotest)
      MSR:  800000010282b033 <SF,VEC,VSX,EE,FP,ME,IR,DR,RI,LE,TM[E]>  CR: 44008828  XER: 20000000
      CFAR: c00000000036e408 SOFTE: 1
      GPR00: d00000000290325c c000000288d1ba60 d000000002917900 c000000289d75448
      GPR04: 0000000000000071 c0000000ff870000 0000000018040000 0000000000000001
      GPR08: 0000000000000000 c00000000156e838 0000000000000001 d00000000290c640
      GPR12: c00000000036ee20 c00000001ec4dc00 0000000000000000 0000000000000000
      GPR16: 0000000000000000 0000000000000000 00000100276901e0 0000000010020598
      GPR20: 0000000010020550 0000000010020538 0000000010020578 00000000100205b0
      GPR24: 0000000000000000 0000000000000000 0000000010020590 5deadbeef0000100
      GPR28: 5deadbeef0000200 d000000002910b00 0000000000000071 c0000002822f87d8
      NIP [d00000000290328c] ibmvfc_free_event_pool+0x12c/0x1f0 [ibmvfc]
      LR [d00000000290325c] ibmvfc_free_event_pool+0xfc/0x1f0 [ibmvfc]
      Call Trace:
      [c000000288d1ba60] [d00000000290325c] ibmvfc_free_event_pool+0xfc/0x1f0 [ibmvfc] (unreliable)
      [c000000288d1baf0] [d000000002909390] ibmvfc_abort_task_set+0x7b0/0x8b0 [ibmvfc]
      [c000000288d1bb70] [c0000000000d8c68] vio_bus_remove+0x68/0x100
      [c000000288d1bbb0] [c0000000007da7c4] device_release_driver_internal+0x1f4/0x2d0
      [c000000288d1bc00] [c0000000007da95c] driver_detach+0x7c/0x100
      [c000000288d1bc40] [c0000000007d8af4] bus_remove_driver+0x84/0x140
      [c000000288d1bcb0] [c0000000007db6ac] driver_unregister+0x4c/0xa0
      [c000000288d1bd20] [c0000000000d6e7c] vio_unregister_driver+0x2c/0x50
      [c000000288d1bd50] [d00000000290ba0c] cleanup_module+0x24/0x15e0 [ibmvfc]
      [c000000288d1bd70] [c0000000001dadb0] sys_delete_module+0x220/0x2d0
      [c000000288d1be30] [c00000000000b284] system_call+0x58/0x6c
      Instruction dump:
      e8410018 e87f0068 809f0078 e8bf0080 e8df0088 2fa30000 419e008c e9230200
      2fa90000 419e0080 894d098a 794a07e0 <0b0a0000> e9290008 2fa90000 419e0028
      
      This is tripped as a result of irqs being disabled during the call to
      dma_free_coherent() by ibmvfc_free_event_pool(). At this point in the code path
      we have quiesced the adapter and its overly paranoid anyways to be holding the
      host lock.
      
      Reported-by: default avatarAbdul Haleem <abdhalee@linux.vnet.ibm.com>
      Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      5578257c