1. 27 Mar, 2022 2 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of https://github.com/openrisc/linux · 88b3be5c
      Linus Torvalds authored
      Pull OpenRISC updates from Stafford Horne:
       "Not much for OpenRISC this merge window, I do have some things on the
        back burner like sparse warning cleanups and new defconfigs. But I
        didn't get time to polish the patches off for this round. There are
        OpenRISC updates coming in via other queues like removal of set_fs()
        and possibly new generic ticket locks.
      
        This just has a small fixup to remove duplicate initializer in memcpy
        from Kuniyuki Iwashima"
      
      * tag 'for-linus' of https://github.com/openrisc/linux:
        openrisc/boot: Remove unnecessary initialisation in memcpy().
      88b3be5c
    • Linus Torvalds's avatar
      Merge tag 'x86_core_for_5.18_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 70010521
      Linus Torvalds authored
      Pull x86 CET-IBT (Control-Flow-Integrity) support from Peter Zijlstra:
       "Add support for Intel CET-IBT, available since Tigerlake (11th gen),
        which is a coarse grained, hardware based, forward edge
        Control-Flow-Integrity mechanism where any indirect CALL/JMP must
        target an ENDBR instruction or suffer #CP.
      
        Additionally, since Alderlake (12th gen)/Sapphire-Rapids, speculation
        is limited to 2 instructions (and typically fewer) on branch targets
        not starting with ENDBR. CET-IBT also limits speculation of the next
        sequential instruction after the indirect CALL/JMP [1].
      
        CET-IBT is fundamentally incompatible with retpolines, but provides,
        as described above, speculation limits itself"
      
      [1] https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/branch-history-injection.html
      
      * tag 'x86_core_for_5.18_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (53 commits)
        kvm/emulate: Fix SETcc emulation for ENDBR
        x86/Kconfig: Only allow CONFIG_X86_KERNEL_IBT with ld.lld >= 14.0.0
        x86/Kconfig: Only enable CONFIG_CC_HAS_IBT for clang >= 14.0.0
        kbuild: Fixup the IBT kbuild changes
        x86/Kconfig: Do not allow CONFIG_X86_X32_ABI=y with llvm-objcopy
        x86: Remove toolchain check for X32 ABI capability
        x86/alternative: Use .ibt_endbr_seal to seal indirect calls
        objtool: Find unused ENDBR instructions
        objtool: Validate IBT assumptions
        objtool: Add IBT/ENDBR decoding
        objtool: Read the NOENDBR annotation
        x86: Annotate idtentry_df()
        x86,objtool: Move the ASM_REACHABLE annotation to objtool.h
        x86: Annotate call_on_stack()
        objtool: Rework ASM_REACHABLE
        x86: Mark __invalid_creds() __noreturn
        exit: Mark do_group_exit() __noreturn
        x86: Mark stop_this_cpu() __noreturn
        objtool: Ignore extra-symbol code
        objtool: Rename --duplicate to --lto
        ...
      70010521
  2. 26 Mar, 2022 13 commits
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · f0228146
      Linus Torvalds authored
      Pull trace event string verifier fix from Steven Rostedt:
       "The run-time string verifier checks all trace event formats as
        they are read from the tracing file to make sure that the %s pointers
        are not reading something that no longer exists.
      
        However, it failed to account for the valid case of '%*.s' where the
        length given is zero, and the string is NULL. It incorrectly flagged
        it as a null pointer dereference and gave a WARN_ON()"
      
      * tag 'trace-v5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Have trace event string test handle zero length strings
      f0228146
    • Linus Torvalds's avatar
      Merge tag 'usb-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 710f5d62
      Linus Torvalds authored
      Pull USB/Thunderbolt updates from Greg KH:
       "Here is the big set of USB and Thunderbolt changes for 5.18-rc1.
      
        Nothing major in here, just lots of little improvements and cleanups
        and new device support. Highlights are:
      
         - list iterator fixups for when we walk past the end of the list (a
           common problem that was cut/pasted in almost all USB gadget
           drivers)
      
         - xen USB driver "hardening" for malicious hosts
      
         - xhci driver updates and fixes for more hardware types
      
         - xhci debug cable fixes to make it actually work again
      
         - usb gadget audio driver improvements
      
         - usb gadget storage fixes to work with OS-X
      
         - lots of other small usb gadget fixes and updates
      
         - USB DWC3 driver improvements for more hardware types
      
         - Lots of other small USB driver improvements
      
         - DTS updates for some USB platforms
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (172 commits)
        usb: gadget: fsl_qe_udc: Add missing semicolon in qe_ep_dequeue()
        dt-bindings: usb: mtk-xhci: add compatible for mt8186
        usb: dwc3: Issue core soft reset before enabling run/stop
        usb: gadget: Makefile: remove ccflags-y
        USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
        usb: gadget: eliminate anonymous module_init & module_exit
        usb: usbip: eliminate anonymous module_init & module_exit
        xen/usb: harden xen_hcd against malicious backends
        usb: dwc3: gadget: Wait for ep0 xfers to complete during dequeue
        usb: dwc3: gadget: move cmd_endtransfer to extra function
        usb: dwc3: gadget: ep_queue simplify isoc start condition
        xen/usb: don't use arbitrary_virt_to_machine()
        usb: isp1760: remove redundant max_packet() macro
        usb: oxu210hp-hcd: remove redundant call to max_packet() macro
        usb: common: usb-conn-gpio: Make VBUS supply completely optional
        USB: storage: ums-realtek: fix error code in rts51x_read_mem()
        usb: early: xhci-dbc: Fix xdbc number parsing
        usb: early: xhci-dbc: Remove duplicate keep parsing
        x86/tsc: Be consistent about use_tsc_delay()
        usb: gadget: udc: s3c2410: remove usage of list iterator past the loop body
        ...
      710f5d62
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 5627ecb8
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
      
       - tracepoints when Linux acts as an I2C client
      
       - added support for AMD PSP
      
       - whole subsystem now uses generic_handle_irq_safe()
      
       - piix4 driver gained MMIO access enabling so far missed controllers
         with AMD chipsets
      
       - a bulk of device driver updates, refactorization, and fixes.
      
      * 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (61 commits)
        i2c: mux: demux-pinctrl: do not deactivate a master that is not active
        i2c: meson: Fix wrong speed use from probe
        i2c: add tracepoints for I2C slave events
        i2c: designware: Remove code duplication
        i2c: cros-ec-tunnel: Fix syntax errors in comments
        MAINTAINERS: adjust XLP9XX I2C DRIVER after removing the devicetree binding
        i2c: designware: Mark dw_i2c_plat_{suspend,resume}() as __maybe_unused
        i2c: mediatek: Add i2c compatible for Mediatek MT8168
        dt-bindings: i2c: update bindings for MT8168 SoC
        i2c: mt65xx: Simplify with clk-bulk
        i2c: i801: Drop two outdated comments
        i2c: xiic: Make bus names unique
        i2c: i801: Add support for the Process Call command
        i2c: i801: Drop useless masking in i801_access
        i2c: tegra: Add SMBus block read function
        i2c: designware: Use the i2c_mark_adapter_suspended/resumed() helpers
        i2c: designware: Lock the adapter while setting the suspended flag
        i2c: mediatek: remove redundant null check
        i2c: mediatek: modify bus speed calculation formula
        i2c: designware: Fix improper usage of readl
        ...
      5627ecb8
    • Linus Torvalds's avatar
      Merge tag 'write-page-prefaulting' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · a060c940
      Linus Torvalds authored
      Pull iomap fixlet from Andreas Gruenbacher:
       "Fix buffered write page prefaulting.
      
        I forgot to send it the previous merge window. I've only improved the
        patch description since"
      
      * tag 'write-page-prefaulting' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        fs/iomap: Fix buffered write page prefaulting
      a060c940
    • Linus Torvalds's avatar
      Merge tag 'array-bounds-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · b06a1758
      Linus Torvalds authored
      Pull array-bounds updates from Kees Cook:
       "This enables -Warray-bounds and -Wzero-length-bounds, now that the
        many bug fixes have landed all over the place in the kernel, and in
        GCC itself[1].
      
        A couple fixes[2] for known corner-case issues currently live in my
        "pending-fixes" tree which I'm expecting to send next week if other
        maintainers still haven't picked them up.
      
        I'm also expecting we can enable -Wstringop-overflow next cycle, as
        there are only a few stragglers[3], but it might even be possible for
        this release"
      
      [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578
      [2] https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=for-next/pending-fixes&id=2d253138910eec553fc706379914243d71de9b85
      [3] https://github.com/KSPP/linux/issues/181
      
      * tag 'array-bounds-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        Makefile: Enable -Wzero-length-bounds
        Makefile: Enable -Warray-bounds
      b06a1758
    • Linus Torvalds's avatar
      Merge tag 'memcpy-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 4be240b1
      Linus Torvalds authored
      Pull FORTIFY_SOURCE updates from Kees Cook:
       "This series consists of two halves:
      
         - strict compile-time buffer size checking under FORTIFY_SOURCE for
           the memcpy()-family of functions (for extensive details and
           rationale, see the first commit)
      
         - enabling FORTIFY_SOURCE for Clang, which has had many overlapping
           bugs that we've finally worked past"
      
      * tag 'memcpy-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        fortify: Add Clang support
        fortify: Make sure strlen() may still be used as a constant expression
        fortify: Use __diagnose_as() for better diagnostic coverage
        fortify: Make pointer arguments const
        Compiler Attributes: Add __diagnose_as for Clang
        Compiler Attributes: Add __overloadable for Clang
        Compiler Attributes: Add __pass_object_size for Clang
        fortify: Replace open-coded __gnu_inline attribute
        fortify: Update compile-time tests for Clang 14
        fortify: Detect struct member overflows in memset() at compile-time
        fortify: Detect struct member overflows in memmove() at compile-time
        fortify: Detect struct member overflows in memcpy() at compile-time
      4be240b1
    • Linus Torvalds's avatar
      Merge tag 'for-5.18/64bit-pi-2022-03-25' of git://git.kernel.dk/linux-block · 3f728213
      Linus Torvalds authored
      Pull block layer 64-bit data integrity support from Jens Axboe:
       "This adds support for 64-bit data integrity in the block layer and in
        NVMe"
      
      * tag 'for-5.18/64bit-pi-2022-03-25' of git://git.kernel.dk/linux-block:
        crypto: fix crc64 testmgr digest byte order
        nvme: add support for enhanced metadata
        block: add pi for extended integrity
        crypto: add rocksoft 64b crc guard tag framework
        lib: add rocksoft model crc64
        linux/kernel: introduce lower_48_bits function
        asm-generic: introduce be48 unaligned accessors
        nvme: allow integrity on extended metadata formats
        block: support pi with extended metadata
      3f728213
    • Linus Torvalds's avatar
      Merge tag 'for-5.18/alloc-cleanups-2022-03-25' of git://git.kernel.dk/linux-block · 752d422e
      Linus Torvalds authored
      Pull bio allocation fix from Jens Axboe:
       "We got some reports of users seeing:
      
      	Unexpected gfp: 0x2 (__GFP_HIGHMEM). Fixing up to gfp: 0x1192888
      
        which is a regression caused by the bio allocation cleanups"
      
      * tag 'for-5.18/alloc-cleanups-2022-03-25' of git://git.kernel.dk/linux-block:
        fs: do not pass __GFP_HIGHMEM to bio_alloc in do_mpage_readpage
      752d422e
    • Linus Torvalds's avatar
      Merge tag 'for-5.18/write-streams-2022-03-18' of git://git.kernel.dk/linux-block · 561593a0
      Linus Torvalds authored
      Pull NVMe write streams removal from Jens Axboe:
       "This removes the write streams support in NVMe. No vendor ever really
        shipped working support for this, and they are not interested in
        supporting it.
      
        With the NVMe support gone, we have nothing in the tree that supports
        this. Remove passing around of the hints.
      
        The only discussion point in this patchset imho is the fact that the
        file specific write hint setting/getting fcntl helpers will now return
        -1/EINVAL like they did before we supported write hints. No known
        applications use these functions, I only know of one prototype that I
        help do for RocksDB, and that's not used. That said, with a change
        like this, it's always a bit controversial. Alternatively, we could
        just make them return 0 and pretend it worked. It's placement based
        hints after all"
      
      * tag 'for-5.18/write-streams-2022-03-18' of git://git.kernel.dk/linux-block:
        fs: remove fs.f_write_hint
        fs: remove kiocb.ki_hint
        block: remove the per-bio/request write hint
        nvme: remove support or stream based temperature hint
      561593a0
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 9bf3fc50
      Linus Torvalds authored
      Pull devicetree updates from Rob Herring:
      
       - Add Krzysztof Kozlowski as co-maintainer for DT bindings providing
         much needed help.
      
       - DT schema validation now takes DTB files as input rather than
         intermediate YAML files. This decouples the validation from the
         source level syntax information. There's a bunch of schema fixes as a
         result of switching to DTB based validation which exposed some errors
         and incomplete schemas and examples.
      
       - Kbuild improvements to explicitly warn users running 'make
         dt_binding_check' on missing yamllint
      
       - Expand DT_SCHEMA_FILES kbuild variable to take just a partial
         filename or path instead of the full path to 1 file.
      
       - Convert various bindings to schema format: mscc,vsc7514-switch,
         multiple GNSS bindings, ahci-platform, i2c-at91, multiple UFS
         bindings, cortina,gemini-sata-bridge, cortina,gemini-ethernet, Atmel
         SHA, Atmel TDES, Atmel AES, armv7m-systick, Samsung Exynos display
         subsystem, nuvoton,npcm7xx-timer, samsung,s3c2410-i2c, zynqmp_dma,
         msm/mdp4, rda,8810pl-uart
      
       - New schemas for u-boot environment variable partition, TI clksel
      
       - New compatible strings for Renesas RZ/V2L SoC
      
       - Vendor prefixes for Xen, HPE, deprecated Synopsys, deprecated
         HiSilicon
      
       - Add/fix schemas for QEMU Arm 'virt' machine
      
       - Drop unused of_alias_get_alias_list() function
      
       - Add a script to check DT unittest EXPECT message output. Pass
         messages also now print by default at PR_INFO level to help test
         automation.
      
      * tag 'devicetree-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (96 commits)
        dt-bindings: kbuild: Make DT_SCHEMA_LINT a recursive variable
        dt-bindings: nvmem: add U-Boot environment variables binding
        dt-bindings: ufs: qcom: Add SM6350 compatible string
        dt-bindings: dmaengine: sifive,fu540-c000: include generic schema
        dt-bindings: gpio: pca95xx: drop useless consumer example
        Revert "of: base: Introduce of_alias_get_alias_list() to check alias IDs"
        dt-bindings: virtio,mmio: Allow setting devices 'dma-coherent'
        dt-bindings: gnss: Add two more chips
        dt-bindings: gnss: Rewrite sirfstar binding in YAML
        dt-bindings: gnss: Modify u-blox to use common bindings
        dt-bindings: gnss: Rewrite common bindings in YAML
        dt-bindings: ata: ahci-platform: Add rk3568-dwc-ahci compatible
        dt-bindings: ata: ahci-platform: Add power-domains property
        dt-bindings: ata: ahci-platform: Convert DT bindings to yaml
        dt-bindings: kbuild: Use DTB files for validation
        dt-bindings: kbuild: Pass DT_SCHEMA_FILES to dt-validate
        dt-bindings: Add QEMU virt machine compatible
        dt-bindings: arm: Convert QEMU fw-cfg to DT schema
        dt-bindings: i2c: at91: Add SAMA7G5 compatible strings list
        dt-bindings: i2c: convert i2c-at91 to json-schema
        ...
      9bf3fc50
    • Linus Torvalds's avatar
      Revert "swiotlb: rework "fix info leak with DMA_FROM_DEVICE"" · bddac7c1
      Linus Torvalds authored
      This reverts commit aa6f8dcb.
      
      It turns out this breaks at least the ath9k wireless driver, and
      possibly others.
      
      What the ath9k driver does on packet receive is to set up the DMA
      transfer with:
      
        int ath_rx_init(..)
        ..
                      bf->bf_buf_addr = dma_map_single(sc->dev, skb->data,
                                                       common->rx_bufsize,
                                                       DMA_FROM_DEVICE);
      
      and then the receive logic (through ath_rx_tasklet()) will fetch
      incoming packets
      
        static bool ath_edma_get_buffers(..)
        ..
              dma_sync_single_for_cpu(sc->dev, bf->bf_buf_addr,
                                      common->rx_bufsize, DMA_FROM_DEVICE);
      
              ret = ath9k_hw_process_rxdesc_edma(ah, rs, skb->data);
              if (ret == -EINPROGRESS) {
                      /*let device gain the buffer again*/
                      dma_sync_single_for_device(sc->dev, bf->bf_buf_addr,
                                      common->rx_bufsize, DMA_FROM_DEVICE);
                      return false;
              }
      
      and it's worth noting how that first DMA sync:
      
          dma_sync_single_for_cpu(..DMA_FROM_DEVICE);
      
      is there to make sure the CPU can read the DMA buffer (possibly by
      copying it from the bounce buffer area, or by doing some cache flush).
      The iommu correctly turns that into a "copy from bounce bufer" so that
      the driver can look at the state of the packets.
      
      In the meantime, the device may continue to write to the DMA buffer, but
      we at least have a snapshot of the state due to that first DMA sync.
      
      But that _second_ DMA sync:
      
          dma_sync_single_for_device(..DMA_FROM_DEVICE);
      
      is telling the DMA mapping that the CPU wasn't interested in the area
      because the packet wasn't there.  In the case of a DMA bounce buffer,
      that is a no-op.
      
      Note how it's not a sync for the CPU (the "for_device()" part), and it's
      not a sync for data written by the CPU (the "DMA_FROM_DEVICE" part).
      
      Or rather, it _should_ be a no-op.  That's what commit aa6f8dcb
      broke: it made the code bounce the buffer unconditionally, and changed
      the DMA_FROM_DEVICE to just unconditionally and illogically be
      DMA_TO_DEVICE.
      
      [ Side note: purely within the confines of the swiotlb driver it wasn't
        entirely illogical: The reason it did that odd DMA_FROM_DEVICE ->
        DMA_TO_DEVICE conversion thing is because inside the swiotlb driver,
        it uses just a swiotlb_bounce() helper that doesn't care about the
        whole distinction of who the sync is for - only which direction to
        bounce.
      
        So it took the "sync for device" to mean that the CPU must have been
        the one writing, and thought it meant DMA_TO_DEVICE. ]
      
      Also note how the commentary in that commit was wrong, probably due to
      that whole confusion, claiming that the commit makes the swiotlb code
      
                                        "bounce unconditionally (that is, also
          when dir == DMA_TO_DEVICE) in order do avoid synchronising back stale
          data from the swiotlb buffer"
      
      which is nonsensical for two reasons:
      
       - that "also when dir == DMA_TO_DEVICE" is nonsensical, as that was
         exactly when it always did - and should do - the bounce.
      
       - since this is a sync for the device (not for the CPU), we're clearly
         fundamentally not coping back stale data from the bounce buffers at
         all, because we'd be copying *to* the bounce buffers.
      
      So that commit was just very confused.  It confused the direction of the
      synchronization (to the device, not the cpu) with the direction of the
      DMA (from the device).
      Reported-and-bisected-by: default avatarOleksandr Natalenko <oleksandr@natalenko.name>
      Reported-by: default avatarOlha Cherevyk <olha.cherevyk@gmail.com>
      Cc: Halil Pasic <pasic@linux.ibm.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Kalle Valo <kvalo@kernel.org>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Toke Høiland-Jørgensen <toke@toke.dk>
      Cc: Maxime Bizon <mbizon@freebox.fr>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bddac7c1
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.17-1' of https://github.com/cminyard/linux-ipmi · 52d543b5
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
      
       - Little fixes for various things people have noticed.
      
       - One enhancement, the IPMI over IPMB (I2c) is modified to allow it to
         take a separate sender and receiver device. The Raspberry Pi has an
         I2C slave device that cannot send.
      
      * tag 'for-linus-5.17-1' of https://github.com/cminyard/linux-ipmi:
        ipmi: initialize len variable
        ipmi: kcs: aspeed: Remove old bindings support
        ipmi:ipmb: Add the ability to have a separate slave and master device
        ipmi:ipmi_ipmb: Unregister the SMI on remove
        ipmi: kcs: aspeed: Add AST2600 compatible string
        ipmi: ssif: replace strlcpy with strscpy
        ipmi/watchdog: Constify ident
        ipmi: Add the git repository to the MAINTAINERS file
      52d543b5
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · a452c4eb
      Linus Torvalds authored
      Pull reiserfs updates from Jan Kara:
       "The biggest change in this pull is the addition of a deprecation
        message about reiserfs with the outlook that we'd eventually be able
        to remove it from the kernel. Because it is practically unmaintained
        and untested and odd enough that people don't want to bother with it
        anymore...
      
        Otherwise there are small udf and ext2 fixes"
      
      * tag 'fs_for_v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: remove redundant assignment of variable etype
        reiserfs: Deprecate reiserfs
        ext2: correct max file size computing
        reiserfs: get rid of AOP_FLAG_CONT_EXPAND flag
      a452c4eb
  3. 25 Mar, 2022 25 commits
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · a8988507
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
       "A few fsnotify improvements and cleanups"
      
      * tag 'fsnotify_for_v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fsnotify: remove redundant parameter judgment
        fsnotify: optimize FS_MODIFY events with no ignored masks
        fsnotify: fix merge with parent's ignored mask
      a8988507
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2022-03-25' of git://anongit.freedesktop.org/drm/drm · cb7cbaae
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Some fixes were queued up in and in light of the fbdev regressions,
        I've pulled those in as well.
      
        core:
         - Make audio and color plane support checking only happen when a CEA
           extension block is found.
         - Small selftest fix.
      
        fbdev:
         - two regressions fixes from speedup patches.
      
        ttm:
         - Fix a small regression from ttm_resource_fini()
      
        i915:
         - Reject unsupported TMDS rates on ICL+
         - Treat SAGV block time 0 as SAGV disabled
         - Fix PSF GV point mask when SAGV is not possible
         - Fix renamed INTEL_INFO->media.arch/ver field"
      
      * tag 'drm-next-2022-03-25' of git://anongit.freedesktop.org/drm/drm:
        fbdev: Fix cfb_imageblit() for arbitrary image widths
        fbdev: Fix sys_imageblit() for arbitrary image widths
        drm/edid: fix CEA extension byte #3 parsing
        drm/edid: check basic audio support on CEA extension block
        drm/i915: Fix renamed struct field
        drm/i915: Fix PSF GV point mask when SAGV is not possible
        drm/i915: Treat SAGV block time 0 as SAGV disabled
        drm/i915: Reject unsupported TMDS rates on ICL+
        drm/selftest: plane_helper: Put test structures in static storage
        drm/ttm: Fix a kernel oops due to an invalid read
      cb7cbaae
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 46f538bf
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "New Device Support:
         - Add support for PM6150L to Qualcomm WLED
      
        Fix-ups"
         - Use kcalloc() to avoid open-coding; pwm_bl
         - Device Tree changes; qcom-wled
         - Cleanup or simplify code; backlight"
      
      * tag 'backlight-next-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: backlight: Slighly simplify devm_of_find_backlight()
        backlight: qcom-wled: Add PM6150L compatible
        dt-bindings: backlight: qcom-wled: Add PM6150L compatible
        backlight: pwm_bl: Avoid open coded arithmetic in memory allocation
      46f538bf
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 8350e833
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Drivers:
         - Add support for Maxim MAX77714 PMIC
      
        Removed Drivers:
         - Remove support for ST-Ericsson AB8500 DebugFS
      
        New Device Support:
         - Add support for Silergy SY7636A to Simple MFD I2C
         - Add support for MediaTek MT6366 PMIC to MT6358 IRQ
         - Add support for Charger to Intel PMIC CRC
         - Add support for Raptor Lake to Intel LPSS PCI
      
        New Functionality:
         - Add support for Reboot to Rockchip RK808
      
        Fix-ups:
         - Device Tree changes (includcing YAML conversion) for
           silergy,sy7636a, maxim,max77843, google,cros-ec, maxim,max14577,
           maxim,max77802, maxim,max77714, qcom,tcsr, qcom,spmi-pmic,
           stericsson,ab8500, stericsson,db8500-prcmu,
           samsung,exynos5433-lpass, mt6397, syscon, brcm,cru
         - Visible to menuconfig; simple-mfd-i2c
         - Clean-up or clarify code; max77686, intel_soc_pmic_crc
         - Improve error handling; mc13xxx-core, stmfx, asic3
         - Pass device information to child devices; iqs62x, intel-lpss-acpi
         - Individually identify IRQ domains; intel_soc_pmic_core
         - Remove superfluous code; dbx500-prcmu, exynos-lpass
         - Staticify and constify; arizona-i2c
         - Mark sometimes used data as __maybe_unused; atmel-flexcom
         - Account for different ACPI tables on AOSP/Windows platforms; arizona-spi
         - Use provided (platform) APIs; ab8500-core
         - Trivial (whitespace, spelling); rohm-bd9576"
      
      * tag 'mfd-next-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (50 commits)
        dt-bindings: mfd: syscon: Add microchip,lan966x-cpu-syscon compatible
        mfd: bd9576: fix typos in comments
        mfd: Use platform_get_irq() to get the interrupt
        mfd: db8500-prcmu: Remove unused inline function
        mfd: arizona-spi: Add Android board ACPI table handling
        mfd: arizona-spi: Split Windows ACPI init code into its own function
        mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
        MAINTAINERS: Rectify entry for ROHM MULTIFUNCTION BD9571MWV-M PMIC DEVICE DRIVERS
        mfd: intel-lpss: Provide an SSP type to the driver
        dt-bindings: mfd: brcm,cru: Rename pinctrl node
        dt-bindings: Add compatibles for undocumented trivial syscons
        mfd: atmel-flexcom: Fix compilation warning
        dt-bindings: mfd: Add compatible for the MediaTek MT6366 PMIC
        dt-bindings: mfd: samsung,exynos5433-lpass: Convert to dtschema
        mfd: exynos-lpass: Drop unneeded syscon.h include
        mfd: intel-lpss: Add Intel Raptor Lake PCH-S PCI IDs
        mfd: ab8500: Drop debugfs module
        mfd: sta2x11: Use GFP_KERNEL instead of GFP_ATOMIC
        mfd: ab8500: Rewrite bindings in YAML
        mfd: qcom-spmi-pmic: Add pm8953 compatible
        ...
      8350e833
    • Linus Torvalds's avatar
      Merge tag 'mtd/changes-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · e35a4a4e
      Linus Torvalds authored
      Pull MTD updates from Miquel Raynal:
       "There has been a lot of activity in the MTD subsystem recently, with a
        number of SPI-NOR cleanups as well as the introduction of ECC engines
        that can be used by SPI controllers (hence a few SPI patches in here).
      
        Core MTD changes:
         - Replace the expert mode symbols with a single helper
         - Fix misuses of of_match_ptr()
         - Remove partid and partname debugfs files
         - tests: Fix eraseblock read speed miscalculation for lower partition
           sizes
         - TRX parser: Allow to use on MediaTek MIPS SoCs
      
        MTD driver changes:
         - spear_smi: use GFP_KERNEL
         - mchp48l640: Add SPI ID table
         - mchp23k256: Add SPI ID table
         - blkdevs: Avoid soft lockups with some mtd/spi devices
         - aspeed-smc: Improve probe resilience
      
        Hyperbus changes:
         - HBMC_AM654 should depend on ARCH_K3
      
        NAND core changes:
         - ECC:
            - Add infrastructure to support hardware engines
            - Add a new helper to retrieve the ECC context
            - Provide a helper to retrieve a pilelined engine device
      
        NAND-ECC changes:
         - Macronix ECC engine:
            - Add Macronix external ECC engine support
            - Support SPI pipelined mode
            - Make two read-only arrays static const
            - Fix compile test issue
      
        Raw NAND core changes:
         - Fix misuses of of_match_node()
         - Rework of_get_nand_bus_width()
         - Remove of_get_nand_on_flash_bbt() wrapper
         - Protect access to rawnand devices while in suspend
         - bindings: Document the wp-gpios property
      
        Rax NAND controller driver changes:
         - atmel: Fix refcount issue in atmel_nand_controller_init
         - nandsim:
            - Add NS_PAGE_BYTE_SHIFT macro to replace the repeat pattern
            - Merge repeat codes in ns_switch_state
            - Replace overflow check with kzalloc to single kcalloc
         - rockchip: Fix platform_get_irq.cocci warning
         - stm32_fmc2: Add NAND Write Protect support
         - pl353: Set the nand chip node as the flash node
         - brcmnand: Fix sparse warnings in bcma_nand
         - omap_elm: Remove redundant variable 'errors'
         - gpmi:
            - Support fast edo timings for mx28
            - Validate controller clock rate
            - Fix controller timings setting
         - brcmnand:
            - Add BCMA shim
            - BCMA controller uses command shift of 0
            - Allow platform data instantation
            - Add platform data structure for BCMA
            - Allow working without interrupts
            - Move OF operations out of brcmnand_init_cs()
            - Avoid pdev in brcmnand_init_cs()
            - Allow SoC to provide I/O operations
            - Assign soc as early as possible
      
        Onenand changes:
         - Check for error irq
      
        SPI-NAND core changes:
         - Delay a little bit the dirmap creation
         - Create direct mapping descriptors for ECC operations
      
        SPI-NAND driver changes:
         - macronix: Use random program load
      
        SPI NOR core changes:
         - Move vendor specific code out of the core into vendor drivers.
         - Unify all function and object names in the vendor modules.
         - Make setup() callback optional to improve readability.
         - Skip erase logic when the SPI_NOR_NO_ERASE flag is set at flash
           declaration.
      
        SPI changes:
         - Macronix SPI controller:
            - Fix the transmit path
            - Create a helper to configure the controller before an operation
            - Create a helper to ease the start of an operation
            - Add support for direct mapping
            - Add support for pipelined ECC operations
         - spi-mem:
            - Introduce a capability structure
            - Check the controller extra capabilities
            - cadence-quadspi/mxic: Provide capability structures
            - Kill the spi_mem_dtr_supports_op() helper
            - Add an ecc parameter to the spi_mem_op structure
      
        Binding changes:
         - Dropped mtd/cortina,gemini-flash.txt
         - Convert BCM47xx partitions to json-schema
         - Vendor prefixes: Clarify Macronix prefix
         - SPI NAND: Convert spi-nand description file to yaml
         - Raw NAND chip: Create a NAND chip description
         - Raw NAND controller:
            - Harmonize the property types
            - Fix a comment in the examples
            - Fix the reg property description
         - Describe Macronix NAND ECC engine
         - Macronix SPI controller:
            - Document the nand-ecc-engine property
            - Convert to yaml
            - The interrupt property is not mandatory"
      
      * tag 'mtd/changes-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (104 commits)
        mtd: nand: ecc: mxic: Fix compile test issue
        mtd: nand: mxic-ecc: make two read-only arrays static const
        mtd: hyperbus: HBMC_AM654 should depend on ARCH_K3
        mtd: core: Remove partid and partname debugfs files
        dt-bindings: mtd: partitions: convert BCM47xx to the json-schema
        mtd: tests: Fix eraseblock read speed miscalculation for lower partition sizes
        mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init
        mtd: rawnand: rockchip: fix platform_get_irq.cocci warning
        mtd: spi-nor: Skip erase logic when SPI_NOR_NO_ERASE is set
        mtd: spi-nor: renumber flags
        mtd: spi-nor: slightly change code style in spi_nor_sr_ready()
        mtd: spi-nor: spansion: rename vendor specific functions and defines
        mtd: spi-nor: spansion: convert USE_CLSR to a manufacturer flag
        mtd: spi-nor: move all spansion specifics into spansion.c
        mtd: spi-nor: spansion: slightly rework control flow in late_init()
        mtd: spi-nor: micron-st: rename vendor specific functions and defines
        mtd: spi-nor: micron-st: convert USE_FSR to a manufacturer flag
        mtd: spi-nor: move all micron-st specifics into micron-st.c
        mtd: spi-nor: xilinx: correct the debug message
        mtd: spi-nor: xilinx: rename vendor specific functions and defines
        ...
      e35a4a4e
    • Linus Torvalds's avatar
      Merge tag 'for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 8eb48fc7
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "Power-supply core:
      
         - Introduce "Bypass" charging type used by USB PPS standard
      
         - Refactor power_supply_set_input_current_limit_from_supplier()
      
         - Add fwnode support to power_supply_get_battery_info()
      
        Drivers:
      
         - ab8500: continue migrating towards using standard core APIs
      
         - axp288 fuel-gauge: refactor driver to be fully resource managed
      
         - battery-samsung-sdi: new in-kernel provider for (constant) Samsung
           battery info
      
         - bq24190: disable boost regulator on shutdown
      
         - bq24190: add support for battery-info on ACPI based systems
      
         - bq25890: prepare driver for usage on ACPI based systems
      
         - bq25890: add boost regulator support
      
         - cpcap-battery: add NVMEM based battery detection support
      
         - injoinic ip5xxx: new driver for power bank IC
      
         - upi ug3105: new battery driver
      
         - misc small improvements and fixes"
      
      * tag 'for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (94 commits)
        power: ab8500_chargalg: Use CLOCK_MONOTONIC
        power: supply: Add a driver for Injoinic power bank ICs
        dt-bindings: trivial-devices: Add Injoinic power bank ICs
        dt-bindings: vendor-prefixes: Add Injoinic
        power: supply: ab8500: Remove unused variable
        power: supply: da9150-fg: Remove unnecessary print function dev_err()
        power: supply: ab8500: fix a handful of spelling mistakes
        power: supply: ab8500_fg: Account for line impedance
        dt-bindings: power: supply: ab8500_fg: Add line impedance
        power: supply: axp20x_usb_power: fix platform_get_irq.cocci warnings
        power: supply: axp20x_ac_power: fix platform_get_irq.cocci warning
        power: supply: wm8350-power: Add missing free in free_charger_irq
        power: supply: wm8350-power: Handle error for wm8350_register_irq
        power: supply: Static data for Samsung batteries
        power: supply: ab8500_fg: Use VBAT-to-Ri if possible
        power: supply: Support VBAT-to-Ri lookup tables
        power: supply: ab8500: Standardize BTI resistance
        power: supply: ab8500: Standardize alert mode charging
        power: supply: ab8500: Standardize maintenance charging
        power: supply: bq24190_charger: Delay applying charge_type changes when OTG 5V Vbus boost is on
        ...
      8eb48fc7
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.18-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 148a6504
      Linus Torvalds authored
      Pull pci updates from Bjorn Helgaas:
       "Enumeration:
         - Move the VGA arbiter from drivers/gpu to drivers/pci because it's
           PCI-specific, not GPU-specific (Bjorn Helgaas)
         - Select the default VGA device consistently whether it's enumerated
           before or after VGA arbiter init, which fixes arches that enumerate
           PCI devices late (Huacai Chen)
      
        Resource management:
         - Support BAR sizes up to 8TB (Dongdong Liu)
      
        PCIe native device hotplug:
         - Fix "Command Completed" tracking to avoid spurious timouts when
           powering off empty slots (Liguang Zhang)
         - Quirk Qualcomm devices that don't implement Command Completed
           correctly, again to avoid spurious timeouts (Manivannan Sadhasivam)
      
        Peer-to-peer DMA:
         - Add Intel 3rd Gen Intel Xeon Scalable Processors to whitelist
           (Michael J. Ruhl)
      
        APM X-Gene PCIe controller driver:
         - Revert generic DT parsing changes that broke some machines in the
           field (Marc Zyngier)
      
        Freescale i.MX6 PCIe controller driver:
         - Allow controller probe to succeed even when no devices currently
           present to allow hot-add later (Fabio Estevam)
         - Enable power management on i.MX6QP (Richard Zhu)
         - Assert CLKREQ# on i.MX8MM so enumeration doesn't hang when no
           device is connected (Richard Zhu)
      
        Marvell Aardvark PCIe controller driver:
         - Fix MSI and MSI-X support (Marek Behún, Pali Rohár)
         - Add support for ERR and PME interrupts (Pali Rohár)
      
        Marvell MVEBU PCIe controller driver:
         - Add DT binding and support for "num-lanes" (Pali Rohár)
         - Add support for INTx interrupts (Pali Rohár)
      
        Microsoft Hyper-V host bridge driver:
         - Avoid unnecessary hypercalls when unmasking IRQs on ARM64 (Boqun
           Feng)
      
        Qualcomm PCIe controller driver:
         - Add SM8450 DT binding and driver support (Dmitry Baryshkov)
      
        Renesas R-Car PCIe controller driver:
         - Help the controller get to the L1 state since the hardware can't do
           it on its own (Marek Vasut)
         - Return PCI_ERROR_RESPONSE (~0) for reads that fail on PCIe (Marek
           Vasut)
      
        SiFive FU740 PCIe controller driver:
         - Drop redundant '-gpios' from DT GPIO lookup (Ben Dooks)
         - Force 2.5GT/s for initial device probe (Ben Dooks)
      
        Socionext UniPhier Pro5 controller driver:
         - Add NX1 DT binding and driver support (Kunihiko Hayashi)
      
        Synopsys DesignWare PCIe controller driver:
         - Restore MSI configuration so MSI works after resume (Jisheng
           Zhang)"
      
      * tag 'pci-v5.18-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (94 commits)
        x86/PCI: Add #includes to asm/pci_x86.h
        PCI: ibmphp: Remove unused assignments
        PCI: cpqphp: Remove unused assignments
        PCI: fu740: Remove unused assignments
        PCI: kirin: Remove unused assignments
        PCI: Remove unused assignments
        PCI: Declare pci_filp_private only when HAVE_PCI_MMAP
        PCI: Avoid broken MSI on SB600 USB devices
        PCI: fu740: Force 2.5GT/s for initial device probe
        PCI: xgene: Revert "PCI: xgene: Fix IB window setup"
        PCI: xgene: Revert "PCI: xgene: Use inbound resources for setup"
        PCI: imx6: Assert i.MX8MM CLKREQ# even if no device present
        PCI: imx6: Invoke the PHY exit function after PHY power off
        PCI: rcar: Use PCI_SET_ERROR_RESPONSE after read which triggered an exception
        PCI: rcar: Finish transition to L1 state in rcar_pcie_config_access()
        PCI: dwc: Restore MSI Receiver mask during resume
        PCI: fu740: Drop redundant '-gpios' from DT GPIO lookup
        PCI/VGA: Replace full MIT license text with SPDX identifier
        PCI/VGA: Use unsigned format string to print lock counts
        PCI/VGA: Log bridge control messages when adding devices
        ...
      148a6504
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v5.18_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 636f64db
      Linus Torvalds authored
      Pull RAS updates from Borislav Petkov:
      
       - More noinstr fixes
      
       - Add an erratum workaround for Intel CPUs which, in certain
         circumstances, end up consuming an unrelated uncorrectable memory
         error when using fast string copy insns
      
       - Remove the MCE tolerance level control as it is not really needed or
         used anymore
      
      * tag 'ras_core_for_v5.18_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Remove the tolerance level control
        x86/mce: Work around an erratum on fast string copy instructions
        x86/mce: Use arch atomic and bit helpers
      636f64db
    • Linus Torvalds's avatar
      Merge tag 'gpio-updates-for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · ebcb577a
      Linus Torvalds authored
      Pull gpio updates from Bartosz Golaszewski:
       "Relatively few updates for this release cycle. We have a single new
        driver and some minor changes in drivers, more work on limiting the
        usage of of_node in drivers and DT updates:
      
         - new driver: gpio-en7523
      
         - dt-bindings: convertion of faraday,ftgpio010 to YAML, new
           compatible string in gpio-vf610 and a bugfix in an example
      
         - gpiolib core: several improvements and some code shrink
      
         - documentation: convert all public docs into kerneldoc format
      
         - set IRQ bus token in gpio-crystalcove (addresses a debugfs issue)
      
         - add a missing return value check for kstrdup() in gpio-merrifield
      
         - allow gpio-tps68470 to be built as module
      
         - more work on limiting usage of of_node in GPIO drivers
      
         - several sysfs interface improvements
      
         - use SDPX in gpio-ts4900"
      
      * tag 'gpio-updates-for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: ts4900: Use SPDX header
        gpiolib: Use list_first_entry()/list_last_entry()
        gpiolib: sysfs: Simplify edge handling in the code
        gpiolib: sysfs: Move kstrtox() calls outside of the mutex lock
        gpiolib: sysfs: Move sysfs_emit() calls outside of the mutex lock
        gpiolib: make struct comments into real kernel docs
        dt-bindings: gpio: convert faraday,ftgpio01 to yaml
        dt-bindings: gpio: gpio-vf610: Add imx93 compatible string
        gpiolib: Simplify error path in gpiod_get_index() when requesting GPIO
        gpiolib: Use short form of ternary operator in gpiod_get_index()
        gpiolib: Introduce for_each_gpio_desc_with_flag() macro
        gpio: Add support for Airoha EN7523 GPIO controller
        dt-bindings: arm: airoha: Add binding for Airoha GPIO controller
        dt-bindings: gpio: fix gpio-hog example
        gpio: tps68470: Allow building as module
        gpio: tegra: Get rid of duplicate of_node assignment
        gpio: altera-a10sr: Switch to use fwnode instead of of_node
        gpio: merrifield: check the return value of devm_kstrdup()
        gpio: crystalcove: Set IRQ domain bus token to DOMAIN_BUS_WIRED
      ebcb577a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 5e206459
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - rework of generic input handling which ultimately makes the
         processing of tablet events more generic and reliable (Benjamin
         Tissoires)
      
       - fixes for handling unnumbered reports fully correctly in i2c-hid
         (Angela Czubak, Dmitry Torokhov)
      
       - untangling of intermingled code for sending and handling output
         reports in i2c-hid (Dmitry Torokhov)
      
       - Apple magic keyboard support improvements for newer models (José
         Expósito)
      
       - Apple T2 Macs support improvements (Aun-Ali Zaidi, Paul Pawlowski)
      
       - driver for Razer Blackwidow keyboards (Jelle van der Waa)
      
       - driver for SiGma Micro keyboards (Desmond Lim)
      
       - integration of first part of DIGImend patches in order to ultimately
         vastly improve Linux support of tablets (Nikolai Kondrashov, José
         Expósito)
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (55 commits)
        HID: intel-ish-hid: Use dma_alloc_coherent for firmware update
        Input: docs: add more details on the use of BTN_TOOL
        HID: input: accommodate priorities for slotted devices
        HID: input: remove the need for HID_QUIRK_INVERT
        HID: input: enforce Invert usage to be processed before InRange
        HID: core: for input reports, process the usages by priority list
        HID: compute an ordered list of input fields to process
        HID: input: move up out-of-range processing of input values
        HID: input: rework spaghetti code with switch statements
        HID: input: tag touchscreens as such if the physical is not there
        HID: core: split data fetching from processing in hid_input_field()
        HID: core: de-duplicate some code in hid_input_field()
        HID: core: statically allocate read buffers
        HID: uclogic: Support multiple frame input devices
        HID: uclogic: Define report IDs before their descriptors
        HID: uclogic: Put version first in rdesc namespace
        HID: uclogic: Use "frame" instead of "buttonpad"
        HID: uclogic: Use different constants for frame report IDs
        HID: uclogic: Specify total report size to buttonpad macro
        HID: uclogic: Switch to matching subreport bytes
        ...
      5e206459
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v5.18-1' of... · 14646776
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver updates from Hans de Goede:
        "New drivers:
          - AMD Host System Management Port (HSMP)
          - Intel Software Defined Silicon
      
        Removed drivers (functionality folded into other drivers):
          - intel_cht_int33fe_microb
          - surface3_button
      
        amd-pmc:
          - s2idle bug-fixes
          - Support for AMD Spill to DRAM STB feature
      
        hp-wmi:
          - Fix SW_TABLET_MODE detection method (and other fixes)
          - Support omen thermal profile policy v1
      
        serial-multi-instantiate:
          - Add SPI device support
          - Add support for CS35L41 amplifiers used in new laptops
      
        think-lmi:
          - syfs-class-firmware-attributes Certificate authentication support
      
        thinkpad_acpi:
          - Fixes + quirks
          - Add platform_profile support on AMD based ThinkPads
      
        x86-android-tablets:
          - Improve Asus ME176C / TF103C support
          - Support Nextbook Ares 8, Lenovo Tab 2 830 and 1050 tablets
      
        Lots of various other small fixes and hardware-id additions"
      
      * tag 'platform-drivers-x86-v5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (60 commits)
        platform/x86: think-lmi: Certificate authentication support
        Documentation: syfs-class-firmware-attributes: Lenovo Certificate support
        platform/x86: amd-pmc: Only report STB errors when STB enabled
        platform/x86: amd-pmc: Drop CPU QoS workaround
        platform/x86: amd-pmc: Output error codes in messages
        platform/x86: amd-pmc: Move to later in the suspend process
        ACPI / x86: Add support for LPS0 callback handler
        platform/x86: thinkpad_acpi: consistently check fan_get_status return.
        platform/x86: hp-wmi: support omen thermal profile policy v1
        platform/x86: hp-wmi: Changing bios_args.data to be dynamically allocated
        platform/x86: hp-wmi: Fix 0x05 error code reported by several WMI calls
        platform/x86: hp-wmi: Fix SW_TABLET_MODE detection method
        platform/x86: hp-wmi: Fix hp_wmi_read_int() reporting error (0x05)
        platform/x86: amd-pmc: Validate entry into the deepest state on resume
        platform/x86: thinkpad_acpi: Don't use test_bit on an integer
        platform/x86: thinkpad_acpi: Fix compiler warning about uninitialized err variable
        platform/x86: thinkpad_acpi: clean up dytc profile convert
        platform/x86: x86-android-tablets: Depend on EFI and SPI
        platform/x86: amd-pmc: uninitialized variable in amd_pmc_s2d_init()
        platform/x86: intel-uncore-freq: fix uncore_freq_common_init() error codes
        ...
      14646776
    • Linus Torvalds's avatar
      Merge tag 'kbuild-gnu11-v5.18' of... · 50560ce6
      Linus Torvalds authored
      Merge tag 'kbuild-gnu11-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild update for C11 language base from Masahiro Yamada:
       "Kbuild -std=gnu11 updates for v5.18
      
        Linus pointed out the benefits of C99 some years ago, especially
        variable declarations in loops [1]. At that time, we were not ready
        for the migration due to old compilers.
      
        Recently, Jakob Koschel reported a bug in list_for_each_entry(), which
        leaks the invalid pointer out of the loop [2]. In the discussion, we
        agreed that the time had come. Now that GCC 5.1 is the minimum
        compiler version, there is nothing to prevent us from going to
        -std=gnu99, or even straight to -std=gnu11.
      
        Discussions for a better list iterator implementation are ongoing, but
        this patch set must land first"
      
      [1] https://lore.kernel.org/all/CAHk-=wgr12JkKmRd21qh-se-_Gs69kbPgR9x4C+Es-yJV2GLkA@mail.gmail.com/
      [2] https://lore.kernel.org/lkml/86C4CE7D-6D93-456B-AA82-F8ADEACA40B7@gmail.com/
      
      * tag 'kbuild-gnu11-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        Kbuild: use -std=gnu11 for KBUILD_USERCFLAGS
        Kbuild: move to -std=gnu11
        Kbuild: use -Wdeclaration-after-statement
        Kbuild: add -Wno-shift-negative-value where -Wextra is used
      50560ce6
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 29c8c183
      Linus Torvalds authored
      Merge yet more updates from Andrew Morton:
       "This is the material which was staged after willystuff in linux-next.
      
        Subsystems affected by this patch series: mm (debug, selftests,
        pagecache, thp, rmap, migration, kasan, hugetlb, pagemap, madvise),
        and selftests"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (113 commits)
        selftests: kselftest framework: provide "finished" helper
        mm: madvise: MADV_DONTNEED_LOCKED
        mm: fix race between MADV_FREE reclaim and blkdev direct IO read
        mm: generalize ARCH_HAS_FILTER_PGPROT
        mm: unmap_mapping_range_tree() with i_mmap_rwsem shared
        mm: warn on deleting redirtied only if accounted
        mm/huge_memory: remove stale locking logic from __split_huge_pmd()
        mm/huge_memory: remove stale page_trans_huge_mapcount()
        mm/swapfile: remove stale reuse_swap_page()
        mm/khugepaged: remove reuse_swap_page() usage
        mm/huge_memory: streamline COW logic in do_huge_pmd_wp_page()
        mm: streamline COW logic in do_swap_page()
        mm: slightly clarify KSM logic in do_swap_page()
        mm: optimize do_wp_page() for fresh pages in local LRU pagevecs
        mm: optimize do_wp_page() for exclusive pages in the swapcache
        mm/huge_memory: make is_transparent_hugepage() static
        userfaultfd/selftests: enable hugetlb remap and remove event testing
        selftests/vm: add hugetlb madvise MADV_DONTNEED MADV_REMOVE test
        mm: enable MADV_DONTNEED for hugetlb mappings
        kasan: disable LOCKDEP when printing reports
        ...
      29c8c183
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.18-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · aa5b537b
      Linus Torvalds authored
      Pull RISC-V updates from Palmer Dabbelt:
      
       - Support for Sv57-based virtual memory.
      
       - Various improvements for the MicroChip PolarFire SOC and the
         associated Icicle dev board, which should allow upstream kernels to
         boot without any additional modifications.
      
       - An improved memmove() implementation.
      
       - Support for the new Ssconfpmf and SBI PMU extensions, which allows
         for a much more useful perf implementation on RISC-V systems.
      
       - Support for restartable sequences.
      
      * tag 'riscv-for-linus-5.18-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (36 commits)
        rseq/selftests: Add support for RISC-V
        RISC-V: Add support for restartable sequence
        MAINTAINERS: Add entry for RISC-V PMU drivers
        Documentation: riscv: Remove the old documentation
        RISC-V: Add sscofpmf extension support
        RISC-V: Add perf platform driver based on SBI PMU extension
        RISC-V: Add RISC-V SBI PMU extension definitions
        RISC-V: Add a simple platform driver for RISC-V legacy perf
        RISC-V: Add a perf core library for pmu drivers
        RISC-V: Add CSR encodings for all HPMCOUNTERS
        RISC-V: Remove the current perf implementation
        RISC-V: Improve /proc/cpuinfo output for ISA extensions
        RISC-V: Do no continue isa string parsing without correct XLEN
        RISC-V: Implement multi-letter ISA extension probing framework
        RISC-V: Extract multi-letter extension names from "riscv, isa"
        RISC-V: Minimal parser for "riscv, isa" strings
        RISC-V: Correctly print supported extensions
        riscv: Fixed misaligned memory access. Fixed pointer comparison.
        MAINTAINERS: update riscv/microchip entry
        riscv: dts: microchip: add new peripherals to icicle kit device tree
        ...
      aa5b537b
    • Linus Torvalds's avatar
      Merge tag 's390-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · d710d370
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Raise minimum supported machine generation to z10, which comes with
         various cleanups and code simplifications (usercopy/spectre
         mitigation/etc).
      
       - Rework extables and get rid of anonymous out-of-line fixups.
      
       - Page table helpers cleanup. Add set_pXd()/set_pte() helper functions.
         Covert pte_val()/pXd_val() macros to functions.
      
       - Optimize kretprobe handling by avoiding extra kprobe on
         __kretprobe_trampoline.
      
       - Add support for CEX8 crypto cards.
      
       - Allow to trigger AP bus rescan via writing to /sys/bus/ap/scans.
      
       - Add CONFIG_EXPOLINE_EXTERN option to build the kernel without COMDAT
         group sections which simplifies kpatch support.
      
       - Always use the packed stack layout and extend kernel unwinder tests.
      
       - Add sanity checks for ftrace code patching.
      
       - Add s390dbf debug log for the vfio_ap device driver.
      
       - Various virtual vs physical address confusion fixes.
      
       - Various small fixes and improvements all over the code.
      
      * tag 's390-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (69 commits)
        s390/test_unwind: add kretprobe tests
        s390/kprobes: Avoid additional kprobe in kretprobe handling
        s390: convert ".insn" encoding to instruction names
        s390: assume stckf is always present
        s390/nospec: move to single register thunks
        s390: raise minimum supported machine generation to z10
        s390/uaccess: Add copy_from/to_user_key functions
        s390/nospec: align and size extern thunks
        s390/nospec: add an option to use thunk-extern
        s390/nospec: generate single register thunks if possible
        s390/pci: make zpci_set_irq()/zpci_clear_irq() static
        s390: remove unused expoline to BC instructions
        s390/irq: use assignment instead of cast
        s390/traps: get rid of magic cast for per code
        s390/traps: get rid of magic cast for program interruption code
        s390/signal: fix typo in comments
        s390/asm-offsets: remove unused defines
        s390/test_unwind: avoid build warning with W=1
        s390: remove .fixup section
        s390/bpf: encode register within extable entry
        ...
      d710d370
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20220325' of https://github.com/jcmvbkbc/linux-xtensa · 744465da
      Linus Torvalds authored
      Pull Xtensa updates from Max Filippov:
      
       - remove dependency on the compiler's libgcc
      
       - allow selection of internal kernel ABI via Kconfig
      
       - enable compiler plugins support for gcc-12 or newer
      
       - various minor cleanups and fixes
      
      * tag 'xtensa-20220325' of https://github.com/jcmvbkbc/linux-xtensa:
        xtensa: define update_mmu_tlb function
        xtensa: fix xtensa_wsr always writing 0
        xtensa: enable plugin support
        xtensa: clean up kernel exit assembly code
        xtensa: rearrange NMI exit path
        xtensa: merge stack alignment definitions
        xtensa: fix DTC warning unit_address_format
        xtensa: fix stop_machine_cpuslocked call in patch_text
        xtensa: make secondary reset vector support conditional
        xtensa: add kernel ABI selection to Kconfig
        xtensa: don't link with libgcc
        xtensa: add helpers for division, remainder and shifts
        xtensa: add missing XCHAL_HAVE_WINDOWED check
        xtensa: use XCHAL_NUM_AREGS as pt_regs::areg size
        xtensa: rename PT_SIZE to PT_KERNEL_SIZE
        xtensa: Remove unused early_read_config_byte() et al declarations
        xtensa: use strscpy to copy strings
        net: xtensa: use strscpy to copy strings
      744465da
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 1f1c153e
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Livepatch support for 32-bit is probably the standout new feature,
        otherwise mostly just lots of bits and pieces all over the board.
      
        There's a series of commits cleaning up function descriptor handling,
        which touches a few other arches as well as LKDTM. It has acks from
        Arnd, Kees and Helge.
      
        Summary:
      
         - Enforce kernel RO, and implement STRICT_MODULE_RWX for 603.
      
         - Add support for livepatch to 32-bit.
      
         - Implement CONFIG_DYNAMIC_FTRACE_WITH_ARGS.
      
         - Merge vdso64 and vdso32 into a single directory.
      
         - Fix build errors with newer binutils.
      
         - Add support for UADDR64 relocations, which are emitted by some
           toolchains. This allows powerpc to build with the latest lld.
      
         - Fix (another) potential userspace r13 corruption in transactional
           memory handling.
      
         - Cleanups of function descriptor handling & related fixes to LKDTM.
      
        Thanks to Abdul Haleem, Alexey Kardashevskiy, Anders Roxell, Aneesh
        Kumar K.V, Anton Blanchard, Arnd Bergmann, Athira Rajeev, Bhaskar
        Chowdhury, Cédric Le Goater, Chen Jingwen, Christophe JAILLET,
        Christophe Leroy, Corentin Labbe, Daniel Axtens, Daniel Henrique
        Barboza, David Dai, Fabiano Rosas, Ganesh Goudar, Guo Zhengkui, Hangyu
        Hua, Haren Myneni, Hari Bathini, Igor Zhbanov, Jakob Koschel, Jason
        Wang, Jeremy Kerr, Joachim Wiberg, Jordan Niethe, Julia Lawall, Kajol
        Jain, Kees Cook, Laurent Dufour, Madhavan Srinivasan, Mamatha Inamdar,
        Maxime Bizon, Maxim Kiselev, Maxim Kochetkov, Michal Suchanek,
        Nageswara R Sastry, Nathan Lynch, Naveen N. Rao, Nicholas Piggin,
        Nour-eddine Taleb, Paul Menzel, Ping Fang, Pratik R. Sampat, Randy
        Dunlap, Ritesh Harjani, Rohan McLure, Russell Currey, Sachin Sant,
        Segher Boessenkool, Shivaprasad G Bhat, Sourabh Jain, Thierry Reding,
        Tobias Waldekranz, Tyrel Datwyler, Vaibhav Jain, Vladimir Oltean,
        Wedson Almeida Filho, and YueHaibing"
      
      * tag 'powerpc-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (179 commits)
        powerpc/pseries: Fix use after free in remove_phb_dynamic()
        powerpc/time: improve decrementer clockevent processing
        powerpc/time: Fix KVM host re-arming a timer beyond decrementer range
        powerpc/tm: Fix more userspace r13 corruption
        powerpc/xive: fix return value of __setup handler
        powerpc/64: Add UADDR64 relocation support
        powerpc: 8xx: fix a return value error in mpc8xx_pic_init
        powerpc/ps3: remove unneeded semicolons
        powerpc/64: Force inlining of prevent_user_access() and set_kuap()
        powerpc/bitops: Force inlining of fls()
        powerpc: declare unmodified attribute_group usages const
        powerpc/spufs: Fix build warning when CONFIG_PROC_FS=n
        powerpc/secvar: fix refcount leak in format_show()
        powerpc/64e: Tie PPC_BOOK3E_64 to PPC_FSL_BOOK3E
        powerpc: Move C prototypes out of asm-prototypes.h
        powerpc/kexec: Declare kexec_paca static
        powerpc/smp: Declare current_set static
        powerpc: Cleanup asm-prototypes.c
        powerpc/ftrace: Use STK_GOT in ftrace_mprofile.S
        powerpc/ftrace: Regroup PPC64 specific operations in ftrace_mprofile.S
        ...
      1f1c153e
    • Linus Torvalds's avatar
      Merge tag 'mips_5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 9a8b3d5f
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - added support for QCN550x (ath79)
      
       - enabled KCSAN
      
       - removed TX39XX support
      
       - various cleanups and fixes
      
      * tag 'mips_5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (31 commits)
        MIPS: Fix build error for loongson64 and sgi-ip27
        MIPS: ingenic: correct unit node address
        MIPS: Fix wrong comments in asm/prom.h
        MIPS: Remove redundant definitions of device_tree_init()
        MIPS: Remove redundant check in device_tree_init()
        MIPS: pgalloc: fix memory leak caused by pgd_free()
        MIPS: RB532: fix return value of __setup handler
        MIPS: Only use current_stack_pointer on GCC
        MIPS: boot/compressed: Use array reference for image bounds
        mips: cdmm: Fix refcount leak in mips_cdmm_phys_base
        mips: remove reference to "newer Loongson-3"
        mips: Always permit to build u-boot images
        MIPS: Sanitise Cavium switch cases in TLB handler synthesizers
        DEC: Limit PMAX memory probing to R3k systems
        mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
        MIPS: fix fortify panic when copying asm exception handlers
        mips: ralink: fix a refcount leak in ill_acc_of_setup()
        mips: Implement "current_stack_pointer"
        MIPS: Remove TX39XX support
        MIPS: Modernize READ_IMPLIES_EXEC
        ...
      9a8b3d5f
    • Andreas Gruenbacher's avatar
      fs/iomap: Fix buffered write page prefaulting · 631f871f
      Andreas Gruenbacher authored
      When part of the user buffer passed to generic_perform_write() or
      iomap_file_buffered_write() cannot be faulted in for reading, the entire
      write currently fails.  The correct behavior would be to write all the
      data that can be written, up to the point of failure.
      
      Commit a6294593 ("iov_iter: Turn iov_iter_fault_in_readable into
      fault_in_iov_iter_readable") gave us the information needed, so fix the
      page prefaulting in generic_perform_write() and iomap_write_iter() to
      only bail out when no pages could be faulted in.
      
      We already factor in that pages that are faulted in may no longer be
      resident by the time they are accessed.  Paging out pages has the same
      effect as not faulting in those pages in the first place, so the code
      can already deal with that.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      631f871f
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 34af78c4
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - IOMMU Core changes:
            - Removal of aux domain related code as it is basically dead and
              will be replaced by iommu-fd framework
            - Split of iommu_ops to carry domain-specific call-backs separatly
            - Cleanup to remove useless ops->capable implementations
            - Improve 32-bit free space estimate in iova allocator
      
       - Intel VT-d updates:
            - Various cleanups of the driver
            - Support for ATS of SoC-integrated devices listed in ACPI/SATC
              table
      
       - ARM SMMU updates:
            - Fix SMMUv3 soft lockup during continuous stream of events
            - Fix error path for Qualcomm SMMU probe()
            - Rework SMMU IRQ setup to prepare the ground for PMU support
            - Minor cleanups and refactoring
      
       - AMD IOMMU driver:
            - Some minor cleanups and error-handling fixes
      
       - Rockchip IOMMU driver:
            - Use standard driver registration
      
       - MSM IOMMU driver:
            - Minor cleanup and change to standard driver registration
      
       - Mediatek IOMMU driver:
            - Fixes for IOTLB flushing logic
      
      * tag 'iommu-updates-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (47 commits)
        iommu/amd: Improve amd_iommu_v2_exit()
        iommu/amd: Remove unused struct fault.devid
        iommu/amd: Clean up function declarations
        iommu/amd: Call memunmap in error path
        iommu/arm-smmu: Account for PMU interrupts
        iommu/vt-d: Enable ATS for the devices in SATC table
        iommu/vt-d: Remove unused function intel_svm_capable()
        iommu/vt-d: Add missing "__init" for rmrr_sanity_check()
        iommu/vt-d: Move intel_iommu_ops to header file
        iommu/vt-d: Fix indentation of goto labels
        iommu/vt-d: Remove unnecessary prototypes
        iommu/vt-d: Remove unnecessary includes
        iommu/vt-d: Remove DEFER_DEVICE_DOMAIN_INFO
        iommu/vt-d: Remove domain and devinfo mempool
        iommu/vt-d: Remove iova_cache_get/put()
        iommu/vt-d: Remove finding domain in dmar_insert_one_dev_info()
        iommu/vt-d: Remove intel_iommu::domains
        iommu/mediatek: Always tlb_flush_all when each PM resume
        iommu/mediatek: Add tlb_lock in tlb_flush_all
        iommu/mediatek: Remove the power status checking in tlb flush all
        ...
      34af78c4
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 6f2689a7
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This series consists of the usual driver updates (qla2xxx, pm8001,
        libsas, smartpqi, scsi_debug, lpfc, iscsi, mpi3mr) plus minor updates
        and bug fixes.
      
        The high blast radius core update is the removal of write same, which
        affects block and several non-SCSI devices. The other big change,
        which is more local, is the removal of the SCSI pointer"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (281 commits)
        scsi: scsi_ioctl: Drop needless assignment in sg_io()
        scsi: bsg: Drop needless assignment in scsi_bsg_sg_io_fn()
        scsi: lpfc: Copyright updates for 14.2.0.0 patches
        scsi: lpfc: Update lpfc version to 14.2.0.0
        scsi: lpfc: SLI path split: Refactor BSG paths
        scsi: lpfc: SLI path split: Refactor Abort paths
        scsi: lpfc: SLI path split: Refactor SCSI paths
        scsi: lpfc: SLI path split: Refactor CT paths
        scsi: lpfc: SLI path split: Refactor misc ELS paths
        scsi: lpfc: SLI path split: Refactor VMID paths
        scsi: lpfc: SLI path split: Refactor FDISC paths
        scsi: lpfc: SLI path split: Refactor LS_RJT paths
        scsi: lpfc: SLI path split: Refactor LS_ACC paths
        scsi: lpfc: SLI path split: Refactor the RSCN/SCR/RDF/EDC/FARPR paths
        scsi: lpfc: SLI path split: Refactor PLOGI/PRLI/ADISC/LOGO paths
        scsi: lpfc: SLI path split: Refactor base ELS paths and the FLOGI path
        scsi: lpfc: SLI path split: Introduce lpfc_prep_wqe
        scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4
        scsi: lpfc: SLI path split: Refactor lpfc_iocbq
        scsi: lpfc: Use kcalloc()
        ...
      6f2689a7
    • Linus Torvalds's avatar
      Merge tag 'for-5.18/dm-changes' of... · b1f8ccda
      Linus Torvalds authored
      Merge tag 'for-5.18/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Significant refactoring and fixing of how DM core does bio-based IO
         accounting with focus on fixing wildly inaccurate IO stats for
         dm-crypt (and other DM targets that defer bio submission in their own
         workqueues). End result is proper IO accounting, made possible by
         targets being updated to use the new dm_submit_bio_remap() interface.
      
       - Add hipri bio polling support (REQ_POLLED) to bio-based DM.
      
       - Reduce dm_io and dm_target_io structs so that a single dm_io (which
         contains dm_target_io and first clone bio) weighs in at 256 bytes.
         For reference the bio struct is 128 bytes.
      
       - Various other small cleanups, fixes or improvements in DM core and
         targets.
      
       - Update MAINTAINERS with my kernel.org email address to allow
         distinction between my "upstream" and "Red" Hats.
      
      * tag 'for-5.18/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (46 commits)
        dm: consolidate spinlocks in dm_io struct
        dm: reduce size of dm_io and dm_target_io structs
        dm: switch dm_target_io booleans over to proper flags
        dm: switch dm_io booleans over to proper flags
        dm: update email address in MAINTAINERS
        dm: return void from __send_empty_flush
        dm: factor out dm_io_complete
        dm cache: use dm_submit_bio_remap
        dm: simplify dm_sumbit_bio_remap interface
        dm thin: use dm_submit_bio_remap
        dm: add WARN_ON_ONCE to dm_submit_bio_remap
        dm: support bio polling
        block: add ->poll_bio to block_device_operations
        dm mpath: use DMINFO instead of printk with KERN_INFO
        dm: stop using bdevname
        dm-zoned: remove the ->name field in struct dmz_dev
        dm: remove unnecessary local variables in __bind
        dm: requeue IO if mapping table not yet available
        dm io: remove stale comment block for dm_io()
        dm thin metadata: remove unused dm_thin_remove_block and __remove
        ...
      b1f8ccda
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 2dacc1e5
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
      
       - Minor bug fixes in mlx5, mthca, pvrdma, rtrs, mlx4, hfi1, hns
      
       - Minor cleanups: coding style, useless includes and documentation
      
       - Reorganize how multicast processing works in rxe
      
       - Replace a red/black tree with xarray in rxe which improves performance
      
       - DSCP support and HW address handle re-use in irdma
      
       - Simplify the mailbox command handling in hns
      
       - Simplify iser now that FMR is eliminated
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (93 commits)
        RDMA/nldev: Prevent underflow in nldev_stat_set_counter_dynamic_doit()
        IB/iser: Fix error flow in case of registration failure
        IB/iser: Generalize map/unmap dma tasks
        IB/iser: Use iser_fr_desc as registration context
        IB/iser: Remove iser_reg_data_sg helper function
        RDMA/rxe: Use standard names for ref counting
        RDMA/rxe: Replace red-black trees by xarrays
        RDMA/rxe: Shorten pool names in rxe_pool.c
        RDMA/rxe: Move max_elem into rxe_type_info
        RDMA/rxe: Replace obj by elem in declaration
        RDMA/rxe: Delete _locked() APIs for pool objects
        RDMA/rxe: Reverse the sense of RXE_POOL_NO_ALLOC
        RDMA/rxe: Replace mr by rkey in responder resources
        RDMA/rxe: Fix ref error in rxe_av.c
        RDMA/hns: Use the reserved loopback QPs to free MR before destroying MPT
        RDMA/irdma: Add support for address handle re-use
        RDMA/qib: Fix typos in comments
        RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
        Revert "RDMA/core: Fix ib_qp_usecnt_dec() called when error"
        RDMA/rxe: Remove useless argument for update_state()
        ...
      2dacc1e5
    • Kees Cook's avatar
      selftests: kselftest framework: provide "finished" helper · 25fd2d41
      Kees Cook authored
      Instead of having each time that wants to use ksft_exit() have to figure
      out the internals of kselftest.h, add the helper ksft_finished() that
      makes sure the passes, xfails, and skips are equal to the test plan count.
      
      Link: https://lkml.kernel.org/r/20220201013717.2464392-1-keescook@chromium.orgSigned-off-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Shuah Khan <shuah@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      25fd2d41
    • Johannes Weiner's avatar
      mm: madvise: MADV_DONTNEED_LOCKED · 9457056a
      Johannes Weiner authored
      MADV_DONTNEED historically rejects mlocked ranges, but with MLOCK_ONFAULT
      and MCL_ONFAULT allowing to mlock without populating, there are valid use
      cases for depopulating locked ranges as well.
      
      Users mlock memory to protect secrets.  There are allocators for secure
      buffers that want in-use memory generally mlocked, but cleared and
      invalidated memory to give up the physical pages.  This could be done with
      explicit munlock -> mlock calls on free -> alloc of course, but that adds
      two unnecessary syscalls, heavy mmap_sem write locks, vma splits and
      re-merges - only to get rid of the backing pages.
      
      Users also mlockall(MCL_ONFAULT) to suppress sustained paging, but are
      okay with on-demand initial population.  It seems valid to selectively
      free some memory during the lifetime of such a process, without having to
      mess with its overall policy.
      
      Why add a separate flag? Isn't this a pretty niche usecase?
      
      - MADV_DONTNEED has been bailing on locked vmas forever. It's at least
        conceivable that someone, somewhere is relying on mlock to protect
        data from perhaps broader invalidation calls. Changing this behavior
        now could lead to quiet data corruption.
      
      - It also clarifies expectations around MADV_FREE and maybe
        MADV_REMOVE. It avoids the situation where one quietly behaves
        different than the others. MADV_FREE_LOCKED can be added later.
      
      - The combination of mlock() and madvise() in the first place is
        probably niche. But where it happens, I'd say that dropping pages
        from a locked region once they don't contain secrets or won't page
        anymore is much saner than relying on mlock to protect memory from
        speculative or errant invalidation calls. It's just that we can't
        change the default behavior because of the two previous points.
      
      Given that, an explicit new flag seems to make the most sense.
      
      [hannes@cmpxchg.org: fix mips build]
      
      Link: https://lkml.kernel.org/r/20220304171912.305060-1-hannes@cmpxchg.orgSigned-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Reviewed-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Cc: Nadav Amit <nadav.amit@gmail.com>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9457056a