1. 02 Nov, 2023 30 commits
  2. 01 Nov, 2023 10 commits
    • Linus Torvalds's avatar
      Merge tag 'vfio-v6.7-rc1' of https://github.com/awilliam/linux-vfio · deefd502
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Add support for "chunk mode" in the mlx5-vfio-pci variant driver,
         which allows both larger device image sizes for migration, beyond the
         previous 4GB limit, and also read-ahead support for improved
         migration performance (Yishai Hadas)
      
       - A new bus master control interface for the CDX bus driver where there
         is no in-band mechanism to toggle device DMA as there is through
         config space on PCI devices (Nipun Gupta)
      
       - Add explicit alignment directives to vfio data structures to reduce
         the chance of breaking 32-bit userspace. In most cases this is
         transparent and the remaining cases where data structures are padded
         work within the existing rules for extending data structures within
         vfio (Stefan Hajnoczi)
      
       - Resolve a bug in the cdx bus driver noted when compiled with clang
         where missing parenthesis result in the wrong operation (Nathan
         Chancellor)
      
       - Resolve errors reported by smatch for a function when dealing with
         invalid inputs (Alex Williamson)
      
       - Add migration support to the mtty vfio/mdev sample driver for testing
         and integration purposes, allowing CI of migration without specific
         hardware requirements. Also resolve many of the short- comings of
         this driver relative to implementation of the vfio interrupt ioctl
         along the way (Alex Williamson)
      
      * tag 'vfio-v6.7-rc1' of https://github.com/awilliam/linux-vfio:
        vfio/mtty: Enable migration support
        vfio/mtty: Overhaul mtty interrupt handling
        vfio: Fix smatch errors in vfio_combine_iova_ranges()
        vfio/cdx: Add parentheses between bitwise AND expression and logical NOT
        vfio/mlx5: Activate the chunk mode functionality
        vfio/mlx5: Add support for READING in chunk mode
        vfio/mlx5: Add support for SAVING in chunk mode
        vfio/mlx5: Pre-allocate chunks for the STOP_COPY phase
        vfio/mlx5: Rename some stuff to match chunk mode
        vfio/mlx5: Enable querying state size which is > 4GB
        vfio/mlx5: Refactor the SAVE callback to activate a work only upon an error
        vfio/mlx5: Wake up the reader post of disabling the SAVING migration file
        vfio: use __aligned_u64 in struct vfio_device_ioeventfd
        vfio: use __aligned_u64 in struct vfio_device_gfx_plane_info
        vfio: trivially use __aligned_u64 for ioctl structs
        vfio-cdx: add bus mastering device feature support
        vfio: add bus master feature to device feature ioctl
        cdx: add support for bus mastering
      deefd502
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.7-2023-10-30' of git://git.infradead.org/users/hch/dma-mapping · 009fbfc9
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - get rid of the fake support for coherent DMA allocation on coldfire
         with caches (Christoph Hellwig)
      
       - add a few Kconfig dependencies so that Kconfig catches the use of
         invalid configurations (Christoph Hellwig)
      
       - fix a type in dma-debug output (Chuck Lever)
      
       - rewrite a comment in swiotlb (Sean Christopherson)
      
      * tag 'dma-mapping-6.7-2023-10-30' of git://git.infradead.org/users/hch/dma-mapping:
        dma-debug: Fix a typo in a debugging eye-catcher
        swiotlb: rewrite comment explaining why the source is preserved on DMA_FROM_DEVICE
        m68k: remove unused includes from dma.c
        m68k: don't provide arch_dma_alloc for nommu/coldfire
        net: fec: use dma_alloc_noncoherent for data cache enabled coldfire
        m68k: use the coherent DMA code for coldfire without data cache
        dma-direct: warn when coherent allocations aren't supported
        dma-direct: simplify the use atomic pool logic in dma_direct_alloc
        dma-direct: add a CONFIG_ARCH_HAS_DMA_ALLOC symbol
        dma-direct: add dependencies to CONFIG_DMA_GLOBAL_POOL
      009fbfc9
    • Linus Torvalds's avatar
      Merge tag 'pmdomain-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm · 3c86a44d
      Linus Torvalds authored
      Pull pmdomain updates from Ulf Hansson:
      
       - Move Kconfig files into the pmdomain subsystem
      
       - Drop use of genpd's redundant ->opp_to_performance_state() callback
      
       - amlogic:
          - Add support for the T7 power-domains controller
          - Fix mask for the second NNA mem power-domain
      
       - bcm: Fixup ASB register read and comparison for bcm2835-power
      
       - imx: Fix device link problem for consumers of the pgc power-domain
      
       - mediatek: Add support for the MT8365 power domains
      
       - qcom:
          - Add support for the rpmhpds for SC8380XP power-domains
          - Add support for the rpmhpds for SM8650 power-domains
          - Add support for the rpmhpd clocks for SM7150
          - Add support for the rpmpds for MSM8917 (families) power-domains
      
       - starfive: Add support for the JH7110 AON PMU
      
      * tag 'pmdomain-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm: (56 commits)
        pmdomain: amlogic: Fix mask for the second NNA mem PD domain
        pmdomain: qcom: rpmhpd: Add SC8380XP power domains
        pmdomain: qcom: rpmhpd: Add SM8650 RPMh Power Domains
        dt-bindings: power: rpmpd: Add SC8380XP support
        dt-bindings: power: qcom,rpmhpd: Add GMXC PD index
        dt-bindings: power: qcom,rpmpd: document the SM8650 RPMh Power Domains
        pmdomain: imx: Make imx pgc power domain also set the fwnode
        pmdomain: qcom: rpmpd: Add QM215 power domains
        pmdomain: qcom: rpmpd: Add MSM8917 power domains
        dt-bindings: power: rpmpd: Add MSM8917, MSM8937 and QM215
        pmdomain: bcm: bcm2835-power: check if the ASB register is equal to enable
        pmdomain: qcom: rpmhpd: Drop the ->opp_to_performance_state() callback
        pmdomain: qcom: rpmpd: Drop the ->opp_to_performance_state() callback
        pmdomain: qcom: cpr: Drop the ->opp_to_performance_state() callback
        pmdomain: Use device_get_match_data()
        pmdomain: ti: add missing of_node_put
        pmdomain: mediatek: Add support for MT8365
        pmdomain: mediatek: Add support for MTK_SCPD_STRICT_BUS_PROTECTION cap
        pmdomain: mediatek: Add support for WAY_EN operations
        pmdomain: mediatek: Unify configuration for infracfg and smi
        ...
      3c86a44d
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 40aa597c
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
      " MMC core:
         - Enable host caps to be modified via debugfs to test speed-modes
         - Improve random I/O writes for 4k buffers for hsq enabled hosts
      
        MMC host:
         - atmel-mci/sdhci-of-at91: Aubin Constans takes over as maintainer
         - dw_mmc-starfive: Re-work tuning support
         - meson-gx: Fix bogus IRQ when using CMD_CFG_ERROR
         - mmci: Use peripheral flow control for the STM32 variant
         - renesas,sdhi: Add support for the RZ/G3S variant
         - sdhci-esdhc-imx: Optimize the manual tuning logic
         - sdhci-msm: Add support for the SM8650 variant
         - sdhci-npcm: Add driver to support the Nuvoton NPCM BMC variant
         - sdhci-pci-gli: Add workaround to allow GL9750 to enter ASPM L1.2"
      
      * tag 'mmc-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (25 commits)
        dt-bindings: mmc: sdhci-msm: document the SM8650 SDHCI Controller
        mmc: meson-gx: Remove setting of CMD_CFG_ERROR
        MAINTAINERS: mmc: take over as maintainer of MCI & SDHCI MICROCHIP DRIVERS
        mmc: jz4740: Use device_get_match_data()
        mmc: sdhci-npcm: Add NPCM SDHCI driver
        dt-bindings: mmc: npcm,sdhci: Document NPCM SDHCI controller
        mmc: sdhci-pltfm: Make driver OF independent
        mmc: sdhci-pltfm: Drop unnecessary error messages in sdhci_pltfm_init()
        mmc: sdhci-pci: Switch to use acpi_evaluate_dsm_typed()
        mmc: debugfs: Allow host caps to be modified
        mmc: core: Always reselect card type
        mmc: mmci: use peripheral flow control for STM32
        mmc: vub300: replace deprecated strncpy with strscpy
        memstick: jmb38x_ms: Annotate struct jmb38x_ms with __counted_by
        mmc: starfive: Change tuning implementation
        dt-bindings: mmc: starfive: Remove properties from required
        mmc: hsq: Improve random I/O write performance for 4k buffers
        mmc: core: Allow dynamical updates of the number of requests for hsq
        mmc: sdhci-pci-gli: A workaround to allow GL9750 to enter ASPM L1.2
        dt-bindings: mmc: renesas,sdhi: Document RZ/G3S support
        ...
      40aa597c
    • Linus Torvalds's avatar
      Merge tag 'for-6.7/dm-changes' of... · 0364249d
      Linus Torvalds authored
      Merge tag 'for-6.7/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Update DM core to directly call the map function for both the linear
         and stripe targets; which are provided by DM core
      
       - Various updates to use new safer string functions
      
       - Update DM core to respect REQ_NOWAIT flag in normal bios so that
         memory allocations are always attempted with GFP_NOWAIT
      
       - Add Mikulas Patocka to MAINTAINERS as a DM maintainer!
      
       - Improve DM delay target's handling of short delays (< 50ms) by using
         a kthread to check expiration of IOs rather than timers and a wq
      
       - Update the DM error target so that it works with zoned storage. This
         helps xfstests to provide proper IO error handling coverage when
         testing a filesystem with native zoned storage support
      
       - Update both DM crypt and integrity targets to improve performance by
         using crypto_shash_digest() rather than init+update+final sequence
      
       - Fix DM crypt target by backfilling missing memory allocation
         accounting for compound pages
      
      * tag 'for-6.7/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm crypt: account large pages in cc->n_allocated_pages
        dm integrity: use crypto_shash_digest() in sb_mac()
        dm crypt: use crypto_shash_digest() in crypt_iv_tcw_whitening()
        dm error: Add support for zoned block devices
        dm delay: for short delays, use kthread instead of timers and wq
        MAINTAINERS: add Mikulas Patocka as a DM maintainer
        dm: respect REQ_NOWAIT flag in normal bios issued to DM
        dm: enhance alloc_multiple_bios() to be more versatile
        dm: make __send_duplicate_bios return unsigned int
        dm log userspace: replace deprecated strncpy with strscpy
        dm ioctl: replace deprecated strncpy with strscpy_pad
        dm crypt: replace open-coded kmemdup_nul
        dm cache metadata: replace deprecated strncpy with strscpy
        dm: shortcut the calls to linear_map and stripe_map
      0364249d
    • Linus Torvalds's avatar
      Merge tag 'ata-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · 39714efc
      Linus Torvalds authored
      Pull ATA updates from Damien Le Moal:
      
       - Modify the AHCI driver to print the link power management policy used
         on scan, to help with debugging issues (Niklas)
      
       - Add support for the ASM2116 series adapters to the AHCI driver
         (Szuying)
      
       - Prepare libata for the coming gcc and Clang __counted_by attribute
         (Kees)
      
       - Following the recent estensive fixing of libata suspend/resume
         handling, several patches further cleanup and improve disk power
         state management (me)
      
       - Reduce the verbosity of some error messages for non-fatal temporary
         errors, e.g. slow response to device reset when scanning a port, and
         warning messages that are in fact normal, e.g. disabling a device on
         suspend or when removing it (me)
      
       - Cleanup DMA helper functions (me)
      
       - Fix sata_mv drive handling of potential errors durring probe (Ma)
      
       - Cleanup the xgene and imx drivers using the functions
         of_device_get_match_data() and device_get_match_data() (Rob)
      
       - Improve the tegra driver device tree (Rob)
      
      * tag 'ata-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata: (22 commits)
        dt-bindings: ata: tegra: Disallow undefined properties
        ata: libata-core: Improve ata_dev_power_set_active()
        ata: libata-eh: Spinup disk on resume after revalidation
        ata: imx: Use device_get_match_data()
        ata: xgene: Use of_device_get_match_data()
        ata: sata_mv: aspeed: fix value check in mv_platform_probe()
        ata: ahci: Add Intel Alder Lake-P AHCI controller to low power chipsets list
        ata: libata: Cleanup inline DMA helper functions
        ata: libata-eh: Reduce "disable device" message verbosity
        ata: libata-eh: Improve reset error messages
        ata: libata-sata: Improve ata_sas_slave_configure()
        ata: libata-core: Do not resume runtime suspended ports
        ata: libata-core: Do not poweroff runtime suspended ports
        ata: libata-core: Remove ata_port_resume_async()
        ata: libata-core: Remove ata_port_suspend_async()
        ata: libata-core: Detach a port devices on shutdown
        ata: libata-core: Synchronize ata_port_detach() with hotplug
        ata: libata-scsi: Cleanup ata_scsi_start_stop_xlat()
        scsi: Remove scsi device no_start_on_resume flag
        ata: libata: Annotate struct ata_cpr_log with __counted_by
        ...
      39714efc
    • Linus Torvalds's avatar
      Merge tag 'for-6.7/block-2023-10-30' of git://git.kernel.dk/linux · 90d624af
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
      
       - Improvements to the queue_rqs() support, and adding null_blk support
         for that as well (Chengming)
      
       - Series improving badblocks support (Coly)
      
       - Key store support for sed-opal (Greg)
      
       - IBM partition string handling improvements (Jan)
      
       - Make number of ublk devices supported configurable (Mike)
      
       - Cancelation improvements for ublk (Ming)
      
       - MD pull requests via Song:
           - Handle timeout in md-cluster, by Denis Plotnikov
           - Cleanup pers->prepare_suspend, by Yu Kuai
           - Rewrite mddev_suspend(), by Yu Kuai
           - Simplify md_seq_ops, by Yu Kuai
           - Reduce unnecessary locking array_state_store(), by Mariusz
             Tkaczyk
           - Make rdev add/remove independent from daemon thread, by Yu Kuai
           - Refactor code around quiesce() and mddev_suspend(), by Yu Kuai
      
       - NVMe pull request via Keith:
           - nvme-auth updates (Mark)
           - nvme-tcp tls (Hannes)
           - nvme-fc annotaions (Kees)
      
       - Misc cleanups and improvements (Jiapeng, Joel)
      
      * tag 'for-6.7/block-2023-10-30' of git://git.kernel.dk/linux: (95 commits)
        block: ublk_drv: Remove unused function
        md: cleanup pers->prepare_suspend()
        nvme-auth: allow mixing of secret and hash lengths
        nvme-auth: use transformed key size to create resp
        nvme-auth: alloc nvme_dhchap_key as single buffer
        nvmet-tcp: use 'spin_lock_bh' for state_lock()
        powerpc/pseries: PLPKS SED Opal keystore support
        block: sed-opal: keystore access for SED Opal keys
        block:sed-opal: SED Opal keystore
        ublk: simplify aborting request
        ublk: replace monitor with cancelable uring_cmd
        ublk: quiesce request queue when aborting queue
        ublk: rename mm_lock as lock
        ublk: move ublk_cancel_dev() out of ub->mutex
        ublk: make sure io cmd handled in submitter task context
        ublk: don't get ublk device reference in ublk_abort_queue()
        ublk: Make ublks_max configurable
        ublk: Limit dev_id/ub_number values
        md-cluster: check for timeout while a new disk adding
        nvme: rework NVME_AUTH Kconfig selection
        ...
      90d624af
    • Linus Torvalds's avatar
      Merge tag 'io_uring-futex-2023-10-30' of git://git.kernel.dk/linux · 4de520f1
      Linus Torvalds authored
      Pull io_uring futex support from Jens Axboe:
       "This adds support for using futexes through io_uring - first futex
        wake and wait, and then the vectored variant of waiting, futex waitv.
      
        For both wait/wake/waitv, we support the bitset variant, as the
        'normal' variants can be easily implemented on top of that.
      
        PI and requeue are not supported through io_uring, just the above
        mentioned parts. This may change in the future, but in the spirit of
        keeping this small (and based on what people have been asking for),
        this is what we currently have.
      
        Wake support is pretty straight forward, most of the thought has gone
        into the wait side to avoid needing to offload wait operations to a
        blocking context. Instead, we rely on the usual callbacks to retry and
        post a completion event, when appropriate.
      
        As far as I can recall, the first request for futex support with
        io_uring came from Andres Freund, working on postgres. His aio rework
        of postgres was one of the early adopters of io_uring, and futex
        support was a natural extension for that. This is relevant from both a
        usability point of view, as well as for effiency and performance. In
        Andres's words, for the former:
      
           Futex wait support in io_uring makes it a lot easier to avoid
           deadlocks in concurrent programs that have their own buffer pool:
           Obviously pages in the application buffer pool have to be locked
           during IO. If the initiator of IO A needs to wait for a held lock
           B, the holder of lock B might wait for the IO A to complete. The
           ability to wait for a lock and IO completions at the same time
           provides an efficient way to avoid such deadlocks
      
        and in terms of effiency, even without unlocking the full potential
        yet, Andres says:
      
           Futex wake support in io_uring is useful because it allows for more
           efficient directed wakeups. For some "locks" postgres has queues
           implemented in userspace, with wakeup logic that cannot easily be
           implemented with FUTEX_WAKE_BITSET on a single "futex word"
           (imagine waiting for journal flushes to have completed up to a
           certain point).
      
           Thus a "lock release" sometimes need to wake up many processes in a
           row. A quick-and-dirty conversion to doing these wakeups via
           io_uring lead to a 3% throughput increase, with 12% fewer context
           switches, albeit in a fairly extreme workload"
      
      * tag 'io_uring-futex-2023-10-30' of git://git.kernel.dk/linux:
        io_uring: add support for vectored futex waits
        futex: make the vectored futex operations available
        futex: make futex_parse_waitv() available as a helper
        futex: add wake_data to struct futex_q
        io_uring: add support for futex wake and wait
        futex: abstract out a __futex_wake_mark() helper
        futex: factor out the futex wake handling
        futex: move FUTEX2_VALID_MASK to futex.h
      4de520f1
    • Linus Torvalds's avatar
      Merge tag 'for-6.7/io_uring-sockopt-2023-10-30' of git://git.kernel.dk/linux · f5277ad1
      Linus Torvalds authored
      Pull io_uring {get,set}sockopt support from Jens Axboe:
       "This adds support for using getsockopt and setsockopt via io_uring.
      
        The main use cases for this is to enable use of direct descriptors,
        rather than first instantiating a normal file descriptor, doing the
        option tweaking needed, then turning it into a direct descriptor. With
        this support, we can avoid needing a regular file descriptor
        completely.
      
        The net and bpf bits have been signed off on their side"
      
      * tag 'for-6.7/io_uring-sockopt-2023-10-30' of git://git.kernel.dk/linux:
        selftests/bpf/sockopt: Add io_uring support
        io_uring/cmd: Introduce SOCKET_URING_OP_SETSOCKOPT
        io_uring/cmd: Introduce SOCKET_URING_OP_GETSOCKOPT
        io_uring/cmd: return -EOPNOTSUPP if net is disabled
        selftests/net: Extract uring helpers to be reusable
        tools headers: Grab copy of io_uring.h
        io_uring/cmd: Pass compat mode in issue_flags
        net/socket: Break down __sys_getsockopt
        net/socket: Break down __sys_setsockopt
        bpf: Add sockptr support for setsockopt
        bpf: Add sockptr support for getsockopt
      f5277ad1
    • Linus Torvalds's avatar
      Merge tag 'for-6.7/io_uring-2023-10-30' of git://git.kernel.dk/linux · ffa059b2
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
       "This contains the core io_uring updates, of which there are not many,
        and adds support for using WAITID through io_uring and hence not
        needing to block on these kinds of events.
      
        Outside of that, tweaks to the legacy provided buffer handling and
        some cleanups related to cancelations for uring_cmd support"
      
      * tag 'for-6.7/io_uring-2023-10-30' of git://git.kernel.dk/linux:
        io_uring/poll: use IOU_F_TWQ_LAZY_WAKE for wakeups
        io_uring/kbuf: Use slab for struct io_buffer objects
        io_uring/kbuf: Allow the full buffer id space for provided buffers
        io_uring/kbuf: Fix check of BID wrapping in provided buffers
        io_uring/rsrc: cleanup io_pin_pages()
        io_uring: cancelable uring_cmd
        io_uring: retain top 8bits of uring_cmd flags for kernel internal use
        io_uring: add IORING_OP_WAITID support
        exit: add internal include file with helpers
        exit: add kernel_waitid_prepare() helper
        exit: move core of do_wait() into helper
        exit: abstract out should_wake helper for child_wait_callback()
        io_uring/rw: add support for IORING_OP_READ_MULTISHOT
        io_uring/rw: mark readv/writev as vectored in the opcode definition
        io_uring/rw: split io_read() into a helper
      ffa059b2