1. 11 Mar, 2019 2 commits
    • Linus Torvalds's avatar
      Merge branch 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 5af7f115
      Linus Torvalds authored
      Pull tpm updates from James Morris:
      
       - Clean up the transmission flow
      
         Cleaned up the whole transmission flow. Locking of the chip is now
         done in the level of tpm_try_get_ops() and tpm_put_ops() instead
         taking the chip lock inside tpm_transmit(). The nested calls inside
         tpm_transmit(), used with the resource manager, have been refactored
         out.
      
         Should make easier to perform more complex transactions with the TPM
         without making the subsystem a bigger mess (e.g. encrypted channel
         patches by James Bottomley).
      
       - PPI 1.3 support
      
         TPM PPI 1.3 introduces an additional optional command parameter that
         may be needed for some commands. Display the parameter if the command
         requires such a parameter. Only command 23 (SetPCRBanks) needs one.
      
         The PPI request file will show output like this then:
      
            # echo "23 16" > request
            # cat request
            23 16
      
            # echo "5" > request
            # cat request
            5
      
       - Extend all PCR banks in IMA
      
         Instead of static PCR banks array, the array of available PCR banks
         is now allocated dynamically. The digests sizes are determined
         dynamically using a probe PCR read without relying crypto's static
         list of hash algorithms.
      
         This should finally make sealing of measurements in IMA safe and
         secure.
      
       - TPM 2.0 selftests
      
         Added a test suite to tools/testing/selftests/tpm2 previously outside
         of the kernel tree: https://github.com/jsakkine-intel/tpm2-scripts
      
      * 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (37 commits)
        tpm/ppi: Enable submission of optional command parameter for PPI 1.3
        tpm/ppi: Possibly show command parameter if TPM PPI 1.3 is used
        tpm/ppi: Display up to 101 operations as define for version 1.3
        tpm/ppi: rename TPM_PPI_REVISION_ID to TPM_PPI_REVISION_ID_1
        tpm/ppi: pass function revision ID to tpm_eval_dsm()
        tpm: pass an array of tpm_extend_digest structures to tpm_pcr_extend()
        KEYS: trusted: explicitly use tpm_chip structure from tpm_default_chip()
        tpm: move tpm_chip definition to include/linux/tpm.h
        tpm: retrieve digest size of unknown algorithms with PCR read
        tpm: rename and export tpm2_digest and tpm2_algorithms
        tpm: dynamically allocate the allocated_banks array
        tpm: remove @flags from tpm_transmit()
        tpm: take TPM chip power gating out of tpm_transmit()
        tpm: introduce tpm_chip_start() and tpm_chip_stop()
        tpm: remove TPM_TRANSMIT_UNLOCKED flag
        tpm: use tpm_try_get_ops() in tpm-sysfs.c.
        tpm: remove @space from tpm_transmit()
        tpm: move TPM space code out of tpm_transmit()
        tpm: move tpm_validate_commmand() to tpm2-space.c
        tpm: clean up tpm_try_transmit() error handling flow
        ...
      5af7f115
    • Linus Torvalds's avatar
      Merge branch 'next-integrity' of... · c3665a6b
      Linus Torvalds authored
      Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
      
      Pull integrity updates from James Morris:
       "Mimi Zohar says:
      
         'Linux 5.0 introduced the platform keyring to allow verifying the IMA
          kexec kernel image signature using the pre-boot keys. This pull
          request similarly makes keys on the platform keyring accessible for
          verifying the PE kernel image signature.
      
          Also included in this pull request is a new IMA hook that tags tmp
          files, in policy, indicating the file hash needs to be calculated.
          The remaining patches are cleanup'"
      
      * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        evm: Use defined constant for UUID representation
        ima: define ima_post_create_tmpfile() hook and add missing call
        evm: remove set but not used variable 'xattr'
        encrypted-keys: fix Opt_err/Opt_error = -1
        kexec, KEYS: Make use of platform keyring for signature verify
        integrity, KEYS: add a reference to platform keyring
      c3665a6b
  2. 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
  3. 09 Mar, 2019 21 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
    • Bart Van Assche's avatar
      locking/lockdep: Only call init_rcu_head() after RCU has been initialized · 0126574f
      Bart Van Assche authored
      init_data_structures_once() is called for the first time before RCU has
      been initialized. Make sure that init_rcu_head() is called before the
      RCU head is used and after RCU has been initialized.
      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>
      Cc: longman@redhat.com
      Link: https://lkml.kernel.org/r/c20aa0f0-42ab-a884-d931-7d4ec2bf0cdc@acm.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      0126574f
    • Arnd Bergmann's avatar
      locking/lockdep: Avoid a Clang warning · 3fe7522f
      Arnd Bergmann authored
      Clang warns about a tentative array definition without a length:
      
        kernel/locking/lockdep.c:845:12: error: tentative array definition assumed to have one element [-Werror]
      
      There is no real reason to do this here, so just set the same length as
      in the real definition later in the same file.  It has to be hidden in
      an #ifdef or annotated __maybe_unused though, to avoid the unused-variable
      warning if CONFIG_PROVE_LOCKING is disabled.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Bart Van Assche <bvanassche@acm.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Frederic Weisbecker <frederic@kernel.org>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
      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: Stephane Eranian <eranian@google.com>
      Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
      Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vince Weaver <vincent.weaver@maine.edu>
      Cc: Waiman Long <longman@redhat.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Link: https://lkml.kernel.org/r/20190307075222.3424524-1-arnd@arndb.deSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      3fe7522f
    • Gustavo A. R. Silva's avatar
      perf/core: Mark expected switch fall-through · 43aa378b
      Gustavo A. R. Silva authored
      In preparation to enabling -Wimplicit-fallthrough, mark switch cases
      where we are expecting to fall through.
      
      This patch fixes the following warning:
      
        kernel/events/core.c: In function ‘perf_event_parse_addr_filter’:
        kernel/events/core.c:9154:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
            kernel = 1;
            ~~~~~~~^~~
        kernel/events/core.c:9156:3: note: here
           case IF_SRC_FILEADDR:
           ^~~~
      
      Warning level 3 was used: -Wimplicit-fallthrough=3
      
      This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough.
      Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vince Weaver <vincent.weaver@maine.edu>
      Link: https://lkml.kernel.org/r/20190212205430.GA8446@embeddedorSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      43aa378b
    • Kan Liang's avatar
      perf/x86/intel/uncore: Fix client IMC events return huge result · 8041ffd3
      Kan Liang authored
      The client IMC bandwidth events currently return very large values:
      
        $ perf stat -e uncore_imc/data_reads/ -e uncore_imc/data_writes/ -I 10000 -a
      
        10.000117222 34,788.76 MiB uncore_imc/data_reads/
        10.000117222 8.26 MiB uncore_imc/data_writes/
        20.000374584 34,842.89 MiB uncore_imc/data_reads/
        20.000374584 10.45 MiB uncore_imc/data_writes/
        30.000633299 37,965.29 MiB uncore_imc/data_reads/
        30.000633299 323.62 MiB uncore_imc/data_writes/
        40.000891548 41,012.88 MiB uncore_imc/data_reads/
        40.000891548 6.98 MiB uncore_imc/data_writes/
        50.001142480 1,125,899,906,621,494.75 MiB uncore_imc/data_reads/
        50.001142480 6.97 MiB uncore_imc/data_writes/
      
      The client IMC events are freerunning counters. They still use the
      old event encoding format (0x1 for data_read and 0x2 for data write).
      The counter bit width is calculated by common code, which assume that
      the standard encoding format is used for the freerunning counters.
      Error bit width information is calculated.
      
      The patch intends to convert the old client IMC event encoding to the
      standard encoding format.
      
      Current common code uses event->attr.config which directly copy from
      user space. We should not implicitly modify it for a converted event.
      The event->hw.config is used to replace the event->attr.config in
      common code.
      
      For client IMC events, the event->attr.config is used to calculate a
      converted event with standard encoding format in the custom
      event_init(). The converted event is stored in event->hw.config.
      For other events of freerunning counters, they already use the standard
      encoding format. The same value as event->attr.config is assigned to
      event->hw.config in common event_init().
      Reported-by: default avatarJin Yao <yao.jin@linux.intel.com>
      Tested-by: default avatarJin Yao <yao.jin@linux.intel.com>
      Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vince Weaver <vincent.weaver@maine.edu>
      Cc: stable@kernel.org # v4.18+
      Fixes: 9aae1780 ("perf/x86/intel/uncore: Clean up client IMC uncore")
      Link: https://lkml.kernel.org/r/20190227165729.1861-1-kan.liang@linux.intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      8041ffd3
    • Alexander Shishkin's avatar
      perf/ring_buffer: Use high order allocations for AUX buffers optimistically · 5768402f
      Alexander Shishkin authored
      Currently, the AUX buffer allocator will use high-order allocations
      for PMUs that don't support hardware scatter-gather chaining to ensure
      large contiguous blocks of pages, and always use an array of single
      pages otherwise.
      
      There is, however, a tangible performance benefit in using larger chunks
      of contiguous memory even in the latter case, that comes from not having
      to fetch the next page's address at every page boundary. In particular,
      a task running under Intel PT on an Atom CPU shows 1.5%-2% less runtime
      penalty with a single multi-page output region in snapshot mode (no PMI)
      than with multiple single-page output regions, from ~6% down to ~4%. For
      the snapshot mode it does make a difference as it is intended to run over
      long periods of time.
      
      For this reason, change the allocation policy to always optimistically
      start with the highest possible order when allocating pages for the AUX
      buffer, desceding until the allocation succeeds or order zero allocation
      fails.
      Signed-off-by: default avatarAlexander Shishkin <alexander.shishkin@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vince Weaver <vincent.weaver@maine.edu>
      Link: https://lkml.kernel.org/r/20190215114727.62648-2-alexander.shishkin@linux.intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      5768402f
  4. 08 Mar, 2019 2 commits
    • Linus Torvalds's avatar
      Merge tag 'io_uring-2019-03-06' of git://git.kernel.dk/linux-block · 38e7571c
      Linus Torvalds authored
      Pull io_uring IO interface from Jens Axboe:
       "Second attempt at adding the io_uring interface.
      
        Since the first one, we've added basic unit testing of the three
        system calls, that resides in liburing like the other unit tests that
        we have so far. It'll take a while to get full coverage of it, but
        we're working towards it. I've also added two basic test programs to
        tools/io_uring. One uses the raw interface and has support for all the
        various features that io_uring supports outside of standard IO, like
        fixed files, fixed IO buffers, and polled IO. The other uses the
        liburing API, and is a simplified version of cp(1).
      
        This adds support for a new IO interface, io_uring.
      
        io_uring allows an application to communicate with the kernel through
        two rings, the submission queue (SQ) and completion queue (CQ) ring.
        This allows for very efficient handling of IOs, see the v5 posting for
        some basic numbers:
      
          https://lore.kernel.org/linux-block/20190116175003.17880-1-axboe@kernel.dk/
      
        Outside of just efficiency, the interface is also flexible and
        extendable, and allows for future use cases like the upcoming NVMe
        key-value store API, networked IO, and so on. It also supports async
        buffered IO, something that we've always failed to support in the
        kernel.
      
        Outside of basic IO features, it supports async polled IO as well.
        This particular feature has already been tested at Facebook months ago
        for flash storage boxes, with 25-33% improvements. It makes polled IO
        actually useful for real world use cases, where even basic flash sees
        a nice win in terms of efficiency, latency, and performance. These
        boxes were IOPS bound before, now they are not.
      
        This series adds three new system calls. One for setting up an
        io_uring instance (io_uring_setup(2)), one for submitting/completing
        IO (io_uring_enter(2)), and one for aux functions like registrating
        file sets, buffers, etc (io_uring_register(2)). Through the help of
        Arnd, I've coordinated the syscall numbers so merge on that front
        should be painless.
      
        Jon did a writeup of the interface a while back, which (except for
        minor details that have been tweaked) is still accurate. Find that
        here:
      
          https://lwn.net/Articles/776703/
      
        Huge thanks to Al Viro for helping getting the reference cycle code
        correct, and to Jann Horn for his extensive reviews focused on both
        security and bugs in general.
      
        There's a userspace library that provides basic functionality for
        applications that don't need or want to care about how to fiddle with
        the rings directly. It has helpers to allow applications to easily set
        up an io_uring instance, and submit/complete IO through it without
        knowing about the intricacies of the rings. It also includes man pages
        (thanks to Jeff Moyer), and will continue to grow support helper
        functions and features as time progresses. Find it here:
      
          git://git.kernel.dk/liburing
      
        Fio has full support for the raw interface, both in the form of an IO
        engine (io_uring), but also with a small test application (t/io_uring)
        that can exercise and benchmark the interface"
      
      * tag 'io_uring-2019-03-06' of git://git.kernel.dk/linux-block:
        io_uring: add a few test tools
        io_uring: allow workqueue item to handle multiple buffered requests
        io_uring: add support for IORING_OP_POLL
        io_uring: add io_kiocb ref count
        io_uring: add submission polling
        io_uring: add file set registration
        net: split out functions related to registering inflight socket files
        io_uring: add support for pre-mapped user IO buffers
        block: implement bio helper to add iter bvec pages to bio
        io_uring: batch io_kiocb allocation
        io_uring: use fget/fput_many() for file references
        fs: add fget_many() and fput_many()
        io_uring: support for IO polling
        io_uring: add fsync support
        Add io_uring IO interface
      38e7571c
    • Linus Torvalds's avatar
      Merge tag 'for-5.1/block-20190302' of git://git.kernel.dk/linux-block · 80201fe1
      Linus Torvalds authored
      Pull block layer updates from Jens Axboe:
       "Not a huge amount of changes in this round, the biggest one is that we
        finally have Mings multi-page bvec support merged. Apart from that,
        this pull request contains:
      
         - Small series that avoids quiescing the queue for sysfs changes that
           match what we currently have (Aleksei)
      
         - Series of bcache fixes (via Coly)
      
         - Series of lightnvm fixes (via Mathias)
      
         - NVMe pull request from Christoph. Nothing major, just SPDX/license
           cleanups, RR mp policy (Hannes), and little fixes (Bart,
           Chaitanya).
      
         - BFQ series (Paolo)
      
         - Save blk-mq cpu -> hw queue mapping, removing a pointer indirection
           for the fast path (Jianchao)
      
         - fops->iopoll() added for async IO polling, this is a feature that
           the upcoming io_uring interface will use (Christoph, me)
      
         - Partition scan loop fixes (Dongli)
      
         - mtip32xx conversion from managed resource API (Christoph)
      
         - cdrom registration race fix (Guenter)
      
         - MD pull from Song, two minor fixes.
      
         - Various documentation fixes (Marcos)
      
         - Multi-page bvec feature. This brings a lot of nice improvements
           with it, like more efficient splitting, larger IOs can be supported
           without growing the bvec table size, and so on. (Ming)
      
         - Various little fixes to core and drivers"
      
      * tag 'for-5.1/block-20190302' of git://git.kernel.dk/linux-block: (117 commits)
        block: fix updating bio's front segment size
        block: Replace function name in string with __func__
        nbd: propagate genlmsg_reply return code
        floppy: remove set but not used variable 'q'
        null_blk: fix checking for REQ_FUA
        block: fix NULL pointer dereference in register_disk
        fs: fix guard_bio_eod to check for real EOD errors
        blk-mq: use HCTX_TYPE_DEFAULT but not 0 to index blk_mq_tag_set->map
        block: optimize bvec iteration in bvec_iter_advance
        block: introduce mp_bvec_for_each_page() for iterating over page
        block: optimize blk_bio_segment_split for single-page bvec
        block: optimize __blk_segment_map_sg() for single-page bvec
        block: introduce bvec_nth_page()
        iomap: wire up the iopoll method
        block: add bio_set_polled() helper
        block: wire up block device iopoll method
        fs: add an iopoll method to struct file_operations
        loop: set GENHD_FL_NO_PART_SCAN after blkdev_reread_part()
        loop: do not print warn message if partition scan is successful
        block: bounce: make sure that bvec table is updated
        ...
      80201fe1