Changelog in Linux kernel 6.6.86

 
ALSA: hda/realtek: Support mute LED on HP Laptop 15s-du3xxx [+ + +]
Author: Dhruv Deshpande <[email protected]>
Date:   Mon Mar 17 08:56:53 2025 +0000

    ALSA: hda/realtek: Support mute LED on HP Laptop 15s-du3xxx
    
    commit 35ef1c79d2e09e9e5a66e28a66fe0df4368b0f3d upstream.
    
    The mute LED on this HP laptop uses ALC236 and requires a quirk to function.
    This patch enables the existing quirk for the device.
    
    Tested on my laptop and the LED behaviour works as intended.
    
    Cc: [email protected]
    Signed-off-by: Dhruv Deshpande <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

ALSA: usb-audio: Add quirk for Plantronics headsets to fix control names [+ + +]
Author: Terry Junge <[email protected]>
Date:   Fri Jan 17 16:58:39 2025 -0800

    ALSA: usb-audio: Add quirk for Plantronics headsets to fix control names
    
    commit 486f6205c233da1baa309bde5f634eb1f8319a33 upstream.
    
    Many Poly/Plantronics headset families name the feature, input,
    and/or output units in a such a way to produce control names
    that are not recognized by user space. As such, the volume and
    mute events do not get routed to the headset's audio controls.
    
    As an example from a product family:
    
    The microphone mute control is named
    Headset Microphone Capture Switch
    and the headset volume control is named
    Headset Earphone Playback Volume
    
    The quirk fixes these to become
    Headset Capture Switch
    Headset Playback Volume
    
    Signed-off-by: Terry Junge <[email protected]>
    Reviewed-by: Takashi Iwai <[email protected]>
    Cc: [email protected]
    Signed-off-by: Jiri Kosina <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
 
ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed() [+ + +]
Author: Kees Cook <[email protected]>
Date:   Thu Feb 1 18:32:58 2024 +0100

    ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed()
    
    commit 169f9102f9198b04afffa6164372a4ba4070f412 upstream.
    
    Under PAN emulation when dumping backtraces from things like the
    LKDTM EXEC_USERSPACE test[1], a double fault (which would hang a CPU)
    would happen because of dump_instr() attempting to read a userspace
    address. Make sure copy_from_kernel_nofault() does not attempt this
    any more.
    
    Closes: https://lava.sirena.org.uk/scheduler/job/497571
    Link: https://lore.kernel.org/all/202401181125.D48DCB4C@keescook/ [1]
    
    Reported-by: Mark Brown <[email protected]>
    Suggested-by: Russell King (Oracle) <[email protected]>
    Reviewed-by: Ard Biesheuvel <[email protected]>
    Tested-by: Mark Brown <[email protected]>
    Cc: Wang Kefeng <[email protected]>
    Cc: Andrew Morton <[email protected]>
    Cc: Ben Hutchings <[email protected]>
    Cc: [email protected]
    Signed-off-by: Kees Cook <[email protected]>
    Signed-off-by: Russell King (Oracle) <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

ARM: 9351/1: fault: Add "cut here" line for prefetch aborts [+ + +]
Author: Kees Cook <[email protected]>
Date:   Thu Feb 1 18:32:23 2024 +0100

    ARM: 9351/1: fault: Add "cut here" line for prefetch aborts
    
    commit 8f09b8b4fa58e99cbfd9a650b31d65cdbd8e4276 upstream.
    
    The common pattern in arm is to emit a "8<--- cut here ---" line for
    faults, but it was missing for do_PrefetchAbort(). Add it.
    
    Cc: Wang Kefeng <[email protected]>
    Cc: Ben Hutchings <[email protected]>
    Cc: [email protected]
    Acked-by: Ard Biesheuvel <[email protected]>
    Signed-off-by: Kees Cook <[email protected]>
    Signed-off-by: Russell King (Oracle) <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

ARM: Remove address checking for MMUless devices [+ + +]
Author: Yanjun Yang <[email protected]>
Date:   Tue Jun 11 18:09:47 2024 +0800

    ARM: Remove address checking for MMUless devices
    
    commit 3ccea4784fddd96fbd6c4497eb28b45dab638c2a upstream.
    
    Commit 169f9102f9198b ("ARM: 9350/1: fault: Implement
    copy_from_kernel_nofault_allowed()") added the function to check address
    before use. However, for devices without MMU, addr > TASK_SIZE will
    always fail.  This patch move this function after the #ifdef CONFIG_MMU
    statement.
    
    Signed-off-by: Yanjun Yang <[email protected]>
    Acked-by: Ard Biesheuvel <[email protected]>
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218953
    Fixes: 169f9102f9198b ("ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed()")
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Kees Cook <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
atm: Fix NULL pointer dereference [+ + +]
Author: Minjoong Kim <[email protected]>
Date:   Sat Mar 22 10:52:00 2025 +0000

    atm: Fix NULL pointer dereference
    
    commit bf2986fcf82a449441f9ee4335df19be19e83970 upstream.
    
    When MPOA_cache_impos_rcvd() receives the msg, it can trigger
    Null Pointer Dereference Vulnerability if both entry and
    holding_time are NULL. Because there is only for the situation
    where entry is NULL and holding_time exists, it can be passed
    when both entry and holding_time are NULL. If these are NULL,
    the entry will be passd to eg_cache_put() as parameter and
    it is referenced by entry->use code in it.
    
    kasan log:
    
    [    3.316691] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000006:I
    [    3.317568] KASAN: null-ptr-deref in range [0x0000000000000030-0x0000000000000037]
    [    3.318188] CPU: 3 UID: 0 PID: 79 Comm: ex Not tainted 6.14.0-rc2 #102
    [    3.318601] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
    [    3.319298] RIP: 0010:eg_cache_remove_entry+0xa5/0x470
    [    3.319677] Code: c1 f7 6e fd 48 c7 c7 00 7e 38 b2 e8 95 64 54 fd 48 c7 c7 40 7e 38 b2 48 89 ee e80
    [    3.321220] RSP: 0018:ffff88800583f8a8 EFLAGS: 00010006
    [    3.321596] RAX: 0000000000000006 RBX: ffff888005989000 RCX: ffffffffaecc2d8e
    [    3.322112] RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000030
    [    3.322643] RBP: 0000000000000000 R08: 0000000000000000 R09: fffffbfff6558b88
    [    3.323181] R10: 0000000000000003 R11: 203a207972746e65 R12: 1ffff11000b07f15
    [    3.323707] R13: dffffc0000000000 R14: ffff888005989000 R15: ffff888005989068
    [    3.324185] FS:  000000001b6313c0(0000) GS:ffff88806d380000(0000) knlGS:0000000000000000
    [    3.325042] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    3.325545] CR2: 00000000004b4b40 CR3: 000000000248e000 CR4: 00000000000006f0
    [    3.326430] Call Trace:
    [    3.326725]  <TASK>
    [    3.326927]  ? die_addr+0x3c/0xa0
    [    3.327330]  ? exc_general_protection+0x161/0x2a0
    [    3.327662]  ? asm_exc_general_protection+0x26/0x30
    [    3.328214]  ? vprintk_emit+0x15e/0x420
    [    3.328543]  ? eg_cache_remove_entry+0xa5/0x470
    [    3.328910]  ? eg_cache_remove_entry+0x9a/0x470
    [    3.329294]  ? __pfx_eg_cache_remove_entry+0x10/0x10
    [    3.329664]  ? console_unlock+0x107/0x1d0
    [    3.329946]  ? __pfx_console_unlock+0x10/0x10
    [    3.330283]  ? do_syscall_64+0xa6/0x1a0
    [    3.330584]  ? entry_SYSCALL_64_after_hwframe+0x47/0x7f
    [    3.331090]  ? __pfx_prb_read_valid+0x10/0x10
    [    3.331395]  ? down_trylock+0x52/0x80
    [    3.331703]  ? vprintk_emit+0x15e/0x420
    [    3.331986]  ? __pfx_vprintk_emit+0x10/0x10
    [    3.332279]  ? down_trylock+0x52/0x80
    [    3.332527]  ? _printk+0xbf/0x100
    [    3.332762]  ? __pfx__printk+0x10/0x10
    [    3.333007]  ? _raw_write_lock_irq+0x81/0xe0
    [    3.333284]  ? __pfx__raw_write_lock_irq+0x10/0x10
    [    3.333614]  msg_from_mpoad+0x1185/0x2750
    [    3.333893]  ? __build_skb_around+0x27b/0x3a0
    [    3.334183]  ? __pfx_msg_from_mpoad+0x10/0x10
    [    3.334501]  ? __alloc_skb+0x1c0/0x310
    [    3.334809]  ? __pfx___alloc_skb+0x10/0x10
    [    3.335283]  ? _raw_spin_lock+0xe0/0xe0
    [    3.335632]  ? finish_wait+0x8d/0x1e0
    [    3.335975]  vcc_sendmsg+0x684/0xba0
    [    3.336250]  ? __pfx_vcc_sendmsg+0x10/0x10
    [    3.336587]  ? __pfx_autoremove_wake_function+0x10/0x10
    [    3.337056]  ? fdget+0x176/0x3e0
    [    3.337348]  __sys_sendto+0x4a2/0x510
    [    3.337663]  ? __pfx___sys_sendto+0x10/0x10
    [    3.337969]  ? ioctl_has_perm.constprop.0.isra.0+0x284/0x400
    [    3.338364]  ? sock_ioctl+0x1bb/0x5a0
    [    3.338653]  ? __rseq_handle_notify_resume+0x825/0xd20
    [    3.339017]  ? __pfx_sock_ioctl+0x10/0x10
    [    3.339316]  ? __pfx___rseq_handle_notify_resume+0x10/0x10
    [    3.339727]  ? selinux_file_ioctl+0xa4/0x260
    [    3.340166]  __x64_sys_sendto+0xe0/0x1c0
    [    3.340526]  ? syscall_exit_to_user_mode+0x123/0x140
    [    3.340898]  do_syscall_64+0xa6/0x1a0
    [    3.341170]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
    [    3.341533] RIP: 0033:0x44a380
    [    3.341757] Code: 0f 1f 84 00 00 00 00 00 66 90 f3 0f 1e fa 41 89 ca 64 8b 04 25 18 00 00 00 85 c00
    [    3.343078] RSP: 002b:00007ffc1d404098 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
    [    3.343631] RAX: ffffffffffffffda RBX: 00007ffc1d404458 RCX: 000000000044a380
    [    3.344306] RDX: 000000000000019c RSI: 00007ffc1d4040b0 RDI: 0000000000000003
    [    3.344833] RBP: 00007ffc1d404260 R08: 0000000000000000 R09: 0000000000000000
    [    3.345381] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
    [    3.346015] R13: 00007ffc1d404448 R14: 00000000004c17d0 R15: 0000000000000001
    [    3.346503]  </TASK>
    [    3.346679] Modules linked in:
    [    3.346956] ---[ end trace 0000000000000000 ]---
    [    3.347315] RIP: 0010:eg_cache_remove_entry+0xa5/0x470
    [    3.347737] Code: c1 f7 6e fd 48 c7 c7 00 7e 38 b2 e8 95 64 54 fd 48 c7 c7 40 7e 38 b2 48 89 ee e80
    [    3.349157] RSP: 0018:ffff88800583f8a8 EFLAGS: 00010006
    [    3.349517] RAX: 0000000000000006 RBX: ffff888005989000 RCX: ffffffffaecc2d8e
    [    3.350103] RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000030
    [    3.350610] RBP: 0000000000000000 R08: 0000000000000000 R09: fffffbfff6558b88
    [    3.351246] R10: 0000000000000003 R11: 203a207972746e65 R12: 1ffff11000b07f15
    [    3.351785] R13: dffffc0000000000 R14: ffff888005989000 R15: ffff888005989068
    [    3.352404] FS:  000000001b6313c0(0000) GS:ffff88806d380000(0000) knlGS:0000000000000000
    [    3.353099] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    3.353544] CR2: 00000000004b4b40 CR3: 000000000248e000 CR4: 00000000000006f0
    [    3.354072] note: ex[79] exited with irqs disabled
    [    3.354458] note: ex[79] exited with preempt_count 1
    
    Signed-off-by: Minjoong Kim <[email protected]>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reviewed-by: Simon Horman <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
counter: microchip-tcb-capture: Fix undefined counter channel state on probe [+ + +]
Author: William Breathitt Gray <[email protected]>
Date:   Wed Mar 5 19:01:19 2025 +0900

    counter: microchip-tcb-capture: Fix undefined counter channel state on probe
    
    commit c0c9c73434666dc99ee156b25e7e722150bee001 upstream.
    
    Hardware initialize of the timer counter channel does not occur on probe
    thus leaving the Count in an undefined state until the first
    function_write() callback is executed. Fix this by performing the proper
    hardware initialization during probe.
    
    Fixes: 106b104137fd ("counter: Add microchip TCB capture counter")
    Reported-by: Csókás Bence <[email protected]>
    Closes: https://lore.kernel.org/all/[email protected]/
    Link: https://lore.kernel.org/r/20250305-preset-capture-mode-microchip-tcb-capture-v1-1-632c95c6421e@kernel.org
    Signed-off-by: William Breathitt Gray <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

counter: stm32-lptimer-cnt: fix error handling when enabling [+ + +]
Author: Fabrice Gasnier <[email protected]>
Date:   Mon Feb 24 18:06:57 2025 +0100

    counter: stm32-lptimer-cnt: fix error handling when enabling
    
    commit 8744dcd4fc7800de2eb9369410470bb2930d4c14 upstream.
    
    In case the stm32_lptim_set_enable_state() fails to update CMP and ARR,
    a timeout error is raised, by regmap_read_poll_timeout. It may happen,
    when the lptimer runs on a slow clock, and the clock is gated only
    few times during the polling.
    
    Badly, when this happen, STM32_LPTIM_ENABLE in CR register has been set.
    So the 'enable' state in sysfs wrongly lies on the counter being
    correctly enabled, due to CR is read as one in stm32_lptim_is_enabled().
    
    To fix both issues:
    - enable the clock before writing CMP, ARR and polling ISR bits. It will
    avoid the possible timeout error.
    - clear the ENABLE bit in CR and disable the clock in the error path.
    
    Fixes: d8958824cf07 ("iio: counter: Add support for STM32 LPTimer")
    Signed-off-by: Fabrice Gasnier <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: William Breathitt Gray <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
drm/amd/display: Check denominator crb_pipes before used [+ + +]
Author: Alex Hung <[email protected]>
Date:   Tue Jun 18 16:19:48 2024 -0600

    drm/amd/display: Check denominator crb_pipes before used
    
    commit ea79068d4073bf303f8203f2625af7d9185a1bc6 upstream.
    
    [WHAT & HOW]
    A denominator cannot be 0, and is checked before used.
    
    This fixes 2 DIVIDE_BY_ZERO issues reported by Coverity.
    
    Reviewed-by: Harry Wentland <[email protected]>
    Signed-off-by: Jerry Zuo <[email protected]>
    Signed-off-by: Alex Hung <[email protected]>
    Tested-by: Daniel Wheeler <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Signed-off-by: Cliff Liu <[email protected]>
    Signed-off-by: He Zhe <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

drm/amd/display: Don't write DP_MSTM_CTRL after LT [+ + +]
Author: Wayne Lin <[email protected]>
Date:   Fri Oct 25 12:27:26 2024 +0800

    drm/amd/display: Don't write DP_MSTM_CTRL after LT
    
    commit bc068194f548ef1f230d96c4398046bf59165992 upstream.
    
    [Why]
    Observe after suspend/resme, we can't light up mst monitors under specific
    mst hub. The reason is that driver still writes DPCD DP_MSTM_CTRL after LT.
    It's forbidden even we write the same value for that dpcd register.
    
    [How]
    We already resume the mst branch device dpcd settings during
    resume_mst_branch_status(). Leverage drm_dp_mst_topology_queue_probe() to
    only probe the topology, not calling drm_dp_mst_topology_mgr_resume() which
    will set DP_MSTM_CTRL as well.
    
    Reviewed-by: Jerry Zuo <[email protected]>
    Signed-off-by: Wayne Lin <[email protected]>
    Signed-off-by: Zaeem Mohamed <[email protected]>
    Tested-by: Daniel Wheeler <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    [cascardo: adjust context in local declarations]
    Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
drm/dp_mst: Add a helper to queue a topology probe [+ + +]
Author: Imre Deak <[email protected]>
Date:   Mon Jul 22 19:54:51 2024 +0300

    drm/dp_mst: Add a helper to queue a topology probe
    
    commit dbaeef363ea54f4c18112874b77503c72ba60fec upstream.
    
    A follow up i915 patch will need to reprobe the MST topology after the
    initial probing, add a helper for this.
    
    Cc: Lyude Paul <[email protected]>
    Cc: [email protected]
    Reviewed-by: Lyude Paul <[email protected]>
    Signed-off-by: Imre Deak <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

drm/dp_mst: Factor out function to queue a topology probe work [+ + +]
Author: Imre Deak <[email protected]>
Date:   Mon Jul 22 19:54:50 2024 +0300

    drm/dp_mst: Factor out function to queue a topology probe work
    
    commit e9b36c5be2e7fdef2cc933c1dac50bd81881e9b8 upstream.
    
    Factor out a function to queue a work for probing the topology, also
    used by the next patch.
    
    Cc: Lyude Paul <[email protected]>
    Cc: [email protected]
    Reviewed-by: Lyude Paul <[email protected]>
    Signed-off-by: Imre Deak <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
HID: hid-plantronics: Add mic mute mapping and generalize quirks [+ + +]
Author: Terry Junge <[email protected]>
Date:   Fri Jan 17 16:58:38 2025 -0800

    HID: hid-plantronics: Add mic mute mapping and generalize quirks
    
    commit 9821709af892be9fbf4ee9a50b2f3e0604295ce0 upstream.
    
    Add mapping for headset mute key events.
    
    Remove PLT_QUIRK_DOUBLE_VOLUME_KEYS quirk and made it generic.
    The quirk logic did not keep track of the actual previous key
    so any key event occurring in less than or equal to 5ms was ignored.
    
    Remove PLT_QUIRK_FOLLOWED_OPPOSITE_VOLUME_KEYS quirk.
    It had the same logic issue as the double key quirk and was actually
    masking the as designed behavior of most of the headsets.
    It's occurrence should be minimized with the ALSA control naming
    quirk that is part of the patch set.
    
    Signed-off-by: Terry Junge <[email protected]>
    Cc: [email protected]
    Signed-off-by: Jiri Kosina <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
Linux: Linux 6.6.86 [+ + +]
Author: Greg Kroah-Hartman <[email protected]>
Date:   Mon Apr 7 10:06:37 2025 +0200

    Linux 6.6.86
    
    Link: https://lore.kernel.org/r/[email protected]
    Tested-by: Peter Schneider <[email protected]>
    Tested-by: Florian Fainelli <[email protected]>
    Tested-by: Mark Brown <[email protected]>
    Tested-by: Shuah Khan <[email protected]>
    Tested-by: Linux Kernel Functional Testing <[email protected]>
    Tested-by: Jon Hunter <[email protected]>
    Tested-by: Ron Economos <[email protected]>
    Tested-by: Harshit Mogalapalli <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove [+ + +]
Author: Luo Qiu <[email protected]>
Date:   Mon Mar 17 18:14:38 2025 +0800

    memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove
    
    commit 4676741a3464b300b486e70585c3c9b692be1632 upstream.
    
    This fixes the following crash:
    
    ==================================================================
    BUG: KASAN: slab-use-after-free in rtsx_usb_ms_poll_card+0x159/0x200 [rtsx_usb_ms]
    Read of size 8 at addr ffff888136335380 by task kworker/6:0/140241
    
    CPU: 6 UID: 0 PID: 140241 Comm: kworker/6:0 Kdump: loaded Tainted: G            E      6.14.0-rc6+ #1
    Tainted: [E]=UNSIGNED_MODULE
    Hardware name: LENOVO 30FNA1V7CW/1057, BIOS S0EKT54A 07/01/2024
    Workqueue: events rtsx_usb_ms_poll_card [rtsx_usb_ms]
    Call Trace:
     <TASK>
     dump_stack_lvl+0x51/0x70
     print_address_description.constprop.0+0x27/0x320
     ? rtsx_usb_ms_poll_card+0x159/0x200 [rtsx_usb_ms]
     print_report+0x3e/0x70
     kasan_report+0xab/0xe0
     ? rtsx_usb_ms_poll_card+0x159/0x200 [rtsx_usb_ms]
     rtsx_usb_ms_poll_card+0x159/0x200 [rtsx_usb_ms]
     ? __pfx_rtsx_usb_ms_poll_card+0x10/0x10 [rtsx_usb_ms]
     ? __pfx___schedule+0x10/0x10
     ? kick_pool+0x3b/0x270
     process_one_work+0x357/0x660
     worker_thread+0x390/0x4c0
     ? __pfx_worker_thread+0x10/0x10
     kthread+0x190/0x1d0
     ? __pfx_kthread+0x10/0x10
     ret_from_fork+0x2d/0x50
     ? __pfx_kthread+0x10/0x10
     ret_from_fork_asm+0x1a/0x30
     </TASK>
    
    Allocated by task 161446:
     kasan_save_stack+0x20/0x40
     kasan_save_track+0x10/0x30
     __kasan_kmalloc+0x7b/0x90
     __kmalloc_noprof+0x1a7/0x470
     memstick_alloc_host+0x1f/0xe0 [memstick]
     rtsx_usb_ms_drv_probe+0x47/0x320 [rtsx_usb_ms]
     platform_probe+0x60/0xe0
     call_driver_probe+0x35/0x120
     really_probe+0x123/0x410
     __driver_probe_device+0xc7/0x1e0
     driver_probe_device+0x49/0xf0
     __device_attach_driver+0xc6/0x160
     bus_for_each_drv+0xe4/0x160
     __device_attach+0x13a/0x2b0
     bus_probe_device+0xbd/0xd0
     device_add+0x4a5/0x760
     platform_device_add+0x189/0x370
     mfd_add_device+0x587/0x5e0
     mfd_add_devices+0xb1/0x130
     rtsx_usb_probe+0x28e/0x2e0 [rtsx_usb]
     usb_probe_interface+0x15c/0x460
     call_driver_probe+0x35/0x120
     really_probe+0x123/0x410
     __driver_probe_device+0xc7/0x1e0
     driver_probe_device+0x49/0xf0
     __device_attach_driver+0xc6/0x160
     bus_for_each_drv+0xe4/0x160
     __device_attach+0x13a/0x2b0
     rebind_marked_interfaces.isra.0+0xcc/0x110
     usb_reset_device+0x352/0x410
     usbdev_do_ioctl+0xe5c/0x1860
     usbdev_ioctl+0xa/0x20
     __x64_sys_ioctl+0xc5/0xf0
     do_syscall_64+0x59/0x170
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    Freed by task 161506:
     kasan_save_stack+0x20/0x40
     kasan_save_track+0x10/0x30
     kasan_save_free_info+0x36/0x60
     __kasan_slab_free+0x34/0x50
     kfree+0x1fd/0x3b0
     device_release+0x56/0xf0
     kobject_cleanup+0x73/0x1c0
     rtsx_usb_ms_drv_remove+0x13d/0x220 [rtsx_usb_ms]
     platform_remove+0x2f/0x50
     device_release_driver_internal+0x24b/0x2e0
     bus_remove_device+0x124/0x1d0
     device_del+0x239/0x530
     platform_device_del.part.0+0x19/0xe0
     platform_device_unregister+0x1c/0x40
     mfd_remove_devices_fn+0x167/0x170
     device_for_each_child_reverse+0xc9/0x130
     mfd_remove_devices+0x6e/0xa0
     rtsx_usb_disconnect+0x2e/0xd0 [rtsx_usb]
     usb_unbind_interface+0xf3/0x3f0
     device_release_driver_internal+0x24b/0x2e0
     proc_disconnect_claim+0x13d/0x220
     usbdev_do_ioctl+0xb5e/0x1860
     usbdev_ioctl+0xa/0x20
     __x64_sys_ioctl+0xc5/0xf0
     do_syscall_64+0x59/0x170
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    Last potentially related work creation:
     kasan_save_stack+0x20/0x40
     kasan_record_aux_stack+0x85/0x90
     insert_work+0x29/0x100
     __queue_work+0x34a/0x540
     call_timer_fn+0x2a/0x160
     expire_timers+0x5f/0x1f0
     __run_timer_base.part.0+0x1b6/0x1e0
     run_timer_softirq+0x8b/0xe0
     handle_softirqs+0xf9/0x360
     __irq_exit_rcu+0x114/0x130
     sysvec_apic_timer_interrupt+0x72/0x90
     asm_sysvec_apic_timer_interrupt+0x16/0x20
    
    Second to last potentially related work creation:
     kasan_save_stack+0x20/0x40
     kasan_record_aux_stack+0x85/0x90
     insert_work+0x29/0x100
     __queue_work+0x34a/0x540
     call_timer_fn+0x2a/0x160
     expire_timers+0x5f/0x1f0
     __run_timer_base.part.0+0x1b6/0x1e0
     run_timer_softirq+0x8b/0xe0
     handle_softirqs+0xf9/0x360
     __irq_exit_rcu+0x114/0x130
     sysvec_apic_timer_interrupt+0x72/0x90
     asm_sysvec_apic_timer_interrupt+0x16/0x20
    
    The buggy address belongs to the object at ffff888136335000
     which belongs to the cache kmalloc-2k of size 2048
    The buggy address is located 896 bytes inside of
     freed 2048-byte region [ffff888136335000, ffff888136335800)
    
    The buggy address belongs to the physical page:
    page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x136330
    head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
    flags: 0x17ffffc0000040(head|node=0|zone=2|lastcpupid=0x1fffff)
    page_type: f5(slab)
    raw: 0017ffffc0000040 ffff888100042f00 ffffea000417a000 dead000000000002
    raw: 0000000000000000 0000000000080008 00000000f5000000 0000000000000000
    head: 0017ffffc0000040 ffff888100042f00 ffffea000417a000 dead000000000002
    head: 0000000000000000 0000000000080008 00000000f5000000 0000000000000000
    head: 0017ffffc0000003 ffffea0004d8cc01 ffffffffffffffff 0000000000000000
    head: 0000000000000008 0000000000000000 00000000ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff888136335280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff888136335300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    >ffff888136335380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                       ^
     ffff888136335400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff888136335480: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    ==================================================================
    
    Fixes: 6827ca573c03 ("memstick: rtsx_usb_ms: Support runtime power management")
    Signed-off-by: Luo Qiu <[email protected]>
    Cc: [email protected]
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Ulf Hansson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
mm/page_alloc: fix memory accept before watermarks gets initialized [+ + +]
Author: Kirill A. Shutemov <[email protected]>
Date:   Mon Mar 10 10:28:55 2025 +0200

    mm/page_alloc: fix memory accept before watermarks gets initialized
    
    commit 800f1059c99e2b39899bdc67a7593a7bea6375d8 upstream.
    
    Watermarks are initialized during the postcore initcall.  Until then, all
    watermarks are set to zero.  This causes cond_accept_memory() to
    incorrectly skip memory acceptance because a watermark of 0 is always met.
    
    This can lead to a premature OOM on boot.
    
    To ensure progress, accept one MAX_ORDER page if the watermark is zero.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: dcdfdd40fa82 ("mm: Add support for unaccepted memory")
    Signed-off-by: Kirill A. Shutemov <[email protected]>
    Tested-by: Farrah Chen <[email protected]>
    Reported-by: Farrah Chen <[email protected]>
    Acked-by: Vlastimil Babka <[email protected]>
    Reviewed-by: Pankaj Gupta <[email protected]>
    Cc: Ashish Kalra <[email protected]>
    Cc: David Hildenbrand <[email protected]>
    Cc: "Edgecombe, Rick P" <[email protected]>
    Cc: Mel Gorman <[email protected]>
    Cc: "Mike Rapoport (IBM)" <[email protected]>
    Cc: Thomas Lendacky <[email protected]>
    Cc: <[email protected]>    [6.5+]
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Kirill A. Shutemov <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
net: usb: qmi_wwan: add Telit Cinterion FE990B composition [+ + +]
Author: Fabio Porcedda <[email protected]>
Date:   Thu Feb 27 12:24:39 2025 +0100

    net: usb: qmi_wwan: add Telit Cinterion FE990B composition
    
    commit e8cdd91926aac2c53a23925c538ad4c44be4201f upstream.
    
    Add the following Telit Cinterion FE990B composition:
    0x10b0: rmnet + tty (AT/NMEA) + tty (AT) + tty (AT) + tty (AT) +
            tty (diag) + DPL + QDSS (Qualcomm Debug SubSystem) + adb
    
    usb-devices:
    T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  7 Spd=480  MxCh= 0
    D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=10b0 Rev=05.15
    S:  Manufacturer=Telit Cinterion
    S:  Product=FE990
    S:  SerialNumber=28c2595e
    C:  #Ifs= 9 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=84(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=86(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=88(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8a(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
    E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=80 Driver=(none)
    E:  Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 7 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none)
    E:  Ad=8d(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    E:  Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Cc: [email protected]
    Signed-off-by: Fabio Porcedda <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

net: usb: qmi_wwan: add Telit Cinterion FN990B composition [+ + +]
Author: Fabio Porcedda <[email protected]>
Date:   Wed Feb 5 18:16:46 2025 +0100

    net: usb: qmi_wwan: add Telit Cinterion FN990B composition
    
    commit 9dba9a45f8ca64a7df32aada14c20a3153af1ac8 upstream.
    
    Add the following Telit Cinterion FN990B composition:
    
    0x10d0: rmnet + tty (AT/NMEA) + tty (AT) + tty (AT) + tty (AT) +
            tty (diag) + DPL + QDSS (Qualcomm Debug SubSystem) + adb
    T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 17 Spd=480  MxCh= 0
    D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=10d0 Rev=05.15
    S:  Manufacturer=Telit Cinterion
    S:  Product=FN990
    S:  SerialNumber=43b38f19
    C:  #Ifs= 9 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=84(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=86(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=88(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8a(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
    E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=80 Driver=(none)
    E:  Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 7 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none)
    E:  Ad=8d(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs
    E:  Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Cc: [email protected]
    Signed-off-by: Fabio Porcedda <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

net: usb: usbnet: restore usb%d name exception for local mac addresses [+ + +]
Author: Dominique Martinet <[email protected]>
Date:   Wed Mar 26 17:32:36 2025 +0900

    net: usb: usbnet: restore usb%d name exception for local mac addresses
    
    commit 2ea396448f26d0d7d66224cb56500a6789c7ed07 upstream.
    
    commit 8a7d12d674ac ("net: usb: usbnet: fix name regression") assumed
    that local addresses always came from the kernel, but some devices hand
    out local mac addresses so we ended up with point-to-point devices with
    a mac set by the driver, renaming to eth%d when they used to be named
    usb%d.
    
    Userspace should not rely on device name, but for the sake of stability
    restore the local mac address check portion of the naming exception:
    point to point devices which either have no mac set by the driver or
    have a local mac handed out by the driver will keep the usb%d name.
    
    (some USB LTE modems are known to hand out a stable mac from the locally
    administered range; that mac appears to be random (different for
    mulitple devices) and can be reset with device-specific commands, so
    while such devices would benefit from getting a OUI reserved, we have
    to deal with these and might as well preserve the existing behavior
    to avoid breaking fragile openwrt configurations and such on upgrade.)
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 8a7d12d674ac ("net: usb: usbnet: fix name regression")
    Cc: [email protected]
    Tested-by: Ahmed Naseef <[email protected]>
    Signed-off-by: Dominique Martinet <[email protected]>
    Acked-by: Oliver Neukum <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
netfilter: socket: Lookup orig tuple for IPv6 SNAT [+ + +]
Author: Maxim Mikityanskiy <[email protected]>
Date:   Tue Mar 18 18:15:16 2025 +0200

    netfilter: socket: Lookup orig tuple for IPv6 SNAT
    
    commit 932b32ffd7604fb00b5c57e239a3cc4d901ccf6e upstream.
    
    nf_sk_lookup_slow_v4 does the conntrack lookup for IPv4 packets to
    restore the original 5-tuple in case of SNAT, to be able to find the
    right socket (if any). Then socket_match() can correctly check whether
    the socket was transparent.
    
    However, the IPv6 counterpart (nf_sk_lookup_slow_v6) lacks this
    conntrack lookup, making xt_socket fail to match on the socket when the
    packet was SNATed. Add the same logic to nf_sk_lookup_slow_v6.
    
    IPv6 SNAT is used in Kubernetes clusters for pod-to-world packets, as
    pods' addresses are in the fd00::/8 ULA subnet and need to be replaced
    with the node's external address. Cilium leverages Envoy to enforce L7
    policies, and Envoy uses transparent sockets. Cilium inserts an iptables
    prerouting rule that matches on `-m socket --transparent` and redirects
    the packets to localhost, but it fails to match SNATed IPv6 packets due
    to that missing conntrack lookup.
    
    Closes: https://github.com/cilium/cilium/issues/37932
    Fixes: eb31628e37a0 ("netfilter: nf_tables: Add support for IPv6 NAT")
    Signed-off-by: Maxim Mikityanskiy <[email protected]>
    Reviewed-by: Florian Westphal <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
reset: starfive: jh71x0: Fix accessing the empty member on JH7110 SoC [+ + +]
Author: Changhuang Liang <[email protected]>
Date:   Wed Sep 25 04:24:42 2024 -0700

    reset: starfive: jh71x0: Fix accessing the empty member on JH7110 SoC
    
    commit 2cf59663660799ce16f4dfbed97cdceac7a7fa11 upstream.
    
    data->asserted will be NULL on JH7110 SoC since commit 82327b127d41
    ("reset: starfive: Add StarFive JH7110 reset driver") was added. Add
    the judgment condition to avoid errors when calling reset_control_status
    on JH7110 SoC.
    
    Fixes: 82327b127d41 ("reset: starfive: Add StarFive JH7110 reset driver")
    Signed-off-by: Changhuang Liang <[email protected]>
    Acked-by: Hal Feng <[email protected]>
    Reviewed-by: Philipp Zabel <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Philipp Zabel <[email protected]>
    Signed-off-by: Jianqi Ren <[email protected]>
    Signed-off-by: He Zhe <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
scsi: ufs: qcom: Only free platform MSIs when ESI is enabled [+ + +]
Author: Manivannan Sadhasivam <[email protected]>
Date:   Mon Nov 11 23:18:31 2024 +0530

    scsi: ufs: qcom: Only free platform MSIs when ESI is enabled
    
    commit 64506b3d23a337e98a74b18dcb10c8619365f2bd upstream.
    
    Otherwise, it will result in a NULL pointer dereference as below:
    
    Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
    Call trace:
     mutex_lock+0xc/0x54
     platform_device_msi_free_irqs_all+0x14/0x20
     ufs_qcom_remove+0x34/0x48 [ufs_qcom]
     platform_remove+0x28/0x44
     device_remove+0x4c/0x80
     device_release_driver_internal+0xd8/0x178
     driver_detach+0x50/0x9c
     bus_remove_driver+0x6c/0xbc
     driver_unregister+0x30/0x60
     platform_driver_unregister+0x14/0x20
     ufs_qcom_pltform_exit+0x18/0xb94 [ufs_qcom]
     __arm64_sys_delete_module+0x180/0x260
     invoke_syscall+0x44/0x100
     el0_svc_common.constprop.0+0xc0/0xe0
     do_el0_svc+0x1c/0x28
     el0_svc+0x34/0xdc
     el0t_64_sync_handler+0xc0/0xc4
     el0t_64_sync+0x190/0x194
    
    Cc: [email protected] # 6.3
    Fixes: 519b6274a777 ("scsi: ufs: qcom: Add MCQ ESI config vendor specific ops")
    Signed-off-by: Manivannan Sadhasivam <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Bean Huo <[email protected]>
    Reviewed-by: Bart Van Assche <[email protected]>
    Signed-off-by: Martin K. Petersen <[email protected]>
    Signed-off-by: Jianqi Ren <[email protected]>
    Signed-off-by: He Zhe <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
serial: 8250_dma: terminate correct DMA in tx_dma_flush() [+ + +]
Author: John Keeping <[email protected]>
Date:   Mon Feb 24 12:18:30 2025 +0000

    serial: 8250_dma: terminate correct DMA in tx_dma_flush()
    
    commit a26503092c75abba70a0be2aa01145ecf90c2a22 upstream.
    
    When flushing transmit side DMA, it is the transmit channel that should
    be terminated, not the receive channel.
    
    Fixes: 9e512eaaf8f40 ("serial: 8250: Fix fifo underflow on flush")
    Cc: stable <[email protected]>
    Reported-by: Wentao Guan <[email protected]>
    Signed-off-by: John Keeping <[email protected]>
    Reviewed-by: Ilpo Järvinen <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
tty: serial: 8250: Add Brainboxes XC devices [+ + +]
Author: Cameron Williams <[email protected]>
Date:   Mon Mar 10 22:27:10 2025 +0000

    tty: serial: 8250: Add Brainboxes XC devices
    
    commit 5c7e2896481a177bbda41d7850f05a9f5a8aee2b upstream.
    
    These ExpressCard devices use the OxPCIE chip and can be used with
    this driver.
    
    Signed-off-by: Cameron Williams <[email protected]>
    Cc: stable <[email protected]>
    Link: https://lore.kernel.org/r/DB7PR02MB3802907A9360F27F6CD67AAFC4D62@DB7PR02MB3802.eurprd02.prod.outlook.com
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

tty: serial: 8250: Add some more device IDs [+ + +]
Author: Cameron Williams <[email protected]>
Date:   Sun Feb 23 22:07:38 2025 +0000

    tty: serial: 8250: Add some more device IDs
    
    commit be6a23650908e2f827f2e7839a3fbae41ccb5b63 upstream.
    
    These card IDs got missed the first time around.
    
    Cc: stable <[email protected]>
    Signed-off-by: Cameron Williams <[email protected]>
    Link: https://lore.kernel.org/r/DB7PR02MB380295BCC879CCF91315AC38C4C12@DB7PR02MB3802.eurprd02.prod.outlook.com
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers [+ + +]
Author: Sherry Sun <[email protected]>
Date:   Wed Mar 12 10:25:03 2025 +0800

    tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers
    
    commit f5cb528d6441eb860250a2f085773aac4f44085e upstream.
    
    According to the LPUART reference manual, TXRTSE and TXRTSPOL of MODIR
    register only can be changed when the transmitter is disabled.
    So disable the transmitter before changing RS485 related registers and
    re-enable it after the change is done.
    
    Fixes: 67b01837861c ("tty: serial: lpuart: Add RS485 support for 32-bit uart flavour")
    Cc: stable <[email protected]>
    Signed-off-by: Sherry Sun <[email protected]>
    Reviewed-by: Frank Li <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
usb: gadget: uvc: Fix ERR_PTR dereference in uvc_v4l2.c [+ + +]
Author: Abhishek Tamboli <[email protected]>
Date:   Thu Aug 15 15:52:02 2024 +0530

    usb: gadget: uvc: Fix ERR_PTR dereference in uvc_v4l2.c
    
    commit a7bb96b18864225a694e3887ac2733159489e4b0 upstream.
    
    Fix potential dereferencing of ERR_PTR() in find_format_by_pix()
    and uvc_v4l2_enum_format().
    
    Fix the following smatch errors:
    
    drivers/usb/gadget/function/uvc_v4l2.c:124 find_format_by_pix()
    error: 'fmtdesc' dereferencing possible ERR_PTR()
    
    drivers/usb/gadget/function/uvc_v4l2.c:392 uvc_v4l2_enum_format()
    error: 'fmtdesc' dereferencing possible ERR_PTR()
    
    Also, fix similar issue in uvc_v4l2_try_format() for potential
    dereferencing of ERR_PTR().
    
    Signed-off-by: Abhishek Tamboli <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Jianqi Ren <[email protected]>
    Signed-off-by: He Zhe <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>