1. 18 Mar, 2019 4 commits
    • Jens Axboe's avatar
      block: add BIO_NO_PAGE_REF flag · 399254aa
      Jens Axboe authored
      If bio_iov_iter_get_pages() is called on an iov_iter that is flagged
      with NO_REF, then we don't need to add a page reference for the pages
      that we add.
      
      Add BIO_NO_PAGE_REF to track this in the bio, so IO completion knows
      not to drop a reference to these pages.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      399254aa
    • Jens Axboe's avatar
      iov_iter: add ITER_BVEC_FLAG_NO_REF flag · 875f1d07
      Jens Axboe authored
      For ITER_BVEC, if we're holding on to kernel pages, the caller
      doesn't need to grab a reference to the bvec pages, and drop that
      same reference on IO completion. This is essentially safe for any
      ITER_BVEC, but some use cases end up reusing pages and uncondtionally
      dropping a page reference on completion. And example of that is
      sendfile(2), that ends up being a splice_in + splice_out on the
      pipe pages.
      
      Add a flag that tells us it's fine to not grab a page reference
      to the bvec pages, since that caller knows not to drop a reference
      when it's done with the pages.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      875f1d07
    • Jens Axboe's avatar
      io_uring: mark me as the maintainer · bf33a769
      Jens Axboe authored
      And io_uring as maintained in general.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      bf33a769
    • Jens Axboe's avatar
      io_uring: retry bulk slab allocs as single allocs · fd6fab2c
      Jens Axboe authored
      I've seen cases where bulk alloc fails, since the bulk alloc API
      is all-or-nothing - either we get the number we ask for, or it
      returns 0 as number of entries.
      
      If we fail a batch bulk alloc, retry a "normal" kmem_cache_alloc()
      and just use that instead of failing with -EAGAIN.
      
      While in there, ensure we use GFP_KERNEL. That was an oversight in
      the original code, when we switched away from GFP_ATOMIC.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      fd6fab2c
  2. 15 Mar, 2019 5 commits
    • Jens Axboe's avatar
      io_uring: fix poll races · 8c838788
      Jens Axboe authored
      This is a straight port of Al's fix for the aio poll implementation,
      since the io_uring version is heavily based on that. The below
      description is almost straight from that patch, just modified to
      fit the io_uring situation.
      
      io_poll() has to cope with several unpleasant problems:
      	* requests that might stay around indefinitely need to
      be made visible for io_cancel(2); that must not be done to
      a request already completed, though.
      	* in cases when ->poll() has placed us on a waitqueue,
      wakeup might have happened (and request completed) before ->poll()
      returns.
      	* worse, in some early wakeup cases request might end
      up re-added into the queue later - we can't treat "woken up and
      currently not in the queue" as "it's not going to stick around
      indefinitely"
      	* ... moreover, ->poll() might have decided not to
      put it on any queues to start with, and that needs to be distinguished
      from the previous case
      	* ->poll() might have tried to put us on more than one queue.
      Only the first will succeed for io poll, so we might end up missing
      wakeups.  OTOH, we might very well notice that only after the
      wakeup hits and request gets completed (all before ->poll() gets
      around to the second poll_wait()).  In that case it's too late to
      decide that we have an error.
      
      req->woken was an attempt to deal with that.  Unfortunately, it was
      broken.  What we need to keep track of is not that wakeup has happened -
      the thing might come back after that.  It's that async reference is
      already gone and won't come back, so we can't (and needn't) put the
      request on the list of cancellables.
      
      The easiest case is "request hadn't been put on any waitqueues"; we
      can tell by seeing NULL apt.head, and in that case there won't be
      anything async.  We should either complete the request ourselves
      (if vfs_poll() reports anything of interest) or return an error.
      
      In all other cases we get exclusion with wakeups by grabbing the
      queue lock.
      
      If request is currently on queue and we have something interesting
      from vfs_poll(), we can steal it and complete the request ourselves.
      
      If it's on queue and vfs_poll() has not reported anything interesting,
      we either put it on the cancellable list, or, if we know that it
      hadn't been put on all queues ->poll() wanted it on, we steal it and
      return an error.
      
      If it's _not_ on queue, it's either been already dealt with (in which
      case we do nothing), or there's io_poll_complete_work() about to be
      executed.  In that case we either put it on the cancellable list,
      or, if we know it hadn't been put on all queues ->poll() wanted it on,
      simulate what cancel would've done.
      
      Fixes: 221c5eb2 ("io_uring: add support for IORING_OP_POLL")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      8c838788
    • Jens Axboe's avatar
      io_uring: fix fget/fput handling · 09bb8394
      Jens Axboe authored
      This isn't a straight port of commit 84c4e1f8 for aio.c, since
      io_uring doesn't use files in exactly the same way. But it's pretty
      close. See the commit message for that commit.
      
      This essentially fixes a use-after-free with the poll command
      handling, but it takes cue from Linus's approach to just simplifying
      the file handling. We move the setup of the file into a higher level
      location, so the individual commands don't have to deal with it. And
      then we release the reference when we free the associated io_kiocb.
      
      Fixes: 221c5eb2 ("io_uring: add support for IORING_OP_POLL")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      09bb8394
    • Jens Axboe's avatar
      io_uring: add prepped flag · d530a402
      Jens Axboe authored
      We currently use the fact that if ->ki_filp is already set, then we've
      done the prep. In preparation for moving the file assignment earlier,
      use a separate flag to tell whether the request has been prepped for
      IO or not.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      d530a402
    • Jens Axboe's avatar
      io_uring: make io_read/write return an integer · e0c5c576
      Jens Axboe authored
      The callers all convert to an integer, and we only return 0/-ERROR
      anyway.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      e0c5c576
    • Jens Axboe's avatar
      io_uring: use regular request ref counts · e65ef56d
      Jens Axboe authored
      Get rid of the special casing of "normal" requests not having
      any references to the io_kiocb. We initialize the ref count to 2,
      one for the submission side, and one or the completion side.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      e65ef56d
  3. 10 Mar, 2019 15 commits
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 12ad143e
      Linus Torvalds authored
      Pull perf updates from Thomas Gleixner:
       "Perf updates and fixes:
      
        Kernel:
         - Handle events which have the bpf_event attribute set as side band
           events as they carry information about BPF programs.
         - Add missing switch-case fall-through comments
      
        Libraries:
         - Fix leaks and double frees in error code paths.
         - Prevent buffer overflows in libtraceevent
      
        Tools:
         - Improvements in handling Intel BT/PTS
         - Add BTF ELF markers to perf trace BPF programs to improve output
         - Support --time, --cpu, --pid and --tid filters for perf diff
         - Calculate the column width in perf annotate as the hardcoded 6
           characters for the instruction are not sufficient
         - Small fixes all over the place"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (38 commits)
        perf/core: Mark expected switch fall-through
        perf/x86/intel/uncore: Fix client IMC events return huge result
        perf/ring_buffer: Use high order allocations for AUX buffers optimistically
        perf data: Force perf_data__open|close zero data->file.path
        perf session: Fix double free in perf_data__close
        perf evsel: Probe for precise_ip with simple attr
        perf tools: Read and store caps/max_precise in perf_pmu
        perf hist: Fix memory leak of srcline
        perf hist: Add error path into hist_entry__init
        perf c2c: Fix c2c report for empty numa node
        perf script python: Add Python3 support to intel-pt-events.py
        perf script python: Add Python3 support to event_analyzing_sample.py
        perf script python: add Python3 support to check-perf-trace.py
        perf script python: Add Python3 support to futex-contention.py
        perf script python: Remove mixed indentation
        perf diff: Support --pid/--tid filter options
        perf diff: Support --cpu filter option
        perf diff: Support --time filter option
        perf thread: Generalize function to copy from thread addr space from intel-bts code
        perf annotate: Calculate the max instruction name, align column to that
        ...
      12ad143e
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 262d6a9a
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "A set of fixes for x86:
      
         - Make the unwinder more robust when it encounters a NULL pointer
           call, so the backtrace becomes more useful
      
         - Fix the bogus ORC unwind table alignment
      
         - Prevent kernel panic during kexec on HyperV caused by a cleared but
           not disabled hypercall page.
      
         - Remove the now pointless stacksize increase for KASAN_EXTRA, as
           KASAN_EXTRA is gone.
      
         - Remove unused variables from the x86 memory management code"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/hyperv: Fix kernel panic when kexec on HyperV
        x86/mm: Remove unused variable 'old_pte'
        x86/mm: Remove unused variable 'cpu'
        Revert "x86_64: Increase stack size for KASAN_EXTRA"
        x86/unwind: Add hardcoded ORC entry for NULL
        x86/unwind: Handle NULL pointer calls better in frame unwinder
        x86/unwind/orc: Fix ORC unwind table alignment
      262d6a9a
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b6e3cb4e
      Linus Torvalds authored
      Pull x86 boot fix from Thomas Gleixner:
       "A trivial fix for the previous x86/boot pull request which did not
        make it in time"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot/KASLR: Always return a value from process_mem_region
      b6e3cb4e
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a15f6b92
      Linus Torvalds authored
      Pull timer fix from Thomas Gleixner:
       "A single fix to prevent a unmet dependencies warning in Kconfig"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        time: Make VIRT_CPU_ACCOUNTING_GEN depend on GENERIC_CLOCKEVENTS
      a15f6b92
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9e55f87c
      Linus Torvalds authored
      Pull locking fixes from Thomas Gleixner:
       "A few fixes for lockdep:
      
         - initialize lockdep internal RCU head after initializing RCU
      
         - prevent use after free in a alloc_workqueue() error handling path
      
         - plug a memory leak in the workqueue core which fails to free a
           dynamically allocated lock name.
      
         - make Clang happy"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        workqueue, lockdep: Fix a memory leak in wq->lock_name
        workqueue, lockdep: Fix an alloc_workqueue() error path
        locking/lockdep: Only call init_rcu_head() after RCU has been initialized
        locking/lockdep: Avoid a Clang warning
      9e55f87c
    • Linus Torvalds's avatar
      Merge branch 'core-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 077d3daf
      Linus Torvalds authored
      Pull watchdog core update from Thomas Gleixner:
       "A single commit adding a command line parameter which allows to set
        the watchdog threshold on the kernel command-line, so kernels with
        massive debug facilities enabled won't trigger the watchdog during
        early boot and before the threshold can be changed via sysctl"
      
      * 'core-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        watchdog/core: Add watchdog_thresh command line parameter
      077d3daf
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v5.1-1' of git://git.infradead.org/linux-platform-drivers-x86 · dbbdf54c
      Linus Torvalds authored
      Pull x86 platform driver updates from Darren Hart:
      
       - use MODULE_DEVICE_TABLE across several wmi drivers, keeping
         wmi_device_id and MODULE_ALIAS() declarations in sync
      
       - add several Ideapad models to the no_hw_rfkill list
      
       - add support for new Mellanox platforms, including new fan and LED
         functionality
      
       - address Dell keyboard backlight change event and power button release
         issues
      
       - update dell_rbu to use appropriate memory allocation mechanisms
      
       - several small fixes and Ice Lake support for intel_pmc_core
      
       - fix a suspend regression for Cherry Trail based devices in
         intel_int0002_vgpio
      
       - a few other routine fixes
      
      * tag 'platform-drivers-x86-v5.1-1' of git://git.infradead.org/linux-platform-drivers-x86: (50 commits)
        MAINTAINERS: Include mlxreg.h in Mellanox Platform Driver files
        platform/x86: ideapad-laptop: Add S130-14IGM to no_hw_rfkill list
        platform/x86: mlx-platform: Fix access mode for fan_dir attribute
        platform/x86: mlx-platform: Add UID LED for the next generation systems
        platform/x86: mlx-platform: Add extra CPLD for next generation systems
        platform/x86: wmi-bmof: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS()
        platform/x86: intel-wmi-thunderbolt: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS()
        platform/x86: huawei-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS()
        platform/x86: dell-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS()
        platform/x86: dell-wmi-descriptor: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS()
        platform/x86: dell-smbios-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS()
        platform/x86: wmi: add WMI support to MODULE_DEVICE_TABLE()
        platform/x86: wmi: move struct wmi_device_id to mod_devicetable.h
        modpost: file2alias: define size of alias
        platform/x86: touchscreen_dmi: Add info for the CHUWI Hi10 Air tablet
        platform/x86: ideapad-laptop: Add Ideapad 530S-14ARR to no_hw_rfkill list
        platform/x86: ideapad-laptop: Add Yoga C930 to no_hw_rfkill_list
        platform/x86: intel_pmc_core: Quirk to ignore XTAL shutdown
        platform/x86: intel_pmc_core: Add Package cstates residency info
        platform/x86: intel_pmc_core: Add ICL platform support
        ...
      dbbdf54c
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 45ba8d5d
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
       "Several fixes, most notably fix for virtio on swiotlb systems"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        vhost: silence an unused-variable warning
        virtio: hint if callbacks surprisingly might sleep
        virtio-ccw: wire up ->bus_name callback
        s390/virtio: handle find on invalid queue gracefully
        virtio-ccw: diag 500 may return a negative cookie
        virtio_balloon: remove the unnecessary 0-initialization
        virtio-balloon: improve update_balloon_size_func
        virtio-blk: Consider virtio_max_dma_size() for maximum segment size
        virtio: Introduce virtio_max_dma_size()
        dma: Introduce dma_max_mapping_size()
        swiotlb: Add is_swiotlb_active() function
        swiotlb: Introduce swiotlb_max_mapping_size()
      45ba8d5d
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · bb97be23
      Linus Torvalds authored
      Pull IOMMU updates from Joerg Roedel:
      
       - A big cleanup and optimization patch-set for the Tegra GART driver
      
       - Documentation updates and fixes for the IOMMU-API
      
       - Support for page request in Intel VT-d scalable mode
      
       - Intel VT-d dma_[un]map_resource() support
      
       - Updates to the ATS enabling code for PCI (acked by Bjorn) and Intel
         VT-d to align with the latest version of the ATS spec
      
       - Relaxed IRQ source checking in the Intel VT-d driver for some aliased
         devices, needed for future devices which send IRQ messages from more
         than on request-ID
      
       - IRQ remapping driver for Hyper-V
      
       - Patches to make generic IOVA and IO-Page-Table code usable outside of
         the IOMMU code
      
       - Various other small fixes and cleanups
      
      * tag 'iommu-updates-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (60 commits)
        iommu/vt-d: Get domain ID before clear pasid entry
        iommu/vt-d: Fix NULL pointer reference in intel_svm_bind_mm()
        iommu/vt-d: Set context field after value initialized
        iommu/vt-d: Disable ATS support on untrusted devices
        iommu/mediatek: Fix semicolon code style issue
        MAINTAINERS: Add Hyper-V IOMMU driver into Hyper-V CORE AND DRIVERS scope
        iommu/hyper-v: Add Hyper-V stub IOMMU driver
        x86/Hyper-V: Set x2apic destination mode to physical when x2apic is available
        PCI/ATS: Add inline to pci_prg_resp_pasid_required()
        iommu/vt-d: Check identity map for hot-added devices
        iommu: Fix IOMMU debugfs fallout
        iommu: Document iommu_ops.is_attach_deferred()
        iommu: Document iommu_ops.iotlb_sync_map()
        iommu/vt-d: Enable ATS only if the device uses page aligned address.
        PCI/ATS: Add pci_ats_page_aligned() interface
        iommu/vt-d: Fix PRI/PASID dependency issue.
        PCI/ATS: Add pci_prg_resp_pasid_required() interface.
        iommu/vt-d: Allow interrupts from the entire bus for aliased devices
        iommu/vt-d: Add helper to set an IRTE to verify only the bus number
        iommu: Fix flush_tlb_all typo
        ...
      bb97be23
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.1' of git://git.infradead.org/users/hch/dma-mapping · b7a7d1c1
      Linus Torvalds authored
      Pull DMA mapping updates from Christoph Hellwig:
      
       - add debugfs support for dumping dma-debug information (Corentin
         Labbe)
      
       - Kconfig cleanups (Andy Shevchenko and me)
      
       - debugfs cleanups (Greg Kroah-Hartman)
      
       - improve dma_map_resource and use it in the media code
      
       - arch_setup_dma_ops / arch_teardown_dma_ops cleanups
      
       - various small cleanups and improvements for the per-device coherent
         allocator
      
       - make the DMA mask an upper bound and don't fail "too large" dma mask
         in the remaning two architectures - this will allow big driver
         cleanups in the following merge windows
      
      * tag 'dma-mapping-5.1' of git://git.infradead.org/users/hch/dma-mapping: (21 commits)
        Documentation/DMA-API-HOWTO: update dma_mask sections
        sparc64/pci_sun4v: allow large DMA masks
        sparc64/iommu: allow large DMA masks
        sparc64: refactor the ali DMA quirk
        ccio: allow large DMA masks
        dma-mapping: remove the DMA_MEMORY_EXCLUSIVE flag
        dma-mapping: remove dma_mark_declared_memory_occupied
        dma-mapping: move CONFIG_DMA_CMA to kernel/dma/Kconfig
        dma-mapping: improve selection of dma_declare_coherent availability
        dma-mapping: remove an incorrect __iommem annotation
        of: select OF_RESERVED_MEM automatically
        device.h: dma_mem is only needed for HAVE_GENERIC_DMA_COHERENT
        mfd/sm501: depend on HAS_DMA
        dma-mapping: add a kconfig symbol for arch_teardown_dma_ops availability
        dma-mapping: add a kconfig symbol for arch_setup_dma_ops availability
        dma-mapping: move debug configuration options to kernel/dma
        dma-debug: add dumping facility via debugfs
        dma: debug: no need to check return value of debugfs_create functions
        videobuf2: replace a layering violation with dma_map_resource
        dma-mapping: don't BUG when calling dma_map_resource on RAM
        ...
      b7a7d1c1
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 065b6c4c
      Linus Torvalds authored
      Pull Devicetree updates from Rob Herring:
      
       - Fix a unittest failure on UML. Preparation for converting to kunit
         test framework.
      
       - Add annotations to dtx_diff output
      
       - Fix unittest reporting of expected error
      
       - Move DMA configuration for virtual devices into the driver that needs
         it (s5p-mfc)
      
       - Vendor prefixes for feiyang and techstar
      
       - Convert ARM GIC, GICv3, and L2x0 to DT schema
      
       - Add r8a7778/9 HSCIF serial bindings
      
      * tag 'devicetree-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        of: unittest: unflatten device tree on UML when testing
        dt-bindings: Add vendor prefix for feiyang
        dt-bindings: Add vendor prefix for techstar
        dt-bindings: display: add missing semicolon in example
        of: mark early_init_dt_alloc_reserved_memory_arch static
        of: add dtc annotations functionality to dtx_diff
        of: unittest: add caution to function header comment
        of: unittest: remove report of expected error
        dt-bindings: interrupt-controller: Convert ARM GICv3 to json-schema
        dt-bindings: interrupt-controller: Convert ARM GIC to json-schema
        dt-bindings: arm: l2x0: Convert L2 cache to json-schema
        media: s5p-mfc: Fix memdev DMA configuration
        dt-bindings: serial: sh-sci: Document r8a7778/9 HSCIF bindings
      065b6c4c
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 3d8dfe75
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
      
       - Pseudo NMI support for arm64 using GICv3 interrupt priorities
      
       - uaccess macros clean-up (unsafe user accessors also merged but
         reverted, waiting for objtool support on arm64)
      
       - ptrace regsets for Pointer Authentication (ARMv8.3) key management
      
       - inX() ordering w.r.t. delay() on arm64 and riscv (acks in place by
         the riscv maintainers)
      
       - arm64/perf updates: PMU bindings converted to json-schema, unused
         variable and misleading comment removed
      
       - arm64/debug fixes to ensure checking of the triggering exception
         level and to avoid the propagation of the UNKNOWN FAR value into the
         si_code for debug signals
      
       - Workaround for Fujitsu A64FX erratum 010001
      
       - lib/raid6 ARM NEON optimisations
      
       - NR_CPUS now defaults to 256 on arm64
      
       - Minor clean-ups (documentation/comments, Kconfig warning, unused
         asm-offsets, clang warnings)
      
       - MAINTAINERS update for list information to the ARM64 ACPI entry
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (54 commits)
        arm64: mmu: drop paging_init comments
        arm64: debug: Ensure debug handlers check triggering exception level
        arm64: debug: Don't propagate UNKNOWN FAR into si_code for debug signals
        Revert "arm64: uaccess: Implement unsafe accessors"
        arm64: avoid clang warning about self-assignment
        arm64: Kconfig.platforms: fix warning unmet direct dependencies
        lib/raid6: arm: optimize away a mask operation in NEON recovery routine
        lib/raid6: use vdupq_n_u8 to avoid endianness warnings
        arm64: io: Hook up __io_par() for inX() ordering
        riscv: io: Update __io_[p]ar() macros to take an argument
        asm-generic/io: Pass result of I/O accessor to __io_[p]ar()
        arm64: Add workaround for Fujitsu A64FX erratum 010001
        arm64: Rename get_thread_info()
        arm64: Remove documentation about TIF_USEDFPU
        arm64: irqflags: Fix clang build warnings
        arm64: Enable the support of pseudo-NMIs
        arm64: Skip irqflags tracing for NMI in IRQs disabled context
        arm64: Skip preemption when exiting an NMI
        arm64: Handle serror in NMI context
        irqchip/gic-v3: Allow interrupts to be set as pseudo-NMI
        ...
      3d8dfe75
    • Linus Torvalds's avatar
      Merge tag 'nios2-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2 · d6075262
      Linus Torvalds authored
      Pull nios2 updates from Ley Foon Tan:
       "Most of updates are MMU related"
      
      * tag 'nios2-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2:
        nios2: Fix update_mmu_cache preload the TLB with the new PTE
        nios2: update_mmu_cache preload the TLB with the new PTE
        nios2: User address TLB flush break after finding the matching entry
        nios2: flush_tlb_all use TLBMISC way auto-increment feature
        nios2: improve readability of tlb functions
        nios2: flush_tlb_mm flush only the pid
        nios2: flush_tlb_pid can just restore TLBMISC once
        nios2: TLBMISC writes do not require PID bits to be set
        nios2: Use an invalid TLB entry address helper function
        nios2: pte_clear does not need to flush TLB
        nios2: flush_tlb_page use PID based flush
        nios2: update_mmu_cache clear the old entry from the TLB
        nios2: remove redundant 'default n' from Kconfig-s
        nios2: ksyms: Add missing symbol exports
      d6075262
    • Linus Torvalds's avatar
      Merge tag 'for-5.1/dm-changes' of... · 6cdc577a
      Linus Torvalds authored
      Merge tag 'for-5.1/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Update bio-based DM core to always call blk_queue_split() and update
         DM targets to properly advertise discard limits that
         blk_queue_split() looks at when dtermining to split discard. Whereby
         allowing DM core's own 'split_discard_bios' to be removed.
      
       - Improve DM cache target to provide support for discard passdown to
         the origin device.
      
       - Introduce support to directly boot to a DM mapped device from init by
         using dm-mod.create= module param. This eliminates the need for an
         elaborate initramfs that is otherwise needed to create DM devices.
      
         This feature's implementation has been worked on for quite some time
         (got up to v12) and is of particular interest to Android and other
         more embedded platforms (e.g. ARM).
      
       - Rate limit errors from the DM integrity target that were identified
         as the cause for recent NMI hangs due to console limitations.
      
       - Add sanity checks for user input to thin-pool and external snapshot
         creation.
      
       - Remove some unused leftover kmem caches from when old .request_fn
         request-based support was removed.
      
       - Various small cleanups and fixes to targets (e.g. typos, needless
         unlikely() annotations, use struct_size(), remove needless
         .direct_access method from dm-snapshot)
      
      * tag 'for-5.1/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm integrity: limit the rate of error messages
        dm snapshot: don't define direct_access if we don't support it
        dm cache: add support for discard passdown to the origin device
        dm writecache: fix typo in name for writeback_wq
        dm: add support to directly boot to a mapped device
        dm thin: add sanity checks to thin-pool and external snapshot creation
        dm block manager: remove redundant unlikely annotation
        dm verity fec: remove redundant unlikely annotation
        dm integrity: remove redundant unlikely annotation
        dm: always call blk_queue_split() in dm_process_bio()
        dm: fix to_sector() for 32bit
        dm switch: use struct_size() in kzalloc()
        dm: remove unused _rq_tio_cache and _rq_cache
        dm: eliminate 'split_discard_bios' flag from DM target interface
        dm: update dm_process_bio() to split bio if in ->make_request_fn()
      6cdc577a
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 92fff53b
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This is mostly update of the usual drivers: arcmsr, qla2xxx, lpfc,
        hisi_sas, target/iscsi and target/core.
      
        Additionally Christoph refactored gdth as part of the dma changes. The
        major mid-layer change this time is the removal of bidi commands and
        with them the whole of the osd/exofs driver and filesystem. This is a
        major simplification for block and mq in particular"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (240 commits)
        scsi: cxgb4i: validate tcp sequence number only if chip version <= T5
        scsi: cxgb4i: get pf number from lldi->pf
        scsi: core: replace GFP_ATOMIC with GFP_KERNEL in scsi_scan.c
        scsi: mpt3sas: Add missing breaks in switch statements
        scsi: aacraid: Fix missing break in switch statement
        scsi: kill command serial number
        scsi: csiostor: drop serial_number usage
        scsi: mvumi: use request tag instead of serial_number
        scsi: dpt_i2o: remove serial number usage
        scsi: st: osst: Remove negative constant left-shifts
        scsi: ufs-bsg: Allow reading descriptors
        scsi: ufs: Allow reading descriptor via raw upiu
        scsi: ufs-bsg: Change the calling convention for write descriptor
        scsi: ufs: Remove unused device quirks
        Revert "scsi: ufs: disable vccq if it's not needed by UFS device"
        scsi: megaraid_sas: Remove a bunch of set but not used variables
        scsi: clean obsolete return values of eh_timed_out
        scsi: sd: Optimal I/O size should be a multiple of physical block size
        scsi: MAINTAINERS: SCSI initiator and target tweaks
        scsi: fcoe: make use of fip_mode enum complete
        ...
      92fff53b
  4. 09 Mar, 2019 16 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · a50243b1
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "This has been a slightly more active cycle than normal with ongoing
        core changes and quite a lot of collected driver updates.
      
         - Various driver fixes for bnxt_re, cxgb4, hns, mlx5, pvrdma, rxe
      
         - A new data transfer mode for HFI1 giving higher performance
      
         - Significant functional and bug fix update to the mlx5
           On-Demand-Paging MR feature
      
         - A chip hang reset recovery system for hns
      
         - Change mm->pinned_vm to an atomic64
      
         - Update bnxt_re to support a new 57500 chip
      
         - A sane netlink 'rdma link add' method for creating rxe devices and
           fixing the various unregistration race conditions in rxe's
           unregister flow
      
         - Allow lookup up objects by an ID over netlink
      
         - Various reworking of the core to driver interface:
             - drivers should not assume umem SGLs are in PAGE_SIZE chunks
             - ucontext is accessed via udata not other means
             - start to make the core code responsible for object memory
               allocation
             - drivers should convert struct device to struct ib_device via a
               helper
             - drivers have more tools to avoid use after unregister problems"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (280 commits)
        net/mlx5: ODP support for XRC transport is not enabled by default in FW
        IB/hfi1: Close race condition on user context disable and close
        RDMA/umem: Revert broken 'off by one' fix
        RDMA/umem: minor bug fix in error handling path
        RDMA/hns: Use GFP_ATOMIC in hns_roce_v2_modify_qp
        cxgb4: kfree mhp after the debug print
        IB/rdmavt: Fix concurrency panics in QP post_send and modify to error
        IB/rdmavt: Fix loopback send with invalidate ordering
        IB/iser: Fix dma_nents type definition
        IB/mlx5: Set correct write permissions for implicit ODP MR
        bnxt_re: Clean cq for kernel consumers only
        RDMA/uverbs: Don't do double free of allocated PD
        RDMA: Handle ucontext allocations by IB/core
        RDMA/core: Fix a WARN() message
        bnxt_re: fix the regression due to changes in alloc_pbl
        IB/mlx4: Increase the timeout for CM cache
        IB/core: Abort page fault handler silently during owning process exit
        IB/mlx5: Validate correct PD before prefetch MR
        IB/mlx5: Protect against prefetch of invalid MR
        RDMA/uverbs: Store PR pointer before it is overwritten
        ...
      a50243b1
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.1-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 2901752c
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
      
       - Use match_string() instead of reimplementing it (Andy Shevchenko)
      
       - Enable SERR# forwarding for all bridges (Bharat Kumar Gogada)
      
       - Use Latency Tolerance Reporting if already enabled by platform (Bjorn
         Helgaas)
      
       - Save/restore LTR info for suspend/resume (Bjorn Helgaas)
      
       - Fix DPC use of uninitialized data (Dongdong Liu)
      
       - Probe bridge window attributes only once at enumeration-time to fix
         device accesses during rescan (Bjorn Helgaas)
      
       - Return BAR size (not "size -1 ") from pci_size() to simplify code (Du
         Changbin)
      
       - Use config header type (not class code) identify bridges more
         reliably (Honghui Zhang)
      
       - Work around Intel Denverton incorrect Trace Hub BAR size reporting
         (Alexander Shishkin)
      
       - Reorder pciehp cached state/hardware state updates to avoid missed
         interrupts (Mika Westerberg)
      
       - Turn ibmphp semaphores into completions or mutexes (Arnd Bergmann)
      
       - Mark expected switch fall-through (Mathieu Malaterre)
      
       - Use of_node_name_eq() for node name comparisons (Rob Herring)
      
       - Add ACS and pciehp quirks for HXT SD4800 (Shunyong Yang)
      
       - Consolidate Rohm Vendor ID definitions (Andy Shevchenko)
      
       - Use u32 (not __u32) for things not exposed to userspace (Logan
         Gunthorpe)
      
       - Fix locking semantics of bus and slot reset interfaces (Alex
         Williamson)
      
       - Update PCIEPORTBUS Kconfig help text (Hou Zhiqiang)
      
       - Allow portdrv to claim subtractive decode Ports so PCIe services will
         work for them (Honghui Zhang)
      
       - Report PCIe links that become degraded at run-time (Alexandru
         Gagniuc)
      
       - Blacklist Gigabyte X299 Root Port power management to fix Thunderbolt
         hotplug (Mika Westerberg)
      
       - Revert runtime PM suspend/resume callbacks that broke PME on network
         cable plug (Mika Westerberg)
      
       - Disable Data Link State Changed interrupts to prevent wakeup
         immediately after suspend (Mika Westerberg)
      
       - Extend altera to support Stratix 10 (Ley Foon Tan)
      
       - Allow building altera driver on ARM64 (Ley Foon Tan)
      
       - Replace Douglas with Tom Joseph as Cadence PCI host/endpoint
         maintainer (Lorenzo Pieralisi)
      
       - Add DT support for R-Car RZ/G2E (R8A774C0) (Fabrizio Castro)
      
       - Add dra72x/dra74x/dra76x SoC compatible strings (Kishon Vijay Abraham I)
      
       - Enable x2 mode support for dra72x/dra74x/dra76x SoC (Kishon Vijay
         Abraham I)
      
       - Configure dra7xx PHY to PCIe mode (Kishon Vijay Abraham I)
      
       - Simplify dwc (remove unnecessary header includes, name variables
         consistently, reduce inverted logic, etc) (Gustavo Pimentel)
      
       - Add i.MX8MQ support (Andrey Smirnov)
      
       - Add message to help debug dwc MSI-X mask bit errors (Gustavo
         Pimentel)
      
       - Work around imx7d PCIe PLL erratum (Trent Piepho)
      
       - Don't assert qcom reset GPIO during probe (Bjorn Andersson)
      
       - Skip dwc MSI init if MSIs have been disabled (Lucas Stach)
      
       - Use memcpy_fromio()/memcpy_toio() instead of plain memcpy() in PCI
         endpoint framework (Wen Yang)
      
       - Add interface to discover supported endpoint features to replace a
         bitfield that wasn't flexible enough (Kishon Vijay Abraham I)
      
       - Implement the new supported-feature interface for designware-plat,
         dra7xx, rockchip, cadence (Kishon Vijay Abraham I)
      
       - Fix issues with 64-bit BAR in endpoints (Kishon Vijay Abraham I)
      
       - Add layerscape endpoint mode support (Xiaowei Bao)
      
       - Remove duplicate struct hv_vp_set in favor of struct hv_vpset (Maya
         Nakamura)
      
       - Rework hv_irq_unmask() to use cpumask_to_vpset() instead of
         open-coded reimplementation (Maya Nakamura)
      
       - Align Hyper-V struct retarget_msi_interrupt arguments (Maya Nakamura)
      
       - Fix mediatek MMIO size computation to enable full size of available
         MMIO space (Honghui Zhang)
      
       - Fix mediatek DMA window size computation to allow endpoint DMA access
         to full DRAM address range (Honghui Zhang)
      
       - Fix mvebu prefetchable BAR regression caused by common bridge
         emulation that assumed all bridges had prefetchable windows (Thomas
         Petazzoni)
      
       - Make advk_pci_bridge_emul_ops static (Wei Yongjun)
      
       - Configure MPS settings for VMD root ports (Jon Derrick)
      
      * tag 'pci-v5.1-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (92 commits)
        PCI: Update PCIEPORTBUS Kconfig help text
        PCI: Fix "try" semantics of bus and slot reset
        PCI/LINK: Report degraded links via link bandwidth notification
        dt-bindings: PCI: altera: Add altr,pcie-root-port-2.0
        PCI: altera: Enable driver on ARM64
        PCI: altera: Add Stratix 10 PCIe support
        PCI/PME: Fix possible use-after-free on remove
        PCI: aardvark: Make symbol 'advk_pci_bridge_emul_ops' static
        PCI: dwc: skip MSI init if MSIs have been explicitly disabled
        PCI: hv: Refactor hv_irq_unmask() to use cpumask_to_vpset()
        PCI: hv: Replace hv_vp_set with hv_vpset
        PCI: hv: Add __aligned(8) to struct retarget_msi_interrupt
        PCI: mediatek: Enlarge PCIe2AHB window size to support 4GB DRAM
        PCI: mediatek: Fix memory mapped IO range size computation
        PCI: dwc: Remove superfluous shifting in definitions
        PCI: dwc: Make use of GENMASK/FIELD_PREP
        PCI: dwc: Make use of BIT() in constant definitions
        PCI: dwc: Share code for dw_pcie_rd/wr_other_conf()
        PCI: dwc: Make use of IS_ALIGNED()
        PCI: imx6: Add code to request/control "pcie_aux" clock for i.MX8MQ
        ...
      2901752c
    • Linus Torvalds's avatar
      Merge tag 'media/v5.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 96a6de1a
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
      
       - remove sensor drivers that got converted from soc_camera
      
       - remaining soc_camera drivers got moved to staging
      
       - some documentation cleanups and improvements
      
       - the imx staging driver now supports imx7
      
       - the ov9640, mt9m001 and mt9m111 got converted from soc_camera
      
       - the vim2m driver now does what a m2m convert driver expects to do
      
       - epoll() fixes on media subsystems
      
       - several drivers fixes, typos, cleanups and improvements
      
      * tag 'media/v5.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (346 commits)
        media: dvb/earth-pt1: fix wrong initialization for demod blocks
        media: vim2m: Address some coding style issues
        media: vim2m: don't use BUG()
        media: vim2m: speedup passthrough copy
        media: vim2m: add an horizontal scaler
        media: vim2m: don't accept YUYV anymore as output format
        media: vim2m: add vertical linear scaler
        media: vim2m: better handle cap/out buffers with different sizes
        media: vim2m: use different framesizes for bayer formats
        media: vim2m: add support for VIDIOC_ENUM_FRAMESIZES
        media: vim2m: ensure that width is multiple of two
        media: vim2m: improve debug messages
        media: vim2m: add bayer capture formats
        media: a few more typos at staging, pci, platform, radio and usb
        media: Documentation: fix several typos
        media: staging: fix several typos
        media: include: fix several typos
        media: common: fix several typos
        media: v4l2-core: fix several typos
        media: usb: fix several typos
        ...
      96a6de1a
    • Linus Torvalds's avatar
      Merge tag 'gfs2-5.1.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 36011ddc
      Linus Torvalds authored
      Pull gfs2 updates from Bob Peterson:
       "We've only got three patches ready for this merge window:
      
         - Fix a hang related to missed wakeups for glocks from Andreas
           Gruenbacher
      
         - Rework of how gfs2 manages its debugfs files from Greg K-H
      
         - An incorrect assert when truncating or deleting files from Tim
           Smith"
      
      * tag 'gfs2-5.1.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Fix missed wakeups in find_insert_glock
        gfs2: Fix an incorrect gfs2_assert()
        gfs: no need to check return value of debugfs_create functions
      36011ddc
    • Linus Torvalds's avatar
      Merge tag '5.1-rc-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · e519a8c2
      Linus Torvalds authored
      Pull smb3 updates from Steve French:
      
       - smb3/cifs fixes including for large i/o error cases
      
       - fixes for three xfstests
      
       - improved crediting (smb3 flow control)
      
       - improved tracing
      
      * tag '5.1-rc-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6: (44 commits)
        fs: cifs: Kconfig: pedantic formatting
        smb3: request more credits on normal (non-large read/write) ops
        CIFS: Mask off signals when sending SMB packets
        CIFS: Return -EAGAIN instead of -ENOTSOCK
        CIFS: Only send SMB2_NEGOTIATE command on new TCP connections
        CIFS: Fix read after write for files with read caching
        smb3: for kerberos mounts display the credential uid used
        cifs: use correct format characters
        smb3: add dynamic trace point for query_info_enter/done
        smb3: add dynamic trace point for smb3_cmd_enter
        smb3: improve dynamic tracing of open and posix mkdir
        smb3: add missing read completion trace point
        smb3: Add tracepoints for read, write and query_dir enter
        smb3: add tracepoints for query dir
        smb3: Update POSIX negotiate context with POSIX ctxt GUID
        cifs: update internal module version number
        CIFS: Try to acquire credits at once for compound requests
        CIFS: Return error code when getting file handle for writeback
        CIFS: Move open file handling to writepages
        CIFS: Move unlocking pages from wdata_send_pages()
        ...
      e519a8c2
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · d1cae948
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "First: Ted, Jaegeuk, and I have decided to add me as a co-maintainer
        for fscrypt, and we're now using a shared git tree. So we've updated
        MAINTAINERS accordingly, and I'm doing the pull request this time.
      
        The actual changes for v5.1 are:
      
         - Remove the fs-specific kconfig options like CONFIG_EXT4_ENCRYPTION
           and make fscrypt support for all fscrypt-capable filesystems be
           controlled by CONFIG_FS_ENCRYPTION, similar to how CONFIG_QUOTA
           works.
      
         - Improve error code for rename() and link() into encrypted
           directories.
      
         - Various cleanups"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        MAINTAINERS: add Eric Biggers as an fscrypt maintainer
        fscrypt: return -EXDEV for incompatible rename or link into encrypted dir
        fscrypt: remove filesystem specific build config option
        f2fs: use IS_ENCRYPTED() to check encryption status
        ext4: use IS_ENCRYPTED() to check encryption status
        fscrypt: remove CRYPTO_CTR dependency
      d1cae948
    • Linus Torvalds's avatar
      Merge tag 'leaks-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tobin/leaks · 99b25a7f
      Linus Torvalds authored
      Pull leaking_addresses updates from Tobin Harding:
       "Here are two super trivial patches to the leaking addresses script.
      
        One fixes the debugging output which is currently broken in a bunch of
        places, the other removes the --version command line option.
      
        Both patches have been tested and sitting in linux-next tree for a
        month or so"
      
      * tag 'leaks-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tobin/leaks:
        leaking_addresses: Completely remove --version flag
        leaking_addresses: Fix calls to dprint
      99b25a7f
    • Linus Torvalds's avatar
      Merge tag 'docs-5.1' of git://git.lwn.net/linux · 1a29e857
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "A fairly routine cycle for docs - lots of typo fixes, some new
        documents, and more translations. There's also some LICENSES
        adjustments from Thomas"
      
      * tag 'docs-5.1' of git://git.lwn.net/linux: (74 commits)
        docs: Bring some order to filesystem documentation
        Documentation/locking/lockdep: Drop last two chars of sample states
        doc: rcu: Suspicious RCU usage is a warning
        docs: driver-api: iio: fix errors in documentation
        Documentation/process/howto: Update for 4.x -> 5.x versioning
        docs: Explicitly state that the 'Fixes:' tag shouldn't split lines
        doc: security: Add kern-doc for lsm_hooks.h
        doc: sctp: Merge and clean up rst files
        Docs: Correct /proc/stat path
        scripts/spdxcheck.py: fix C++ comment style detection
        doc: fix typos in license-rules.rst
        Documentation: fix admin-guide/README.rst minimum gcc version requirement
        doc: process: complete removal of info about -git patches
        doc: translations: sync translations 'remove info about -git patches'
        perf-security: wrap paragraphs on 72 columns
        perf-security: elaborate on perf_events/Perf privileged users
        perf-security: document collected perf_events/Perf data categories
        perf-security: document perf_events/Perf resource control
        sysfs.txt: add note on available attribute macros
        docs: kernel-doc: typo "if ... if" -> "if ... is"
        ...
      1a29e857
    • Linus Torvalds's avatar
      Merge tag 'printk-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk · c4703acd
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Allow to sort mixed lines by an extra information about the caller
      
       - Remove no longer used LOG_PREFIX.
      
       - Some clean up and documentation update.
      
      * tag 'printk-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
        printk/docs: Add extra integer types to printk-formats
        printk: Remove no longer used LOG_PREFIX.
        lib/vsprintf: Remove %pCr remnant in comment
        printk: Pass caller information to log_store().
        printk: Add caller information to printk() output.
      c4703acd
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-5.1-rc1' of... · a448c643
      Linus Torvalds authored
      Merge tag 'linux-kselftest-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest update fromShuah Khan:
      
       - ir test compile warnings fixes
      
       - seccomp test fixes and improvements from Tycho Andersen and Kees Cook
      
       - ftrace fixes to non-POSIX-compliant constructs in colored output code
         and handling absence of tput from Juerg Haefliger
      
      * tag 'linux-kselftest-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/ftrace: Handle the absence of tput
        selftests/ftrace: Replace \e with \033
        selftests/ftrace: Replace echo -e with printf
        selftests: ir: skip when non-root user runs the test
        selftests: ir: skip when lirc device doesn't exist.
        selftests: ir: fix warning: "%s" directive output may be truncated ’ directive output may be truncated
        selftests/seccomp: Actually sleep for 1/10th second
        selftests/harness: Update named initializer syntax
        selftests: unshare userns in seccomp pidns testcases
        selftests: set NO_NEW_PRIVS bit in seccomp user tests
        selftests: skip seccomp get_metadata test if not real root
        selftest: include stdio.h in kselftest.h
        selftests: fix typo in seccomp_bpf.c
        selftests: don't kill child immediately in get_metadata() test
      a448c643
    • Linus Torvalds's avatar
      Merge tag 'gcc-plugins-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 2bb99540
      Linus Torvalds authored
      Pull gcc-plugins updates from Kees Cook:
       "This adds additional type coverage to the existing structleak plugin
        and adds a large set of selftests to help evaluate stack variable
        zero-initialization coverage.
      
        That can be used to test whatever instrumentation might be performing
        zero-initialization: either with the structleak plugin or with Clang's
        coming "-ftrivial-auto-var-init=zero" option.
      
        Summary:
      
         - Add scalar and array initialization coverage
      
         - Refactor Kconfig to make options more clear
      
         - Add self-test module for testing automatic initialization"
      
      * tag 'gcc-plugins-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        lib: Introduce test_stackinit module
        gcc-plugins: structleak: Generalize to all variable types
      2bb99540
    • Linus Torvalds's avatar
      Merge tag 'pstore-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · a39f009a
      Linus Torvalds authored
      Pull pstore cleanups from Kees Cook:
      
       - Remove some needless memory allocations (Yue Hu, Kees Cook)
      
       - Add zero-length checks to avoid no-op calls (Yue Hu)
      
      * tag 'pstore-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore/ram: Avoid needless alloc during header write
        pstore/ram: Add kmsg hlen zero check to ramoops_pstore_write()
        pstore/ram: Move initialization earlier
        pstore: Avoid writing records with zero size
        pstore/ram: Replace dummy_data heap memory with stack memory
      a39f009a
    • Baruch Siach's avatar
      MAINTAINERS: fix typo in Mimi Zohar's address · 5bbf1b6d
      Baruch Siach authored
      Fixes: ("MAINTAINERS: Update from @linux.vnet.ibm.com to @linux.ibm.com")
      Reviewed-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      Signed-off-by: default avatarBaruch Siach <baruch@tkos.co.il>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5bbf1b6d
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo-5.1-20190307' of... · b339da48
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo-5.1-20190307' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/core changes from Arnaldo Carvalho de Melo:
      
      perf bpf:
      
        Arnaldo Carvalho de Melo:
      
        - Automatically add BTF ELF markers to 'perf trace' BPF programs, so that
          tools such as 'bpftool map dump' can pretty print map keys and values.
      
      perf c2c:
      
        Jiri Olsa:
      
        - Fix report for empty NUMA node.
      
      perf diff:
      
        Jin Yao:
      
        - Support --time, --cpu, --pid and --tid filter options.
      
      perf probe:
      
        Arnaldo Carvalho de Melo:
      
        - Clarify error message about not finding kernel modules debuginfo.
      
      perf record:
      
        Jiri Olsa:
      
        - Fixup probing for max attr.precise_ip.
      
      perf trace:
      
        Arnaldo Carvalho de Melo:
      
        - Add missing %s lost in the 'msg_flags' recvmmsg arg when adding prefix suppression logic.
      
      perf annotate:
      
        Arnaldo Carvalho de Melo:
      
        - Calculate the max instruction name, align column to that, removing the
          hardcoded max 6 chars and cope with instructions with names longer than that,
          such as vpmovmskb, vpcmpeqb, etc.
      
      kernel:
      
        Song Liu:
      
        - Consider events with attr.bpf_event set as side-band.
      
        Gustavo A. R. Silva:
      
        - Mark expected switch fall-through in perf_event_parse_addr_filter().
      
      Libraries:
      
        Jiri Olsa:
      
        - Fix leaks and double frees on error paths.
      
      libtraceevent:
      
        Tony Jones:
      
        - Fix buffer overflow in arg_eval().
      
      python scripting:
      
        Tony Jones:
      
        - More python3 fixes.
      
      Trivial:
      
        Yang Wei:
      
        - Remove needless extra semicolon in clang C++ glue code.
      
      Intel PT/BTS:
      
        Adrian Hunter:
      
        - Improve auxtrace address filter error message when there is no DSO.
      
        - Fix divide by zero when TSC is not available.
      
        - Further improvements to the export to sqlite/posgresql python scripts
          and to the GUI sqlviewer, exporting 'parent_id' so that we have enable
          the creation of call trees.
      
        Andi Kleen:
      
        - Generalize function to copy from thread addr space from intel-bts code.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      b339da48
    • Qian Cai's avatar
      workqueue, lockdep: Fix a memory leak in wq->lock_name · 69a106c0
      Qian Cai authored
      The following commit:
      
        669de8bd ("kernel/workqueue: Use dynamic lockdep keys for workqueues")
      
      introduced a memory leak as wq_free_lockdep() calls kfree(wq->lock_name),
      but wq_init_lockdep() does not point wq->lock_name to the newly allocated
      slab object.
      
      This can be reproduced by running LTP fallocate04 followed by oom01 tests:
      
       unreferenced object 0xc0000005876384d8 (size 64):
        comm "fallocate04", pid 26972, jiffies 4297139141 (age 40370.480s)
        hex dump (first 32 bytes):
          28 77 71 5f 63 6f 6d 70 6c 65 74 69 6f 6e 29 65  (wq_completion)e
          78 74 34 2d 72 73 76 2d 63 6f 6e 76 65 72 73 69  xt4-rsv-conversi
        backtrace:
          [<00000000cb452883>] kvasprintf+0x6c/0xe0
          [<000000004654ddac>] kasprintf+0x34/0x60
          [<000000001c68f311>] alloc_workqueue+0x1f8/0x6ac
          [<0000000003c2ad83>] ext4_fill_super+0x23d4/0x3c80 [ext4]
          [<0000000006610538>] mount_bdev+0x25c/0x290
          [<00000000bcf955ec>] ext4_mount+0x28/0x50 [ext4]
          [<0000000016e08fd3>] legacy_get_tree+0x4c/0xb0
          [<0000000042b6a5fc>] vfs_get_tree+0x6c/0x190
          [<00000000268ab022>] do_mount+0xb9c/0x1100
          [<00000000698e6898>] ksys_mount+0x158/0x180
          [<0000000064e391fd>] sys_mount+0x20/0x30
          [<00000000ba378f12>] system_call+0x5c/0x70
      Signed-off-by: default avatarQian Cai <cai@lca.pw>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: catalin.marinas@arm.com
      Cc: jiangshanlai@gmail.com
      Cc: tj@kernel.org
      Fixes: 669de8bd ("kernel/workqueue: Use dynamic lockdep keys for workqueues")
      Link: https://lkml.kernel.org/r/20190307002731.47371-1-cai@lca.pwSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      69a106c0
    • Bart Van Assche's avatar
      workqueue, lockdep: Fix an alloc_workqueue() error path · 009bb421
      Bart Van Assche authored
      This patch fixes a use-after-free and a memory leak in an alloc_workqueue()
      error path.
      
      Repoted by syzkaller and KASAN:
      
        BUG: KASAN: use-after-free in __read_once_size include/linux/compiler.h:197 [inline]
        BUG: KASAN: use-after-free in lockdep_register_key+0x3b9/0x490 kernel/locking/lockdep.c:1023
        Read of size 8 at addr ffff888090fc2698 by task syz-executor134/7858
      
        CPU: 1 PID: 7858 Comm: syz-executor134 Not tainted 5.0.0-rc8-next-20190301 #1
        Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
        Call Trace:
         __dump_stack lib/dump_stack.c:77 [inline]
         dump_stack+0x172/0x1f0 lib/dump_stack.c:113
         print_address_description.cold+0x7c/0x20d mm/kasan/report.c:187
         kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317
         __asan_report_load8_noabort+0x14/0x20 mm/kasan/generic_report.c:132
         __read_once_size include/linux/compiler.h:197 [inline]
         lockdep_register_key+0x3b9/0x490 kernel/locking/lockdep.c:1023
         wq_init_lockdep kernel/workqueue.c:3444 [inline]
         alloc_workqueue+0x427/0xe70 kernel/workqueue.c:4263
         ucma_open+0x76/0x290 drivers/infiniband/core/ucma.c:1732
         misc_open+0x398/0x4c0 drivers/char/misc.c:141
         chrdev_open+0x247/0x6b0 fs/char_dev.c:417
         do_dentry_open+0x488/0x1160 fs/open.c:771
         vfs_open+0xa0/0xd0 fs/open.c:880
         do_last fs/namei.c:3416 [inline]
         path_openat+0x10e9/0x46e0 fs/namei.c:3533
         do_filp_open+0x1a1/0x280 fs/namei.c:3563
         do_sys_open+0x3fe/0x5d0 fs/open.c:1063
         __do_sys_openat fs/open.c:1090 [inline]
         __se_sys_openat fs/open.c:1084 [inline]
         __x64_sys_openat+0x9d/0x100 fs/open.c:1084
         do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
         entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
        Allocated by task 7789:
         save_stack+0x45/0xd0 mm/kasan/common.c:75
         set_track mm/kasan/common.c:87 [inline]
         __kasan_kmalloc mm/kasan/common.c:497 [inline]
         __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:470
         kasan_kmalloc+0x9/0x10 mm/kasan/common.c:511
         __do_kmalloc mm/slab.c:3726 [inline]
         __kmalloc+0x15c/0x740 mm/slab.c:3735
         kmalloc include/linux/slab.h:553 [inline]
         kzalloc include/linux/slab.h:743 [inline]
         alloc_workqueue+0x13c/0xe70 kernel/workqueue.c:4236
         ucma_open+0x76/0x290 drivers/infiniband/core/ucma.c:1732
         misc_open+0x398/0x4c0 drivers/char/misc.c:141
         chrdev_open+0x247/0x6b0 fs/char_dev.c:417
         do_dentry_open+0x488/0x1160 fs/open.c:771
         vfs_open+0xa0/0xd0 fs/open.c:880
         do_last fs/namei.c:3416 [inline]
         path_openat+0x10e9/0x46e0 fs/namei.c:3533
         do_filp_open+0x1a1/0x280 fs/namei.c:3563
         do_sys_open+0x3fe/0x5d0 fs/open.c:1063
         __do_sys_openat fs/open.c:1090 [inline]
         __se_sys_openat fs/open.c:1084 [inline]
         __x64_sys_openat+0x9d/0x100 fs/open.c:1084
         do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
         entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
        Freed by task 7789:
         save_stack+0x45/0xd0 mm/kasan/common.c:75
         set_track mm/kasan/common.c:87 [inline]
         __kasan_slab_free+0x102/0x150 mm/kasan/common.c:459
         kasan_slab_free+0xe/0x10 mm/kasan/common.c:467
         __cache_free mm/slab.c:3498 [inline]
         kfree+0xcf/0x230 mm/slab.c:3821
         alloc_workqueue+0xc3e/0xe70 kernel/workqueue.c:4295
         ucma_open+0x76/0x290 drivers/infiniband/core/ucma.c:1732
         misc_open+0x398/0x4c0 drivers/char/misc.c:141
         chrdev_open+0x247/0x6b0 fs/char_dev.c:417
         do_dentry_open+0x488/0x1160 fs/open.c:771
         vfs_open+0xa0/0xd0 fs/open.c:880
         do_last fs/namei.c:3416 [inline]
         path_openat+0x10e9/0x46e0 fs/namei.c:3533
         do_filp_open+0x1a1/0x280 fs/namei.c:3563
         do_sys_open+0x3fe/0x5d0 fs/open.c:1063
         __do_sys_openat fs/open.c:1090 [inline]
         __se_sys_openat fs/open.c:1084 [inline]
         __x64_sys_openat+0x9d/0x100 fs/open.c:1084
         do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
         entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
        The buggy address belongs to the object at ffff888090fc2580
         which belongs to the cache kmalloc-512 of size 512
        The buggy address is located 280 bytes inside of
         512-byte region [ffff888090fc2580, ffff888090fc2780)
      
      Reported-by: syzbot+17335689e239ce135d8b@syzkaller.appspotmail.com
      Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Will Deacon <will.deacon@arm.com>
      Fixes: 669de8bd ("kernel/workqueue: Use dynamic lockdep keys for workqueues")
      Link: https://lkml.kernel.org/r/20190303220046.29448-1-bvanassche@acm.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      009bb421