Changelog in Linux kernel 6.16.10

 
afs: Fix potential null pointer dereference in afs_put_server [+ + +]
Author: Zhen Ni <zhen.ni@easystack.cn>
Date:   Tue Sep 23 15:51:04 2025 +0800

    afs: Fix potential null pointer dereference in afs_put_server
    
    commit 9158c6bb245113d4966df9b2ba602197a379412e upstream.
    
    afs_put_server() accessed server->debug_id before the NULL check, which
    could lead to a null pointer dereference. Move the debug_id assignment,
    ensuring we never dereference a NULL server pointer.
    
    Fixes: 2757a4dc1849 ("afs: Fix access after dec in put functions")
    Cc: stable@vger.kernel.org
    Signed-off-by: Zhen Ni <zhen.ni@easystack.cn>
    Acked-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
ALSA: hda/realtek: Add support for ASUS NUC using CS35L41 HDA [+ + +]
Author: Stefan Binding <sbinding@opensource.cirrus.com>
Date:   Thu Jun 12 17:00:23 2025 +0100

    ALSA: hda/realtek: Add support for ASUS NUC using CS35L41 HDA
    
    [ Upstream commit 84fc8896f0d9d1c075e0e08a416faedbd73907fa ]
    
    Add support for ASUS NUC14LNS.
    
    This NUC uses a single CS35L41 Amp in using Internal Boost with SPI.
    To support the Single Amp, a new quirk is required.
    
    Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com>
    Link: https://patch.msgid.link/20250612160029.848104-3-sbinding@opensource.cirrus.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Add DSD support for Comtrue USB Audio device [+ + +]
Author: noble.yang <noble.yang@comtrue-inc.com>
Date:   Thu Jul 31 19:06:14 2025 +0800

    ALSA: usb-audio: Add DSD support for Comtrue USB Audio device
    
    [ Upstream commit e9df1755485dd90a89656e8a21ec4d71c909fa30 ]
    
    The vendor Comtrue Inc. (0x2fc6) produces USB audio chipsets like
    the CT7601 which are capable of Native DSD playback.
    
    This patch adds QUIRK_FLAG_DSD_RAW for Comtrue (VID 0x2fc6), which enables
    native DSD playback (DSD_U32_LE) on their USB Audio device. This has been
    verified under Ubuntu 25.04 with JRiver.
    
    Signed-off-by: noble.yang <noble.yang@comtrue-inc.com>
    Link: https://patch.msgid.link/20250731110614.4070-1-noble228@gmail.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Add mixer quirk for Sony DualSense PS5 [+ + +]
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Mon May 26 17:07:48 2025 +0300

    ALSA: usb-audio: Add mixer quirk for Sony DualSense PS5
    
    [ Upstream commit 79d561c4ec0497669f19a9550cfb74812f60938b ]
    
    The Sony DualSense wireless controller (PS5) features an internal mono
    speaker, but it also provides a 3.5mm jack socket for headphone output
    and headset microphone input.
    
    Since this is a UAC1 device, it doesn't advertise any jack detection
    capability.  However, the controller is able to report HP & MIC insert
    events via HID, i.e. through a dedicated input device managed by the
    hid-playstation driver.
    
    Add a quirk to create the jack controls for headphone and headset mic,
    respectively, and setup an input handler for each of them in order to
    intercept the related hotplug events.
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://patch.msgid.link/20250526-dualsense-alsa-jack-v1-9-1a821463b632@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Add mute TLV for playback volumes on more devices [+ + +]
Author: qaqland <anguoli@uniontech.com>
Date:   Fri Aug 29 14:40:48 2025 +0800

    ALSA: usb-audio: Add mute TLV for playback volumes on more devices
    
    [ Upstream commit 2cbe4ac193ed7172cfd825c0cc46ce4a41be4ba1 ]
    
    Applying the quirk of that, the lowest Playback mixer volume setting
    mutes the audio output, on more devices.
    
    Suggested-by: Cryolitia PukNgae <cryolitia@uniontech.com>
    Signed-off-by: qaqland <anguoli@uniontech.com>
    Link: https://patch.msgid.link/20250829-sound_quirk-v1-1-745529b44440@uniontech.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Avoid multiple assignments in mixer_quirks [+ + +]
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Mon May 26 17:07:45 2025 +0300

    ALSA: usb-audio: Avoid multiple assignments in mixer_quirks
    
    [ Upstream commit 03ddd3bdb94df3edb1f2408b57cfb00b3d92a208 ]
    
    Handle report from checkpatch.pl:
    
      CHECK: multiple assignments should be avoided
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://patch.msgid.link/20250526-dualsense-alsa-jack-v1-6-1a821463b632@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Convert comma to semicolon [+ + +]
Author: Chen Ni <nichen@iscas.ac.cn>
Date:   Thu Jun 12 14:02:28 2025 +0800

    ALSA: usb-audio: Convert comma to semicolon
    
    [ Upstream commit 9ca30a1b007d5fefb5752428f852a2d8d7219c1c ]
    
    Replace comma between expressions with semicolons.
    
    Using a ',' in place of a ';' can have unintended side effects.
    Although that is not the case here, it is seems best to use ';'
    unless ',' is intended.
    
    Found by inspection.
    No functional change intended.
    Compile tested only.
    
    Fixes: 79d561c4ec04 ("ALSA: usb-audio: Add mixer quirk for Sony DualSense PS5")
    Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
    Reviewed-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Link: https://patch.msgid.link/20250612060228.1518028-1-nichen@iscas.ac.cn
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Drop unnecessary parentheses in mixer_quirks [+ + +]
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Mon May 26 17:07:44 2025 +0300

    ALSA: usb-audio: Drop unnecessary parentheses in mixer_quirks
    
    [ Upstream commit c0495cef8b43ad61efbd4019e3573742e0e63c67 ]
    
    Fix multiple 'CHECK: Unnecessary parentheses around ...' reports from
    checkpatch.pl.
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://patch.msgid.link/20250526-dualsense-alsa-jack-v1-5-1a821463b632@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Fix block comments in mixer_quirks [+ + +]
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Mon May 26 17:07:43 2025 +0300

    ALSA: usb-audio: Fix block comments in mixer_quirks
    
    [ Upstream commit 231225d8a20f8668b4fd6601d54a2fac0e0ab7a5 ]
    
    Address a couple of comment formatting issues indicated by
    checkpatch.pl:
    
      WARNING: Block comments use a trailing */ on a separate line
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://patch.msgid.link/20250526-dualsense-alsa-jack-v1-4-1a821463b632@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Fix build with CONFIG_INPUT=n [+ + +]
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Jun 13 10:15:30 2025 +0200

    ALSA: usb-audio: Fix build with CONFIG_INPUT=n
    
    [ Upstream commit d0630a0b80c08530857146e3bf183a7d6b743847 ]
    
    The recent addition of DualSense mixer quirk relies on the input
    device handle, and the build can fail if CONFIG_INPUT isn't set.
    Put (rather ugly) workarounds to wrap with IS_REACHABLE() for avoiding
    the build error.
    
    Fixes: 79d561c4ec04 ("ALSA: usb-audio: Add mixer quirk for Sony DualSense PS5")
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202506130733.gnPKw2l3-lkp@intel.com/
    Reviewed-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Link: https://patch.msgid.link/20250613081543.7404-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Fix code alignment in mixer_quirks [+ + +]
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Mon May 26 17:07:40 2025 +0300

    ALSA: usb-audio: Fix code alignment in mixer_quirks
    
    [ Upstream commit bca638aa737d13749a871d1a0d2ed276501ffc54 ]
    
    Format code to fix all alignment issues reported by checkpatch.pl:
    
      CHECK: Alignment should match open parenthesis
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://patch.msgid.link/20250526-dualsense-alsa-jack-v1-1-1a821463b632@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Fix whitespace & blank line issues in mixer_quirks [+ + +]
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Mon May 26 17:07:41 2025 +0300

    ALSA: usb-audio: Fix whitespace & blank line issues in mixer_quirks
    
    [ Upstream commit df6b4dcf2e2c3b4e34c3213a575c92d0c9415d0d ]
    
    Address all whitespace & blank line(s) related issues reported by
    checkpatch.pl:
    
      ERROR: trailing whitespace
      ERROR: space required after that ',' (ctx:VxV)
      WARNING: Missing a blank line after declarations
      CHECK: Please use a blank line after function/struct/union/enum declarations
      CHECK: Please don't use multiple blank lines
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://patch.msgid.link/20250526-dualsense-alsa-jack-v1-2-1a821463b632@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: move mixer_quirks' min_mute into common quirk [+ + +]
Author: Cryolitia PukNgae <cryolitia@uniontech.com>
Date:   Wed Aug 27 11:29:02 2025 +0800

    ALSA: usb-audio: move mixer_quirks' min_mute into common quirk
    
    [ Upstream commit 2c3ca8cc55a3afc7a4fa99ed8f5f5d05dd2e65b3 ]
    
    We have found more and more devices that have the same problem, that
    the mixer's minimum value is muted. Accroding to pipewire's MR[1]
    and Arch Linux wiki[2], this should be a very common problem in USB
    audio devices. Move the quirk into common quirk,as a preparation of
    more devices' quirk's patch coming on the road[3].
    
    1. https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2514
    2. https://wiki.archlinux.org/index.php?title=PipeWire&oldid=804138#No_sound_from_USB_DAC_until_30%_volume
    3. On the road, in the physical sense. We have been buying ton of
       these devices for testing the problem.
    
    Tested-by: Guoli An <anguoli@uniontech.com>
    Signed-off-by: Cryolitia PukNgae <cryolitia@uniontech.com>
    Link: https://patch.msgid.link/20250827-sound-quirk-min-mute-v1-1-4717aa8a4f6a@uniontech.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Remove unneeded wmb() in mixer_quirks [+ + +]
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Mon May 26 17:07:47 2025 +0300

    ALSA: usb-audio: Remove unneeded wmb() in mixer_quirks
    
    [ Upstream commit 9cea7425595697802e8d55a322a251999554b8b1 ]
    
    Adding a memory barrier before wake_up() in
    snd_usb_soundblaster_remote_complete() is supposed to ensure the write
    to mixer->rc_code is visible in wait_event_interruptible() from
    snd_usb_sbrc_hwdep_read().
    
    However, this is not really necessary, since wake_up() is just a wrapper
    over __wake_up() which already executes a full memory barrier before
    accessing the state of the task to be waken up.
    
    Drop the redundant call to wmb() and implicitly fix the checkpatch
    complaint:
    
      WARNING: memory barrier without comment
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://patch.msgid.link/20250526-dualsense-alsa-jack-v1-8-1a821463b632@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: usb-audio: Simplify NULL comparison in mixer_quirks [+ + +]
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Mon May 26 17:07:46 2025 +0300

    ALSA: usb-audio: Simplify NULL comparison in mixer_quirks
    
    [ Upstream commit f2d6d660e8fd5f4467e80743f82119201e67fa9c ]
    
    Handle report from checkpatch.pl:
    
      CHECK: Comparison to NULL could be written "t->name"
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://patch.msgid.link/20250526-dualsense-alsa-jack-v1-7-1a821463b632@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
amd/amdkfd: correct mem limit calculation for small APUs [+ + +]
Author: Yifan Zhang <yifan1.zhang@amd.com>
Date:   Wed Aug 20 16:10:51 2025 +0800

    amd/amdkfd: correct mem limit calculation for small APUs
    
    [ Upstream commit 53503556273a5ead8b75534085e2dcb46e96f883 ]
    
    Current mem limit check leaks some GTT memory (reserved_for_pt
    reserved_for_ras + adev->vram_pin_size) for small APUs.
    
    Since carveout VRAM is tunable on APUs, there are three case
    regarding the carveout VRAM size relative to GTT:
    
    1. 0 < carveout < gtt
       apu_prefer_gtt = true, is_app_apu = false
    
    2. carveout > gtt / 2
       apu_prefer_gtt = false, is_app_apu = false
    
    3. 0 = carveout
       apu_prefer_gtt = true, is_app_apu = true
    
    It doesn't make sense to check below limitation in case 1
    (default case, small carveout) because the values in the below
    expression are mixed with carveout and gtt.
    
    adev->kfd.vram_used[xcp_id] + vram_needed >
        vram_size - reserved_for_pt - reserved_for_ras -
        atomic64_read(&adev->vram_pin_size)
    
    gtt: kfd.vram_used, vram_needed, vram_size
    carveout: reserved_for_pt, reserved_for_ras, adev->vram_pin_size
    
    In case 1, vram allocation will go to gtt domain, skip vram check
    since ttm_mem_limit check already cover this allocation.
    
    Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    (cherry picked from commit fa7c99f04f6dd299388e9282812b14e95558ac8e)
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
arm64: dts: imx8mp: Correct thermal sensor index [+ + +]
Author: Peng Fan <peng.fan@nxp.com>
Date:   Fri Sep 5 11:01:09 2025 +0800

    arm64: dts: imx8mp: Correct thermal sensor index
    
    [ Upstream commit a50342f976d25aace73ff551845ce89406f48f35 ]
    
    The TMU has two temperature measurement sites located on the chip. The
    probe 0 is located inside of the ANAMIX, while the probe 1 is located near
    the ARM core. This has been confirmed by checking with HW design team and
    checking RTL code.
    
    So correct the {cpu,soc}-thermal sensor index.
    
    Fixes: 30cdd62dce6b ("arm64: dts: imx8mp: Add thermal zones support")
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Reviewed-by: Frank Li <Frank.Li@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

arm64: dts: marvell: cn9132-clearfog: disable eMMC high-speed modes [+ + +]
Author: Josua Mayer <josua@solid-run.com>
Date:   Thu Sep 11 20:28:05 2025 +0200

    arm64: dts: marvell: cn9132-clearfog: disable eMMC high-speed modes
    
    commit 48b51799a5461707705454568453618cdd7307f4 upstream.
    
    Similar to MacchiatoBIN the high-speed modes are unstable on the CN9132
    CEX-7 module, leading to failed transactions under normal use.
    
    Disable all high-speed modes including UHS.
    
    Additionally add no-sdio and non-removable properties as appropriate for
    eMMC.
    
    Fixes: e9ff907f4076 ("arm64: dts: add description for solidrun cn9132 cex7 module and clearfog board")
    Cc: stable@vger.kernel.org
    Signed-off-by: Josua Mayer <josua@solid-run.com>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

arm64: dts: marvell: cn9132-clearfog: fix multi-lane pci x2 and x4 ports [+ + +]
Author: Josua Mayer <josua@solid-run.com>
Date:   Thu Sep 11 20:28:06 2025 +0200

    arm64: dts: marvell: cn9132-clearfog: fix multi-lane pci x2 and x4 ports
    
    commit 794a066688038df46c01e177cc6faebded0acba4 upstream.
    
    The mvebu-comphy driver does not currently know how to pass correct
    lane-count to ATF while configuring the serdes lanes.
    
    This causes the system to hard reset during reconfiguration, if a pci
    card is present and has established a link during bootloader.
    
    Remove the comphy handles from the respective pci nodes to avoid runtime
    reconfiguration, relying solely on bootloader configuration - while
    avoiding the hard reset.
    
    When bootloader has configured the lanes correctly, the pci ports are
    functional under Linux.
    
    This issue may be addressed in the comphy driver at a future point.
    
    Fixes: e9ff907f4076 ("arm64: dts: add description for solidrun cn9132 cex7 module and clearfog board")
    Cc: stable@vger.kernel.org
    Signed-off-by: Josua Mayer <josua@solid-run.com>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

arm64: dts: marvell: cn913x-solidrun: fix sata ports status [+ + +]
Author: Josua Mayer <josua@solid-run.com>
Date:   Thu Sep 11 20:28:04 2025 +0200

    arm64: dts: marvell: cn913x-solidrun: fix sata ports status
    
    commit d3021e6aa11fecdafa85038a037c04d5bfeda9d5 upstream.
    
    Commit "arm64: dts: marvell: only enable complete sata nodes" changed
    armada-cp11x.dtsi disabling all sata ports status by default.
    
    The author missed some dts which relied on the dtsi enabling all ports,
    and just disabled unused ones instead.
    
    Update dts for SolidRun cn913x based boards to enable the available
    ports, rather than disabling the unvavailable one.
    
    Further according to dt bindings the serdes phys are to be specified in
    the port node, not the controller node.
    Move those phys properties accordingly in clearfog base/pro/solidwan.
    
    Fixes: 30023876aef4 ("arm64: dts: marvell: only enable complete sata nodes")
    Cc: stable@vger.kernel.org
    Signed-off-by: Josua Mayer <josua@solid-run.com>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

arm64: dts: rockchip: Fix the headphone detection on the orangepi 5 [+ + +]
Author: Jimmy Hon <honyuenkwun@gmail.com>
Date:   Thu Sep 4 03:01:50 2025 +0000

    arm64: dts: rockchip: Fix the headphone detection on the orangepi 5
    
    [ Upstream commit 0f860eef417df93eb0ae70bbfa8d26cb7e29244d ]
    
    The logic of the headphone detect pin seems to be inverted, with this
    change headphones actually output sound when plugged in.
    
    Does not need workaround of using pin-switches to enable output.
    
    Verified by checking /sys/kernel/debug/gpio.
    
    Fixes: ae46756faff8 ("arm64: dts: rockchip: analog audio on Orange Pi 5")
    Signed-off-by: Jimmy Hon <honyuenkwun@gmail.com>
    Link: https://lore.kernel.org/r/20250904030150.986042-1-honyuenkwun@gmail.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
ARM: dts: kirkwood: Fix sound DAI cells for OpenRD clients [+ + +]
Author: Jihed Chaibi <jihed.chaibi.dev@gmail.com>
Date:   Sat Aug 30 22:37:50 2025 +0200

    ARM: dts: kirkwood: Fix sound DAI cells for OpenRD clients
    
    [ Upstream commit 29341c6c18b8ad2a9a4a68a61be7e1272d842f21 ]
    
    A previous commit changed the '#sound-dai-cells' property for the
    kirkwood audio controller from 1 to 0 in the kirkwood.dtsi file,
    but did not update the corresponding 'sound-dai' property in the
    kirkwood-openrd-client.dts file.
    
    This created a mismatch, causing a dtbs_check validation error where
    the dts provides one cell (<&audio0 0>) while the .dtsi expects zero.
    
    Remove the extraneous cell from the 'sound-dai' property to fix the
    schema validation warning and align with the updated binding.
    
    Fixes: e662e70fa419 ("arm: dts: kirkwood: fix error in #sound-dai-cells size")
    Signed-off-by: Jihed Chaibi <jihed.chaibi.dev@gmail.com>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ARM: dts: socfpga: sodia: Fix mdio bus probe and PHY address [+ + +]
Author: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Date:   Thu Nov 21 16:13:25 2024 +0900

    ARM: dts: socfpga: sodia: Fix mdio bus probe and PHY address
    
    commit ea9da67e2add7bd5f1e4b38dc2404480e711f4d8 upstream.
    
    On SoCFPGA/Sodia board, mdio bus cannot be probed, so the PHY cannot be
    found and the network device does not work.
    
    ```
    stmmaceth ff702000.ethernet eth0: __stmmac_open: Cannot attach to PHY (error: -19)
    ```
    
    To probe the mdio bus, add "snps,dwmac-mdio" as compatible string of the
    mdio bus. Also the PHY address connected to this board is 4. Therefore,
    change to 4.
    
    Cc: stable@vger.kernel.org # 6.3+
    Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
    Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
ASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in PTL match table [+ + +]
Author: Balamurugan C <balamurugan.c@intel.com>
Date:   Tue Jul 8 16:00:27 2025 +0800

    ASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in PTL match table
    
    [ Upstream commit fb00ab1f39369e49d25c74f0d41e4c1ec2f12576 ]
    
    Adding HDMI-In capture via I2S feature support in PTL platform.
    
    Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
    Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
    Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    Link: https://patch.msgid.link/20250708080030.1257790-3-yung-chuan.liao@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Stable-dep-of: 03aa2ed9e187 ("ASoC: Intel: sof_rt5682: Add HDMI-In capture with rt5682 support for PTL.")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ASoC: Intel: soc-acpi: Add entry for sof_es8336 in PTL match table. [+ + +]
Author: Balamurugan C <balamurugan.c@intel.com>
Date:   Tue Jul 8 16:00:26 2025 +0800

    ASoC: Intel: soc-acpi: Add entry for sof_es8336 in PTL match table.
    
    [ Upstream commit 2813f535b5847771d9e56df678c523a7e64f860e ]
    
    Adding ES83x6 I2S codec support for PTL platforms and entry in match table.
    
    Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
    Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
    Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    Link: https://patch.msgid.link/20250708080030.1257790-2-yung-chuan.liao@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Stable-dep-of: 03aa2ed9e187 ("ASoC: Intel: sof_rt5682: Add HDMI-In capture with rt5682 support for PTL.")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ASoC: Intel: sof_rt5682: Add HDMI-In capture with rt5682 support for PTL. [+ + +]
Author: Balamurugan C <balamurugan.c@intel.com>
Date:   Wed Jul 16 16:23:00 2025 +0800

    ASoC: Intel: sof_rt5682: Add HDMI-In capture with rt5682 support for PTL.
    
    [ Upstream commit 03aa2ed9e187e42f25b3871b691d535fc19156c4 ]
    
    Added match table entry on ptl machines to support HDMI-In capture
    with rt5682 I2S audio codec. also added the respective quirk
    configuration in rt5682 machine driver.
    
    Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
    Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    Link: https://patch.msgid.link/20250716082300.1810352-1-yung-chuan.liao@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
Bluetooth: hci_event: Fix UAF in hci_acl_create_conn_sync [+ + +]
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Mon Aug 25 11:10:20 2025 -0400

    Bluetooth: hci_event: Fix UAF in hci_acl_create_conn_sync
    
    [ Upstream commit 9e622804d57e2d08f0271200606bd1270f75126f ]
    
    This fixes the following UFA in hci_acl_create_conn_sync where a
    connection still pending is command submission (conn->state == BT_OPEN)
    maybe freed, also since this also can happen with the likes of
    hci_le_create_conn_sync fix it as well:
    
    BUG: KASAN: slab-use-after-free in hci_acl_create_conn_sync+0x5ef/0x790 net/bluetooth/hci_sync.c:6861
    Write of size 2 at addr ffff88805ffcc038 by task kworker/u11:2/9541
    
    CPU: 1 UID: 0 PID: 9541 Comm: kworker/u11:2 Not tainted 6.16.0-rc7 #3 PREEMPT(full)
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    Workqueue: hci3 hci_cmd_sync_work
    Call Trace:
     <TASK>
     dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
     print_address_description mm/kasan/report.c:378 [inline]
     print_report+0xca/0x230 mm/kasan/report.c:480
     kasan_report+0x118/0x150 mm/kasan/report.c:593
     hci_acl_create_conn_sync+0x5ef/0x790 net/bluetooth/hci_sync.c:6861
     hci_cmd_sync_work+0x210/0x3a0 net/bluetooth/hci_sync.c:332
     process_one_work kernel/workqueue.c:3238 [inline]
     process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
     worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
     kthread+0x70e/0x8a0 kernel/kthread.c:464
     ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
     ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16-rc7/arch/x86/entry/entry_64.S:245
     </TASK>
    
    Allocated by task 123736:
     kasan_save_stack mm/kasan/common.c:47 [inline]
     kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
     poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
     __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:394
     kasan_kmalloc include/linux/kasan.h:260 [inline]
     __kmalloc_cache_noprof+0x230/0x3d0 mm/slub.c:4359
     kmalloc_noprof include/linux/slab.h:905 [inline]
     kzalloc_noprof include/linux/slab.h:1039 [inline]
     __hci_conn_add+0x233/0x1b30 net/bluetooth/hci_conn.c:939
     hci_conn_add_unset net/bluetooth/hci_conn.c:1051 [inline]
     hci_connect_acl+0x16c/0x4e0 net/bluetooth/hci_conn.c:1634
     pair_device+0x418/0xa70 net/bluetooth/mgmt.c:3556
     hci_mgmt_cmd+0x9c9/0xef0 net/bluetooth/hci_sock.c:1719
     hci_sock_sendmsg+0x6ca/0xef0 net/bluetooth/hci_sock.c:1839
     sock_sendmsg_nosec net/socket.c:712 [inline]
     __sock_sendmsg+0x219/0x270 net/socket.c:727
     sock_write_iter+0x258/0x330 net/socket.c:1131
     new_sync_write fs/read_write.c:593 [inline]
     vfs_write+0x54b/0xa90 fs/read_write.c:686
     ksys_write+0x145/0x250 fs/read_write.c:738
     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
     do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Freed by task 103680:
     kasan_save_stack mm/kasan/common.c:47 [inline]
     kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
     kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:576
     poison_slab_object mm/kasan/common.c:247 [inline]
     __kasan_slab_free+0x62/0x70 mm/kasan/common.c:264
     kasan_slab_free include/linux/kasan.h:233 [inline]
     slab_free_hook mm/slub.c:2381 [inline]
     slab_free mm/slub.c:4643 [inline]
     kfree+0x18e/0x440 mm/slub.c:4842
     device_release+0x9c/0x1c0
     kobject_cleanup lib/kobject.c:689 [inline]
     kobject_release lib/kobject.c:720 [inline]
     kref_put include/linux/kref.h:65 [inline]
     kobject_put+0x22b/0x480 lib/kobject.c:737
     hci_conn_cleanup net/bluetooth/hci_conn.c:175 [inline]
     hci_conn_del+0x8ff/0xcb0 net/bluetooth/hci_conn.c:1173
     hci_conn_complete_evt+0x3c7/0x1040 net/bluetooth/hci_event.c:3199
     hci_event_func net/bluetooth/hci_event.c:7477 [inline]
     hci_event_packet+0x7e0/0x1200 net/bluetooth/hci_event.c:7531
     hci_rx_work+0x46a/0xe80 net/bluetooth/hci_core.c:4070
     process_one_work kernel/workqueue.c:3238 [inline]
     process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
     worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
     kthread+0x70e/0x8a0 kernel/kthread.c:464
     ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
     ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16-rc7/arch/x86/entry/entry_64.S:245
    
    Last potentially related work creation:
     kasan_save_stack+0x3e/0x60 mm/kasan/common.c:47
     kasan_record_aux_stack+0xbd/0xd0 mm/kasan/generic.c:548
     insert_work+0x3d/0x330 kernel/workqueue.c:2183
     __queue_work+0xbd9/0xfe0 kernel/workqueue.c:2345
     queue_delayed_work_on+0x18b/0x280 kernel/workqueue.c:2561
     pairing_complete+0x1e7/0x2b0 net/bluetooth/mgmt.c:3451
     pairing_complete_cb+0x1ac/0x230 net/bluetooth/mgmt.c:3487
     hci_connect_cfm include/net/bluetooth/hci_core.h:2064 [inline]
     hci_conn_failed+0x24d/0x310 net/bluetooth/hci_conn.c:1275
     hci_conn_complete_evt+0x3c7/0x1040 net/bluetooth/hci_event.c:3199
     hci_event_func net/bluetooth/hci_event.c:7477 [inline]
     hci_event_packet+0x7e0/0x1200 net/bluetooth/hci_event.c:7531
     hci_rx_work+0x46a/0xe80 net/bluetooth/hci_core.c:4070
     process_one_work kernel/workqueue.c:3238 [inline]
     process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
     worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
     kthread+0x70e/0x8a0 kernel/kthread.c:464
     ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
     ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16-rc7/arch/x86/entry/entry_64.S:245
    
    Fixes: aef2aa4fa98e ("Bluetooth: hci_event: Fix creating hci_conn object on error status")
    Reported-by: Junvyyang, Tencent Zhuque Lab <zhuque@tencent.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

Bluetooth: hci_event: Fix UAF in hci_conn_tx_dequeue [+ + +]
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Mon Aug 25 10:27:29 2025 -0400

    Bluetooth: hci_event: Fix UAF in hci_conn_tx_dequeue
    
    [ Upstream commit 2e128683176a56459cef8705fc7c35f438f88abd ]
    
    This fixes the following UAF caused by not properly locking hdev when
    processing HCI_EV_NUM_COMP_PKTS:
    
    BUG: KASAN: slab-use-after-free in hci_conn_tx_dequeue+0x1be/0x220 net/bluetooth/hci_conn.c:3036
    Read of size 4 at addr ffff8880740f0940 by task kworker/u11:0/54
    
    CPU: 1 UID: 0 PID: 54 Comm: kworker/u11:0 Not tainted 6.16.0-rc7 #3 PREEMPT(full)
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    Workqueue: hci1 hci_rx_work
    Call Trace:
     <TASK>
     dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
     print_address_description mm/kasan/report.c:378 [inline]
     print_report+0xca/0x230 mm/kasan/report.c:480
     kasan_report+0x118/0x150 mm/kasan/report.c:593
     hci_conn_tx_dequeue+0x1be/0x220 net/bluetooth/hci_conn.c:3036
     hci_num_comp_pkts_evt+0x1c8/0xa50 net/bluetooth/hci_event.c:4404
     hci_event_func net/bluetooth/hci_event.c:7477 [inline]
     hci_event_packet+0x7e0/0x1200 net/bluetooth/hci_event.c:7531
     hci_rx_work+0x46a/0xe80 net/bluetooth/hci_core.c:4070
     process_one_work kernel/workqueue.c:3238 [inline]
     process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
     worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
     kthread+0x70e/0x8a0 kernel/kthread.c:464
     ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
     ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16-rc7/arch/x86/entry/entry_64.S:245
     </TASK>
    
    Allocated by task 54:
     kasan_save_stack mm/kasan/common.c:47 [inline]
     kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
     poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
     __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:394
     kasan_kmalloc include/linux/kasan.h:260 [inline]
     __kmalloc_cache_noprof+0x230/0x3d0 mm/slub.c:4359
     kmalloc_noprof include/linux/slab.h:905 [inline]
     kzalloc_noprof include/linux/slab.h:1039 [inline]
     __hci_conn_add+0x233/0x1b30 net/bluetooth/hci_conn.c:939
     le_conn_complete_evt+0x3d6/0x1220 net/bluetooth/hci_event.c:5628
     hci_le_enh_conn_complete_evt+0x189/0x470 net/bluetooth/hci_event.c:5794
     hci_event_func net/bluetooth/hci_event.c:7474 [inline]
     hci_event_packet+0x78c/0x1200 net/bluetooth/hci_event.c:7531
     hci_rx_work+0x46a/0xe80 net/bluetooth/hci_core.c:4070
     process_one_work kernel/workqueue.c:3238 [inline]
     process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
     worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
     kthread+0x70e/0x8a0 kernel/kthread.c:464
     ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
     ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16-rc7/arch/x86/entry/entry_64.S:245
    
    Freed by task 9572:
     kasan_save_stack mm/kasan/common.c:47 [inline]
     kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
     kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:576
     poison_slab_object mm/kasan/common.c:247 [inline]
     __kasan_slab_free+0x62/0x70 mm/kasan/common.c:264
     kasan_slab_free include/linux/kasan.h:233 [inline]
     slab_free_hook mm/slub.c:2381 [inline]
     slab_free mm/slub.c:4643 [inline]
     kfree+0x18e/0x440 mm/slub.c:4842
     device_release+0x9c/0x1c0
     kobject_cleanup lib/kobject.c:689 [inline]
     kobject_release lib/kobject.c:720 [inline]
     kref_put include/linux/kref.h:65 [inline]
     kobject_put+0x22b/0x480 lib/kobject.c:737
     hci_conn_cleanup net/bluetooth/hci_conn.c:175 [inline]
     hci_conn_del+0x8ff/0xcb0 net/bluetooth/hci_conn.c:1173
     hci_abort_conn_sync+0x5d1/0xdf0 net/bluetooth/hci_sync.c:5689
     hci_cmd_sync_work+0x210/0x3a0 net/bluetooth/hci_sync.c:332
     process_one_work kernel/workqueue.c:3238 [inline]
     process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
     worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
     kthread+0x70e/0x8a0 kernel/kthread.c:464
     ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
     ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16-rc7/arch/x86/entry/entry_64.S:245
    
    Fixes: 134f4b39df7b ("Bluetooth: add support for skb TX SND/COMPLETION timestamping")
    Reported-by: Junvyyang, Tencent Zhuque Lab <zhuque@tencent.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

Bluetooth: hci_sync: Fix hci_resume_advertising_sync [+ + +]
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Fri Sep 5 10:29:18 2025 -0400

    Bluetooth: hci_sync: Fix hci_resume_advertising_sync
    
    [ Upstream commit 1488af7b8b5f9896ea88ee35aa3301713f72737c ]
    
    hci_resume_advertising_sync is suppose to resume all instance paused by
    hci_pause_advertising_sync, this logic is used for procedures are only
    allowed when not advertising, but instance 0x00 was not being
    re-enabled.
    
    Fixes: ad383c2c65a5 ("Bluetooth: hci_sync: Enable advertising when LL privacy is enabled")
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

Bluetooth: MGMT: Fix possible UAFs [+ + +]
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Mon Aug 25 10:03:07 2025 -0400

    Bluetooth: MGMT: Fix possible UAFs
    
    [ Upstream commit 302a1f674c00dd5581ab8e493ef44767c5101aab ]
    
    This attemps to fix possible UAFs caused by struct mgmt_pending being
    freed while still being processed like in the following trace, in order
    to fix mgmt_pending_valid is introduce and use to check if the
    mgmt_pending hasn't been removed from the pending list, on the complete
    callbacks it is used to check and in addtion remove the cmd from the list
    while holding mgmt_pending_lock to avoid TOCTOU problems since if the cmd
    is left on the list it can still be accessed and freed.
    
    BUG: KASAN: slab-use-after-free in mgmt_add_adv_patterns_monitor_sync+0x35/0x50 net/bluetooth/mgmt.c:5223
    Read of size 8 at addr ffff8880709d4dc0 by task kworker/u11:0/55
    
    CPU: 0 UID: 0 PID: 55 Comm: kworker/u11:0 Not tainted 6.16.4 #2 PREEMPT(full)
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    Workqueue: hci0 hci_cmd_sync_work
    Call Trace:
     <TASK>
     dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
     print_address_description mm/kasan/report.c:378 [inline]
     print_report+0xca/0x240 mm/kasan/report.c:482
     kasan_report+0x118/0x150 mm/kasan/report.c:595
     mgmt_add_adv_patterns_monitor_sync+0x35/0x50 net/bluetooth/mgmt.c:5223
     hci_cmd_sync_work+0x210/0x3a0 net/bluetooth/hci_sync.c:332
     process_one_work kernel/workqueue.c:3238 [inline]
     process_scheduled_works+0xade/0x17b0 kernel/workqueue.c:3321
     worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
     kthread+0x711/0x8a0 kernel/kthread.c:464
     ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
     ret_from_fork_asm+0x1a/0x30 home/kwqcheii/source/fuzzing/kernel/kasan/linux-6.16.4/arch/x86/entry/entry_64.S:245
     </TASK>
    
    Allocated by task 12210:
     kasan_save_stack mm/kasan/common.c:47 [inline]
     kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
     poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
     __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:394
     kasan_kmalloc include/linux/kasan.h:260 [inline]
     __kmalloc_cache_noprof+0x230/0x3d0 mm/slub.c:4364
     kmalloc_noprof include/linux/slab.h:905 [inline]
     kzalloc_noprof include/linux/slab.h:1039 [inline]
     mgmt_pending_new+0x65/0x1e0 net/bluetooth/mgmt_util.c:269
     mgmt_pending_add+0x35/0x140 net/bluetooth/mgmt_util.c:296
     __add_adv_patterns_monitor+0x130/0x200 net/bluetooth/mgmt.c:5247
     add_adv_patterns_monitor+0x214/0x360 net/bluetooth/mgmt.c:5364
     hci_mgmt_cmd+0x9c9/0xef0 net/bluetooth/hci_sock.c:1719
     hci_sock_sendmsg+0x6ca/0xef0 net/bluetooth/hci_sock.c:1839
     sock_sendmsg_nosec net/socket.c:714 [inline]
     __sock_sendmsg+0x219/0x270 net/socket.c:729
     sock_write_iter+0x258/0x330 net/socket.c:1133
     new_sync_write fs/read_write.c:593 [inline]
     vfs_write+0x5c9/0xb30 fs/read_write.c:686
     ksys_write+0x145/0x250 fs/read_write.c:738
     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
     do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Freed by task 12221:
     kasan_save_stack mm/kasan/common.c:47 [inline]
     kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
     kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:576
     poison_slab_object mm/kasan/common.c:247 [inline]
     __kasan_slab_free+0x62/0x70 mm/kasan/common.c:264
     kasan_slab_free include/linux/kasan.h:233 [inline]
     slab_free_hook mm/slub.c:2381 [inline]
     slab_free mm/slub.c:4648 [inline]
     kfree+0x18e/0x440 mm/slub.c:4847
     mgmt_pending_free net/bluetooth/mgmt_util.c:311 [inline]
     mgmt_pending_foreach+0x30d/0x380 net/bluetooth/mgmt_util.c:257
     __mgmt_power_off+0x169/0x350 net/bluetooth/mgmt.c:9444
     hci_dev_close_sync+0x754/0x1330 net/bluetooth/hci_sync.c:5290
     hci_dev_do_close net/bluetooth/hci_core.c:501 [inline]
     hci_dev_close+0x108/0x200 net/bluetooth/hci_core.c:526
     sock_do_ioctl+0xd9/0x300 net/socket.c:1192
     sock_ioctl+0x576/0x790 net/socket.c:1313
     vfs_ioctl fs/ioctl.c:51 [inline]
     __do_sys_ioctl fs/ioctl.c:907 [inline]
     __se_sys_ioctl+0xf9/0x170 fs/ioctl.c:893
     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
     do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Fixes: cf75ad8b41d2 ("Bluetooth: hci_sync: Convert MGMT_SET_POWERED")
    Fixes: 2bd1b237616b ("Bluetooth: hci_sync: Convert MGMT_OP_SET_DISCOVERABLE to use cmd_sync")
    Fixes: f056a65783cc ("Bluetooth: hci_sync: Convert MGMT_OP_SET_CONNECTABLE to use cmd_sync")
    Fixes: 3244845c6307 ("Bluetooth: hci_sync: Convert MGMT_OP_SSP")
    Fixes: d81a494c43df ("Bluetooth: hci_sync: Convert MGMT_OP_SET_LE")
    Fixes: b338d91703fa ("Bluetooth: Implement support for Mesh")
    Fixes: 6f6ff38a1e14 ("Bluetooth: hci_sync: Convert MGMT_OP_SET_LOCAL_NAME")
    Fixes: 71efbb08b538 ("Bluetooth: hci_sync: Convert MGMT_OP_SET_PHY_CONFIGURATION")
    Fixes: b747a83690c8 ("Bluetooth: hci_sync: Refactor add Adv Monitor")
    Fixes: abfeea476c68 ("Bluetooth: hci_sync: Convert MGMT_OP_START_DISCOVERY")
    Fixes: 26ac4c56f03f ("Bluetooth: hci_sync: Convert MGMT_OP_SET_ADVERTISING")
    Reported-by: cen zhang <zzzccc427@gmail.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
bnxt_en: correct offset handling for IPv6 destination address [+ + +]
Author: Alok Tiwari <alok.a.tiwari@oracle.com>
Date:   Sat Sep 20 05:11:17 2025 -0700

    bnxt_en: correct offset handling for IPv6 destination address
    
    [ Upstream commit 3d3aa9472c6dd0704e9961ed4769caac5b1c8d52 ]
    
    In bnxt_tc_parse_pedit(), the code incorrectly writes IPv6
    destination values to the source address field (saddr) when
    processing pedit offsets within the destination address range.
    
    This patch corrects the assignment to use daddr instead of saddr,
    ensuring that pedit operations on IPv6 destination addresses are
    applied correctly.
    
    Fixes: 9b9eb518e338 ("bnxt_en: Add support for NAT(L3/L4 rewrite)")
    Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
    Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
    Link: https://patch.msgid.link/20250920121157.351921-1-alok.a.tiwari@oracle.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
bpf: Check the helper function is valid in get_helper_proto [+ + +]
Author: Jiri Olsa <olsajiri@gmail.com>
Date:   Thu Aug 14 22:06:55 2025 +0200

    bpf: Check the helper function is valid in get_helper_proto
    
    [ Upstream commit e4414b01c1cd9887bbde92f946c1ba94e40d6d64 ]
    
    kernel test robot reported verifier bug [1] where the helper func
    pointer could be NULL due to disabled config option.
    
    As Alexei suggested we could check on that in get_helper_proto
    directly. Marking tail_call helper func with BPF_PTR_POISON,
    because it is unused by design.
    
      [1] https://lore.kernel.org/oe-lkp/202507160818.68358831-lkp@intel.com
    
    Reported-by: kernel test robot <oliver.sang@intel.com>
    Reported-by: syzbot+a9ed3d9132939852d0df@syzkaller.appspotmail.com
    Suggested-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Paul Chaignon <paul.chaignon@gmail.com>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20250814200655.945632-1-jolsa@kernel.org
    Closes: https://lore.kernel.org/oe-lkp/202507160818.68358831-lkp@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

bpf: Reject bpf_timer for PREEMPT_RT [+ + +]
Author: Leon Hwang <leon.hwang@linux.dev>
Date:   Wed Sep 10 20:57:39 2025 +0800

    bpf: Reject bpf_timer for PREEMPT_RT
    
    [ Upstream commit e25ddfb388c8b7e5f20e3bf38d627fb485003781 ]
    
    When enable CONFIG_PREEMPT_RT, the kernel will warn when run timer
    selftests by './test_progs -t timer':
    
    BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
    
    In order to avoid such warning, reject bpf_timer in verifier when
    PREEMPT_RT is enabled.
    
    Signed-off-by: Leon Hwang <leon.hwang@linux.dev>
    Link: https://lore.kernel.org/r/20250910125740.52172-2-leon.hwang@linux.dev
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
broadcom: fix support for PTP_EXTTS_REQUEST2 ioctl [+ + +]
Author: Jacob Keller <jacob.e.keller@intel.com>
Date:   Thu Sep 18 17:33:17 2025 -0700

    broadcom: fix support for PTP_EXTTS_REQUEST2 ioctl
    
    [ Upstream commit 3200fdd4021de1d182fa3b6db5ad936d519f3848 ]
    
    Commit 7c571ac57d9d ("net: ptp: introduce .supported_extts_flags to
    ptp_clock_info") modified the PTP core kernel logic to validate the
    supported flags for the PTP_EXTTS_REQUEST ioctls, rather than relying on
    each individual driver correctly checking its flags.
    
    The bcm_ptp_enable() function implements support for PTP_CLK_REQ_EXTTS, but
    does not check the flags, and does not forward the request structure into
    bcm_ptp_extts_locked().
    
    When originally converting the bcm-phy-ptp.c code, it was unclear what
    edges the hardware actually timestamped. Thus, no flags were initialized in
    the .supported_extts_flags field. This results in the kernel automatically
    rejecting all userspace requests for the PTP_EXTTS_REQUEST2 ioctl.
    
    This occurs because the PTP_STRICT_FLAGS is always assumed when operating
    under PTP_EXTTS_REQUEST2. This has been the case since the flags
    introduction by commit 6138e687c7b6 ("ptp: Introduce strict checking of
    external time stamp options.").
    
    The bcm-phy-ptp.c logic never properly supported strict flag validation,
    as it previously ignored all flags including both PTP_STRICT_FLAGS and the
    PTP_FALLING_EDGE and PTP_RISING_EDGE flags.
    
    Reports from users in the field prove that the hardware timestamps the
    rising edge. Encode this in the .supported_extts_flags field. This
    re-enables support for the PTP_EXTTS_REQUEST2 ioctl.
    
    Reported-by: James Clark <jjc@jclark.com>
    Fixes: 7c571ac57d9d ("net: ptp: introduce .supported_extts_flags to ptp_clock_info")
    Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
    Tested-by: James Clark <jjc@jclark.com>
    Link: https://patch.msgid.link/20250918-jk-fix-bcm-phy-supported-flags-v1-2-747b60407c9c@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

broadcom: fix support for PTP_PEROUT_DUTY_CYCLE [+ + +]
Author: Jacob Keller <jacob.e.keller@intel.com>
Date:   Thu Sep 18 17:33:16 2025 -0700

    broadcom: fix support for PTP_PEROUT_DUTY_CYCLE
    
    [ Upstream commit 6e6c88d85623dc0c5c3faf185c12bd723efde5ee ]
    
    The bcm_ptp_perout_locked() function has support for handling
    PTP_PEROUT_DUTY_CYCLE, but its not listed in the supported_perout_flags.
    Attempts to use the duty cycle support will be rejected since commit
    d9f3e9ecc456 ("net: ptp: introduce .supported_perout_flags to
    ptp_clock_info"), as this flag accidentally missed while doing the
    conversion.
    
    Drop the unnecessary supported flags check from the bcm_ptp_perout_locked()
    function and correctly set the supported_perout_flags. This fixes use of
    the PTP_PEROUT_DUTY_CYCLE support for the broadcom driver.
    
    Reported-by: James Clark <jjc@jclark.com>
    Fixes: d9f3e9ecc456 ("net: ptp: introduce .supported_perout_flags to ptp_clock_info")
    Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
    Tested-by: James Clark <jjc@jclark.com>
    Link: https://patch.msgid.link/20250918-jk-fix-bcm-phy-supported-flags-v1-1-747b60407c9c@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
btrfs: don't allow adding block device of less than 1 MB [+ + +]
Author: Mark Harmstone <mark@harmstone.com>
Date:   Tue Sep 2 11:34:10 2025 +0100

    btrfs: don't allow adding block device of less than 1 MB
    
    [ Upstream commit 3d1267475b94b3df7a61e4ea6788c7c5d9e473c4 ]
    
    Commit 15ae0410c37a79 ("btrfs-progs: add error handling for
    device_get_partition_size_fd_stat()") in btrfs-progs inadvertently
    changed it so that if the BLKGETSIZE64 ioctl on a block device returned
    a size of 0, this was no longer seen as an error condition.
    
    Unfortunately this is how disconnected NBD devices behave, meaning that
    with btrfs-progs 6.16 it's now possible to add a device you can't
    remove:
    
      # btrfs device add /dev/nbd0 /root/temp
      # btrfs device remove /dev/nbd0 /root/temp
      ERROR: error removing device '/dev/nbd0': Invalid argument
    
    This check should always have been done kernel-side anyway, so add a
    check in btrfs_init_new_device() that the new device doesn't have a size
    less than BTRFS_DEVICE_RANGE_RESERVED (i.e. 1 MB).
    
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Mark Harmstone <mark@harmstone.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
can: etas_es58x: populate ndo_change_mtu() to prevent buffer overflow [+ + +]
Author: Vincent Mailhol <mailhol@kernel.org>
Date:   Thu Sep 18 18:00:24 2025 +0900

    can: etas_es58x: populate ndo_change_mtu() to prevent buffer overflow
    
    [ Upstream commit 38c0abad45b190a30d8284a37264d2127a6ec303 ]
    
    Sending an PF_PACKET allows to bypass the CAN framework logic and to
    directly reach the xmit() function of a CAN driver. The only check
    which is performed by the PF_PACKET framework is to make sure that
    skb->len fits the interface's MTU.
    
    Unfortunately, because the etas_es58x driver does not populate its
    net_device_ops->ndo_change_mtu(), it is possible for an attacker to
    configure an invalid MTU by doing, for example:
    
      $ ip link set can0 mtu 9999
    
    After doing so, the attacker could open a PF_PACKET socket using the
    ETH_P_CANXL protocol:
    
            socket(PF_PACKET, SOCK_RAW, htons(ETH_P_CANXL));
    
    to inject a malicious CAN XL frames. For example:
    
            struct canxl_frame frame = {
                    .flags = 0xff,
                    .len = 2048,
            };
    
    The CAN drivers' xmit() function are calling can_dev_dropped_skb() to
    check that the skb is valid, unfortunately under above conditions, the
    malicious packet is able to go through can_dev_dropped_skb() checks:
    
      1. the skb->protocol is set to ETH_P_CANXL which is valid (the
         function does not check the actual device capabilities).
    
      2. the length is a valid CAN XL length.
    
    And so, es58x_start_xmit() receives a CAN XL frame which it is not
    able to correctly handle and will thus misinterpret it as a CAN(FD)
    frame.
    
    This can result in a buffer overflow. For example, using the es581.4
    variant, the frame will be dispatched to es581_4_tx_can_msg(), go
    through the last check at the beginning of this function:
    
            if (can_is_canfd_skb(skb))
                    return -EMSGSIZE;
    
    and reach this line:
    
            memcpy(tx_can_msg->data, cf->data, cf->len);
    
    Here, cf->len corresponds to the flags field of the CAN XL frame. In
    our previous example, we set canxl_frame->flags to 0xff. Because the
    maximum expected length is 8, a buffer overflow of 247 bytes occurs!
    
    Populate net_device_ops->ndo_change_mtu() to ensure that the
    interface's MTU can not be set to anything bigger than CAN_MTU or
    CANFD_MTU (depending on the device capabilities). By fixing the root
    cause, this prevents the buffer overflow.
    
    Fixes: 8537257874e9 ("can: etas_es58x: add core support for ETAS ES58X CAN USB interfaces")
    Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
    Link: https://patch.msgid.link/20250918-can-fix-mtu-v1-1-0d1cada9393b@kernel.org
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

can: hi311x: populate ndo_change_mtu() to prevent buffer overflow [+ + +]
Author: Vincent Mailhol <mailhol@kernel.org>
Date:   Thu Sep 18 18:00:25 2025 +0900

    can: hi311x: populate ndo_change_mtu() to prevent buffer overflow
    
    [ Upstream commit ac1c7656fa717f29fac3ea073af63f0b9919ec9a ]
    
    Sending an PF_PACKET allows to bypass the CAN framework logic and to
    directly reach the xmit() function of a CAN driver. The only check
    which is performed by the PF_PACKET framework is to make sure that
    skb->len fits the interface's MTU.
    
    Unfortunately, because the sun4i_can driver does not populate its
    net_device_ops->ndo_change_mtu(), it is possible for an attacker to
    configure an invalid MTU by doing, for example:
    
      $ ip link set can0 mtu 9999
    
    After doing so, the attacker could open a PF_PACKET socket using the
    ETH_P_CANXL protocol:
    
            socket(PF_PACKET, SOCK_RAW, htons(ETH_P_CANXL))
    
    to inject a malicious CAN XL frames. For example:
    
            struct canxl_frame frame = {
                    .flags = 0xff,
                    .len = 2048,
            };
    
    The CAN drivers' xmit() function are calling can_dev_dropped_skb() to
    check that the skb is valid, unfortunately under above conditions, the
    malicious packet is able to go through can_dev_dropped_skb() checks:
    
      1. the skb->protocol is set to ETH_P_CANXL which is valid (the
         function does not check the actual device capabilities).
    
      2. the length is a valid CAN XL length.
    
    And so, hi3110_hard_start_xmit() receives a CAN XL frame which it is
    not able to correctly handle and will thus misinterpret it as a CAN
    frame. The driver will consume frame->len as-is with no further
    checks.
    
    This can result in a buffer overflow later on in hi3110_hw_tx() on
    this line:
    
            memcpy(buf + HI3110_FIFO_EXT_DATA_OFF,
                   frame->data, frame->len);
    
    Here, frame->len corresponds to the flags field of the CAN XL frame.
    In our previous example, we set canxl_frame->flags to 0xff. Because
    the maximum expected length is 8, a buffer overflow of 247 bytes
    occurs!
    
    Populate net_device_ops->ndo_change_mtu() to ensure that the
    interface's MTU can not be set to anything bigger than CAN_MTU. By
    fixing the root cause, this prevents the buffer overflow.
    
    Fixes: 57e83fb9b746 ("can: hi311x: Add Holt HI-311x CAN driver")
    Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
    Link: https://patch.msgid.link/20250918-can-fix-mtu-v1-2-0d1cada9393b@kernel.org
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

can: mcba_usb: populate ndo_change_mtu() to prevent buffer overflow [+ + +]
Author: Vincent Mailhol <mailhol@kernel.org>
Date:   Thu Sep 18 18:00:27 2025 +0900

    can: mcba_usb: populate ndo_change_mtu() to prevent buffer overflow
    
    [ Upstream commit 17c8d794527f01def0d1c8b7dc2d7b8d34fed0e6 ]
    
    Sending an PF_PACKET allows to bypass the CAN framework logic and to
    directly reach the xmit() function of a CAN driver. The only check
    which is performed by the PF_PACKET framework is to make sure that
    skb->len fits the interface's MTU.
    
    Unfortunately, because the mcba_usb driver does not populate its
    net_device_ops->ndo_change_mtu(), it is possible for an attacker to
    configure an invalid MTU by doing, for example:
    
      $ ip link set can0 mtu 9999
    
    After doing so, the attacker could open a PF_PACKET socket using the
    ETH_P_CANXL protocol:
    
            socket(PF_PACKET, SOCK_RAW, htons(ETH_P_CANXL))
    
    to inject a malicious CAN XL frames. For example:
    
            struct canxl_frame frame = {
                    .flags = 0xff,
                    .len = 2048,
            };
    
    The CAN drivers' xmit() function are calling can_dev_dropped_skb() to
    check that the skb is valid, unfortunately under above conditions, the
    malicious packet is able to go through can_dev_dropped_skb() checks:
    
      1. the skb->protocol is set to ETH_P_CANXL which is valid (the
         function does not check the actual device capabilities).
    
      2. the length is a valid CAN XL length.
    
    And so, mcba_usb_start_xmit() receives a CAN XL frame which it is not
    able to correctly handle and will thus misinterpret it as a CAN frame.
    
    This can result in a buffer overflow. The driver will consume cf->len
    as-is with no further checks on these lines:
    
            usb_msg.dlc = cf->len;
    
            memcpy(usb_msg.data, cf->data, usb_msg.dlc);
    
    Here, cf->len corresponds to the flags field of the CAN XL frame. In
    our previous example, we set canxl_frame->flags to 0xff. Because the
    maximum expected length is 8, a buffer overflow of 247 bytes occurs!
    
    Populate net_device_ops->ndo_change_mtu() to ensure that the
    interface's MTU can not be set to anything bigger than CAN_MTU. By
    fixing the root cause, this prevents the buffer overflow.
    
    Fixes: 51f3baad7de9 ("can: mcba_usb: Add support for Microchip CAN BUS Analyzer")
    Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
    Link: https://patch.msgid.link/20250918-can-fix-mtu-v1-4-0d1cada9393b@kernel.org
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

can: peak_usb: fix shift-out-of-bounds issue [+ + +]
Author: Stéphane Grosjean <stephane.grosjean@hms-networks.com>
Date:   Thu Sep 18 15:23:57 2025 +0200

    can: peak_usb: fix shift-out-of-bounds issue
    
    [ Upstream commit c443be70aaee42c2d1d251e0329e0a69dd96ae54 ]
    
    Explicitly uses a 64-bit constant when the number of bits used for its
    shifting is 32 (which is the case for PC CAN FD interfaces supported by
    this driver).
    
    Signed-off-by: Stéphane Grosjean <stephane.grosjean@hms-networks.com>
    Link: https://patch.msgid.link/20250918132413.30071-1-stephane.grosjean@free.fr
    Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Closes: https://lore.kernel.org/20250917-aboriginal-refined-honeybee-82b1aa-mkl@pengutronix.de
    Fixes: bb4785551f64 ("can: usb: PEAK-System Technik USB adapters driver core")
    [mkl: update subject, apply manually]
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

can: rcar_can: rcar_can_resume(): fix s2ram with PSCI [+ + +]
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Aug 14 13:26:37 2025 +0200

    can: rcar_can: rcar_can_resume(): fix s2ram with PSCI
    
    [ Upstream commit 5c793afa07da6d2d4595f6c73a2a543a471bb055 ]
    
    On R-Car Gen3 using PSCI, s2ram powers down the SoC.  After resume, the
    CAN interface no longer works, until it is brought down and up again.
    
    Fix this by calling rcar_can_start() from the PM resume callback, to
    fully initialize the controller instead of just restarting it.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://patch.msgid.link/699b2f7fcb60b31b6f976a37f08ce99c5ffccb31.1755165227.git.geert+renesas@glider.be
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

can: sun4i_can: populate ndo_change_mtu() to prevent buffer overflow [+ + +]
Author: Vincent Mailhol <mailhol@kernel.org>
Date:   Thu Sep 18 18:00:26 2025 +0900

    can: sun4i_can: populate ndo_change_mtu() to prevent buffer overflow
    
    [ Upstream commit 61da0bd4102c459823fbe6b8b43b01fb6ace4a22 ]
    
    Sending an PF_PACKET allows to bypass the CAN framework logic and to
    directly reach the xmit() function of a CAN driver. The only check
    which is performed by the PF_PACKET framework is to make sure that
    skb->len fits the interface's MTU.
    
    Unfortunately, because the sun4i_can driver does not populate its
    net_device_ops->ndo_change_mtu(), it is possible for an attacker to
    configure an invalid MTU by doing, for example:
    
      $ ip link set can0 mtu 9999
    
    After doing so, the attacker could open a PF_PACKET socket using the
    ETH_P_CANXL protocol:
    
            socket(PF_PACKET, SOCK_RAW, htons(ETH_P_CANXL))
    
    to inject a malicious CAN XL frames. For example:
    
            struct canxl_frame frame = {
                    .flags = 0xff,
                    .len = 2048,
            };
    
    The CAN drivers' xmit() function are calling can_dev_dropped_skb() to
    check that the skb is valid, unfortunately under above conditions, the
    malicious packet is able to go through can_dev_dropped_skb() checks:
    
      1. the skb->protocol is set to ETH_P_CANXL which is valid (the
         function does not check the actual device capabilities).
    
      2. the length is a valid CAN XL length.
    
    And so, sun4ican_start_xmit() receives a CAN XL frame which it is not
    able to correctly handle and will thus misinterpret it as a CAN frame.
    
    This can result in a buffer overflow. The driver will consume cf->len
    as-is with no further checks on this line:
    
            dlc = cf->len;
    
    Here, cf->len corresponds to the flags field of the CAN XL frame. In
    our previous example, we set canxl_frame->flags to 0xff. Because the
    maximum expected length is 8, a buffer overflow of 247 bytes occurs a
    couple line below when doing:
    
            for (i = 0; i < dlc; i++)
                    writel(cf->data[i], priv->base + (dreg + i * 4));
    
    Populate net_device_ops->ndo_change_mtu() to ensure that the
    interface's MTU can not be set to anything bigger than CAN_MTU. By
    fixing the root cause, this prevents the buffer overflow.
    
    Fixes: 0738eff14d81 ("can: Allwinner A10/A20 CAN Controller support - Kernel module")
    Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
    Link: https://patch.msgid.link/20250918-can-fix-mtu-v1-3-0d1cada9393b@kernel.org
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
cpufreq: Initialize cpufreq-based invariance before subsys [+ + +]
Author: Christian Loehle <christian.loehle@arm.com>
Date:   Thu Sep 18 11:15:52 2025 +0100

    cpufreq: Initialize cpufreq-based invariance before subsys
    
    [ Upstream commit 8ffe28b4e8d8b18cb2f2933410322c24f039d5d6 ]
    
    commit 2a6c72738706 ("cpufreq: Initialize cpufreq-based
    frequency-invariance later") postponed the frequency invariance
    initialization to avoid disabling it in the error case.
    This isn't locking safe, instead move the initialization up before
    the subsys interface is registered (which will rebuild the
    sched_domains) and add the corresponding disable on the error path.
    
    Observed lockdep without this patch:
    [    0.989686] ======================================================
    [    0.989688] WARNING: possible circular locking dependency detected
    [    0.989690] 6.17.0-rc4-cix-build+ #31 Tainted: G S
    [    0.989691] ------------------------------------------------------
    [    0.989692] swapper/0/1 is trying to acquire lock:
    [    0.989693] ffff800082ada7f8 (sched_energy_mutex){+.+.}-{4:4}, at: rebuild_sched_domains_energy+0x30/0x58
    [    0.989705]
                   but task is already holding lock:
    [    0.989706] ffff000088c89bc8 (&policy->rwsem){+.+.}-{4:4}, at: cpufreq_online+0x7f8/0xbe0
    [    0.989713]
                   which lock already depends on the new lock.
    
    Fixes: 2a6c72738706 ("cpufreq: Initialize cpufreq-based frequency-invariance later")
    Signed-off-by: Christian Loehle <christian.loehle@arm.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
crypto: af_alg - Fix incorrect boolean values in af_alg_ctx [+ + +]
Author: Eric Biggers <ebiggers@kernel.org>
Date:   Wed Sep 24 13:18:22 2025 -0700

    crypto: af_alg - Fix incorrect boolean values in af_alg_ctx
    
    commit d0ca0df179c4b21e2a6c4a4fb637aa8fa14575cb upstream.
    
    Commit 1b34cbbf4f01 ("crypto: af_alg - Disallow concurrent writes in
    af_alg_sendmsg") changed some fields from bool to 1-bit bitfields of
    type u32.
    
    However, some assignments to these fields, specifically 'more' and
    'merge', assign values greater than 1.  These relied on C's implicit
    conversion to bool, such that zero becomes false and nonzero becomes
    true.
    
    With a 1-bit bitfields of type u32 instead, mod 2 of the value is taken
    instead, resulting in 0 being assigned in some cases when 1 was intended.
    
    Fix this by restoring the bool type.
    
    Fixes: 1b34cbbf4f01 ("crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg")
    Cc: stable@vger.kernel.org
    Signed-off-by: Eric Biggers <ebiggers@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
drm/amd/display: Only restore backlight after amdgpu_dm_init or dm_resume [+ + +]
Author: Matthew Schwartz <matthew.schwartz@linux.dev>
Date:   Thu Sep 11 10:48:51 2025 -0700

    drm/amd/display: Only restore backlight after amdgpu_dm_init or dm_resume
    
    commit 44b0fed0a5947f54fd14255cd0766df952267bc5 upstream.
    
    On clients that utilize AMD_PRIVATE_COLOR properties for HDR support,
    brightness sliders can include a hardware controlled portion and a
    gamma-based portion. This is the case on the Steam Deck OLED when using
    gamescope with Steam as a client.
    
    When a user sets a brightness level while HDR is active, the gamma-based
    portion and/or hardware portion are adjusted to achieve the desired
    brightness. However, when a modeset takes place while the gamma-based
    portion is in-use, restoring the hardware brightness level overrides the
    user's overall brightness level and results in a mismatch between what
    the slider reports and the display's current brightness.
    
    To avoid overriding gamma-based brightness, only restore HW backlight
    level after boot or resume. This ensures that the backlight level is
    set correctly after the DC layer resets it while avoiding interference
    with subsequent modesets.
    
    Fixes: 7875afafba84 ("drm/amd/display: Fix brightness level not retained over reboot")
    Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4551
    Signed-off-by: Matthew Schwartz <matthew.schwartz@linux.dev>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    (cherry picked from commit a490c8d77d500b5981e739be3d59c60cfe382536)
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

drm/amd/display: remove output_tf_change flag [+ + +]
Author: Melissa Wen <mwen@igalia.com>
Date:   Mon Sep 1 18:51:05 2025 -0300

    drm/amd/display: remove output_tf_change flag
    
    [ Upstream commit 41b1f9fcba62b06195e625bb88c1031102892439 ]
    
    Remove this flag as the driver stopped managing it individually since
    commit a4056c2a6344 ("drm/amd/display: use HW hdr mult for brightness
    boost"). After some back and forth it was reintroduced as a condition to
    `set_output_transfer_func()` in [1]. Without direct management, this
    flag only changes value when all surface update flags are set true on
    UPDATE_TYPE_FULL with no output TF status meaning.
    
    Fixes: bb622e0c0044 ("drm/amd/display: program output tf when required") [1]
    Signed-off-by: Melissa Wen <mwen@igalia.com>
    Reviewed-by: Alex Hung <alex.hung@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    (cherry picked from commit 752e6f283ec59ae007aa15a93d5a4b2eefa8cec9)
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
drm/amdkfd: fix p2p links bug in topology [+ + +]
Author: Eric Huang <jinhuieric.huang@amd.com>
Date:   Mon Aug 25 09:50:49 2025 -0400

    drm/amdkfd: fix p2p links bug in topology
    
    [ Upstream commit ce42a3b581a9db10765eb835840b04dbe7972135 ]
    
    When creating p2p links, KFD needs to check XGMI link
    with two conditions, hive_id and is_sharing_enabled,
    but it is missing to check is_sharing_enabled, so add
    it to fix the error.
    
    Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    (cherry picked from commit 36cc7d13178d901982da7a122c883861d98da624)
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
drm/ast: Use msleep instead of mdelay for edid read [+ + +]
Author: Nirmoy Das <nirmoyd@nvidia.com>
Date:   Wed Sep 17 12:43:46 2025 -0700

    drm/ast: Use msleep instead of mdelay for edid read
    
    commit c7c31f8dc54aa3c9b2c994b5f1ff7e740a654e97 upstream.
    
    The busy-waiting in `mdelay()` can cause CPU stalls and kernel timeouts
    during boot.
    
    Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
    Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
    Tested-by: Carol L Soto csoto@nvidia.com<mailto:csoto@nvidia.com>
    Fixes: 594e9c04b586 ("drm/ast: Create the driver for ASPEED proprietory Display-Port")
    Cc: KuoHsiang Chou <kuohsiang_chou@aspeedtech.com>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: Jocelyn Falempe <jfalempe@redhat.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: <stable@vger.kernel.org> # v5.19+
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://lore.kernel.org/r/20250917194346.2905522-1-nirmoyd@nvidia.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
drm/gma500: Fix null dereference in hdmi teardown [+ + +]
Author: Zabelin Nikita <n.zabelin@mt-integration.ru>
Date:   Thu Sep 18 18:06:59 2025 +0300

    drm/gma500: Fix null dereference in hdmi teardown
    
    [ Upstream commit 352e66900cde63f3dadb142364d3c35170bbaaff ]
    
    pci_set_drvdata sets the value of pdev->driver_data to NULL,
    after which the driver_data obtained from the same dev is
    dereferenced in oaktrail_hdmi_i2c_exit, and the i2c_dev is
    extracted from it. To prevent this, swap these calls.
    
    Found by Linux Verification Center (linuxtesting.org) with Svacer.
    
    Fixes: 1b082ccf5901 ("gma500: Add Oaktrail support")
    Signed-off-by: Zabelin Nikita <n.zabelin@mt-integration.ru>
    Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
    Link: https://lore.kernel.org/r/20250918150703.2562604-1-n.zabelin@mt-integration.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
drm/i915/ddi: Guard reg_val against a INVALID_TRANSCODER [+ + +]
Author: Suraj Kandpal <suraj.kandpal@intel.com>
Date:   Mon Sep 8 09:52:08 2025 +0530

    drm/i915/ddi: Guard reg_val against a INVALID_TRANSCODER
    
    [ Upstream commit 7f97a0a871d9532f2e1a5ee7d16d0e364215bcac ]
    
    Currently we check if the encoder is INVALID or -1 and throw a
    WARN_ON but we still end up writing the temp value which will
    overflow and corrupt the whole programmed value.
    
    --v2
    -Assign a bogus transcoder to master in case we get a INVALID
    TRANSCODER [Jani]
    
    Fixes: 6671c367a9bea ("drm/i915/tgl: Select master transcoder for MST stream")
    Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://lore.kernel.org/r/20250908042208.1011144-1-suraj.kandpal@intel.com
    (cherry picked from commit c8e8e9ab14a6ea926641d161768e1e3ef286a853)
    Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
drm/panfrost: Add support for Mali on the MT8370 SoC [+ + +]
Author: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
Date:   Fri May 9 12:12:50 2025 +0200

    drm/panfrost: Add support for Mali on the MT8370 SoC
    
    [ Upstream commit 81645377c231803389ab0f2d09df6622e32dd327 ]
    
    Add a compatible for the MediaTek MT8370 SoC, with an integrated ARM
    Mali G57 MC2 GPU (Valhall-JM, dual core), with new platform data for
    its support in the panfrost driver.
    It uses the same data as MT8186 for the power management features to
    describe power supplies, pm_domains and enablement (one regulator, two
    power domains) but also sets the FORCE_AARCH64_PGTABLE flag in the GPU
    configuration quirks bitfield to enable AARCH64 4K page table format
    mode.
    As MT8186 and MT8370 SoC have different GPU architecture (Mali G52 2EE
    MC2 for MT8186), making them not compatible, and this mode is only
    enabled for Mediatek SoC that are Mali G57 based (compatible with
    mediatek,mali-mt8188 or mediatek,mali-8192), having specific platform
    data allows to set this flag for MT8370 without modifying MT8186
    configuration and behaviour.
    
    Reviewed-by: Steven Price <steven.price@arm.com>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
    Signed-off-by: Steven Price <steven.price@arm.com>
    Link: https://lore.kernel.org/r/20250509-mt8370-enable-gpu-v6-4-2833888cb1d3@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

drm/panfrost: Commonize Mediatek power domain array definitions [+ + +]
Author: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
Date:   Fri May 9 12:12:49 2025 +0200

    drm/panfrost: Commonize Mediatek power domain array definitions
    
    [ Upstream commit bd77b870eb190c9cf5d9b7208625513e99e5be2d ]
    
    In the panfrost driver, the platform data of several Mediatek SoC
    declares and uses several different power domains arrays according to
    GPU core number present in the SoC:
    - mediatek_mt8186_pm_domains (2 cores)
    - mediatek_mt8183_pm_domains (3 cores)
    - mediatek_mt8192_pm_domains (5 cores)
    
    As they all are fixed arrays, starting with the same entries and the
    platform data also has a power domains array length field
    (num_pm_domains), they can be replaced by a single array, containing
    all entries, if the num_pm_domains field of the platform data is also
    set to the matching core number.
    
    So, create a generic power domain array (mediatek_pm_domains) and use
    it in the mt8183(b), mt8186, mt8188 and mt8192 platform data instead.
    
    Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
    Reviewed-by: Steven Price <steven.price@arm.com>
    Signed-off-by: Steven Price <steven.price@arm.com>
    Link: https://lore.kernel.org/r/20250509-mt8370-enable-gpu-v6-3-2833888cb1d3@collabora.com
    Stable-dep-of: 81645377c231 ("drm/panfrost: Add support for Mali on the MT8370 SoC")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

drm/panfrost: Drop duplicated Mediatek supplies arrays [+ + +]
Author: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
Date:   Fri May 9 12:12:48 2025 +0200

    drm/panfrost: Drop duplicated Mediatek supplies arrays
    
    [ Upstream commit 6905b0d9813176087fc0f28bc5e4ee2b86e6ce13 ]
    
    In the panfrost driver, the platform data of several Mediatek SoC
    declares and uses custom supplies array definitions
    (mediatek_mt8192_supplies, mediatek_mt8183_b_supplies), that are the
    same as default_supplies (used by default platform data).
    
    So drop these duplicated definitions and use default_supplies instead.
    Also, rename mediatek_mt8183_supplies to a more generic name too
    (legacy_supplies).
    
    Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
    Reviewed-by: Steven Price <steven.price@arm.com>
    Signed-off-by: Steven Price <steven.price@arm.com>
    Link: https://lore.kernel.org/r/20250509-mt8370-enable-gpu-v6-2-2833888cb1d3@collabora.com
    Stable-dep-of: 81645377c231 ("drm/panfrost: Add support for Mali on the MT8370 SoC")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
drm/panthor: Defer scheduler entitiy destruction to queue release [+ + +]
Author: Adrián Larumbe <adrian.larumbe@collabora.com>
Date:   Fri Sep 19 17:43:48 2025 +0100

    drm/panthor: Defer scheduler entitiy destruction to queue release
    
    [ Upstream commit 7d9c3442b02ab7dd3c44e20095a178fd57d2eccb ]
    
    Commit de8548813824 ("drm/panthor: Add the scheduler logical block")
    handled destruction of a group's queues' drm scheduler entities early
    into the group destruction procedure.
    
    However, that races with the group submit ioctl, because by the time
    entities are destroyed (through the group destroy ioctl), the submission
    procedure might've already obtained a group handle, and therefore the
    ability to push jobs into entities. This is met with a DRM error message
    within the drm scheduler core as a situation that should never occur.
    
    Fix by deferring drm scheduler entity destruction to queue release time.
    
    Fixes: de8548813824 ("drm/panthor: Add the scheduler logical block")
    Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
    Reviewed-by: Steven Price <steven.price@arm.com>
    Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
    Signed-off-by: Steven Price <steven.price@arm.com>
    Link: https://lore.kernel.org/r/20250919164436.531930-1-adrian.larumbe@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
drm/xe/vf: Don't expose sysfs attributes not applicable for VFs [+ + +]
Author: Michal Wajdeczko <michal.wajdeczko@intel.com>
Date:   Tue Sep 16 19:00:28 2025 +0200

    drm/xe/vf: Don't expose sysfs attributes not applicable for VFs
    
    [ Upstream commit 500dad428e5b0de4c1bdfa893822a6e06ddad0b5 ]
    
    VFs can't read BMG_PCIE_CAP(0x138340) register nor access PCODE
    (already guarded by the info.skip_pcode flag) so we shouldn't
    expose attributes that require any of them to avoid errors like:
    
     [] xe 0000:03:00.1: [drm] Tile0: GT0: VF is trying to read an \
                         inaccessible register 0x138340+0x0
     [] RIP: 0010:xe_gt_sriov_vf_read32+0x6c2/0x9a0 [xe]
     [] Call Trace:
     []  xe_mmio_read32+0x110/0x280 [xe]
     []  auto_link_downgrade_capable_show+0x2e/0x70 [xe]
     []  dev_attr_show+0x1a/0x70
     []  sysfs_kf_seq_show+0xaa/0x120
     []  kernfs_seq_show+0x41/0x60
    
    Fixes: 0e414bf7ad01 ("drm/xe: Expose PCIe link downgrade attributes")
    Fixes: cdc36b66cd41 ("drm/xe: Expose fan control and voltage regulator version")
    Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Lukasz Laguna <lukasz.laguna@intel.com>
    Reviewed-by: Raag Jadav <raag.jadav@intel.com>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Link: https://lore.kernel.org/r/20250916170029.3313-2-michal.wajdeczko@intel.com
    (cherry picked from commit a2d6223d224f333f705ed8495bf8bebfbc585c35)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
drm/xe: Don't copy pinned kernel bos twice on suspend [+ + +]
Author: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Date:   Thu Sep 18 11:22:05 2025 +0200

    drm/xe: Don't copy pinned kernel bos twice on suspend
    
    commit 77c8ede611c6a70a95f7b15648551d0121b40d6c upstream.
    
    We were copying the bo content the bos on the list
    "xe->pinned.late.kernel_bo_present" twice on suspend.
    
    Presumingly the intent is to copy the pinned external bos on
    the first pass.
    
    This is harmless since we (currently) should have no pinned
    external bos needing copy since
    a) exernal system bos don't have compressed content,
    b) We do not (yet) allow pinning of VRAM bos.
    
    Still, fix this up so that we copy pinned external bos on
    the first pass. We're about to allow bos pinned in VRAM.
    
    Fixes: c6a4d46ec1d7 ("drm/xe: evict user memory in PM notifier")
    Cc: Matthew Auld <matthew.auld@intel.com>
    Cc: <stable@vger.kernel.org> # v6.16+
    Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://lore.kernel.org/r/20250918092207.54472-2-thomas.hellstrom@linux.intel.com
    (cherry picked from commit 9e69bafece43dcefec864f00b3ec7e088aa7fcbc)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

drm/xe: Fix build with CONFIG_MODULES=n [+ + +]
Author: Lucas De Marchi <lucas.demarchi@intel.com>
Date:   Fri Sep 12 14:54:51 2025 -0700

    drm/xe: Fix build with CONFIG_MODULES=n
    
    [ Upstream commit b67e7422d229dead0dddaad7e7c05558f24d552f ]
    
    When building with CONFIG_MODULES=n, the __exit functions are dropped.
    However our init functions may call them for error handling, so they are
    not good candidates for the exit sections.
    
    Fix this error reported by 0day:
    
            ld.lld: error: relocation refers to a symbol in a discarded section: xe_configfs_exit
            >>> defined in vmlinux.a(drivers/gpu/drm/xe/xe_configfs.o)
            >>> referenced by xe_module.c
            >>>               drivers/gpu/drm/xe/xe_module.o:(init_funcs) in archive vmlinux.a
    
    This is the only exit function using __exit. Drop it to fix the build.
    
    Cc: Riana Tauro <riana.tauro@intel.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202506092221.1FmUQmI8-lkp@intel.com/
    Fixes: 16280ded45fb ("drm/xe: Add configfs to enable survivability mode")
    Reviewed-by: Balasubramani Vivekanandan <balasubramani.vivekanandan@intel.com>
    Link: https://lore.kernel.org/r/20250912-fix-nomodule-build-v1-1-d11b70a92516@intel.com
    Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
    (cherry picked from commit d9b2623319fa20c2206754284291817488329648)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
ethernet: rvu-af: Remove slash from the driver name [+ + +]
Author: Petr Malat <oss@malat.biz>
Date:   Thu Sep 18 17:21:07 2025 +0200

    ethernet: rvu-af: Remove slash from the driver name
    
    [ Upstream commit b65678cacc030efd53c38c089fb9b741a2ee34c8 ]
    
    Having a slash in the driver name leads to EIO being returned while
    reading /sys/module/rvu_af/drivers content.
    
    Remove DRV_STRING as it's not used anywhere.
    
    Fixes: 91c6945ea1f9 ("octeontx2-af: cn10k: Add RPM MAC support")
    Signed-off-by: Petr Malat <oss@malat.biz>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250918152106.1798299-1-oss@malat.biz
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
fbcon: fix integer overflow in fbcon_do_set_font [+ + +]
Author: Samasth Norway Ananda <samasth.norway.ananda@oracle.com>
Date:   Fri Sep 12 10:00:23 2025 -0700

    fbcon: fix integer overflow in fbcon_do_set_font
    
    commit 1a194e6c8e1ee745e914b0b7f50fa86c89ed13fe upstream.
    
    Fix integer overflow vulnerabilities in fbcon_do_set_font() where font
    size calculations could overflow when handling user-controlled font
    parameters.
    
    The vulnerabilities occur when:
    1. CALC_FONTSZ(h, pitch, charcount) performs h * pith * charcount
       multiplication with user-controlled values that can overflow.
    2. FONT_EXTRA_WORDS * sizeof(int) + size addition can also overflow
    3. This results in smaller allocations than expected, leading to buffer
       overflows during font data copying.
    
    Add explicit overflow checking using check_mul_overflow() and
    check_add_overflow() kernel helpers to safety validate all size
    calculations before allocation.
    
    Signed-off-by: Samasth Norway Ananda <samasth.norway.ananda@oracle.com>
    Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
    Fixes: 39b3cffb8cf3 ("fbcon: prevent user font height or width change from causing potential out-of-bounds access")
    Cc: George Kennedy <george.kennedy@oracle.com>
    Cc: stable <stable@vger.kernel.org>
    Cc: syzbot+38a3699c7eaf165b97a6@syzkaller.appspotmail.com
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Simona Vetter <simona@ffwll.ch>
    Cc: Helge Deller <deller@gmx.de>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Qianqiang Liu <qianqiang.liu@163.com>
    Cc: Shixiong Ou <oushixiong@kylinos.cn>
    Cc: Kees Cook <kees@kernel.org>
    Cc: <stable@vger.kernel.org> # v5.9+
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://lore.kernel.org/r/20250912170023.3931881-1-samasth.norway.ananda@oracle.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

fbcon: Fix OOB access in font allocation [+ + +]
Author: Thomas Zimmermann <tzimmermann@suse.de>
Date:   Mon Sep 22 15:45:54 2025 +0200

    fbcon: Fix OOB access in font allocation
    
    commit 9b2f5ef00e852f8e8902a4d4f73aeedc60220c12 upstream.
    
    Commit 1a194e6c8e1e ("fbcon: fix integer overflow in fbcon_do_set_font")
    introduced an out-of-bounds access by storing data and allocation sizes
    in the same variable. Restore the old size calculation and use the new
    variable 'alloc_size' for the allocation.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Fixes: 1a194e6c8e1e ("fbcon: fix integer overflow in fbcon_do_set_font")
    Reported-by: Jani Nikula <jani.nikula@linux.intel.com>
    Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15020
    Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/6201
    Cc: Samasth Norway Ananda <samasth.norway.ananda@oracle.com>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Cc: George Kennedy <george.kennedy@oracle.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Simona Vetter <simona@ffwll.ch>
    Cc: Helge Deller <deller@gmx.de>
    Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Qianqiang Liu <qianqiang.liu@163.com>
    Cc: Shixiong Ou <oushixiong@kylinos.cn>
    Cc: Kees Cook <kees@kernel.org>
    Cc: <stable@vger.kernel.org> # v5.9+
    Cc: Zsolt Kajtar <soci@c64.rulez.org>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Reviewed-by: Qianqiang Liu <qianqiang.liu@163.com>
    Link: https://lore.kernel.org/r/20250922134619.257684-1-tzimmermann@suse.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
firewire: core: fix overlooked update of subsystem ABI version [+ + +]
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Sat Sep 20 11:51:48 2025 +0900

    firewire: core: fix overlooked update of subsystem ABI version
    
    [ Upstream commit 853a57ba263adfecf4430b936d6862bc475b4bb5 ]
    
    In kernel v6.5, several functions were added to the cdev layer. This
    required updating the default version of subsystem ABI up to 6, but
    this requirement was overlooked.
    
    This commit updates the version accordingly.
    
    Fixes: 6add87e9764d ("firewire: cdev: add new version of ABI to notify time stamp at request/response subaction of transaction#")
    Link: https://lore.kernel.org/r/20250920025148.163402-1-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
firmware: imx: Add stub functions for SCMI CPU API [+ + +]
Author: Peng Fan <peng.fan@nxp.com>
Date:   Mon Aug 25 15:00:32 2025 +0800

    firmware: imx: Add stub functions for SCMI CPU API
    
    [ Upstream commit 222accf05fc42f68ae02065d9c1542c20315118b ]
    
    To ensure successful builds when CONFIG_IMX_SCMI_CPU_DRV is not enabled,
    this patch adds static inline stub implementations for the following
    functions:
    
      - scmi_imx_cpu_start()
      - scmi_imx_cpu_started()
      - scmi_imx_cpu_reset_vector_set()
    
    These stubs return -EOPNOTSUPP to indicate that the functionality is not
    supported in the current configuration. This avoids potential build or
    link errors in code that conditionally calls these functions based on
    feature availability.
    
    Fixes: 1055faa5d660 ("firmware: imx: Add i.MX95 SCMI CPU driver")
    Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

firmware: imx: Add stub functions for SCMI LMM API [+ + +]
Author: Peng Fan <peng.fan@nxp.com>
Date:   Mon Aug 25 15:00:31 2025 +0800

    firmware: imx: Add stub functions for SCMI LMM API
    
    [ Upstream commit 3fb91b5c86d0fb5ff6f65c30a4f20193166e22fe ]
    
    To ensure successful builds when CONFIG_IMX_SCMI_LMM_DRV is not enabled,
    this patch adds static inline stub implementations for the following
    functions:
    
      - scmi_imx_lmm_operation()
      - scmi_imx_lmm_info()
      - scmi_imx_lmm_reset_vector_set()
    
    These stubs return -EOPNOTSUPP to indicate that the functionality is not
    supported in the current configuration. This avoids potential build or
    link errors in code that conditionally calls these functions based on
    feature availability.
    
    Fixes: 7242bbf418f0 ("firmware: imx: Add i.MX95 SCMI LMM driver")
    Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

firmware: imx: Add stub functions for SCMI MISC API [+ + +]
Author: Peng Fan <peng.fan@nxp.com>
Date:   Mon Aug 25 15:00:30 2025 +0800

    firmware: imx: Add stub functions for SCMI MISC API
    
    [ Upstream commit b2461e20fa9ac18b1305bba5bc7e22ebf644ea01 ]
    
    To ensure successful builds when CONFIG_IMX_SCMI_MISC_DRV is not enabled,
    this patch adds static inline stub implementations for the following
    functions:
    
      - scmi_imx_misc_ctrl_get()
      - scmi_imx_misc_ctrl_set()
    
    These stubs return -EOPNOTSUPP to indicate that the functionality is not
    supported in the current configuration. This avoids potential build or
    link errors in code that conditionally calls these functions based on
    feature availability.
    
    This patch also drops the changes in commit 540c830212ed ("firmware: imx:
    remove duplicate scmi_imx_misc_ctrl_get()").
    
    The original change aimed to simplify the handling of optional features by
    removing conditional stubs. However, the use of conditional stubs is
    necessary when CONFIG_IMX_SCMI_MISC_DRV is n, while consumer driver is
    set to y.
    
    This is not a matter of preserving legacy patterns, but rather to ensure
    that there is no link error whether for module or built-in.
    
    Fixes: 0b4f8a68b292 ("firmware: imx: Add i.MX95 MISC driver")
    Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
fs/proc/task_mmu: check p->vec_buf for NULL [+ + +]
Author: Jakub Acs <acsjakub@amazon.de>
Date:   Mon Sep 22 08:22:05 2025 +0000

    fs/proc/task_mmu: check p->vec_buf for NULL
    
    commit 28aa29986dde79e8466bc87569141291053833f5 upstream.
    
    When the PAGEMAP_SCAN ioctl is invoked with vec_len = 0 reaches
    pagemap_scan_backout_range(), kernel panics with null-ptr-deref:
    
    [   44.936808] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI
    [   44.937797] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
    [   44.938391] CPU: 1 UID: 0 PID: 2480 Comm: reproducer Not tainted 6.17.0-rc6 #22 PREEMPT(none)
    [   44.939062] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014
    [   44.939935] RIP: 0010:pagemap_scan_thp_entry.isra.0+0x741/0xa80
    
    <snip registers, unreliable trace>
    
    [   44.946828] Call Trace:
    [   44.947030]  <TASK>
    [   44.949219]  pagemap_scan_pmd_entry+0xec/0xfa0
    [   44.952593]  walk_pmd_range.isra.0+0x302/0x910
    [   44.954069]  walk_pud_range.isra.0+0x419/0x790
    [   44.954427]  walk_p4d_range+0x41e/0x620
    [   44.954743]  walk_pgd_range+0x31e/0x630
    [   44.955057]  __walk_page_range+0x160/0x670
    [   44.956883]  walk_page_range_mm+0x408/0x980
    [   44.958677]  walk_page_range+0x66/0x90
    [   44.958984]  do_pagemap_scan+0x28d/0x9c0
    [   44.961833]  do_pagemap_cmd+0x59/0x80
    [   44.962484]  __x64_sys_ioctl+0x18d/0x210
    [   44.962804]  do_syscall_64+0x5b/0x290
    [   44.963111]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    vec_len = 0 in pagemap_scan_init_bounce_buffer() means no buffers are
    allocated and p->vec_buf remains set to NULL.
    
    This breaks an assumption made later in pagemap_scan_backout_range(), that
    page_region is always allocated for p->vec_buf_index.
    
    Fix it by explicitly checking p->vec_buf for NULL before dereferencing.
    
    Other sites that might run into same deref-issue are already (directly or
    transitively) protected by checking p->vec_buf.
    
    Note:
    From PAGEMAP_SCAN man page, it seems vec_len = 0 is valid when no output
    is requested and it's only the side effects caller is interested in,
    hence it passes check in pagemap_scan_get_args().
    
    This issue was found by syzkaller.
    
    Link: https://lkml.kernel.org/r/20250922082206.6889-1-acsjakub@amazon.de
    Fixes: 52526ca7fdb9 ("fs/proc/task_mmu: implement IOCTL to get and optionally clear info about PTEs")
    Signed-off-by: Jakub Acs <acsjakub@amazon.de>
    Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
    Cc: Jinjiang Tu <tujinjiang@huawei.com>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Penglei Jiang <superman.xpt@gmail.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
    Cc: Ryan Roberts <ryan.roberts@arm.com>
    Cc: Andrei Vagin <avagin@gmail.com>
    Cc: "Michał Mirosław" <mirq-linux@rere.qmqm.pl>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
futex: Prevent use-after-free during requeue-PI [+ + +]
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Wed Sep 10 12:42:43 2025 +0200

    futex: Prevent use-after-free during requeue-PI
    
    [ Upstream commit b549113738e8c751b613118032a724b772aa83f2 ]
    
    syzbot managed to trigger the following race:
    
       T1                               T2
    
     futex_wait_requeue_pi()
       futex_do_wait()
         schedule()
                                   futex_requeue()
                                     futex_proxy_trylock_atomic()
                                       futex_requeue_pi_prepare()
                                       requeue_pi_wake_futex()
                                         futex_requeue_pi_complete()
                                          /* preempt */
    
             * timeout/ signal wakes T1 *
    
       futex_requeue_pi_wakeup_sync() // Q_REQUEUE_PI_LOCKED
       futex_hash_put()
      // back to userland, on stack futex_q is garbage
    
                                          /* back */
                                         wake_up_state(q->task, TASK_NORMAL);
    
    In this scenario futex_wait_requeue_pi() is able to leave without using
    futex_q::lock_ptr for synchronization.
    
    This can be prevented by reading futex_q::task before updating the
    futex_q::requeue_state. A reference on the task_struct is not needed
    because requeue_pi_wake_futex() is invoked with a spinlock_t held which
    implies a RCU read section.
    
    Even if T1 terminates immediately after, the task_struct will remain valid
    during T2's wake_up_state().  A READ_ONCE on futex_q::task before
    futex_requeue_pi_complete() is enough because it ensures that the variable
    is read before the state is updated.
    
    Read futex_q::task before updating the requeue state, use it for the
    following wakeup.
    
    Fixes: 07d91ef510fb1 ("futex: Prevent requeue_pi() lock nesting issue on RT")
    Reported-by: syzbot+034246a838a10d181e78@syzkaller.appspotmail.com
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Closes: https://lore.kernel.org/all/68b75989.050a0220.3db4df.01dd.GAE@google.com/
    Signed-off-by: Sasha Levin <sashal@kernel.org>

futex: Use correct exit on failure from futex_hash_allocate_default() [+ + +]
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Thu Sep 18 15:09:45 2025 +0200

    futex: Use correct exit on failure from futex_hash_allocate_default()
    
    [ Upstream commit 4ec3c15462b9f44562f45723a92e2807746ba7d1 ]
    
    copy_process() uses the wrong error exit path from futex_hash_allocate_default().
    After exiting from futex_hash_allocate_default(), neither tasklist_lock
    nor siglock has been acquired. The exit label bad_fork_core_free unlocks
    both of these locks which is wrong.
    
    The next exit label, bad_fork_cancel_cgroup, is the correct exit.
    sched_cgroup_fork() did not allocate any resources that need to freed.
    
    Use bad_fork_cancel_cgroup on error exit from futex_hash_allocate_default().
    
    Fixes: 7c4f75a21f636 ("futex: Allow automatic allocation of process wide futex hash")
    Reported-by: syzbot+80cb3cc5c14fad191a10@syzkaller.appspotmail.com
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Closes: https://lore.kernel.org/all/68cb1cbd.050a0220.2ff435.0599.GAE@google.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
gpio: regmap: fix memory leak of gpio_regmap structure [+ + +]
Author: Ioana Ciornei <ioana.ciornei@nxp.com>
Date:   Mon Sep 22 17:24:21 2025 +0300

    gpio: regmap: fix memory leak of gpio_regmap structure
    
    [ Upstream commit 3bd44edd6c55828fd4e11cb0efce5b7160bfa2de ]
    
    The gpio_regmap structure is leaked on the error path. Fix this by
    jumping to the appropriate kfree instead of returning directly.
    
    Fixes: db305161880a ("gpio: regmap: Allow ngpio to be read from the property")
    Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
    Suggested-by: Michael Walle <mwalle@kernel.org>
    Reviewed-by: Michael Walle <mwalle@kernel.org>
    Link: https://lore.kernel.org/r/20250922142427.3310221-7-ioana.ciornei@nxp.com
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
gpiolib: acpi: Add quirk for ASUS ProArt PX13 [+ + +]
Author: Mario Limonciello (AMD) <superm1@kernel.org>
Date:   Thu Aug 14 13:34:29 2025 -0500

    gpiolib: acpi: Add quirk for ASUS ProArt PX13
    
    [ Upstream commit 23800ad1265f10c2bc6f42154ce4d20e59f2900e ]
    
    The ASUS ProArt PX13 has a spurious wakeup event from the touchpad
    a few moments after entering hardware sleep.  This can be avoided
    by preventing the touchpad from being a wake source.
    
    Add to the wakeup ignore list.
    
    Reported-by: Amit Chaudhari <amitchaudhari@mac.com>
    Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4482
    Tested-by: Amit Chaudhari <amitchaudhari@mac.com>
    Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Link: https://lore.kernel.org/20250814183430.3887973-1-superm1@kernel.org
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

gpiolib: Extend software-node support to support secondary software-nodes [+ + +]
Author: Hans de Goede <hansg@kernel.org>
Date:   Sat Sep 20 22:09:55 2025 +0200

    gpiolib: Extend software-node support to support secondary software-nodes
    
    commit c6ccc4dde17676dfe617b9a37bd9ba19a8fc87ee upstream.
    
    When a software-node gets added to a device which already has another
    fwnode as primary node it will become the secondary fwnode for that
    device.
    
    Currently if a software-node with GPIO properties ends up as the secondary
    fwnode then gpiod_find_by_fwnode() will fail to find the GPIOs.
    
    Add a new gpiod_fwnode_lookup() helper which falls back to calling
    gpiod_find_by_fwnode() with the secondary fwnode if the GPIO was not
    found in the primary fwnode.
    
    Fixes: e7f9ff5dc90c ("gpiolib: add support for software nodes")
    Cc: stable@vger.kernel.org
    Signed-off-by: Hans de Goede <hansg@kernel.org>
    Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Link: https://lore.kernel.org/r/20250920200955.20403-1-hansg@kernel.org
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
HID: amd_sfh: Add sync across amd sfh work functions [+ + +]
Author: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
Date:   Thu Sep 18 18:02:02 2025 +0530

    HID: amd_sfh: Add sync across amd sfh work functions
    
    [ Upstream commit bba920e6f803138587248079de47ad3464a396f6 ]
    
    The process of the report is delegated across different work functions.
    Hence, add a sync mechanism to protect SFH work data across functions.
    
    Fixes: 4b2c53d93a4b ("SFH:Transport Driver to add support of AMD Sensor Fusion Hub (SFH)")
    Reported-by: Matthew Schwartz <matthew.schwartz@linux.dev>
    Closes: https://lore.kernel.org/all/a21abca5-4268-449d-95f1-bdd7a25894a5@linux.dev/
    Tested-by: Prakruthi SP <Prakruthi.SP@amd.com>
    Co-developed-by: Akshata MukundShetty <akshata.mukundshetty@amd.com>
    Signed-off-by: Akshata MukundShetty <akshata.mukundshetty@amd.com>
    Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
    Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

HID: asus: add support for missing PX series fn keys [+ + +]
Author: Amit Chaudhari <amitchaudhari@mac.com>
Date:   Tue Aug 19 17:49:19 2025 -0400

    HID: asus: add support for missing PX series fn keys
    
    commit 831f70a5b93bd2d9e858ced2c12fab5766ede5e7 upstream.
    
    Add support for missing hotkey keycodes affecting Asus PX13 and PX16 families
    so userspace can use them.
    
    Signed-off-by: Amit Chaudhari <amitchaudhari@mac.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

HID: cp2112: fix setter callbacks return value [+ + +]
Author: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
Date:   Thu Sep 4 18:42:07 2025 +0200

    HID: cp2112: fix setter callbacks return value
    
    [ Upstream commit 2a5e76b9a0efc44807ff0e6b141649fac65a55ac ]
    
    Since commit 6485543488a6 ("HID: cp2112: use new line value setter
    callbacks"), setting a GPIO value always fails with error -EBADE.
    
    That's because the returned value by the setter callbacks is the
    returned value by the hid_hw_raw_request() function which is the number of
    bytes sent on success or a negative value on error. The function
    gpiochip_set() returns -EBADE if the setter callbacks return a value >
    0.
    
    Fix this by making the setter callbacks return 0 on success or a negative
    value on error.
    
    While at it, use the returned value by cp2112_gpio_set_unlocked() in the
    direction_output callback.
    
    Fixes: 6485543488a6 ("HID: cp2112: use new line value setter callbacks")
    Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
    Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

HID: intel-thc-hid: intel-quickspi: Add WCL Device IDs [+ + +]
Author: Xinpeng Sun <xinpeng.sun@intel.com>
Date:   Thu Aug 28 10:09:59 2025 +0800

    HID: intel-thc-hid: intel-quickspi: Add WCL Device IDs
    
    commit cc54ed51c761728f6933cca889b684ed7fbaaf07 upstream.
    
    Add THC SPI WildcatLake device IDs.
    
    Signed-off-by: Xinpeng Sun <xinpeng.sun@intel.com>
    Reviewed-by: Even Xu <even.xu@intel.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

HID: multitouch: Get the contact ID from HID_DG_TRANSDUCER_INDEX fields in case of Apple Touch Bar [+ + +]
Author: Kerem Karabay <kekrby@gmail.com>
Date:   Tue May 27 22:13:13 2025 +0530

    HID: multitouch: Get the contact ID from HID_DG_TRANSDUCER_INDEX fields in case of Apple Touch Bar
    
    [ Upstream commit f41d736acc039d86512951f4e874b0f5e666babf ]
    
    In Apple Touch Bar, the contact ID is contained in fields with the
    HID_DG_TRANSDUCER_INDEX usage rather than HID_DG_CONTACTID, thus differing
    from the HID spec. Add a quirk for the same.
    
    Acked-by: Benjamin Tissoires <bentiss@kernel.org>
    Signed-off-by: Kerem Karabay <kekrby@gmail.com>
    Co-developed-by: Aditya Garg <gargaditya08@live.com>
    Signed-off-by: Aditya Garg <gargaditya08@live.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

HID: multitouch: specify that Apple Touch Bar is direct [+ + +]
Author: Kerem Karabay <kekrby@gmail.com>
Date:   Tue May 27 22:13:16 2025 +0530

    HID: multitouch: specify that Apple Touch Bar is direct
    
    [ Upstream commit 45ca23c5ee8b2b3074377fecc92fa72aa595f7c9 ]
    
    Currently the driver determines the device type based on the
    application, but this value is not reliable on Apple Touch Bar, where
    the application is HID_DG_TOUCHPAD even though this device is direct,
    so add a quirk for the same.
    
    Acked-by: Benjamin Tissoires <bentiss@kernel.org>
    Signed-off-by: Kerem Karabay <kekrby@gmail.com>
    Co-developed-by: Aditya Garg <gargaditya08@live.com>
    Signed-off-by: Aditya Garg <gargaditya08@live.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

HID: multitouch: support getting the tip state from HID_DG_TOUCH fields in Apple Touch Bar [+ + +]
Author: Kerem Karabay <kekrby@gmail.com>
Date:   Tue May 27 22:13:14 2025 +0530

    HID: multitouch: support getting the tip state from HID_DG_TOUCH fields in Apple Touch Bar
    
    [ Upstream commit e0976a61a543b5e03bc0d08030a0ea036ee3751d ]
    
    In Apple Touch Bar, the tip state is contained in fields with the
    HID_DG_TOUCH usage. This feature is gated by a quirk in order to
    prevent breaking other devices, see commit c2ef8f21ea8f
    ("HID: multitouch: add support for trackpads").
    
    Acked-by: Benjamin Tissoires <bentiss@kernel.org>
    Signed-off-by: Kerem Karabay <kekrby@gmail.com>
    Co-developed-by: Aditya Garg <gargaditya08@live.com>
    Signed-off-by: Aditya Garg <gargaditya08@live.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

HID: multitouch: take cls->maxcontacts into account for Apple Touch Bar even without a HID_DG_CONTACTMAX field [+ + +]
Author: Kerem Karabay <kekrby@gmail.com>
Date:   Tue May 27 22:13:15 2025 +0530

    HID: multitouch: take cls->maxcontacts into account for Apple Touch Bar even without a HID_DG_CONTACTMAX field
    
    [ Upstream commit 7dfe48bdc9d38db46283f2e0281bc1626277b8bf ]
    
    In Apple Touch Bar, the HID_DG_CONTACTMAX is not present, but the maximum
    contact count is still greater than the default. Add quirks for the same.
    
    Acked-by: Benjamin Tissoires <bentiss@kernel.org>
    Signed-off-by: Kerem Karabay <kekrby@gmail.com>
    Co-developed-by: Aditya Garg <gargaditya08@live.com>
    Signed-off-by: Aditya Garg <gargaditya08@live.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
i2c: designware: Add quirk for Intel Xe [+ + +]
Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date:   Tue Jul 1 15:22:49 2025 +0300

    i2c: designware: Add quirk for Intel Xe
    
    [ Upstream commit f6a8e9f3de4567c71ef9f5f13719df69a8b96081 ]
    
    The regmap is coming from the parent also in case of Xe
    GPUs. Reusing the Wangxun quirk for that.
    
    Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Co-developed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
    Link: https://lore.kernel.org/r/20250701122252.2590230-3-heikki.krogerus@linux.intel.com
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    [Rodrigo fixed the co-developed tags while merging]
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
i40e: add mask to apply valid bits for itr_idx [+ + +]
Author: Lukasz Czapnik <lukasz.czapnik@intel.com>
Date:   Wed Aug 13 12:45:17 2025 +0200

    i40e: add mask to apply valid bits for itr_idx
    
    commit eac04428abe9f9cb203ffae4600791ea1d24eb18 upstream.
    
    The ITR index (itr_idx) is only 2 bits wide. When constructing the
    register value for QINT_RQCTL, all fields are ORed together. Without
    masking, higher bits from itr_idx may overwrite adjacent fields in the
    register.
    
    Apply I40E_QINT_RQCTL_ITR_INDX_MASK to ensure only the intended bits are
    set.
    
    Fixes: 5c3c48ac6bf5 ("i40e: implement virtual device interface")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lukasz Czapnik <lukasz.czapnik@intel.com>
    Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

i40e: add max boundary check for VF filters [+ + +]
Author: Lukasz Czapnik <lukasz.czapnik@intel.com>
Date:   Wed Aug 13 12:45:16 2025 +0200

    i40e: add max boundary check for VF filters
    
    commit cb79fa7118c150c3c76a327894bb2eb878c02619 upstream.
    
    There is no check for max filters that VF can request. Add it.
    
    Fixes: e284fc280473 ("i40e: Add and delete cloud filter")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lukasz Czapnik <lukasz.czapnik@intel.com>
    Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

i40e: add validation for ring_len param [+ + +]
Author: Lukasz Czapnik <lukasz.czapnik@intel.com>
Date:   Wed Aug 13 12:45:11 2025 +0200

    i40e: add validation for ring_len param
    
    commit 55d225670def06b01af2e7a5e0446fbe946289e8 upstream.
    
    The `ring_len` parameter provided by the virtual function (VF)
    is assigned directly to the hardware memory context (HMC) without
    any validation.
    
    To address this, introduce an upper boundary check for both Tx and Rx
    queue lengths. The maximum number of descriptors supported by the
    hardware is 8k-32.
    Additionally, enforce alignment constraints: Tx rings must be a multiple
    of 8, and Rx rings must be a multiple of 32.
    
    Fixes: 5c3c48ac6bf5 ("i40e: implement virtual device interface")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lukasz Czapnik <lukasz.czapnik@intel.com>
    Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

i40e: fix idx validation in config queues msg [+ + +]
Author: Lukasz Czapnik <lukasz.czapnik@intel.com>
Date:   Wed Aug 13 12:45:13 2025 +0200

    i40e: fix idx validation in config queues msg
    
    commit f1ad24c5abe1eaef69158bac1405a74b3c365115 upstream.
    
    Ensure idx is within range of active/initialized TCs when iterating over
    vf->ch[idx] in i40e_vc_config_queues_msg().
    
    Fixes: c27eac48160d ("i40e: Enable ADq and create queue channel/s on VF")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lukasz Czapnik <lukasz.czapnik@intel.com>
    Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Kamakshi Nellore <nellorex.kamakshi@intel.com> (A Contingent Worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

i40e: fix idx validation in i40e_validate_queue_map [+ + +]
Author: Lukasz Czapnik <lukasz.czapnik@intel.com>
Date:   Wed Aug 13 12:45:12 2025 +0200

    i40e: fix idx validation in i40e_validate_queue_map
    
    commit aa68d3c3ac8d1dcec40d52ae27e39f6d32207009 upstream.
    
    Ensure idx is within range of active/initialized TCs when iterating over
    vf->ch[idx] in i40e_validate_queue_map().
    
    Fixes: c27eac48160d ("i40e: Enable ADq and create queue channel/s on VF")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lukasz Czapnik <lukasz.czapnik@intel.com>
    Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Kamakshi Nellore <nellorex.kamakshi@intel.com> (A Contingent Worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

i40e: fix input validation logic for action_meta [+ + +]
Author: Lukasz Czapnik <lukasz.czapnik@intel.com>
Date:   Wed Aug 13 12:45:14 2025 +0200

    i40e: fix input validation logic for action_meta
    
    commit 9739d5830497812b0bdeaee356ddefbe60830b88 upstream.
    
    Fix condition to check 'greater or equal' to prevent OOB dereference.
    
    Fixes: e284fc280473 ("i40e: Add and delete cloud filter")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lukasz Czapnik <lukasz.czapnik@intel.com>
    Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

i40e: fix validation of VF state in get resources [+ + +]
Author: Lukasz Czapnik <lukasz.czapnik@intel.com>
Date:   Wed Aug 13 12:45:15 2025 +0200

    i40e: fix validation of VF state in get resources
    
    commit 877b7e6ffc23766448236e8732254534c518ba42 upstream.
    
    VF state I40E_VF_STATE_ACTIVE is not the only state in which
    VF is actually active so it should not be used to determine
    if a VF is allowed to obtain resources.
    
    Use I40E_VF_STATE_RESOURCES_LOADED that is set only in
    i40e_vc_get_vf_resources_msg() and cleared during reset.
    
    Fixes: 61125b8be85d ("i40e: Fix failed opcode appearing if handling messages from VF")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lukasz Czapnik <lukasz.czapnik@intel.com>
    Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

i40e: improve VF MAC filters accounting [+ + +]
Author: Lukasz Czapnik <lukasz.czapnik@intel.com>
Date:   Wed Aug 13 12:45:18 2025 +0200

    i40e: improve VF MAC filters accounting
    
    commit b99dd77076bd3fddac6f7f1cbfa081c38fde17f5 upstream.
    
    When adding new VM MAC, driver checks only *active* filters in
    vsi->mac_filter_hash. Each MAC, even in non-active state is using resources.
    
    To determine number of MACs VM uses, count VSI filters in *any* state.
    
    Add i40e_count_all_filters() to simply count all filters, and rename
    i40e_count_filters() to i40e_count_active_filters() to avoid ambiguity.
    
    Fixes: cfb1d572c986 ("i40e: Add ensurance of MacVlan resources for every trusted VF")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lukasz Czapnik <lukasz.czapnik@intel.com>
    Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
IB/mlx5: Fix obj_type mismatch for SRQ event subscriptions [+ + +]
Author: Or Har-Toov <ohartoov@nvidia.com>
Date:   Wed Aug 13 15:43:20 2025 +0300

    IB/mlx5: Fix obj_type mismatch for SRQ event subscriptions
    
    [ Upstream commit 85fe9f565d2d5af95ac2bbaa5082b8ce62b039f5 ]
    
    Fix a bug where the driver's event subscription logic for SRQ-related
    events incorrectly sets obj_type for RMP objects.
    
    When subscribing to SRQ events, get_legacy_obj_type() did not handle
    the MLX5_CMD_OP_CREATE_RMP case, which caused obj_type to be 0
    (default).
    This led to a mismatch between the obj_type used during subscription
    (0) and the value used during notification (1, taken from the event's
    type field). As a result, event mapping for SRQ objects could fail and
    event notification would not be delivered correctly.
    
    This fix adds handling for MLX5_CMD_OP_CREATE_RMP in get_legacy_obj_type,
    returning MLX5_EVENT_QUEUE_TYPE_RQ so obj_type is consistent between
    subscription and notification.
    
    Fixes: 759738537142 ("IB/mlx5: Enable subscription for device events over DEVX")
    Link: https://patch.msgid.link/r/8f1048e3fdd1fde6b90607ce0ed251afaf8a148c.1755088962.git.leon@kernel.org
    Signed-off-by: Or Har-Toov <ohartoov@nvidia.com>
    Reviewed-by: Edward Srouji <edwards@nvidia.com>
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
iommufd: Fix race during abort for file descriptors [+ + +]
Author: Jason Gunthorpe <jgg@ziepe.ca>
Date:   Mon Sep 29 11:47:41 2025 -0400

    iommufd: Fix race during abort for file descriptors
    
    [ Upstream commit 4e034bf045b12852a24d5d33f2451850818ba0c1 ]
    
    fput() doesn't actually call file_operations release() synchronously, it
    puts the file on a work queue and it will be released eventually.
    
    This is normally fine, except for iommufd the file and the iommufd_object
    are tied to gether. The file has the object as it's private_data and holds
    a users refcount, while the object is expected to remain alive as long as
    the file is.
    
    When the allocation of a new object aborts before installing the file it
    will fput() the file and then go on to immediately kfree() the obj. This
    causes a UAF once the workqueue completes the fput() and tries to
    decrement the users refcount.
    
    Fix this by putting the core code in charge of the file lifetime, and call
    __fput_sync() during abort to ensure that release() is called before
    kfree. __fput_sync() is a bit too tricky to open code in all the object
    implementations. Instead the objects tell the core code where the file
    pointer is and the core will take care of the life cycle.
    
    If the object is successfully allocated then the file will hold a users
    refcount and the iommufd_object cannot be destroyed.
    
    It is worth noting that close(); ioctl(IOMMU_DESTROY); doesn't have an
    issue because close() is already using a synchronous version of fput().
    
    The UAF looks like this:
    
        BUG: KASAN: slab-use-after-free in iommufd_eventq_fops_release+0x45/0xc0 drivers/iommu/iommufd/eventq.c:376
        Write of size 4 at addr ffff888059c97804 by task syz.0.46/6164
    
        CPU: 0 UID: 0 PID: 6164 Comm: syz.0.46 Not tainted syzkaller #0 PREEMPT(full)
        Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025
        Call Trace:
         <TASK>
         __dump_stack lib/dump_stack.c:94 [inline]
         dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120
         print_address_description mm/kasan/report.c:378 [inline]
         print_report+0xcd/0x630 mm/kasan/report.c:482
         kasan_report+0xe0/0x110 mm/kasan/report.c:595
         check_region_inline mm/kasan/generic.c:183 [inline]
         kasan_check_range+0x100/0x1b0 mm/kasan/generic.c:189
         instrument_atomic_read_write include/linux/instrumented.h:96 [inline]
         atomic_fetch_sub_release include/linux/atomic/atomic-instrumented.h:400 [inline]
         __refcount_dec include/linux/refcount.h:455 [inline]
         refcount_dec include/linux/refcount.h:476 [inline]
         iommufd_eventq_fops_release+0x45/0xc0 drivers/iommu/iommufd/eventq.c:376
         __fput+0x402/0xb70 fs/file_table.c:468
         task_work_run+0x14d/0x240 kernel/task_work.c:227
         resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
         exit_to_user_mode_loop+0xeb/0x110 kernel/entry/common.c:43
         exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]
         syscall_exit_to_user_mode_work include/linux/entry-common.h:175 [inline]
         syscall_exit_to_user_mode include/linux/entry-common.h:210 [inline]
         do_syscall_64+0x41c/0x4c0 arch/x86/entry/syscall_64.c:100
         entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Link: https://patch.msgid.link/r/1-v1-02cd136829df+31-iommufd_syz_fput_jgg@nvidia.com
    Cc: stable@vger.kernel.org
    Fixes: 07838f7fd529 ("iommufd: Add iommufd fault object")
    Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
    Reviewed-by: Nirmoy Das <nirmoyd@nvidia.com>
    Reviewed-by: Kevin Tian <kevin.tian@intel.com>
    Tested-by: Nicolin Chen <nicolinc@nvidia.com>
    Reported-by: syzbot+80620e2d0d0a33b09f93@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/r/68c8583d.050a0220.2ff435.03a2.GAE@google.com
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    [ Adjust context ]
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
kmsan: fix out-of-bounds access to shadow memory [+ + +]
Author: Eric Biggers <ebiggers@kernel.org>
Date:   Thu Sep 11 12:58:58 2025 -0700

    kmsan: fix out-of-bounds access to shadow memory
    
    commit 85e1ff61060a765d91ee62dc5606d4d547d9d105 upstream.
    
    Running sha224_kunit on a KMSAN-enabled kernel results in a crash in
    kmsan_internal_set_shadow_origin():
    
        BUG: unable to handle page fault for address: ffffbc3840291000
        #PF: supervisor read access in kernel mode
        #PF: error_code(0x0000) - not-present page
        PGD 1810067 P4D 1810067 PUD 192d067 PMD 3c17067 PTE 0
        Oops: 0000 [#1] SMP NOPTI
        CPU: 0 UID: 0 PID: 81 Comm: kunit_try_catch Tainted: G                 N  6.17.0-rc3 #10 PREEMPT(voluntary)
        Tainted: [N]=TEST
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014
        RIP: 0010:kmsan_internal_set_shadow_origin+0x91/0x100
        [...]
        Call Trace:
        <TASK>
        __msan_memset+0xee/0x1a0
        sha224_final+0x9e/0x350
        test_hash_buffer_overruns+0x46f/0x5f0
        ? kmsan_get_shadow_origin_ptr+0x46/0xa0
        ? __pfx_test_hash_buffer_overruns+0x10/0x10
        kunit_try_run_case+0x198/0xa00
    
    This occurs when memset() is called on a buffer that is not 4-byte aligned
    and extends to the end of a guard page, i.e.  the next page is unmapped.
    
    The bug is that the loop at the end of kmsan_internal_set_shadow_origin()
    accesses the wrong shadow memory bytes when the address is not 4-byte
    aligned.  Since each 4 bytes are associated with an origin, it rounds the
    address and size so that it can access all the origins that contain the
    buffer.  However, when it checks the corresponding shadow bytes for a
    particular origin, it incorrectly uses the original unrounded shadow
    address.  This results in reads from shadow memory beyond the end of the
    buffer's shadow memory, which crashes when that memory is not mapped.
    
    To fix this, correctly align the shadow address before accessing the 4
    shadow bytes corresponding to each origin.
    
    Link: https://lkml.kernel.org/r/20250911195858.394235-1-ebiggers@kernel.org
    Fixes: 2ef3cec44c60 ("kmsan: do not wipe out origin when doing partial unpoisoning")
    Signed-off-by: Eric Biggers <ebiggers@kernel.org>
    Tested-by: Alexander Potapenko <glider@google.com>
    Reviewed-by: Alexander Potapenko <glider@google.com>
    Cc: Dmitriy Vyukov <dvyukov@google.com>
    Cc: Marco Elver <elver@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
Linux: Linux 6.16.10 [+ + +]
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Oct 2 13:48:40 2025 +0200

    Linux 6.16.10
    
    Link: https://lore.kernel.org/r/20250930143831.236060637@linuxfoundation.org
    Tested-by: Brett A C Sheffield <bacs@librecast.net>
    Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Tested-by: Peter Schneider <pschneider1968@googlemail.com>
    Tested-by: Ron Economos <re@w6rz.net>
    Tested-by: Salvatore Bonaccorso <carnil@debian.org>
    Tested-by: Dileep Malepu <dileep.debian@gmail.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Mark Brown <broonie@kernel.org>
    Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com>
    Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Miguel Ojeda <ojeda@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
mm/damon/sysfs: do not ignore callback's return value in damon_sysfs_damon_call() [+ + +]
Author: Akinobu Mita <akinobu.mita@gmail.com>
Date:   Sat Sep 20 22:25:46 2025 +0900

    mm/damon/sysfs: do not ignore callback's return value in damon_sysfs_damon_call()
    
    commit 06195ee967d06ead757f9291bbaf1a0b30fa10b8 upstream.
    
    The callback return value is ignored in damon_sysfs_damon_call(), which
    means that it is not possible to detect invalid user input when writing
    commands such as 'commit' to
    /sys/kernel/mm/damon/admin/kdamonds/<K>/state.  Fix it.
    
    Link: https://lkml.kernel.org/r/20250920132546.5822-1-akinobu.mita@gmail.com
    Fixes: f64539dcdb87 ("mm/damon/sysfs: use damon_call() for update_schemes_stats")
    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Reviewed-by: SeongJae Park <sj@kernel.org>
    Cc: <stable@vger.kernel.org>    [6.14+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
mm/hugetlb: fix folio is still mapped when deleted [+ + +]
Author: Jinjiang Tu <tujinjiang@huawei.com>
Date:   Fri Sep 12 15:41:39 2025 +0800

    mm/hugetlb: fix folio is still mapped when deleted
    
    commit 7b7387650dcf2881fd8bb55bcf3c8bd6c9542dd7 upstream.
    
    Migration may be raced with fallocating hole.  remove_inode_single_folio
    will unmap the folio if the folio is still mapped.  However, it's called
    without folio lock.  If the folio is migrated and the mapped pte has been
    converted to migration entry, folio_mapped() returns false, and won't
    unmap it.  Due to extra refcount held by remove_inode_single_folio,
    migration fails, restores migration entry to normal pte, and the folio is
    mapped again.  As a result, we triggered BUG in filemap_unaccount_folio.
    
    The log is as follows:
     BUG: Bad page cache in process hugetlb  pfn:156c00
     page: refcount:515 mapcount:0 mapping:0000000099fef6e1 index:0x0 pfn:0x156c00
     head: order:9 mapcount:1 entire_mapcount:1 nr_pages_mapped:0 pincount:0
     aops:hugetlbfs_aops ino:dcc dentry name(?):"my_hugepage_file"
     flags: 0x17ffffc00000c1(locked|waiters|head|node=0|zone=2|lastcpupid=0x1fffff)
     page_type: f4(hugetlb)
     page dumped because: still mapped when deleted
     CPU: 1 UID: 0 PID: 395 Comm: hugetlb Not tainted 6.17.0-rc5-00044-g7aac71907bde-dirty #484 NONE
     Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015
     Call Trace:
      <TASK>
      dump_stack_lvl+0x4f/0x70
      filemap_unaccount_folio+0xc4/0x1c0
      __filemap_remove_folio+0x38/0x1c0
      filemap_remove_folio+0x41/0xd0
      remove_inode_hugepages+0x142/0x250
      hugetlbfs_fallocate+0x471/0x5a0
      vfs_fallocate+0x149/0x380
    
    Hold folio lock before checking if the folio is mapped to avold race with
    migration.
    
    Link: https://lkml.kernel.org/r/20250912074139.3575005-1-tujinjiang@huawei.com
    Fixes: 4aae8d1c051e ("mm/hugetlbfs: unmap pages if page fault raced with hole punch")
    Signed-off-by: Jinjiang Tu <tujinjiang@huawei.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
    Cc: Muchun Song <muchun.song@linux.dev>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
mmc: sdhci-cadence: add Mobileye eyeQ support [+ + +]
Author: Benoît Monin <benoit.monin@bootlin.com>
Date:   Tue Jun 17 15:25:52 2025 +0200

    mmc: sdhci-cadence: add Mobileye eyeQ support
    
    [ Upstream commit 120ffe250dd95b5089d032f582c5be9e3a04b94b ]
    
    The MMC/SDHCI controller implemented by Mobileye needs the preset value
    quirks to configure the clock properly at speed slower than HS200.
    It otherwise works as a standard sd4hc controller.
    
    Signed-off-by: Benoît Monin <benoit.monin@bootlin.com>
    Link: https://lore.kernel.org/r/e97f409650495791e07484589e1666ead570fa12.1750156323.git.benoit.monin@bootlin.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
net/mlx5: fs, fix UAF in flow counter release [+ + +]
Author: Moshe Shemesh <moshe@nvidia.com>
Date:   Mon Sep 22 10:11:32 2025 +0300

    net/mlx5: fs, fix UAF in flow counter release
    
    [ Upstream commit 6043819e707cefb1c9e59d6e431dcfa735c4f975 ]
    
    Fix a kernel trace [1] caused by releasing an HWS action of a local flow
    counter in mlx5_cmd_hws_delete_fte(), where the HWS action refcount and
    mutex were not initialized and the counter struct could already be freed
    when deleting the rule.
    
    Fix it by adding the missing initializations and adding refcount for the
    local flow counter struct.
    
    [1] Kernel log:
     Call Trace:
      <TASK>
      dump_stack_lvl+0x34/0x48
      mlx5_fs_put_hws_action.part.0.cold+0x21/0x94 [mlx5_core]
      mlx5_fc_put_hws_action+0x96/0xad [mlx5_core]
      mlx5_fs_destroy_fs_actions+0x8b/0x152 [mlx5_core]
      mlx5_cmd_hws_delete_fte+0x5a/0xa0 [mlx5_core]
      del_hw_fte+0x1ce/0x260 [mlx5_core]
      mlx5_del_flow_rules+0x12d/0x240 [mlx5_core]
      ? ttwu_queue_wakelist+0xf4/0x110
      mlx5_ib_destroy_flow+0x103/0x1b0 [mlx5_ib]
      uverbs_free_flow+0x20/0x50 [ib_uverbs]
      destroy_hw_idr_uobject+0x1b/0x50 [ib_uverbs]
      uverbs_destroy_uobject+0x34/0x1a0 [ib_uverbs]
      uobj_destroy+0x3c/0x80 [ib_uverbs]
      ib_uverbs_run_method+0x23e/0x360 [ib_uverbs]
      ? uverbs_finalize_object+0x60/0x60 [ib_uverbs]
      ib_uverbs_cmd_verbs+0x14f/0x2c0 [ib_uverbs]
      ? do_tty_write+0x1a9/0x270
      ? file_tty_write.constprop.0+0x98/0xc0
      ? new_sync_write+0xfc/0x190
      ib_uverbs_ioctl+0xd7/0x160 [ib_uverbs]
      __x64_sys_ioctl+0x87/0xc0
      do_syscall_64+0x59/0x90
    
    Fixes: b581f4266928 ("net/mlx5: fs, manage flow counters HWS action sharing by refcount")
    Signed-off-by: Moshe Shemesh <moshe@nvidia.com>
    Reviewed-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
    Reviewed-by: Mark Bloch <mbloch@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Link: https://patch.msgid.link/1758525094-816583-2-git-send-email-tariqt@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net/mlx5: HWS, ignore flow level for multi-dest table [+ + +]
Author: Yevgeny Kliteynik <kliteyn@nvidia.com>
Date:   Mon Sep 22 10:11:33 2025 +0300

    net/mlx5: HWS, ignore flow level for multi-dest table
    
    [ Upstream commit efb877cf27e300e47e1c051f4e8fd80fc42325d5 ]
    
    When HWS creates multi-dest FW table and adds rules to
    forward to other tables, ignore the flow level enforcement
    in FW, because HWS is responsible for table levels.
    
    This fixes the following error:
    
      mlx5_core 0000:08:00.0: mlx5_cmd_out_err:818:(pid 192306):
         SET_FLOW_TABLE_ENTRY(0x936) op_mod(0x0) failed,
         status bad parameter(0x3), syndrome (0x6ae84c), err(-22)
    
    Fixes: 504e536d9010 ("net/mlx5: HWS, added actions handling")
    Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
    Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
    Reviewed-by: Mark Bloch <mbloch@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Link: https://patch.msgid.link/1758525094-816583-3-git-send-email-tariqt@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net/mlx5: HWS, remove unused create_dest_array parameter [+ + +]
Author: Vlad Dogaru <vdogaru@nvidia.com>
Date:   Thu Jul 3 21:54:22 2025 +0300

    net/mlx5: HWS, remove unused create_dest_array parameter
    
    [ Upstream commit 60afb51c89414b3d0061226415651f29a7eaf932 ]
    
    `flow_source` is not used anywhere in mlx5hws_action_create_dest_array.
    
    Signed-off-by: Vlad Dogaru <vdogaru@nvidia.com>
    Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: Mark Bloch <mbloch@nvidia.com>
    Link: https://patch.msgid.link/20250703185431.445571-2-mbloch@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Stable-dep-of: efb877cf27e3 ("net/mlx5: HWS, ignore flow level for multi-dest table")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
net/mlx5e: Fix missing FEC RS stats for RS_544_514_INTERLEAVED_QUAD [+ + +]
Author: Carolina Jubran <cjubran@nvidia.com>
Date:   Mon Sep 22 10:11:34 2025 +0300

    net/mlx5e: Fix missing FEC RS stats for RS_544_514_INTERLEAVED_QUAD
    
    [ Upstream commit 6d0477d0d067a53c1d48d0aff1fd52e151721871 ]
    
    Include MLX5E_FEC_RS_544_514_INTERLEAVED_QUAD in the FEC RS stats
    handling. This addresses a gap introduced when adding support for
    200G/lane link modes.
    
    Fixes: 4e343c11efbb ("net/mlx5e: Support FEC settings for 200G per lane link modes")
    Signed-off-by: Carolina Jubran <cjubran@nvidia.com>
    Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
    Reviewed-by: Yael Chemla <ychemla@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Link: https://patch.msgid.link/1758525094-816583-4-git-send-email-tariqt@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
net/smc: fix warning in smc_rx_splice() when calling get_page() [+ + +]
Author: Sidraya Jayagond <sidraya@linux.ibm.com>
Date:   Wed Sep 17 20:42:20 2025 +0200

    net/smc: fix warning in smc_rx_splice() when calling get_page()
    
    [ Upstream commit a35c04de2565db191726b5741e6b66a35002c652 ]
    
    smc_lo_register_dmb() allocates DMB buffers with kzalloc(), which are
    later passed to get_page() in smc_rx_splice(). Since kmalloc memory is
    not page-backed, this triggers WARN_ON_ONCE() in get_page() and prevents
    holding a refcount on the buffer. This can lead to use-after-free if
    the memory is released before splice_to_pipe() completes.
    
    Use folio_alloc() instead, ensuring DMBs are page-backed and safe for
    get_page().
    
    WARNING: CPU: 18 PID: 12152 at ./include/linux/mm.h:1330 smc_rx_splice+0xaf8/0xe20 [smc]
    CPU: 18 UID: 0 PID: 12152 Comm: smcapp Kdump: loaded Not tainted 6.17.0-rc3-11705-g9cf4672ecfee #10 NONE
    Hardware name: IBM 3931 A01 704 (z/VM 7.4.0)
    Krnl PSW : 0704e00180000000 000793161032696c (smc_rx_splice+0xafc/0xe20 [smc])
               R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 RI:0 EA:3
    Krnl GPRS: 0000000000000000 001cee80007d3001 00077400000000f8 0000000000000005
               0000000000000001 001cee80007d3006 0007740000001000 001c000000000000
               000000009b0c99e0 0000000000001000 001c0000000000f8 001c000000000000
               000003ffcc6f7c88 0007740003e98000 0007931600000005 000792969b2ff7b8
    Krnl Code: 0007931610326960: af000000           mc      0,0
               0007931610326964: a7f4ff43           brc     15,00079316103267ea
              #0007931610326968: af000000           mc      0,0
              >000793161032696c: a7f4ff3f           brc     15,00079316103267ea
               0007931610326970: e320f1000004       lg      %r2,256(%r15)
               0007931610326976: c0e53fd1b5f5       brasl   %r14,000793168fd5d560
               000793161032697c: a7f4fbb5           brc     15,00079316103260e6
               0007931610326980: b904002b           lgr     %r2,%r11
    Call Trace:
     smc_rx_splice+0xafc/0xe20 [smc]
     smc_rx_splice+0x756/0xe20 [smc])
     smc_rx_recvmsg+0xa74/0xe00 [smc]
     smc_splice_read+0x1ce/0x3b0 [smc]
     sock_splice_read+0xa2/0xf0
     do_splice_read+0x198/0x240
     splice_file_to_pipe+0x7e/0x110
     do_splice+0x59e/0xde0
     __do_splice+0x11a/0x2d0
     __s390x_sys_splice+0x140/0x1f0
     __do_syscall+0x122/0x280
     system_call+0x6e/0x90
    Last Breaking-Event-Address:
    smc_rx_splice+0x960/0xe20 [smc]
    ---[ end trace 0000000000000000 ]---
    
    Fixes: f7a22071dbf3 ("net/smc: implement DMB-related operations of loopback-ism")
    Reviewed-by: Mahanta Jambigi <mjambigi@linux.ibm.com>
    Signed-off-by: Sidraya Jayagond <sidraya@linux.ibm.com>
    Link: https://patch.msgid.link/20250917184220.801066-1-sidraya@linux.ibm.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
net: allow alloc_skb_with_frags() to use MAX_SKB_FRAGS [+ + +]
Author: Jason Baron <jbaron@akamai.com>
Date:   Mon Sep 22 15:19:57 2025 -0400

    net: allow alloc_skb_with_frags() to use MAX_SKB_FRAGS
    
    [ Upstream commit ca9f9cdc4de97d0221100b11224738416696163c ]
    
    Currently, alloc_skb_with_frags() will only fill (MAX_SKB_FRAGS - 1)
    slots. I think it should use all MAX_SKB_FRAGS slots, as callers of
    alloc_skb_with_frags() will size their allocation of frags based
    on MAX_SKB_FRAGS.
    
    This issue was discovered via a test patch that sets 'order' to 0
    in alloc_skb_with_frags(), which effectively tests/simulates high
    fragmentation. In this case sendmsg() on unix sockets will fail every
    time for large allocations. If the PAGE_SIZE is 4K, then data_len will
    request 68K or 17 pages, but alloc_skb_with_frags() can only allocate
    64K in this case or 16 pages.
    
    Fixes: 09c2c90705bb ("net: allow alloc_skb_with_frags() to allocate bigger packets")
    Signed-off-by: Jason Baron <jbaron@akamai.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://patch.msgid.link/20250922191957.2855612-1-jbaron@akamai.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: dsa: lantiq_gswip: move gswip_add_single_port_br() call to port_setup() [+ + +]
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Thu Sep 18 10:21:41 2025 +0300

    net: dsa: lantiq_gswip: move gswip_add_single_port_br() call to port_setup()
    
    [ Upstream commit c0054b25e2f1045f47b4954cf13a539e5e6047df ]
    
    A port added to a "single port bridge" operates as standalone, and this
    is mutually exclusive to being part of a Linux bridge. In fact,
    gswip_port_bridge_join() calls gswip_add_single_port_br() with
    add=false, i.e. removes the port from the "single port bridge" to enable
    autonomous forwarding.
    
    The blamed commit seems to have incorrectly thought that ds->ops->port_enable()
    is called one time per port, during the setup phase of the switch.
    
    However, it is actually called during the ndo_open() implementation of
    DSA user ports, which is to say that this sequence of events:
    
    1. ip link set swp0 down
    2. ip link add br0 type bridge
    3. ip link set swp0 master br0
    4. ip link set swp0 up
    
    would cause swp0 to join back the "single port bridge" which step 3 had
    just removed it from.
    
    The correct DSA hook for one-time actions per port at switch init time
    is ds->ops->port_setup(). This is what seems to match the coder's
    intention; also see the comment at the beginning of the file:
    
     * At the initialization the driver allocates one bridge table entry for
       ~~~~~~~~~~~~~~~~~~~~~
     * each switch port which is used when the port is used without an
     * explicit bridge.
    
    Fixes: 8206e0ce96b3 ("net: dsa: lantiq: Add VLAN unaware bridge offloading")
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://patch.msgid.link/20250918072142.894692-2-vladimir.oltean@nxp.com
    Tested-by: Daniel Golle <daniel@makrotopia.org>
    Reviewed-by: Daniel Golle <daniel@makrotopia.org>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: dsa: lantiq_gswip: suppress -EINVAL errors for bridge FDB entries added to the CPU port [+ + +]
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Thu Sep 18 10:21:42 2025 +0300

    net: dsa: lantiq_gswip: suppress -EINVAL errors for bridge FDB entries added to the CPU port
    
    [ Upstream commit 987afe147965ef7a8e7d144ffef0d70af14bb1d4 ]
    
    The blamed commit and others in that patch set started the trend
    of reusing existing DSA driver API for a new purpose: calling
    ds->ops->port_fdb_add() on the CPU port.
    
    The lantiq_gswip driver was not prepared to handle that, as can be seen
    from the many errors that Daniel presents in the logs:
    
    [  174.050000] gswip 1e108000.switch: port 2 failed to add fa:aa:72:f4:8b:1e vid 1 to fdb: -22
    [  174.060000] gswip 1e108000.switch lan2: entered promiscuous mode
    [  174.070000] gswip 1e108000.switch: port 2 failed to add 00:01:02:03:04:02 vid 0 to fdb: -22
    [  174.090000] gswip 1e108000.switch: port 2 failed to add 00:01:02:03:04:02 vid 1 to fdb: -22
    [  174.090000] gswip 1e108000.switch: port 2 failed to delete fa:aa:72:f4:8b:1e vid 1 from fdb: -2
    
    The errors are because gswip_port_fdb() wants to get a handle to the
    bridge that originated these FDB events, to associate it with a FID.
    Absolutely honourable purpose, however this only works for user ports.
    
    To get the bridge that generated an FDB entry for the CPU port, one
    would need to look at the db.bridge.dev argument. But this was
    introduced in commit c26933639b54 ("net: dsa: request drivers to perform
    FDB isolation"), first appeared in v5.18, and when the blamed commit was
    introduced in v5.14, no such API existed.
    
    So the core DSA feature was introduced way too soon for lantiq_gswip.
    Not acting on these host FDB entries and suppressing any errors has no
    other negative effect, and practically returns us to not supporting the
    host filtering feature at all - peacefully, this time.
    
    Fixes: 10fae4ac89ce ("net: dsa: include bridge addresses which are local in the host fdb list")
    Reported-by: Daniel Golle <daniel@makrotopia.org>
    Closes: https://lore.kernel.org/netdev/aJfNMLNoi1VOsPrN@pidgin.makrotopia.org/
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://patch.msgid.link/20250918072142.894692-3-vladimir.oltean@nxp.com
    Tested-by: Daniel Golle <daniel@makrotopia.org>
    Reviewed-by: Daniel Golle <daniel@makrotopia.org>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: fec: rename struct fec_devinfo fec_imx6x_info -> fec_imx6sx_info [+ + +]
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Wed Jun 18 14:00:05 2025 +0200

    net: fec: rename struct fec_devinfo fec_imx6x_info -> fec_imx6sx_info
    
    [ Upstream commit 4e8594a88656fa86a9d2b1e72770432470b6dc0c ]
    
    In da722186f654 ("net: fec: set GPR bit on suspend by DT
    configuration.") the platform_device_id fec_devtype::driver_data was
    converted from holding the quirks to a pointing to struct fec_devinfo.
    
    The struct fec_devinfo holding the information for the i.MX6SX was
    named fec_imx6x_info.
    
    Rename fec_imx6x_info to fec_imx6sx_info to align with the SoC's name.
    
    Reviewed-by: Wei Fang <wei.fang@nxp.com>
    Reviewed-by: Frank Li <Frank.Li@nxp.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Link: https://patch.msgid.link/20250618-fec-cleanups-v4-5-c16f9a1af124@pengutronix.de
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: sfp: add quirk for FLYPRO copper SFP+ module [+ + +]
Author: Aleksander Jan Bajkowski <olek2@wp.pl>
Date:   Sun Aug 31 12:59:07 2025 +0200

    net: sfp: add quirk for FLYPRO copper SFP+ module
    
    [ Upstream commit ddbf0e78a8b20ec18d314d31336a0230fdc9b394 ]
    
    Add quirk for a copper SFP that identifies itself as "FLYPRO"
    "SFP-10GT-CS-30M". It uses RollBall protocol to talk to the PHY.
    
    Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
    Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Link: https://patch.msgid.link/20250831105910.3174-1-olek2@wp.pl
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: sfp: add quirk for Potron SFP+ XGSPON ONU Stick [+ + +]
Author: Chris Morgan <macromorgan@hotmail.com>
Date:   Tue Jun 17 13:03:24 2025 -0500

    net: sfp: add quirk for Potron SFP+ XGSPON ONU Stick
    
    [ Upstream commit dfec1c14aecee6813f9bafc7b560cc3a31d24079 ]
    
    Add quirk for Potron SFP+ XGSPON ONU Stick (YV SFP+ONT-XGSPON).
    
    This device uses pins 2 and 7 for UART communication, so disable
    TX_FAULT and LOS. Additionally as it is an embedded system in an
    SFP+ form factor provide it enough time to fully boot before we
    attempt to use it.
    
    https://www.potrontec.com/index/index/list/cat_id/2.html#11-83
    https://pon.wiki/xgs-pon/ont/potron-technology/x-onu-sfpp/
    
    Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
    Link: https://patch.msgid.link/20250617180324.229487-1-macroalpha82@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: tun: Update napi->skb after XDP process [+ + +]
Author: Wang Liang <wangliang74@huawei.com>
Date:   Wed Sep 17 19:39:19 2025 +0800

    net: tun: Update napi->skb after XDP process
    
    [ Upstream commit 1091860a16a86ccdd77c09f2b21a5f634f5ab9ec ]
    
    The syzbot report a UAF issue:
    
      BUG: KASAN: slab-use-after-free in skb_reset_mac_header include/linux/skbuff.h:3150 [inline]
      BUG: KASAN: slab-use-after-free in napi_frags_skb net/core/gro.c:723 [inline]
      BUG: KASAN: slab-use-after-free in napi_gro_frags+0x6e/0x1030 net/core/gro.c:758
      Read of size 8 at addr ffff88802ef22c18 by task syz.0.17/6079
      CPU: 0 UID: 0 PID: 6079 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full)
      Call Trace:
       <TASK>
       dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
       print_address_description mm/kasan/report.c:378 [inline]
       print_report+0xca/0x240 mm/kasan/report.c:482
       kasan_report+0x118/0x150 mm/kasan/report.c:595
       skb_reset_mac_header include/linux/skbuff.h:3150 [inline]
       napi_frags_skb net/core/gro.c:723 [inline]
       napi_gro_frags+0x6e/0x1030 net/core/gro.c:758
       tun_get_user+0x28cb/0x3e20 drivers/net/tun.c:1920
       tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1996
       new_sync_write fs/read_write.c:593 [inline]
       vfs_write+0x5c9/0xb30 fs/read_write.c:686
       ksys_write+0x145/0x250 fs/read_write.c:738
       do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
       do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
       </TASK>
    
      Allocated by task 6079:
       kasan_save_stack mm/kasan/common.c:47 [inline]
       kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
       unpoison_slab_object mm/kasan/common.c:330 [inline]
       __kasan_mempool_unpoison_object+0xa0/0x170 mm/kasan/common.c:558
       kasan_mempool_unpoison_object include/linux/kasan.h:388 [inline]
       napi_skb_cache_get+0x37b/0x6d0 net/core/skbuff.c:295
       __alloc_skb+0x11e/0x2d0 net/core/skbuff.c:657
       napi_alloc_skb+0x84/0x7d0 net/core/skbuff.c:811
       napi_get_frags+0x69/0x140 net/core/gro.c:673
       tun_napi_alloc_frags drivers/net/tun.c:1404 [inline]
       tun_get_user+0x77c/0x3e20 drivers/net/tun.c:1784
       tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1996
       new_sync_write fs/read_write.c:593 [inline]
       vfs_write+0x5c9/0xb30 fs/read_write.c:686
       ksys_write+0x145/0x250 fs/read_write.c:738
       do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
       do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
      Freed by task 6079:
       kasan_save_stack mm/kasan/common.c:47 [inline]
       kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
       kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:576
       poison_slab_object mm/kasan/common.c:243 [inline]
       __kasan_slab_free+0x5b/0x80 mm/kasan/common.c:275
       kasan_slab_free include/linux/kasan.h:233 [inline]
       slab_free_hook mm/slub.c:2422 [inline]
       slab_free mm/slub.c:4695 [inline]
       kmem_cache_free+0x18f/0x400 mm/slub.c:4797
       skb_pp_cow_data+0xdd8/0x13e0 net/core/skbuff.c:969
       netif_skb_check_for_xdp net/core/dev.c:5390 [inline]
       netif_receive_generic_xdp net/core/dev.c:5431 [inline]
       do_xdp_generic+0x699/0x11a0 net/core/dev.c:5499
       tun_get_user+0x2523/0x3e20 drivers/net/tun.c:1872
       tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1996
       new_sync_write fs/read_write.c:593 [inline]
       vfs_write+0x5c9/0xb30 fs/read_write.c:686
       ksys_write+0x145/0x250 fs/read_write.c:738
       do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
       do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    After commit e6d5dbdd20aa ("xdp: add multi-buff support for xdp running in
    generic mode"), the original skb may be freed in skb_pp_cow_data() when
    XDP program was attached, which was allocated in tun_napi_alloc_frags().
    However, the napi->skb still point to the original skb, update it after
    XDP process.
    
    Reported-by: syzbot+64e24275ad95a915a313@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=64e24275ad95a915a313
    Fixes: e6d5dbdd20aa ("xdp: add multi-buff support for xdp running in generic mode")
    Signed-off-by: Wang Liang <wangliang74@huawei.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Link: https://patch.msgid.link/20250917113919.3991267-1-wangliang74@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
netfs: fix reference leak [+ + +]
Author: Max Kellermann <max.kellermann@ionos.com>
Date:   Thu Sep 25 14:08:20 2025 +0100

    netfs: fix reference leak
    
    commit 4d428dca252c858bfac691c31fa95d26cd008706 upstream.
    
    Commit 20d72b00ca81 ("netfs: Fix the request's work item to not
    require a ref") modified netfs_alloc_request() to initialize the
    reference counter to 2 instead of 1.  The rationale was that the
    requet's "work" would release the second reference after completion
    (via netfs_{read,write}_collection_worker()).  That works most of the
    time if all goes well.
    
    However, it leaks this additional reference if the request is released
    before the I/O operation has been submitted: the error code path only
    decrements the reference counter once and the work item will never be
    queued because there will never be a completion.
    
    This has caused outages of our whole server cluster today because
    tasks were blocked in netfs_wait_for_outstanding_io(), leading to
    deadlocks in Ceph (another bug that I will address soon in another
    patch).  This was caused by a netfs_pgpriv2_begin_copy_to_cache() call
    which failed in fscache_begin_write_operation().  The leaked
    netfs_io_request was never completed, leaving `netfs_inode.io_count`
    with a positive value forever.
    
    All of this is super-fragile code.  Finding out which code paths will
    lead to an eventual completion and which do not is hard to see:
    
    - Some functions like netfs_create_write_req() allocate a request, but
      will never submit any I/O.
    
    - netfs_unbuffered_read_iter_locked() calls netfs_unbuffered_read()
      and then netfs_put_request(); however, netfs_unbuffered_read() can
      also fail early before submitting the I/O request, therefore another
      netfs_put_request() call must be added there.
    
    A rule of thumb is that functions that return a `netfs_io_request` do
    not submit I/O, and all of their callers must be checked.
    
    For my taste, the whole netfs code needs an overhaul to make reference
    counting easier to understand and less fragile & obscure.  But to fix
    this bug here and now and produce a patch that is adequate for a
    stable backport, I tried a minimal approach that quickly frees the
    request object upon early failure.
    
    I decided against adding a second netfs_put_request() each time
    because that would cause code duplication which obscures the code
    further.  Instead, I added the function netfs_put_failed_request()
    which frees such a failed request synchronously under the assumption
    that the reference count is exactly 2 (as initially set by
    netfs_alloc_request() and never touched), verified by a
    WARN_ON_ONCE().  It then deinitializes the request object (without
    going through the "cleanup_work" indirection) and frees the allocation
    (with RCU protection to protect against concurrent access by
    netfs_requests_seq_start()).
    
    All code paths that fail early have been changed to call
    netfs_put_failed_request() instead of netfs_put_request().
    Additionally, I have added a netfs_put_request() call to
    netfs_unbuffered_read() as explained above because the
    netfs_put_failed_request() approach does not work there.
    
    Fixes: 20d72b00ca81 ("netfs: Fix the request's work item to not require a ref")
    Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Paulo Alcantara <pc@manguebit.org>
    cc: netfs@lists.linux.dev
    cc: linux-fsdevel@vger.kernel.org
    cc: stable@vger.kernel.org
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
nexthop: Forbid FDB status change while nexthop is in a group [+ + +]
Author: Ido Schimmel <idosch@nvidia.com>
Date:   Sun Sep 21 18:08:22 2025 +0300

    nexthop: Forbid FDB status change while nexthop is in a group
    
    [ Upstream commit 390b3a300d7872cef9588f003b204398be69ce08 ]
    
    The kernel forbids the creation of non-FDB nexthop groups with FDB
    nexthops:
    
     # ip nexthop add id 1 via 192.0.2.1 fdb
     # ip nexthop add id 2 group 1
     Error: Non FDB nexthop group cannot have fdb nexthops.
    
    And vice versa:
    
     # ip nexthop add id 3 via 192.0.2.2 dev dummy1
     # ip nexthop add id 4 group 3 fdb
     Error: FDB nexthop group can only have fdb nexthops.
    
    However, as long as no routes are pointing to a non-FDB nexthop group,
    the kernel allows changing the type of a nexthop from FDB to non-FDB and
    vice versa:
    
     # ip nexthop add id 5 via 192.0.2.2 dev dummy1
     # ip nexthop add id 6 group 5
     # ip nexthop replace id 5 via 192.0.2.2 fdb
     # echo $?
     0
    
    This configuration is invalid and can result in a NPD [1] since FDB
    nexthops are not associated with a nexthop device:
    
     # ip route add 198.51.100.1/32 nhid 6
     # ping 198.51.100.1
    
    Fix by preventing nexthop FDB status change while the nexthop is in a
    group:
    
     # ip nexthop add id 7 via 192.0.2.2 dev dummy1
     # ip nexthop add id 8 group 7
     # ip nexthop replace id 7 via 192.0.2.2 fdb
     Error: Cannot change nexthop FDB status while in a group.
    
    [1]
    BUG: kernel NULL pointer dereference, address: 00000000000003c0
    [...]
    Oops: Oops: 0000 [#1] SMP
    CPU: 6 UID: 0 PID: 367 Comm: ping Not tainted 6.17.0-rc6-virtme-gb65678cacc03 #1 PREEMPT(voluntary)
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-4.fc41 04/01/2014
    RIP: 0010:fib_lookup_good_nhc+0x1e/0x80
    [...]
    Call Trace:
     <TASK>
     fib_table_lookup+0x541/0x650
     ip_route_output_key_hash_rcu+0x2ea/0x970
     ip_route_output_key_hash+0x55/0x80
     __ip4_datagram_connect+0x250/0x330
     udp_connect+0x2b/0x60
     __sys_connect+0x9c/0xd0
     __x64_sys_connect+0x18/0x20
     do_syscall_64+0xa4/0x2a0
     entry_SYSCALL_64_after_hwframe+0x4b/0x53
    
    Fixes: 38428d68719c ("nexthop: support for fdb ecmp nexthops")
    Reported-by: syzbot+6596516dd2b635ba2350@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/netdev/68c9a4d2.050a0220.3c6139.0e63.GAE@google.com/
    Tested-by: syzbot+6596516dd2b635ba2350@syzkaller.appspotmail.com
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://patch.msgid.link/20250921150824.149157-2-idosch@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
NFS: Protect against 'eof page pollution' [+ + +]
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Thu Sep 4 18:46:16 2025 -0400

    NFS: Protect against 'eof page pollution'
    
    [ Upstream commit b1817b18ff20e69f5accdccefaf78bf5454bede2 ]
    
    This commit fixes the failing xfstest 'generic/363'.
    
    When the user mmaps() an area that extends beyond the end of file, and
    proceeds to write data into the folio that straddles that eof, we're
    required to discard that folio data if the user calls some function that
    extends the file length.
    
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
NFSv4.2: Protect copy offload and clone against 'eof page pollution' [+ + +]
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Sat Sep 6 10:25:35 2025 -0400

    NFSv4.2: Protect copy offload and clone against 'eof page pollution'
    
    [ Upstream commit b2036bb65114c01caf4a1afe553026e081703c8c ]
    
    The NFSv4.2 copy offload and clone functions can also end up extending
    the size of the destination file, so they too need to call
    nfs_truncate_last_folio().
    
    Reported-by: Olga Kornievskaia <okorniev@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
octeontx2-pf: Fix potential use after free in otx2_tc_add_flow() [+ + +]
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Tue Sep 23 14:19:11 2025 +0300

    octeontx2-pf: Fix potential use after free in otx2_tc_add_flow()
    
    [ Upstream commit d9c70e93ec5988ab07ad2a92d9f9d12867f02c56 ]
    
    This code calls kfree_rcu(new_node, rcu) and then dereferences "new_node"
    and then dereferences it on the next line.  Two lines later, we take
    a mutex so I don't think this is an RCU safe region.  Re-order it to do
    the dereferences before queuing up the free.
    
    Fixes: 68fbff68dbea ("octeontx2-pf: Add police action for TC flower")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
    Link: https://patch.msgid.link/aNKCL1jKwK8GRJHh@stanley.mountain
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
pinctrl: airoha: fix wrong MDIO function bitmaks [+ + +]
Author: Christian Marangi <ansuelsmth@gmail.com>
Date:   Mon Sep 8 13:37:19 2025 +0200

    pinctrl: airoha: fix wrong MDIO function bitmaks
    
    commit a061e739d36220c002da8b2429d5f16f637eb59a upstream.
    
    With further testing with an attached Aeonsemi it was discovered that
    the pinctrl MDIO function applied the wrong bitmask. The error was
    probably caused by the confusing documentation related to these bits.
    
    Inspecting what the bootloader actually configure, the SGMII_MDIO_MODE
    is never actually set but instead it's set force enable to the 2 GPIO
    (gpio 1-2) for MDC and MDIO pin.
    
    The usage of GPIO might be confusing but this is just to instruct the
    SoC to not mess with those 2 PIN and as Benjamin reported it's also an
    Errata of 7581. The FORCE_GPIO_EN doesn't set them as GPIO function
    (that is configured by a different register) but it's really to actually
    ""enable"" those lines.
    
    Normally the SoC should autodetect this by HW but it seems AN7581 have
    problem with this and require this workaround to force enable the 2 pin.
    
    Applying this configuration permits correct functionality of any
    externally attached PHY.
    
    Cc: stable@vger.kernel.org
    Fixes: 1c8ace2d0725 ("pinctrl: airoha: Add support for EN7581 SoC")
    Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
    Acked-by: Benjamin Larsson <benjamin.larsson@genexis.eu>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

pinctrl: airoha: fix wrong PHY LED mux value for LED1 GPIO46 [+ + +]
Author: Christian Marangi <ansuelsmth@gmail.com>
Date:   Mon Sep 8 13:34:24 2025 +0200

    pinctrl: airoha: fix wrong PHY LED mux value for LED1 GPIO46
    
    commit 6f9674aa69ad0178ca8fc6995942ba9848c324f4 upstream.
    
    In all the MUX value for LED1 GPIO46 there is a Copy-Paste error where
    the MUX value is set to LED0_MODE_MASK instead of LED1_MODE_MASK.
    
    This wasn't notice as there were no board that made use of the
    secondary PHY LED but looking at the internal Documentation the actual
    value should be LED1_MODE_MASK similar to the other GPIO entry.
    
    Fix the wrong value to apply the correct MUX configuration.
    
    Cc: stable@vger.kernel.org
    Fixes: 1c8ace2d0725 ("pinctrl: airoha: Add support for EN7581 SoC")
    Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
    Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
platform/x86: lg-laptop: Fix WMAB call in fan_mode_store() [+ + +]
Author: Daniel Lee <dany97@live.ca>
Date:   Wed Sep 24 14:17:17 2025 -0400

    platform/x86: lg-laptop: Fix WMAB call in fan_mode_store()
    
    [ Upstream commit 3ed17349f18774c24505b0c21dfbd3cc4f126518 ]
    
    When WMAB is called to set the fan mode, the new mode is read from either
    bits 0-1 or bits 4-5 (depending on the value of some other EC register).
    Thus when WMAB is called with bits 4-5 zeroed and called again with
    bits 0-1 zeroed, the second call undoes the effect of the first call.
    This causes writes to /sys/devices/platform/lg-laptop/fan_mode to have
    no effect (and causes reads to always report a status of zero).
    
    Fix this by calling WMAB once, with the mode set in bits 0,1 and 4,5.
    When the fan mode is returned from WMAB it always has this form, so
    there is no need to preserve the other bits.  As a bonus, the driver
    now supports the "Performance" fan mode seen in the LG-provided Windows
    control app, which provides less aggressive CPU throttling but louder
    fan noise and shorter battery life.
    
    Also, correct the documentation to reflect that 0 corresponds to the
    default mode (what the Windows app calls "Optimal") and 1 corresponds
    to the silent mode.
    
    Fixes: dbf0c5a6b1f8 ("platform/x86: Add LG Gram laptop special features driver")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=204913#c4
    Signed-off-by: Daniel Lee <dany97@live.ca>
    Link: https://patch.msgid.link/MN2PR06MB55989CB10E91C8DA00EE868DDC1CA@MN2PR06MB5598.namprd06.prod.outlook.com
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

platform/x86: oxpec: Add support for OneXPlayer X1 Mini Pro (Strix Point) [+ + +]
Author: Antheas Kapenekakis <lkml@antheas.dev>
Date:   Fri Jul 18 18:33:05 2025 +0200

    platform/x86: oxpec: Add support for OneXPlayer X1 Mini Pro (Strix Point)
    
    [ Upstream commit 1798561befd8be1e52feb54f850efcab5a595f43 ]
    
    The OneXPlayer X1 Mini Pro (which is the Strix Point variant of the Mini)
    uses the same registers as the X1 Mini, so re-use the quirk.
    
    Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
    Link: https://lore.kernel.org/r/20250718163305.159232-2-lkml@antheas.dev
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
Revert "drm/xe/guc: Enable extended CAT error reporting" [+ + +]
Author: Sasha Levin <sashal@kernel.org>
Date:   Sun Sep 28 11:43:00 2025 -0400

    Revert "drm/xe/guc: Enable extended CAT error reporting"
    
    This reverts commit a7ffcea8631af91479cab10aa7fbfd0722f01d9a.
    
    Reported-by: Iyán Méndez Veiga <me@iyanmv.com>
    Link: https://lore.kernel.org/stable/aNlW7ekiC0dNPxU3@laps/T/#t
    Signed-off-by: Sasha Levin <sashal@kernel.org>

Revert "drm/xe/guc: Set RCS/CCS yield policy" [+ + +]
Author: Sasha Levin <sashal@kernel.org>
Date:   Sun Sep 28 11:41:33 2025 -0400

    Revert "drm/xe/guc: Set RCS/CCS yield policy"
    
    This reverts commit dd1a415dcfd5984bf83abd804c3cd9e0ff9dde30.
    
    Reported-by: Iyán Méndez Veiga <me@iyanmv.com>
    Link: https://lore.kernel.org/stable/aNlW7ekiC0dNPxU3@laps/T/#t
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
Revert "vhost/net: Defer TX queue re-enable until after sendmsg" [+ + +]
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Wed Sep 17 14:30:44 2025 +0800

    Revert "vhost/net: Defer TX queue re-enable until after sendmsg"
    
    commit 4174152771bf0d014d58f7d7e148bb0c8830fe53 upstream.
    
    This reverts commit 8c2e6b26ffe243be1e78f5a4bfb1a857d6e6f6d6. It tries
    to defer the notification enabling by moving the logic out of the loop
    after the vhost_tx_batch() when nothing new is spotted. This will
    bring side effects as the new logic would be reused for several other
    error conditions.
    
    One example is the IOTLB: when there's an IOTLB miss, get_tx_bufs()
    might return -EAGAIN and exit the loop and see there's still available
    buffers, so it will queue the tx work again until userspace feed the
    IOTLB entry correctly. This will slowdown the tx processing and
    trigger the TX watchdog in the guest as reported in
    https://lkml.org/lkml/2025/9/10/1596.
    
    To fix, revert the change. A follow up patch will bring the performance
    back in a safe way.
    
    Reported-by: Jon Kohler <jon@nutanix.com>
    Cc: stable@vger.kernel.org
    Fixes: 8c2e6b26ffe2 ("vhost/net: Defer TX queue re-enable until after sendmsg")
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Message-Id: <20250917063045.2042-2-jasowang@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
riscv: Use an atomic xchg in pudp_huge_get_and_clear() [+ + +]
Author: Alexandre Ghiti <alexghiti@rivosinc.com>
Date:   Tue Sep 23 18:25:52 2025 -0600

    riscv: Use an atomic xchg in pudp_huge_get_and_clear()
    
    commit 546e42c8c6d9498d5eac14bf2aca0383a11b145a upstream.
    
    Make sure we return the right pud value and not a value that could
    have been overwritten in between by a different core.
    
    Fixes: c3cc2a4a3a23 ("riscv: Add support for PUD THP")
    Cc: stable@vger.kernel.org
    Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
    Link: https://lore.kernel.org/r/20250814-dev-alex-thp_pud_xchg-v1-1-b4704dfae206@rivosinc.com
    [pjw@kernel.org: use xchg rather than atomic_long_xchg; avoid atomic op for !CONFIG_SMP like x86]
    Signed-off-by: Paul Walmsley <pjw@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
sched_ext: idle: Handle migration-disabled tasks in BPF code [+ + +]
Author: Andrea Righi <arighi@nvidia.com>
Date:   Sat Sep 20 15:26:21 2025 +0200

    sched_ext: idle: Handle migration-disabled tasks in BPF code
    
    commit 55ed11b181c43d81ce03b50209e4e7c4a14ba099 upstream.
    
    When scx_bpf_select_cpu_dfl()/and() kfuncs are invoked outside of
    ops.select_cpu() we can't rely on @p->migration_disabled to determine if
    migration is disabled for the task @p.
    
    In fact, migration is always disabled for the current task while running
    BPF code: __bpf_prog_enter() disables migration and __bpf_prog_exit()
    re-enables it.
    
    To handle this, when @p->migration_disabled == 1, check whether @p is
    the current task. If so, migration was not disabled before entering the
    callback, otherwise migration was disabled.
    
    This ensures correct idle CPU selection in all cases. The behavior of
    ops.select_cpu() remains unchanged, because this callback is never
    invoked for the current task and migration-disabled tasks are always
    excluded.
    
    Example: without this change scx_bpf_select_cpu_and() called from
    ops.enqueue() always returns -EBUSY; with this change applied, it
    correctly returns idle CPUs.
    
    Fixes: 06efc9fe0b8de ("sched_ext: idle: Handle migration-disabled tasks in idle selection")
    Cc: stable@vger.kernel.org # v6.16+
    Signed-off-by: Andrea Righi <arighi@nvidia.com>
    Acked-by: Changwoo Min <changwoo@igalia.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

sched_ext: idle: Make local functions static in ext_idle.c [+ + +]
Author: Andrea Righi <arighi@nvidia.com>
Date:   Wed Jun 4 16:33:12 2025 +0200

    sched_ext: idle: Make local functions static in ext_idle.c
    
    commit 353656eb84fef8ffece3b1be4345cbacbbb5267f upstream.
    
    Functions that are only used within ext_idle.c can be marked as static
    to limit their scope.
    
    No functional changes.
    
    Signed-off-by: Andrea Righi <arighi@nvidia.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
scsi: ufs: mcq: Fix memory allocation checks for SQE and CQE [+ + +]
Author: Alok Tiwari <alok.a.tiwari@oracle.com>
Date:   Sun Sep 7 12:40:16 2025 -0700

    scsi: ufs: mcq: Fix memory allocation checks for SQE and CQE
    
    [ Upstream commit 5cb782ff3c62c837e4984b6ae9f5d9a423cd5088 ]
    
    Previous checks incorrectly tested the DMA addresses (dma_handle) for
    NULL. Since dma_alloc_coherent() returns the CPU (virtual) address, the
    NULL check should be performed on the *_base_addr pointer to correctly
    detect allocation failures.
    
    Update the checks to validate sqe_base_addr and cqe_base_addr instead of
    sqe_dma_addr and cqe_dma_addr.
    
    Fixes: 4682abfae2eb ("scsi: ufs: core: mcq: Allocate memory for MCQ mode")
    Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
    Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
    Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
 
selftests/bpf: Skip timer cases when bpf_timer is not supported [+ + +]
Author: Leon Hwang <leon.hwang@linux.dev>
Date:   Wed Sep 10 20:57:40 2025 +0800

    selftests/bpf: Skip timer cases when bpf_timer is not supported
    
    [ Upstream commit fbdd61c94bcb09b0c0eb0655917bf4193d07aac1 ]
    
    When enable CONFIG_PREEMPT_RT, verifier will reject bpf_timer with
    returning -EOPNOTSUPP.
    
    Therefore, skip test cases when errno is EOPNOTSUPP.
    
    cd tools/testing/selftests/bpf
    ./test_progs -t timer
    125     free_timer:SKIP
    456     timer:SKIP
    457/1   timer_crash/array:SKIP
    457/2   timer_crash/hash:SKIP
    457     timer_crash:SKIP
    458     timer_lockup:SKIP
    459     timer_mim:SKIP
    Summary: 5/0 PASSED, 6 SKIPPED, 0 FAILED
    
    Signed-off-by: Leon Hwang <leon.hwang@linux.dev>
    Link: https://lore.kernel.org/r/20250910125740.52172-3-leon.hwang@linux.dev
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
selftests/fs/mount-notify: Fix compilation failure. [+ + +]
Author: Xing Guo <higuoxing@gmail.com>
Date:   Wed Aug 13 11:16:47 2025 +0800

    selftests/fs/mount-notify: Fix compilation failure.
    
    [ Upstream commit e51bd0e595476c1527bb0b4def095a6fd16b2563 ]
    
    Commit c6d9775c2066 ("selftests/fs/mount-notify: build with tools include
    dir") introduces the struct __kernel_fsid_t to decouple dependency with
    headers_install.  The commit forgets to define a macro for __kernel_fsid_t
    and it will cause type re-definition issue.
    
    Signed-off-by: Xing Guo <higuoxing@gmail.com>
    Link: https://lore.kernel.org/20250813031647.96411-1-higuoxing@gmail.com
    Acked-by: Amir Goldstein <amir73il@gmail.com>
    Closes: https://lore.kernel.org/oe-lkp/202508110628.65069d92-lkp@intel.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
selftests: fib_nexthops: Fix creation of non-FDB nexthops [+ + +]
Author: Ido Schimmel <idosch@nvidia.com>
Date:   Sun Sep 21 18:08:23 2025 +0300

    selftests: fib_nexthops: Fix creation of non-FDB nexthops
    
    [ Upstream commit c29913109c70383cdf90b6fc792353e1009f24f5 ]
    
    The test creates non-FDB nexthops without a nexthop device which leads
    to the expected failure, but for the wrong reason:
    
     # ./fib_nexthops.sh -t "ipv6_fdb_grp_fcnal ipv4_fdb_grp_fcnal" -v
    
     IPv6 fdb groups functional
     --------------------------
     [...]
     COMMAND: ip -netns me-nRsN3E nexthop add id 63 via 2001:db8:91::4
     Error: Device attribute required for non-blackhole and non-fdb nexthops.
     COMMAND: ip -netns me-nRsN3E nexthop add id 64 via 2001:db8:91::5
     Error: Device attribute required for non-blackhole and non-fdb nexthops.
     COMMAND: ip -netns me-nRsN3E nexthop add id 103 group 63/64 fdb
     Error: Invalid nexthop id.
     TEST: Fdb Nexthop group with non-fdb nexthops                       [ OK ]
     [...]
    
     IPv4 fdb groups functional
     --------------------------
     [...]
     COMMAND: ip -netns me-nRsN3E nexthop add id 14 via 172.16.1.2
     Error: Device attribute required for non-blackhole and non-fdb nexthops.
     COMMAND: ip -netns me-nRsN3E nexthop add id 15 via 172.16.1.3
     Error: Device attribute required for non-blackhole and non-fdb nexthops.
     COMMAND: ip -netns me-nRsN3E nexthop add id 103 group 14/15 fdb
     Error: Invalid nexthop id.
     TEST: Fdb Nexthop group with non-fdb nexthops                       [ OK ]
    
     COMMAND: ip -netns me-nRsN3E nexthop add id 16 via 172.16.1.2 fdb
     COMMAND: ip -netns me-nRsN3E nexthop add id 17 via 172.16.1.3 fdb
     COMMAND: ip -netns me-nRsN3E nexthop add id 104 group 14/15
     Error: Invalid nexthop id.
     TEST: Non-Fdb Nexthop group with fdb nexthops                       [ OK ]
     [...]
     COMMAND: ip -netns me-0dlhyd ro add 172.16.0.0/22 nhid 15
     Error: Nexthop id does not exist.
     TEST: Route add with fdb nexthop                                    [ OK ]
    
    In addition, as can be seen in the above output, a couple of IPv4 test
    cases used the non-FDB nexthops (14 and 15) when they intended to use
    the FDB nexthops (16 and 17). These test cases only passed because
    failure was expected, but they failed for the wrong reason.
    
    Fix the test to create the non-FDB nexthops with a nexthop device and
    adjust the IPv4 test cases to use the FDB nexthops instead of the
    non-FDB nexthops.
    
    Output after the fix:
    
     # ./fib_nexthops.sh -t "ipv6_fdb_grp_fcnal ipv4_fdb_grp_fcnal" -v
    
     IPv6 fdb groups functional
     --------------------------
     [...]
     COMMAND: ip -netns me-lNzfHP nexthop add id 63 via 2001:db8:91::4 dev veth1
     COMMAND: ip -netns me-lNzfHP nexthop add id 64 via 2001:db8:91::5 dev veth1
     COMMAND: ip -netns me-lNzfHP nexthop add id 103 group 63/64 fdb
     Error: FDB nexthop group can only have fdb nexthops.
     TEST: Fdb Nexthop group with non-fdb nexthops                       [ OK ]
     [...]
    
     IPv4 fdb groups functional
     --------------------------
     [...]
     COMMAND: ip -netns me-lNzfHP nexthop add id 14 via 172.16.1.2 dev veth1
     COMMAND: ip -netns me-lNzfHP nexthop add id 15 via 172.16.1.3 dev veth1
     COMMAND: ip -netns me-lNzfHP nexthop add id 103 group 14/15 fdb
     Error: FDB nexthop group can only have fdb nexthops.
     TEST: Fdb Nexthop group with non-fdb nexthops                       [ OK ]
    
     COMMAND: ip -netns me-lNzfHP nexthop add id 16 via 172.16.1.2 fdb
     COMMAND: ip -netns me-lNzfHP nexthop add id 17 via 172.16.1.3 fdb
     COMMAND: ip -netns me-lNzfHP nexthop add id 104 group 16/17
     Error: Non FDB nexthop group cannot have fdb nexthops.
     TEST: Non-Fdb Nexthop group with fdb nexthops                       [ OK ]
     [...]
     COMMAND: ip -netns me-lNzfHP ro add 172.16.0.0/22 nhid 16
     Error: Route cannot point to a fdb nexthop.
     TEST: Route add with fdb nexthop                                    [ OK ]
     [...]
     Tests passed:  30
     Tests failed:   0
     Tests skipped:  0
    
    Fixes: 0534c5489c11 ("selftests: net: add fdb nexthop tests")
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://patch.msgid.link/20250921150824.149157-3-idosch@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
smb: client: fix wrong index reference in smb2_compound_op() [+ + +]
Author: Sang-Heon Jeon <ekffu200098@gmail.com>
Date:   Tue Sep 23 17:16:45 2025 +0900

    smb: client: fix wrong index reference in smb2_compound_op()
    
    [ Upstream commit fbe2dc6a9c7318f7263f5e4d50f6272b931c5756 ]
    
    In smb2_compound_op(), the loop that processes each command's response
    uses wrong indices when accessing response bufferes.
    
    This incorrect indexing leads to improper handling of command results.
    Also, if incorrectly computed index is greather than or equal to
    MAX_COMPOUND, it can cause out-of-bounds accesses.
    
    Fixes: 3681c74d342d ("smb: client: handle lack of EA support in smb2_query_path_info()") # 6.14
    Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
    Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

smb: server: don't use delayed_work for post_recv_credits_work [+ + +]
Author: Stefan Metzmacher <metze@samba.org>
Date:   Fri Aug 8 17:55:17 2025 +0200

    smb: server: don't use delayed_work for post_recv_credits_work
    
    [ Upstream commit 1cde0a74a7a8951b3097417847a458e557be0b5b ]
    
    If we are using a hardcoded delay of 0 there's no point in
    using delayed_work it only adds confusion.
    
    The client also uses a normal work_struct and now
    it is easier to move it to the common smbdirect_socket.
    
    Cc: Namjae Jeon <linkinjeon@kernel.org>
    Cc: Steve French <smfrench@gmail.com>
    Cc: Tom Talpey <tom@talpey.com>
    Cc: linux-cifs@vger.kernel.org
    Cc: samba-technical@lists.samba.org
    Fixes: 0626e6641f6b ("cifsd: add server handler for central processing and tranport layers")
    Signed-off-by: Stefan Metzmacher <metze@samba.org>
    Acked-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

smb: server: use disable_work_sync in transport_rdma.c [+ + +]
Author: Stefan Metzmacher <metze@samba.org>
Date:   Wed Aug 13 08:48:42 2025 +0200

    smb: server: use disable_work_sync in transport_rdma.c
    
    [ Upstream commit f7f89250175e0a82e99ed66da7012e869c36497d ]
    
    This makes it safer during the disconnect and avoids
    requeueing.
    
    It's ok to call disable_work[_sync]() more than once.
    
    Cc: Namjae Jeon <linkinjeon@kernel.org>
    Cc: Steve French <smfrench@gmail.com>
    Cc: Tom Talpey <tom@talpey.com>
    Cc: linux-cifs@vger.kernel.org
    Cc: samba-technical@lists.samba.org
    Fixes: 0626e6641f6b ("cifsd: add server handler for central processing and tranport layers")
    Signed-off-by: Stefan Metzmacher <metze@samba.org>
    Acked-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
spi: cadence-qspi: defer runtime support on socfpga if reset bit is enabled [+ + +]
Author: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
Date:   Mon Sep 29 15:42:55 2025 -0400

    spi: cadence-qspi: defer runtime support on socfpga if reset bit is enabled
    
    [ Upstream commit 30dbc1c8d50f13c1581b49abe46fe89f393eacbf ]
    
    Enabling runtime PM allows the kernel to gate clocks and power to idle
    devices. On SoCFPGA, a warm reset does not fully reinitialize these
    domains.This leaves devices suspended and powered down, preventing U-Boot
    or the kernel from reusing them after a warm reset, which breaks the boot
    process.
    
    Fixes: 4892b374c9b7 ("mtd: spi-nor: cadence-quadspi: Add runtime PM support")
    CC: stable@vger.kernel.org # 6.12+
    Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
    Signed-off-by: Adrian Ng Ho Yin <adrianhoyin.ng@altera.com>
    Reviewed-by: Niravkumar L Rabara <nirav.rabara@altera.com>
    Reviewed-by: Matthew Gerlach <matthew.gerlach@altera.com>
    Link: https://patch.msgid.link/910aad68ba5d948919a7b90fa85a2fadb687229b.1757491372.git.khairul.anuar.romli@altera.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

spi: cadence-quadspi: Implement refcount to handle unbind during busy [+ + +]
Author: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
Date:   Mon Sep 29 15:42:54 2025 -0400

    spi: cadence-quadspi: Implement refcount to handle unbind during busy
    
    [ Upstream commit 7446284023e8ef694fb392348185349c773eefb3 ]
    
    driver support indirect read and indirect write operation with
    assumption no force device removal(unbind) operation. However
    force device removal(removal) is still available to root superuser.
    
    Unbinding driver during operation causes kernel crash. This changes
    ensure driver able to handle such operation for indirect read and
    indirect write by implementing refcount to track attached devices
    to the controller and gracefully wait and until attached devices
    remove operation completed before proceed with removal operation.
    
    Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
    Reviewed-by: Matthew Gerlach <matthew.gerlach@altera.com>
    Reviewed-by: Niravkumar L Rabara <nirav.rabara@altera.com>
    Link: https://patch.msgid.link/8704fd6bd2ff4d37bba4a0eacf5eba3ba001079e.1756168074.git.khairul.anuar.romli@altera.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Stable-dep-of: 30dbc1c8d50f ("spi: cadence-qspi: defer runtime support on socfpga if reset bit is enabled")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
tracing/osnoise: Fix slab-out-of-bounds in _parse_integer_limit() [+ + +]
Author: Wang Liang <wangliang74@huawei.com>
Date:   Tue Sep 16 14:39:48 2025 +0800

    tracing/osnoise: Fix slab-out-of-bounds in _parse_integer_limit()
    
    [ Upstream commit a2501032de0d1bc7971b2e43c03da534ac10ee9b ]
    
    When config osnoise cpus by write() syscall, the following KASAN splat may
    be observed:
    
    BUG: KASAN: slab-out-of-bounds in _parse_integer_limit+0x103/0x130
    Read of size 1 at addr ffff88810121e3a1 by task test/447
    CPU: 1 UID: 0 PID: 447 Comm: test Not tainted 6.17.0-rc6-dirty #288 PREEMPT(voluntary)
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
    Call Trace:
     <TASK>
     dump_stack_lvl+0x55/0x70
     print_report+0xcb/0x610
     kasan_report+0xb8/0xf0
     _parse_integer_limit+0x103/0x130
     bitmap_parselist+0x16d/0x6f0
     osnoise_cpus_write+0x116/0x2d0
     vfs_write+0x21e/0xcc0
     ksys_write+0xee/0x1c0
     do_syscall_64+0xa8/0x2a0
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
     </TASK>
    
    This issue can be reproduced by below code:
    
    const char *cpulist = "1";
    int fd=open("/sys/kernel/debug/tracing/osnoise/cpus", O_WRONLY);
    write(fd, cpulist, strlen(cpulist));
    
    Function bitmap_parselist() was called to parse cpulist, it require that
    the parameter 'buf' must be terminated with a '\0' or '\n'. Fix this issue
    by adding a '\0' to 'buf' in osnoise_cpus_write().
    
    Cc: <mhiramat@kernel.org>
    Cc: <mathieu.desnoyers@efficios.com>
    Cc: <tglozar@redhat.com>
    Link: https://lore.kernel.org/20250916063948.3154627-1-wangliang74@huawei.com
    Fixes: 17f89102fe23 ("tracing/osnoise: Allow arbitrarily long CPU string")
    Signed-off-by: Wang Liang <wangliang74@huawei.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
tracing: dynevent: Add a missing lockdown check on dynevent [+ + +]
Author: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Date:   Fri Sep 19 10:15:56 2025 +0900

    tracing: dynevent: Add a missing lockdown check on dynevent
    
    commit 456c32e3c4316654f95f9d49c12cbecfb77d5660 upstream.
    
    Since dynamic_events interface on tracefs is compatible with
    kprobe_events and uprobe_events, it should also check the lockdown
    status and reject if it is set.
    
    Link: https://lore.kernel.org/all/175824455687.45175.3734166065458520748.stgit@devnote2/
    
    Fixes: 17911ff38aa5 ("tracing: Add locked_down checks to the open calls of files created for tracefs")
    Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: fgraph: Protect return handler from recursion loop [+ + +]
Author: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Date:   Mon Sep 22 15:35:22 2025 +0900

    tracing: fgraph: Protect return handler from recursion loop
    
    commit 0db0934e7f9bb624ed98a665890dbe249f65b8fd upstream.
    
    function_graph_enter_regs() prevents itself from recursion by
    ftrace_test_recursion_trylock(), but __ftrace_return_to_handler(),
    which is called at the exit, does not prevent such recursion.
    Therefore, while it can prevent recursive calls from
    fgraph_ops::entryfunc(), it is not able to prevent recursive calls
    to fgraph from fgraph_ops::retfunc(), resulting in a recursive loop.
    This can lead an unexpected recursion bug reported by Menglong.
    
     is_endbr() is called in __ftrace_return_to_handler -> fprobe_return
      -> kprobe_multi_link_exit_handler -> is_endbr.
    
    To fix this issue, acquire ftrace_test_recursion_trylock() in the
    __ftrace_return_to_handler() after unwind the shadow stack to mark
    this section must prevent recursive call of fgraph inside user-defined
    fgraph_ops::retfunc().
    
    This is essentially a fix to commit 4346ba160409 ("fprobe: Rewrite
    fprobe on function-graph tracer"), because before that fgraph was
    only used from the function graph tracer. Fprobe allowed user to run
    any callbacks from fgraph after that commit.
    
    Reported-by: Menglong Dong <menglong8.dong@gmail.com>
    Closes: https://lore.kernel.org/all/20250918120939.1706585-1-dongml2@chinatelecom.cn/
    Fixes: 4346ba160409 ("fprobe: Rewrite fprobe on function-graph tracer")
    Cc: stable@vger.kernel.org
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/175852292275.307379.9040117316112640553.stgit@devnote2
    Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Menglong Dong <menglong8.dong@gmail.com>
    Acked-by: Menglong Dong <menglong8.dong@gmail.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: fprobe: Fix to remove recorded module addresses from filter [+ + +]
Author: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Date:   Wed Sep 24 09:26:39 2025 +0900

    tracing: fprobe: Fix to remove recorded module addresses from filter
    
    commit c539feff3c8f8c86213eee2b237410714712c326 upstream.
    
    Even if there is a memory allocation failure in fprobe_addr_list_add(),
    there is a partial list of module addresses. So remove the recorded
    addresses from filter if exists.
    This also removes the redundant ret local variable.
    
    Fixes: a3dc2983ca7b ("tracing: fprobe: Cleanup fprobe hash when module unloading")
    Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Cc: stable@vger.kernel.org
    Reviewed-by: Menglong Dong <menglong8.dong@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
usb: core: Add 0x prefix to quirks debug output [+ + +]
Author: Jiayi Li <lijiayi@kylinos.cn>
Date:   Tue Jun 3 15:10:45 2025 +0800

    usb: core: Add 0x prefix to quirks debug output
    
    [ Upstream commit 47c428fce0b41b15ab321d8ede871f780ccd038f ]
    
    Use "0x%x" format for quirks debug print to clarify it's a hexadecimal
    value. Improves readability and consistency with other hex outputs.
    
    Signed-off-by: Jiayi Li <lijiayi@kylinos.cn>
    Link: https://lore.kernel.org/r/20250603071045.3243699-1-lijiayi@kylinos.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
vhost-net: flush batched before enabling notifications [+ + +]
Author: Jason Wang <jasowang@redhat.com>
Date:   Wed Sep 17 14:30:45 2025 +0800

    vhost-net: flush batched before enabling notifications
    
    commit e430451613c7a27beeadd00d707bcf7ceec6328e upstream.
    
    Commit 8c2e6b26ffe2 ("vhost/net: Defer TX queue re-enable until after
    sendmsg") tries to defer the notification enabling by moving the logic
    out of the loop after the vhost_tx_batch() when nothing new is spotted.
    This caused unexpected side effects as the new logic is reused for
    several other error conditions.
    
    A previous patch reverted 8c2e6b26ffe2. Now, bring the performance
    back up by flushing batched buffers before enabling notifications.
    
    Reported-by: Jon Kohler <jon@nutanix.com>
    Cc: stable@vger.kernel.org
    Fixes: 8c2e6b26ffe2 ("vhost/net: Defer TX queue re-enable until after sendmsg")
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Message-Id: <20250917063045.2042-3-jasowang@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
vhost: Take a reference on the task in struct vhost_task. [+ + +]
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Thu Sep 18 20:11:44 2025 +0200

    vhost: Take a reference on the task in struct vhost_task.
    
    [ Upstream commit afe16653e05db07d658b55245c7a2e0603f136c0 ]
    
    vhost_task_create() creates a task and keeps a reference to its
    task_struct. That task may exit early via a signal and its task_struct
    will be released.
    A pending vhost_task_wake() will then attempt to wake the task and
    access a task_struct which is no longer there.
    
    Acquire a reference on the task_struct while creating the thread and
    release the reference while the struct vhost_task itself is removed.
    If the task exits early due to a signal, then the vhost_task_wake() will
    still access a valid task_struct. The wake is safe and will be skipped
    in this case.
    
    Fixes: f9010dbdce911 ("fork, vhost: Use CLONE_THREAD to fix freezer/ps regression")
    Reported-by: Sean Christopherson <seanjc@google.com>
    Closes: https://lore.kernel.org/all/aKkLEtoDXKxAAWju@google.com/
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Message-Id: <20250918181144.Ygo8BZ-R@linutronix.de>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Tested-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
wifi: iwlwifi: fix byte count table for old devices [+ + +]
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Sep 25 10:00:06 2025 +0200

    wifi: iwlwifi: fix byte count table for old devices
    
    commit 586e3cb33ba6890054b95aa0ade0a165890efabd upstream.
    
    For devices handled by iwldvm, bc_table_dword was never set, but I missed
    that during the removal thereof. Change the logic to not treat the byte
    count table as dwords for devices older than 9000 series to fix that.
    
    Fixes: 6570ea227826 ("wifi: iwlwifi: remove bc_table_dword transport config")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://patch.msgid.link/20250828095500.eccd7d3939f1.Ibaffa06d0b3aa5f35a9451d94af34de208b8a2bc@changeid
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

wifi: iwlwifi: pcie: fix byte count table for some devices [+ + +]
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Sep 25 10:00:07 2025 +0200

    wifi: iwlwifi: pcie: fix byte count table for some devices
    
    commit a38108a23ab558b834d71d542d32c05ab0fb64d4 upstream.
    
    In my previous fix for this condition, I erroneously listed 9000
    instead of 7000 family, when 7000/8000 were already using iwlmvm.
    Thus the condition ended up wrong, causing the issue I had fixed
    for older devices to suddenly appear on 7000/8000 family devices.
    Correct the condition accordingly.
    
    Reported-by: David Wang <00107082@163.com>
    Closes: https://lore.kernel.org/r/20250909165811.10729-1-00107082@163.com/
    Fixes: 586e3cb33ba6 ("wifi: iwlwifi: fix byte count table for old devices")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://patch.msgid.link/20250915102743.777aaafbcc6c.I84404edfdfbf400501f6fb06def5b86c501da198@changeid
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

wifi: virt_wifi: Fix page fault on connect [+ + +]
Author: James Guan <guan_yufei@163.com>
Date:   Wed Sep 10 19:19:29 2025 +0800

    wifi: virt_wifi: Fix page fault on connect
    
    [ Upstream commit 9c600589e14f5fc01b8be9a5d0ad1f094b8b304b ]
    
    This patch prevents page fault in __cfg80211_connect_result()[1]
    when connecting a virt_wifi device, while ensuring that virt_wifi
    can connect properly.
    
    [1] https://lore.kernel.org/linux-wireless/20250909063213.1055024-1-guan_yufei@163.com/
    
    Closes: https://lore.kernel.org/linux-wireless/20250909063213.1055024-1-guan_yufei@163.com/
    Signed-off-by: James Guan <guan_yufei@163.com>
    Link: https://patch.msgid.link/20250910111929.137049-1-guan_yufei@163.com
    [remove irrelevant network-manager instructions]
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
x86/Kconfig: Reenable PTDUMP on i386 [+ + +]
Author: Alexander Popov <alex.popov@linux.com>
Date:   Sun Sep 21 23:58:15 2025 +0300

    x86/Kconfig: Reenable PTDUMP on i386
    
    commit 4f115596133fa168bac06bb34c6efd8f4d84c22e upstream.
    
    The commit
    
      f9aad622006bd64c ("mm: rename GENERIC_PTDUMP and PTDUMP_CORE")
    
    has broken PTDUMP and the Kconfig options that use it on ARCH=i386, including
    CONFIG_DEBUG_WX.
    
    CONFIG_GENERIC_PTDUMP was renamed into CONFIG_ARCH_HAS_PTDUMP, but it was
    mistakenly moved from "config X86" to "config X86_64". That made PTDUMP
    unavailable for i386.
    
    Move CONFIG_ARCH_HAS_PTDUMP back to "config X86" to fix it.
    
      [ bp: Massage commit message. ]
    
    Fixes: f9aad622006bd64c ("mm: rename GENERIC_PTDUMP and PTDUMP_CORE")
    Signed-off-by: Alexander Popov <alex.popov@linux.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
x86/topology: Implement topology_is_core_online() to address SMT regression [+ + +]
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Sun Sep 21 10:56:40 2025 +0200

    x86/topology: Implement topology_is_core_online() to address SMT regression
    
    commit 2066f00e5b2dc061fb6d8c88fadaebc97f11feaa upstream.
    
    Christian reported that commit a430c11f4015 ("intel_idle: Rescan "dead" SMT
    siblings during initialization") broke the use case in which both 'nosmt'
    and 'maxcpus' are on the kernel command line because it onlines primary
    threads, which were offline due to the maxcpus limit.
    
    The initially proposed fix to skip primary threads in the loop is
    inconsistent. While it prevents the primary thread to be onlined, it then
    onlines the corresponding hyperthread(s), which does not really make sense.
    
    The CPU iterator in cpuhp_smt_enable() contains a check which excludes all
    threads of a core, when the primary thread is offline. The default
    implementation is a NOOP and therefore not effective on x86.
    
    Implement topology_is_core_online() on x86 to address this issue. This
    makes the behaviour consistent between x86 and PowerPC.
    
    Fixes: a430c11f4015 ("intel_idle: Rescan "dead" SMT siblings during initialization")
    Fixes: f694481b1d31 ("ACPI: processor: Rescan "dead" SMT siblings during initialization")
    Closes: https://lore.kernel.org/linux-pm/724616a2-6374-4ba3-8ce3-ea9c45e2ae3b@arm.com/
    Reported-by: Christian Loehle <christian.loehle@arm.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Reviewed-by: Rafael J. Wysocki (Intel) <rafael@kernel.org>
    Tested-by: Christian Loehle <christian.loehle@arm.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/12740505.O9o76ZdvQC@rafael.j.wysocki
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
xfrm: fix offloading of cross-family tunnels [+ + +]
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Wed Sep 10 17:22:13 2025 +0200

    xfrm: fix offloading of cross-family tunnels
    
    [ Upstream commit 91d8a53db2199eefc73ecf3682e0665ea6895696 ]
    
    Xiumei reported a regression in IPsec offload tests over xfrmi, where
    the traffic for IPv6 over IPv4 tunnels is processed in SW instead of
    going through crypto offload, after commit
    cc18f482e8b6 ("xfrm: provide common xdo_dev_offload_ok callback
    implementation").
    
    Commit cc18f482e8b6 added a generic version of existing checks
    attempting to prevent packets with IPv4 options or IPv6 extension
    headers from being sent to HW that doesn't support offloading such
    packets. The check mistakenly uses x->props.family (the outer family)
    to determine the inner packet's family and verify if
    options/extensions are present.
    
    In the case of IPv6 over IPv4, the check compares some of the traffic
    class bits to the expected no-options ihl value (5). The original
    check was introduced in commit 2ac9cfe78223 ("net/mlx5e: IPSec, Add
    Innova IPSec offload TX data path"), and then duplicated in the other
    drivers. Before commit cc18f482e8b6, the loose check (ihl > 5) passed
    because those traffic class bits were not set to a value that
    triggered the no-offload codepath. Packets with options/extension
    headers that should have been handled in SW went through the offload
    path, and were likely dropped by the NIC or incorrectly
    processed. Since commit cc18f482e8b6, the check is now strict (ihl !=
    5), and in a basic setup (no traffic class configured), all packets go
    through the no-offload codepath.
    
    The commits that introduced the incorrect family checks in each driver
    are:
    2ac9cfe78223 ("net/mlx5e: IPSec, Add Innova IPSec offload TX data path")
    8362ea16f69f ("crypto: chcr - ESN for Inline IPSec Tx")
    859a497fe80c ("nfp: implement xfrm callbacks and expose ipsec offload feature to upper layer")
    32188be805d0 ("cn10k-ipsec: Allow ipsec crypto offload for skb with SA")
    [ixgbe/ixgbevf commits are ignored, as that HW does not support tunnel
    mode, thus no cross-family setups are possible]
    
    Fixes: cc18f482e8b6 ("xfrm: provide common xdo_dev_offload_ok callback implementation")
    Reported-by: Xiumei Mu <xmu@redhat.com>
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

xfrm: xfrm_alloc_spi shouldn't use 0 as SPI [+ + +]
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Fri Aug 29 10:54:15 2025 +0200

    xfrm: xfrm_alloc_spi shouldn't use 0 as SPI
    
    [ Upstream commit cd8ae32e4e4652db55bce6b9c79267d8946765a9 ]
    
    x->id.spi == 0 means "no SPI assigned", but since commit
    94f39804d891 ("xfrm: Duplicate SPI Handling"), we now create states
    and add them to the byspi list with this value.
    
    __xfrm_state_delete doesn't remove those states from the byspi list,
    since they shouldn't be there, and this shows up as a UAF the next
    time we go through the byspi list.
    
    Reported-by: syzbot+a25ee9d20d31e483ba7b@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=a25ee9d20d31e483ba7b
    Fixes: 94f39804d891 ("xfrm: Duplicate SPI Handling")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>