Skip to content
  1. May 11, 2025
    • Linus Torvalds's avatar
      Linux 6.15-rc6 · 82f2b0b9
      Linus Torvalds authored
      v6.15-rc6
      82f2b0b9
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · cd802e7e
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "ARM:
      
         - Avoid use of uninitialized memcache pointer in user_mem_abort()
      
         - Always set HCR_EL2.xMO bits when running in VHE, allowing
           interrupts to be taken while TGE=0 and fixing an ugly bug on
           AmpereOne that occurs when taking an interrupt while clearing the
           xMO bits (AC03_CPU_36)
      
         - Prevent VMMs from hiding support for AArch64 at any EL virtualized
           by KVM
      
         - Save/restore the host value for HCRX_EL2 instead of restoring an
           incorrect fixed value
      
         - Make host_stage2_set_owner_locked() check that the entire requested
           range is memory rather than just the first page
      
        RISC-V:
      
         - Add missing reset of smstateen CSRs
      
        x86:
      
         - Forcibly leave SMM on SHUTDOWN interception on AMD CPUs to avoid
           causing problems due to KVM stuffing INIT on SHUTDOWN (KVM needs to
           sanitize the VMCB as its state is undefined after SHUTDOWN,
           emulating INIT is the least awful choice).
      
         - Track the valid sync/dirty fields in kvm_run as a u64 to ensure KVM
           KVM doesn't goof a sanity check in the future.
      
         - Free obsolete roots when (re)loading the MMU to fix a bug where
           pre-faulting memory can get stuck due to always encountering a
           stale root.
      
         - When dumping GHCB state, use KVM's snapshot instead of the raw GHCB
           page to print state, so that KVM doesn't print stale/wrong
           information.
      
         - When changing memory attributes (e.g. shared <=> private), add
           potential hugepage ranges to the mmu_invalidate_range_{start,end}
           set so that KVM doesn't create a shared/private hugepage when the
           the corresponding attributes will become mixed (the attributes are
           commited *after* KVM finishes the invalidation).
      
         - Rework the SRSO mitigation to enable BP_SPEC_REDUCE only when KVM
           has at least one active VM. Effectively BP_SPEC_REDUCE when KVM is
           loaded led to very measurable performance regressions for non-KVM
           workloads"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: SVM: Set/clear SRSO's BP_SPEC_REDUCE on 0 <=> 1 VM count transitions
        KVM: arm64: Fix memory check in host_stage2_set_owner_locked()
        KVM: arm64: Kill HCRX_HOST_FLAGS
        KVM: arm64: Properly save/restore HCRX_EL2
        KVM: arm64: selftest: Don't try to disable AArch64 support
        KVM: arm64: Prevent userspace from disabling AArch64 support at any virtualisable EL
        KVM: arm64: Force HCR_EL2.xMO to 1 at all times in VHE mode
        KVM: arm64: Fix uninitialized memcache pointer in user_mem_abort()
        KVM: x86/mmu: Prevent installing hugepages when mem attributes are changing
        KVM: SVM: Update dump_ghcb() to use the GHCB snapshot fields
        KVM: RISC-V: reset smstateen CSRs
        KVM: x86/mmu: Check and free obsolete roots in kvm_mmu_reload()
        KVM: x86: Check that the high 32bits are clear in kvm_arch_vcpu_ioctl_run()
        KVM: SVM: Forcibly leave SMM mode on SHUTDOWN interception
      cd802e7e
    • Linus Torvalds's avatar
      Merge tag 'mips-fixes_6.15_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · ecb9194d
      Linus Torvalds authored
      Pull MIPS fixes from Thomas Bogendoerfer:
      
       - Fix delayed timers
      
       - Fix NULL pointer deref
      
       - Fix wrong range check
      
      * tag 'mips-fixes_6.15_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: Fix MAX_REG_OFFSET
        MIPS: CPS: Fix potential NULL pointer dereferences in cps_prepare_cpus()
        MIPS: rename rollback_handler with skipover_handler
        MIPS: Move r4k_wait() to .cpuidle.text section
        MIPS: Fix idle VS timer enqueue
      ecb9194d
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2025-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b9e62a2b
      Linus Torvalds authored
      Pull x86 fix from Ingo Molnar:
       "Fix a boot regression on very old x86 CPUs without CPUID support"
      
      * tag 'x86-urgent-2025-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode: Consolidate the loader enablement checking
      b9e62a2b
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2025-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ac814cbb
      Linus Torvalds authored
      Pull misc timers fixes from Ingo Molnar:
      
       - Fix time keeping bugs in CLOCK_MONOTONIC_COARSE clocks
      
       - Work around absolute relocations into vDSO code that GCC erroneously
         emits in certain arm64 build environments
      
       - Fix a false positive lockdep warning in the i8253 clocksource driver
      
      * tag 'timers-urgent-2025-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/i8253: Use raw_spinlock_irqsave() in clockevent_i8253_disable()
        arm64: vdso: Work around invalid absolute relocations from GCC
        timekeeping: Prevent coarse clocks going backwards
      ac814cbb
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · fea91239
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
      
       - Synaptics touchpad on multiple laptops (Dynabook Portege X30L-G,
         Dynabook Portege X30-D, TUXEDO InfinityBook Pro 14 v5, Dell Precision
         M3800, HP Elitebook 850 G1) switched from PS/2 to SMBus mode
      
       - a number of new controllers added to xpad driver: HORI Drum
         controller, PowerA Fusion Pro 4, PowerA MOGA XP-Ultra controller,
         8BitDo Ultimate 2 Wireless Controller, 8BitDo Ultimate 3-mode
         Controller, Hyperkin DuchesS Xbox One controller
      
       - fixes to xpad driver to properly handle Mad Catz JOYTECH NEO SE
         Advanced and PDP Mirror's Edge Official controllers
      
       - fixes to xpad driver to properly handle "Share" button on some
         controllers
      
       - a fix for device initialization timing and for waking up the
         controller in cyttsp5 driver
      
       - a fix for hisi_powerkey driver to properly wake up from s2idle state
      
       - other assorted cleanups and fixes
      
      * tag 'input-for-v6.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: xpad - fix xpad_device sorting
        Input: xpad - add support for several more controllers
        Input: xpad - fix Share button on Xbox One controllers
        Input: xpad - fix two controller table values
        Input: hisi_powerkey - enable system-wakeup for s2idle
        Input: synaptics - enable InterTouch on Dell Precision M3800
        Input: synaptics - enable InterTouch on TUXEDO InfinityBook Pro 14 v5
        Input: synaptics - enable InterTouch on Dynabook Portege X30L-G
        Input: synaptics - enable InterTouch on Dynabook Portege X30-D
        Input: synaptics - enable SMBus for HP Elitebook 850 G1
        Input: mtk-pmic-keys - fix possible null pointer dereference
        Input: xpad - add support for 8BitDo Ultimate 2 Wireless Controller
        Input: cyttsp5 - fix power control issue on wakeup
        MAINTAINERS: .mailmap: update Mattijs Korpershoek's email address
        dt-bindings: mediatek,mt6779-keypad: Update Mattijs' email address
        Input: stmpe-ts - use module alias instead of device table
        Input: cyttsp5 - ensure minimum reset pulse width
        Input: sparcspkr - avoid unannotated fall-through
        input/joystick: magellan: Mark __nonstring look-up table
      fea91239
    • Linus Torvalds's avatar
      Merge tag 'fixes-2025-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock · f717acc6
      Linus Torvalds authored
      Pull memblock fixes from Mike Rapoport:
      
       - Mark set_high_memory() as __init to fix section mismatch
      
       - Accept memory allocated in memblock_double_array() to mitigate crash
         of SNP guests
      
      * tag 'fixes-2025-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock:
        memblock: Accept allocated memory before use in memblock_double_array()
        mm,mm_init: Mark set_high_memory as __init
      f717acc6
    • Vicki Pfau's avatar
      Input: xpad - fix xpad_device sorting · 93406e9d
      Vicki Pfau authored
      
      
      A recent commit put one entry in the wrong place. This just moves it to the
      right place.
      
      Signed-off-by: default avatarVicki Pfau <vi@endrift.com>
      Link: https://lore.kernel.org/r/20250328234345.989761-5-vi@endrift.com
      
      
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      93406e9d
    • Vicki Pfau's avatar
      Input: xpad - add support for several more controllers · 7026d23c
      Vicki Pfau authored
      
      
      This adds support for several new controllers, all of which include
      Share buttons:
      
      - HORI Drum controller
      - PowerA Fusion Pro 4
      - 8BitDo Ultimate 3-mode Controller
      - Hyperkin DuchesS Xbox One controller
      - PowerA MOGA XP-Ultra controller
      
      Signed-off-by: default avatarVicki Pfau <vi@endrift.com>
      Link: https://lore.kernel.org/r/20250328234345.989761-4-vi@endrift.com
      
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      7026d23c
    • Vicki Pfau's avatar
      Input: xpad - fix Share button on Xbox One controllers · 4ef46367
      Vicki Pfau authored
      
      
      The Share button, if present, is always one of two offsets from the end of the
      file, depending on the presence of a specific interface. As we lack parsing for
      the identify packet we can't automatically determine the presence of that
      interface, but we can hardcode which of these offsets is correct for a given
      controller.
      
      More controllers are probably fixable by adding the MAP_SHARE_BUTTON in the
      future, but for now I only added the ones that I have the ability to test
      directly.
      
      Signed-off-by: default avatarVicki Pfau <vi@endrift.com>
      Link: https://lore.kernel.org/r/20250328234345.989761-2-vi@endrift.com
      
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      4ef46367
    • Vicki Pfau's avatar
      Input: xpad - fix two controller table values · d05a424b
      Vicki Pfau authored
      
      
      Two controllers -- Mad Catz JOYTECH NEO SE Advanced and PDP Mirror's
      Edge Official -- were missing the value of the mapping field, and thus
      wouldn't detect properly.
      
      Signed-off-by: default avatarVicki Pfau <vi@endrift.com>
      Link: https://lore.kernel.org/r/20250328234345.989761-1-vi@endrift.com
      
      
      Fixes: 540602a4 ("Input: xpad - add a few new VID/PID combinations")
      Fixes: 3492321e ("Input: xpad - add multiple supported devices")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      d05a424b
    • Ulf Hansson's avatar
      Input: hisi_powerkey - enable system-wakeup for s2idle · e98960bc
      Ulf Hansson authored
      
      
      To wake up the system from s2idle when pressing the power-button, let's
      convert from using pm_wakeup_event() to pm_wakeup_dev_event(), as it allows
      us to specify the "hard" in-parameter, which needs to be set for s2idle.
      
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Link: https://lore.kernel.org/r/20250306115021.797426-1-ulf.hansson@linaro.org
      
      
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      e98960bc
  2. May 10, 2025
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2025-05-10-14-23' of... · 3ce99258
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2025-05-10-14-23' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc hotfixes from Andrew Morton:
       "22 hotfixes. 13 are cc:stable and the remainder address post-6.14
        issues or aren't considered necessary for -stable kernels.
      
        About half are for MM. Five OCFS2 fixes and a few MAINTAINERS updates"
      
      * tag 'mm-hotfixes-stable-2025-05-10-14-23' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (22 commits)
        mm: fix folio_pte_batch() on XEN PV
        nilfs2: fix deadlock warnings caused by lock dependency in init_nilfs()
        mm/hugetlb: copy the CMA flag when demoting
        mm, swap: fix false warning for large allocation with !THP_SWAP
        selftests/mm: fix a build failure on powerpc
        selftests/mm: fix build break when compiling pkey_util.c
        mm: vmalloc: support more granular vrealloc() sizing
        tools/testing/selftests: fix guard region test tmpfs assumption
        ocfs2: stop quota recovery before disabling quotas
        ocfs2: implement handshaking with ocfs2 recovery thread
        ocfs2: switch osb->disable_recovery to enum
        mailmap: map Uwe's BayLibre addresses to a single one
        MAINTAINERS: add mm THP section
        mm/userfaultfd: fix uninitialized output field for -EAGAIN race
        selftests/mm: compaction_test: support platform with huge mount of memory
        MAINTAINERS: add core mm section
        ocfs2: fix panic in failed foilio allocation
        mm/huge_memory: fix dereferencing invalid pmd migration entry
        MAINTAINERS: add reverse mapping section
        x86: disable image size check for test builds
        ...
      3ce99258
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.15-rc6' of... · 34503098
      Linus Torvalds authored
      Merge tag 'driver-core-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core
      
      Pull driver core fix from Greg KH:
       "Here is a single driver core fix for a regression for platform devices
        that is a regression from a change that went into 6.15-rc1 that
        affected Pixel devices. It has been in linux-next for over a week with
        no reported problems"
      
      * tag 'driver-core-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core:
        platform: Fix race condition during DMA configure at IOMMU probe time
      34503098
    • Linus Torvalds's avatar
      Merge tag 'usb-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · bec6f00f
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some small USB driver fixes for 6.15-rc6. Included in here
        are:
      
         - typec driver fixes
      
         - usbtmc ioctl fixes
      
         - xhci driver fixes
      
         - cdnsp driver fixes
      
         - some gadget driver fixes
      
        Nothing really major, just all little stuff that people have reported
        being issues. All of these have been in linux-next this week with no
        reported issues"
      
      * tag 'usb-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        xhci: dbc: Avoid event polling busyloop if pending rx transfers are inactive.
        usb: xhci: Don't trust the EP Context cycle bit when moving HW dequeue
        usb: usbtmc: Fix erroneous generic_read ioctl return
        usb: usbtmc: Fix erroneous wait_srq ioctl return
        usb: usbtmc: Fix erroneous get_stb ioctl error returns
        usb: typec: tcpm: delay SNK_TRY_WAIT_DEBOUNCE to SRC_TRYWAIT transition
        USB: usbtmc: use interruptible sleep in usbtmc_read
        usb: cdnsp: fix L1 resume issue for RTL_REVISION_NEW_LPM version
        usb: typec: ucsi: displayport: Fix NULL pointer access
        usb: typec: ucsi: displayport: Fix deadlock
        usb: misc: onboard_usb_dev: fix support for Cypress HX3 hubs
        usb: uhci-platform: Make the clock really optional
        usb: dwc3: gadget: Make gadget_wakeup asynchronous
        usb: gadget: Use get_status callback to set remote wakeup capability
        usb: gadget: f_ecm: Add get_status callback
        usb: host: tegra: Prevent host controller crash when OTG port is used
        usb: cdnsp: Fix issue with resuming from L1
        usb: gadget: tegra-xudc: ACK ST_RC after clearing CTRL_RUN
      bec6f00f
    • Linus Torvalds's avatar
      Merge tag 'staging-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 067dd587
      Linus Torvalds authored
      Pull staging driver fixes from Greg KH:
       "Here are three small staging driver fixes for 6.15-rc6. These are:
      
         - bcm2835-camera driver fix
      
         - two axis-fifo driver fixes
      
        All of these have been in linux-next for a few weeks with no reported
        issues"
      
      * tag 'staging-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: axis-fifo: Remove hardware resets for user errors
        staging: axis-fifo: Correct handling of tx_fifo_depth for size validation
        staging: bcm2835-camera: Initialise dev in v4l2_dev
      067dd587
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 914a1fe5
      Linus Torvalds authored
      Pull char/misc/IIO driver fixes from Greg KH:
       "Here are a bunch of small driver fixes (mostly all IIO) for 6.15-rc6.
        Included in here are:
      
         - loads of tiny IIO driver fixes for reported issues
      
         - hyperv driver fix for a much-reported and worked on sysfs ring
           buffer creation bug
      
        All of these have been in linux-next for over a week (the IIO ones for
        many weeks now), with no reported issues"
      
      * tag 'char-misc-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (30 commits)
        Drivers: hv: Make the sysfs node size for the ring buffer dynamic
        uio_hv_generic: Fix sysfs creation path for ring buffer
        iio: adis16201: Correct inclinometer channel resolution
        iio: adc: ad7606: fix serial register access
        iio: pressure: mprls0025pa: use aligned_s64 for timestamp
        iio: imu: adis16550: align buffers for timestamp
        staging: iio: adc: ad7816: Correct conditional logic for store mode
        iio: adc: ad7266: Fix potential timestamp alignment issue.
        iio: adc: ad7768-1: Fix insufficient alignment of timestamp.
        iio: adc: dln2: Use aligned_s64 for timestamp
        iio: accel: adxl355: Make timestamp 64-bit aligned using aligned_s64
        iio: temp: maxim-thermocouple: Fix potential lack of DMA safe buffer.
        iio: chemical: pms7003: use aligned_s64 for timestamp
        iio: chemical: sps30: use aligned_s64 for timestamp
        iio: imu: inv_mpu6050: align buffer for timestamp
        iio: imu: st_lsm6dsx: Fix wakeup source leaks on device unbind
        iio: adc: qcom-spmi-iadc: Fix wakeup source leaks on device unbind
        iio: accel: fxls8962af: Fix wakeup source leaks on device unbind
        iio: adc: ad7380: fix event threshold shift
        iio: hid-sensor-prox: Fix incorrect OFFSET calculation
        ...
      914a1fe5
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · ed36b437
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
      
       - omap: use correct function to read from device tree
      
       - MAINTAINERS: remove Seth from ISMT maintainership
      
      * tag 'i2c-for-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        MAINTAINERS: Remove entry for Seth Heasley
        i2c: omap: fix deprecated of_property_read_bool() use
      ed36b437
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.15a-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 86c01959
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
      
       - A fix for the xenbus driver allowing to use a PVH Dom0 with
         Xenstore running in another domain
      
       - A fix for the xenbus driver addressing a rare race condition
         resulting in NULL dereferences and other problems
      
       - A fix for the xen-swiotlb driver fixing a problem seen on Arm
         platforms
      
      * tag 'for-linus-6.15a-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xenbus: Use kref to track req lifetime
        xenbus: Allow PVH dom0 a non-local xenstore
        xen: swiotlb: Use swiotlb bouncing if kmalloc allocation demands it
      86c01959
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · acbf2352
      Linus Torvalds authored
      Pull mount fixes from Al Viro:
       "A couple of races around legalize_mnt vs umount (both fairly old and
        hard to hit) plus two bugs in move_mount(2) - both around 'move
        detached subtree in place' logics"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fix IS_MNT_PROPAGATING uses
        do_move_mount(): don't leak MNTNS_PROPAGATING on failures
        do_umount(): add missing barrier before refcount checks in sync case
        __legitimize_mnt(): check for MNT_SYNC_UMOUNT should be under mount_lock
      acbf2352
    • Paolo Bonzini's avatar
      Merge tag 'kvm-x86-fixes-6.15-rcN' of https://github.com/kvm-x86/linux into HEAD · add20321
      Paolo Bonzini authored
      KVM x86 fixes for 6.15-rcN
      
       - Forcibly leave SMM on SHUTDOWN interception on AMD CPUs to avoid causing
         problems due to KVM stuffing INIT on SHUTDOWN (KVM needs to sanitize the
         VMCB as its state is undefined after SHUTDOWN, emulating INIT is the
         least awful choice).
      
       - Track the valid sync/dirty fields in kvm_run as a u64 to ensure KVM
         KVM doesn't goof a sanity check in the future.
      
       - Free obsolete roots when (re)loading the MMU to fix a bug where
         pre-faulting memory can get stuck due to always encountering a stale
         root.
      
       - When dumping GHCB state, use KVM's snapshot instead of the raw GHCB page
         to print state, so that KVM doesn't print stale/wrong information.
      
       - When changing memory attributes (e.g. shared <=> private), add potential
         hugepage ranges to the mmu_invalidate_range_{start,end} set so that KVM
         doesn't create a shared/private hugepage when the the corresponding
         attributes will become mixed (the attributes are commited *after* KVM
         finishes the invalidation).
      
       - Rework the SRSO mitigation to enable BP_SPEC_REDUCE only when KVM has at
         least one active VM.  Effectively BP_SPEC_REDUCE when KVM is loaded led
         to very measurable performance regressions for non-KVM workloads.
      add20321
    • Paolo Bonzini's avatar
      Merge tag 'kvmarm-fixes-6.15-3' of... · 36867c0e
      Paolo Bonzini authored
      Merge tag 'kvmarm-fixes-6.15-3' of https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      
      KVM/arm64 fixes for 6.15, round #3
      
       - Avoid use of uninitialized memcache pointer in user_mem_abort()
      
       - Always set HCR_EL2.xMO bits when running in VHE, allowing interrupts
         to be taken while TGE=0 and fixing an ugly bug on AmpereOne that
         occurs when taking an interrupt while clearing the xMO bits
         (AC03_CPU_36)
      
       - Prevent VMMs from hiding support for AArch64 at any EL virtualized by
         KVM
      
       - Save/restore the host value for HCRX_EL2 instead of restoring an
         incorrect fixed value
      
       - Make host_stage2_set_owner_locked() check that the entire requested
         range is memory rather than just the first page
      36867c0e
    • Paolo Bonzini's avatar
      Merge tag 'kvm-riscv-fixes-6.15-1' of https://github.com/kvm-riscv/linux into HEAD · 6a74470b
      Paolo Bonzini authored
      KVM/riscv fixes for 6.15, take #1
      
      - Add missing reset of smstateen CSRs
      6a74470b
    • Wolfram Sang's avatar
      Merge tag 'i2c-host-fixes-6.15-rc6' of... · b6c08bcd
      Wolfram Sang authored
      Merge tag 'i2c-host-fixes-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current
      
      i2c-host-fixes for v6.15-rc6
      
      - omap: use correct function to read from device tree
      - MAINTAINERS: remove Seth from ISMT maintainership
      b6c08bcd
  3. May 09, 2025
    • Linus Torvalds's avatar
      Merge tag '6.15-rc5-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 1a33418a
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - Fix dentry leak which can cause umount crash
      
       - Add warning for parse contexts error on compounded operation
      
      * tag '6.15-rc5-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        smb: client: Avoid race in open_cached_dir with lease breaks
        smb3 client: warn when parse contexts returns error on compounded operation
      1a33418a
    • Al Viro's avatar
      fix IS_MNT_PROPAGATING uses · d1ddc6f1
      Al Viro authored
      
      
      propagate_mnt() does not attach anything to mounts created during
      propagate_mnt() itself.  What's more, anything on ->mnt_slave_list
      of such new mount must also be new, so we don't need to even look
      there.
      
      When move_mount() had been introduced, we've got an additional
      class of mounts to skip - if we are moving from anon namespace,
      we do not want to propagate to mounts we are moving (i.e. all
      mounts in that anon namespace).
      
      Unfortunately, the part about "everything on their ->mnt_slave_list
      will also be ignorable" is not true - if we have propagation graph
      	A -> B -> C
      and do OPEN_TREE_CLONE open_tree() of B, we get
      	A -> [B <-> B'] -> C
      as propagation graph, where B' is a clone of B in our detached tree.
      Making B private will result in
      	A -> B' -> C
      C still gets propagation from A, as it would after making B private
      if we hadn't done that open_tree(), but now the propagation goes
      through B'.  Trying to move_mount() our detached tree on subdirectory
      in A should have
      	* moved B' on that subdirectory in A
      	* skipped the corresponding subdirectory in B' itself
      	* copied B' on the corresponding subdirectory in C.
      As it is, the logics in propagation_next() and friends ends up
      skipping propagation into C, since it doesn't consider anything
      downstream of B'.
      
      IOW, walking the propagation graph should only skip the ->mnt_slave_list
      of new mounts; the only places where the check for "in that one
      anon namespace" are applicable are propagate_one() (where we should
      treat that as the same kind of thing as "mountpoint we are looking
      at is not visible in the mount we are looking at") and
      propagation_would_overmount().  The latter is better dealt with
      in the caller (can_move_mount_beneath()); on the first call of
      propagation_would_overmount() the test is always false, on the
      second it is always true in "move from anon namespace" case and
      always false in "move within our namespace" one, so it's easier
      to just use check_mnt() before bothering with the second call and
      be done with that.
      
      Fixes: 064fe6e2 ("mount: handle mount propagation for detached mount trees")
      Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      d1ddc6f1
    • Al Viro's avatar
      do_move_mount(): don't leak MNTNS_PROPAGATING on failures · 267fc3a0
      Al Viro authored
      
      
      as it is, a failed move_mount(2) from anon namespace breaks
      all further propagation into that namespace, including normal
      mounts in non-anon namespaces that would otherwise propagate
      there.
      
      Fixes: 064fe6e2 ("mount: handle mount propagation for detached mount trees")
      Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      267fc3a0
    • Al Viro's avatar
      do_umount(): add missing barrier before refcount checks in sync case · 65781e19
      Al Viro authored
      
      
      do_umount() analogue of the race fixed in 119e1ef8 "fix
      __legitimize_mnt()/mntput() race".  Here we want to make sure that
      if __legitimize_mnt() doesn't notice our lock_mount_hash(), we will
      notice their refcount increment.  Harder to hit than mntput_no_expire()
      one, fortunately, and consequences are milder (sync umount acting
      like umount -l on a rare race with RCU pathwalk hitting at just the
      wrong time instead of use-after-free galore mntput_no_expire()
      counterpart used to be hit).  Still a bug...
      
      Fixes: 48a066e7 ("RCU'd vfsmounts")
      Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      65781e19
    • Al Viro's avatar
      __legitimize_mnt(): check for MNT_SYNC_UMOUNT should be under mount_lock · 250cf369
      Al Viro authored
      
      
      ... or we risk stealing final mntput from sync umount - raising mnt_count
      after umount(2) has verified that victim is not busy, but before it
      has set MNT_SYNC_UMOUNT; in that case __legitimize_mnt() doesn't see
      that it's safe to quietly undo mnt_count increment and leaves dropping
      the reference to caller, where it'll be a full-blown mntput().
      
      Check under mount_lock is needed; leaving the current one done before
      taking that makes no sense - it's nowhere near common enough to bother
      with.
      
      Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      250cf369
    • Linus Torvalds's avatar
      Merge tag 'rust-fixes-6.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux · 0e1329d4
      Linus Torvalds authored
      Pull rust fixes from Miguel Ojeda:
      
       - Make CFI_AUTO_DEFAULT depend on !RUST or Rust >= 1.88.0
      
       - Clean Rust (and Clippy) lints for the upcoming Rust 1.87.0 and 1.88.0
         releases
      
       - Clean objtool warning for the upcoming Rust 1.87.0 release by adding
         one more noreturn function
      
      * tag 'rust-fixes-6.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux:
        x86/Kconfig: make CFI_AUTO_DEFAULT depend on !RUST or Rust >= 1.88
        rust: clean Rust 1.88.0's `clippy::uninlined_format_args` lint
        rust: clean Rust 1.88.0's warning about `clippy::disallowed_macros` configuration
        rust: clean Rust 1.88.0's `unnecessary_transmutes` lint
        rust: allow Rust 1.87.0's `clippy::ptr_eq` lint
        objtool/rust: add one more `noreturn` Rust function for Rust 1.87.0
      0e1329d4
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2025-05-10' of https://gitlab.freedesktop.org/drm/kernel · ea34704d
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly drm fixes, bit bigger than last week, but overall amdgpu/xe
        with some ivpu bits and a random few fixes, and dropping the
        ttm_backup struct which wrapped struct file and was recently
        frowned at.
      
        drm:
         - Fix overflow when generating wedged event
      
        ttm:
         - Fix documentation
         - Remove struct ttm_backup
      
        panel:
         - simple: Fix timings for AUO G101EVN010
      
        amdgpu:
         - DC FP fixes
         - Freesync fix
         - DMUB AUX fixes
         - VCN fix
         - Hibernation fixes
         - HDP fixes
      
        xe:
         - Prevent PF queue overflow
         - Hold all forcewake during mocs test
         - Remove GSC flush on reset path
         - Fix forcewake put on error path
         - Fix runtime warning when building without svm
      
        i915:
         - Fix oops on resume after disconnecting DP MST sinks during suspend
         - Fix SPLC num_waiters refcounting
      
        ivpu:
         - Increase timeouts
         - Fix deadlock in cmdq ioctl
         - Unlock mutices in correct order
      
        v3d:
         - Avoid memory leak in job handling"
      
      * tag 'drm-fixes-2025-05-10' of https://gitlab.freedesktop.org/drm/kernel: (32 commits)
        drm/i915/dp: Fix determining SST/MST mode during MTP TU state computation
        drm/xe: Add config control for svm flush work
        drm/xe: Release force wake first then runtime power
        drm/xe/gsc: do not flush the GSC worker from the reset path
        drm/xe/tests/mocs: Hold XE_FORCEWAKE_ALL for LNCF regs
        drm/xe: Add page queue multiplier
        drm/amdgpu/hdp7: use memcfg register to post the write for HDP flush
        drm/amdgpu/hdp6: use memcfg register to post the write for HDP flush
        drm/amdgpu/hdp5.2: use memcfg register to post the write for HDP flush
        drm/amdgpu/hdp5: use memcfg register to post the write for HDP flush
        drm/amdgpu/hdp4: use memcfg register to post the write for HDP flush
        drm/amdgpu: fix pm notifier handling
        Revert "drm/amd: Stop evicting resources on APUs in suspend"
        drm/amdgpu/vcn: using separate VCN1_AON_SOC offset
        drm/amd/display: Fix wrong handling for AUX_DEFER case
        drm/amd/display: Copy AUX read reply data whenever length > 0
        drm/amd/display: Remove incorrect checking in dmub aux handler
        drm/amd/display: Fix the checking condition in dmub aux handling
        drm/amd/display: Shift DMUB AUX reply command if necessary
        drm/amd/display: Call FP Protect Before Mode Programming/Mode Support
        ...
      ea34704d
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2025-05-09' of... · c2c64ed0
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2025-05-09' of https://gitlab.freedesktop.org/drm/i915/kernel
      
       into drm-fixes
      
      drm/i915 fixes for v6.15-rc6:
      - Fix oops on resume after disconnecting DP MST sinks during suspend
      - Fix SPLC num_waiters refcounting
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://lore.kernel.org/r/87tt5umeaw.fsf@intel.com
      c2c64ed0
    • Dave Airlie's avatar
      Merge tag 'drm-xe-fixes-2025-05-09' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes · f7be784c
      Dave Airlie authored
      
      
      Driver Changes:
      - Prevent PF queue overflow
      - Hold all forcewake during mocs test
      - Remove GSC flush on reset path
      - Fix forcewake put on error path
      - Fix runtime warning when building without svm
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Lucas De Marchi <lucas.demarchi@intel.com>
      Link: https://lore.kernel.org/r/jffqa56f2zp4i5ztz677cdspgxhnw7qfop3dd3l2epykfpfvza@q2nw6wapsphz
      f7be784c
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 50358c25
      Linus Torvalds authored
      Pull arm64 fix from Catalin Marinas:
       "Move the arm64_use_ng_mappings variable from the .bss to the .data
        section as it is accessed very early during boot with the MMU off and
        before the .bss has been initialised.
      
        This could lead to incorrect idmap page table"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: cpufeature: Move arm64_use_ng_mappings to the .data section to prevent wrong idmap generation
      50358c25
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 3013c33d
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - The compressed half-word misaligned access instructions (c.lhu, c.lh,
         and c.sh) from the Zcb extension are now properly emulated
      
       - A series of fixes to properly emulate permissions while handling
         userspace misaligned accesses
      
       - A pair of fixes for PR_GET_TAGGED_ADDR_CTRL to avoid accessing the
         envcfg CSR on systems that don't support that CSR, and to report
         those failures up to userspace
      
       - The .rela.dyn section is no longer stripped from vmlinux, as it is
         necessary to relocate the kernel under some conditions (including
         kexec)
      
      * tag 'riscv-for-linus-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: Disallow PR_GET_TAGGED_ADDR_CTRL without Supm
        scripts: Do not strip .rela.dyn section
        riscv: Fix kernel crash due to PR_SET_TAGGED_ADDR_CTRL
        riscv: misaligned: use get_user() instead of __get_user()
        riscv: misaligned: enable IRQs while handling misaligned accesses
        riscv: misaligned: factorize trap handling
        riscv: misaligned: Add handling for ZCB instructions
      3013c33d
    • Linus Torvalds's avatar
      Merge tag 'block-6.15-20250509' of git://git.kernel.dk/linux · cc9f0629
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - Fix for a regression in this series for loop and read/write iterator
         handling
      
       - zone append block update tweak
      
       - remove a broken IO priority test
      
       - NVMe pull request via Christoph:
            - unblock ctrl state transition for firmware update (Daniel
              Wagner)
      
      * tag 'block-6.15-20250509' of git://git.kernel.dk/linux:
        block: remove test of incorrect io priority level
        nvme: unblock ctrl state transition for firmware update
        block: only update request sector if needed
        loop: Add sanity check for read/write_iter
      cc9f0629
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.15-20250509' of git://git.kernel.dk/linux · 7380c60b
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - Fix for linked timeouts arming and firing wrt prep and issue of the
         request being managed by the linked timeout
      
       - Fix for a CQE ordering issue between requests with multishot and
         using the same buffer group. This is a dumbed down version for this
         release and for stable, it'll get improved for v6.16
      
       - Tweak the SQPOLL submit batch size. A previous commit made SQPOLL
         manage its own task_work and chose a tiny batch size, bump it from 8
         to 32 to fix a performance regression due to that
      
      * tag 'io_uring-6.15-20250509' of git://git.kernel.dk/linux:
        io_uring/sqpoll: Increase task_work submission batch size
        io_uring: ensure deferred completions are flushed for multishot
        io_uring: always arm linked timeouts prior to issue
      7380c60b
    • Linus Torvalds's avatar
      Merge tag 'modules-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/modules/linux · 29fe5d50
      Linus Torvalds authored
      Pull modules fix from Petr Pavlu:
       "A single fix to prevent use of an uninitialized completion pointer
        when releasing a module_kobject in specific situations.
      
        This addresses a latent bug exposed by commit f95bbfe1 ("drivers:
        base: handle module_kobject creation")"
      
      * tag 'modules-6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/modules/linux:
        module: ensure that kobject_put() is safe for module type kobjects
      29fe5d50
    • Dave Hansen's avatar
      x86/mm: Eliminate window where TLB flushes may be inadvertently skipped · fea4e317
      Dave Hansen authored
      
      
      tl;dr: There is a window in the mm switching code where the new CR3 is
      set and the CPU should be getting TLB flushes for the new mm.  But
      should_flush_tlb() has a bug and suppresses the flush.  Fix it by
      widening the window where should_flush_tlb() sends an IPI.
      
      Long Version:
      
      === History ===
      
      There were a few things leading up to this.
      
      First, updating mm_cpumask() was observed to be too expensive, so it was
      made lazier.  But being lazy caused too many unnecessary IPIs to CPUs
      due to the now-lazy mm_cpumask().  So code was added to cull
      mm_cpumask() periodically[2].  But that culling was a bit too aggressive
      and skipped sending TLB flushes to CPUs that need them.  So here we are
      again.
      
      === Problem ===
      
      The too-aggressive code in should_flush_tlb() strikes in this window:
      
      	// Turn on IPIs for this CPU/mm combination, but only
      	// if should_flush_tlb() agrees:
      	cpumask_set_cpu(cpu, mm_cpumask(next));
      
      	next_tlb_gen = atomic64_read(&next->context.tlb_gen);
      	choose_new_asid(next, next_tlb_gen, &new_asid, &need_flush);
      	load_new_mm_cr3(need_flush);
      	// ^ After 'need_flush' is set to false, IPIs *MUST*
      	// be sent to this CPU and not be ignored.
      
              this_cpu_write(cpu_tlbstate.loaded_mm, next);
      	// ^ Not until this point does should_flush_tlb()
      	// become true!
      
      should_flush_tlb() will suppress TLB flushes between load_new_mm_cr3()
      and writing to 'loaded_mm', which is a window where they should not be
      suppressed.  Whoops.
      
      === Solution ===
      
      Thankfully, the fuzzy "just about to write CR3" window is already marked
      with loaded_mm==LOADED_MM_SWITCHING.  Simply checking for that state in
      should_flush_tlb() is sufficient to ensure that the CPU is targeted with
      an IPI.
      
      This will cause more TLB flush IPIs.  But the window is relatively small
      and I do not expect this to cause any kind of measurable performance
      impact.
      
      Update the comment where LOADED_MM_SWITCHING is written since it grew
      yet another user.
      
      Peter Z also raised a concern that should_flush_tlb() might not observe
      'loaded_mm' and 'is_lazy' in the same order that switch_mm_irqs_off()
      writes them.  Add a barrier to ensure that they are observed in the
      order they are written.
      
      Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Acked-by: default avatarRik van Riel <riel@surriel.com>
      Link: https://lore.kernel.org/oe-lkp/202411282207.6bd28eae-lkp@intel.com/
      
       [1]
      Fixes: 6db2526c ("x86/mm/tlb: Only trim the mm_cpumask once a second") [2]
      Reported-by: default avatarStephen Dolan <sdolan@janestreet.com>
      Cc: stable@vger.kernel.org
      Acked-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fea4e317
    • Gabriel Krisman Bertazi's avatar
      io_uring/sqpoll: Increase task_work submission batch size · 92835ceb
      Gabriel Krisman Bertazi authored
      
      
      Our QA team reported a 10%-23%, throughput reduction on an io_uring
      sqpoll testcase doing IO to a null_blk, that I traced back to a
      reduction of the device submission queue depth utilization. It turns out
      that, after commit af5d68f8 ("io_uring/sqpoll: manage task_work
      privately"), we capped the number of task_work entries that can be
      completed from a single spin of sqpoll to only 8 entries, before the
      sqpoll goes around to (potentially) sleep.  While this cap doesn't drive
      the submission side directly, it impacts the completion behavior, which
      affects the number of IO queued by fio per sqpoll cycle on the
      submission side, and io_uring ends up seeing less ios per sqpoll cycle.
      As a result, block layer plugging is less effective, and we see more
      time spent inside the block layer in profilings charts, and increased
      submission latency measured by fio.
      
      There are other places that have increased overhead once sqpoll sleeps
      more often, such as the sqpoll utilization calculation.  But, in this
      microbenchmark, those were not representative enough in perf charts, and
      their removal didn't yield measurable changes in throughput.  The major
      overhead comes from the fact we plug less, and less often, when submitting
      to the block layer.
      
      My benchmark is:
      
      fio --ioengine=io_uring --direct=1 --iodepth=128 --runtime=300 --bs=4k \
          --invalidate=1 --time_based  --ramp_time=10 --group_reporting=1 \
          --filename=/dev/nullb0 --name=RandomReads-direct-nullb-sqpoll-4k-1 \
          --rw=randread --numjobs=1 --sqthread_poll
      
      In one machine, tested on top of Linux 6.15-rc1, we have the following
      baseline:
        READ: bw=4994MiB/s (5236MB/s), 4994MiB/s-4994MiB/s (5236MB/s-5236MB/s), io=439GiB (471GB), run=90001-90001msec
      
      With this patch:
        READ: bw=5762MiB/s (6042MB/s), 5762MiB/s-5762MiB/s (6042MB/s-6042MB/s), io=506GiB (544GB), run=90001-90001msec
      
      which is a 15% improvement in measured bandwidth.  The average
      submission latency is noticeably lowered too.  As measured by
      fio:
      
      Baseline:
         lat (usec): min=20, max=241, avg=99.81, stdev=3.38
      Patched:
         lat (usec): min=26, max=226, avg=86.48, stdev=4.82
      
      If we look at blktrace, we can also see the plugging behavior is
      improved. In the baseline, we end up limited to plugging 8 requests in
      the block layer regardless of the device queue depth size, while after
      patching we can drive more io, and we manage to utilize the full device
      queue.
      
      In the baseline, after a stabilization phase, an ordinary submission
      looks like:
        254,0    1    49942     0.016028795  5977  U   N [iou-sqp-5976] 7
      
      After patching, I see consistently more requests per unplug.
        254,0    1     4996     0.001432872  3145  U   N [iou-sqp-3144] 32
      
      Ideally, the cap size would at least be the deep enough to fill the
      device queue, but we can't predict that behavior, or assume all IO goes
      to a single device, and thus can't guess the ideal batch size.  We also
      don't want to let the tw run unbounded, though I'm not sure it would
      really be a problem.  Instead, let's just give it a more sensible value
      that will allow for more efficient batching.  I've tested with different
      cap values, and initially proposed to increase the cap to 1024.  Jens
      argued it is too big of a bump and I observed that, with 32, I'm no
      longer able to observe this bottleneck in any of my machines.
      
      Fixes: af5d68f8 ("io_uring/sqpoll: manage task_work privately")
      Signed-off-by: default avatarGabriel Krisman Bertazi <krisman@suse.de>
      Link: https://lore.kernel.org/r/20250508181203.3785544-1-krisman@suse.de
      
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      92835ceb
Loading