Changelog in Linux kernel 5.4.298

 
atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control(). [+ + +]
Author: Kuniyuki Iwashima <kuniyu@google.com>
Date:   Thu Aug 21 02:18:24 2025 +0000

    atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control().
    
    [ Upstream commit ec79003c5f9d2c7f9576fc69b8dbda80305cbe3a ]
    
    syzbot reported the splat below. [0]
    
    When atmtcp_v_open() or atmtcp_v_close() is called via connect()
    or close(), atmtcp_send_control() is called to send an in-kernel
    special message.
    
    The message has ATMTCP_HDR_MAGIC in atmtcp_control.hdr.length.
    Also, a pointer of struct atm_vcc is set to atmtcp_control.vcc.
    
    The notable thing is struct atmtcp_control is uAPI but has a
    space for an in-kernel pointer.
    
      struct atmtcp_control {
            struct atmtcp_hdr hdr;  /* must be first */
      ...
            atm_kptr_t vcc;         /* both directions */
      ...
      } __ATM_API_ALIGN;
    
      typedef struct { unsigned char _[8]; } __ATM_API_ALIGN atm_kptr_t;
    
    The special message is processed in atmtcp_recv_control() called
    from atmtcp_c_send().
    
    atmtcp_c_send() is vcc->dev->ops->send() and called from 2 paths:
    
      1. .ndo_start_xmit() (vcc->send() == atm_send_aal0())
      2. vcc_sendmsg()
    
    The problem is sendmsg() does not validate the message length and
    userspace can abuse atmtcp_recv_control() to overwrite any kptr
    by atmtcp_control.
    
    Let's add a new ->pre_send() hook to validate messages from sendmsg().
    
    [0]:
    Oops: general protection fault, probably for non-canonical address 0xdffffc00200000ab: 0000 [#1] SMP KASAN PTI
    KASAN: probably user-memory-access in range [0x0000000100000558-0x000000010000055f]
    CPU: 0 UID: 0 PID: 5865 Comm: syz-executor331 Not tainted 6.17.0-rc1-syzkaller-00215-gbab3ce404553 #0 PREEMPT(full)
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
    RIP: 0010:atmtcp_recv_control drivers/atm/atmtcp.c:93 [inline]
    RIP: 0010:atmtcp_c_send+0x1da/0x950 drivers/atm/atmtcp.c:297
    Code: 4d 8d 75 1a 4c 89 f0 48 c1 e8 03 42 0f b6 04 20 84 c0 0f 85 15 06 00 00 41 0f b7 1e 4d 8d b7 60 05 00 00 4c 89 f0 48 c1 e8 03 <42> 0f b6 04 20 84 c0 0f 85 13 06 00 00 66 41 89 1e 4d 8d 75 1c 4c
    RSP: 0018:ffffc90003f5f810 EFLAGS: 00010203
    RAX: 00000000200000ab RBX: 0000000000000000 RCX: 0000000000000000
    RDX: ffff88802a510000 RSI: 00000000ffffffff RDI: ffff888030a6068c
    RBP: ffff88802699fb40 R08: ffff888030a606eb R09: 1ffff1100614c0dd
    R10: dffffc0000000000 R11: ffffffff8718fc40 R12: dffffc0000000000
    R13: ffff888030a60680 R14: 000000010000055f R15: 00000000ffffffff
    FS:  00007f8d7e9236c0(0000) GS:ffff888125c1c000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000000000045ad50 CR3: 0000000075bde000 CR4: 00000000003526f0
    Call Trace:
     <TASK>
     vcc_sendmsg+0xa10/0xc60 net/atm/common.c:645
     sock_sendmsg_nosec net/socket.c:714 [inline]
     __sock_sendmsg+0x219/0x270 net/socket.c:729
     ____sys_sendmsg+0x505/0x830 net/socket.c:2614
     ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668
     __sys_sendmsg net/socket.c:2700 [inline]
     __do_sys_sendmsg net/socket.c:2705 [inline]
     __se_sys_sendmsg net/socket.c:2703 [inline]
     __x64_sys_sendmsg+0x19b/0x260 net/socket.c:2703
     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
    RIP: 0033:0x7f8d7e96a4a9
    Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 51 18 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007f8d7e923198 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 00007f8d7e9f4308 RCX: 00007f8d7e96a4a9
    RDX: 0000000000000000 RSI: 0000200000000240 RDI: 0000000000000005
    RBP: 00007f8d7e9f4300 R08: 65732f636f72702f R09: 65732f636f72702f
    R10: 65732f636f72702f R11: 0000000000000246 R12: 00007f8d7e9c10ac
    R13: 00007f8d7e9231a0 R14: 0000200000000200 R15: 0000200000000250
     </TASK>
    Modules linked in:
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot+1741b56d54536f4ec349@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/netdev/68a6767c.050a0220.3d78fd.0011.GAE@google.com/
    Tested-by: syzbot+1741b56d54536f4ec349@syzkaller.appspotmail.com
    Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
    Link: https://patch.msgid.link/20250821021901.2814721-1-kuniyu@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
Bluetooth: hci_event: Detect if HCI_EV_NUM_COMP_PKTS is unbalanced [+ + +]
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Wed Aug 20 17:04:00 2025 -0400

    Bluetooth: hci_event: Detect if HCI_EV_NUM_COMP_PKTS is unbalanced
    
    [ Upstream commit 15bf2c6391bafb14a3020d06ec0761bce0803463 ]
    
    This attempts to detect if HCI_EV_NUM_COMP_PKTS contain an unbalanced
    (more than currently considered outstanding) number of packets otherwise
    it could cause the hcon->sent to underflow and loop around breaking the
    tracking of the outstanding packets pending acknowledgment.
    
    Fixes: f42809185896 ("Bluetooth: Simplify num_comp_pkts_evt function")
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
efivarfs: Fix slab-out-of-bounds in efivarfs_d_compare [+ + +]
Author: Li Nan <linan122@huawei.com>
Date:   Wed Aug 27 15:39:54 2025 +0800

    efivarfs: Fix slab-out-of-bounds in efivarfs_d_compare
    
    [ Upstream commit a6358f8cf64850f3f27857b8ed8c1b08cfc4685c ]
    
    Observed on kernel 6.6 (present on master as well):
    
      BUG: KASAN: slab-out-of-bounds in memcmp+0x98/0xd0
      Call trace:
       kasan_check_range+0xe8/0x190
       __asan_loadN+0x1c/0x28
       memcmp+0x98/0xd0
       efivarfs_d_compare+0x68/0xd8
       __d_lookup_rcu_op_compare+0x178/0x218
       __d_lookup_rcu+0x1f8/0x228
       d_alloc_parallel+0x150/0x648
       lookup_open.isra.0+0x5f0/0x8d0
       open_last_lookups+0x264/0x828
       path_openat+0x130/0x3f8
       do_filp_open+0x114/0x248
       do_sys_openat2+0x340/0x3c0
       __arm64_sys_openat+0x120/0x1a0
    
    If dentry->d_name.len < EFI_VARIABLE_GUID_LEN , 'guid' can become
    negative, leadings to oob. The issue can be triggered by parallel
    lookups using invalid filename:
    
      T1                    T2
      lookup_open
       ->lookup
        simple_lookup
         d_add
         // invalid dentry is added to hash list
    
                            lookup_open
                             d_alloc_parallel
                              __d_lookup_rcu
                               __d_lookup_rcu_op_compare
                                hlist_bl_for_each_entry_rcu
                                // invalid dentry can be retrieved
                                 ->d_compare
                                  efivarfs_d_compare
                                  // oob
    
    Fix it by checking 'guid' before cmp.
    
    Fixes: da27a24383b2 ("efivarfs: guid part of filenames are case-insensitive")
    Signed-off-by: Li Nan <linan122@huawei.com>
    Signed-off-by: Wu Guanghao <wuguanghao3@huawei.com>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
ftrace: Fix potential warning in trace_printk_seq during ftrace_dump [+ + +]
Author: Tengda Wu <wutengda@huaweicloud.com>
Date:   Fri Aug 22 03:33:43 2025 +0000

    ftrace: Fix potential warning in trace_printk_seq during ftrace_dump
    
    [ Upstream commit 4013aef2ced9b756a410f50d12df9ebe6a883e4a ]
    
    When calling ftrace_dump_one() concurrently with reading trace_pipe,
    a WARN_ON_ONCE() in trace_printk_seq() can be triggered due to a race
    condition.
    
    The issue occurs because:
    
    CPU0 (ftrace_dump)                              CPU1 (reader)
    echo z > /proc/sysrq-trigger
    
    !trace_empty(&iter)
    trace_iterator_reset(&iter) <- len = size = 0
                                                    cat /sys/kernel/tracing/trace_pipe
    trace_find_next_entry_inc(&iter)
      __find_next_entry
        ring_buffer_empty_cpu <- all empty
      return NULL
    
    trace_printk_seq(&iter.seq)
      WARN_ON_ONCE(s->seq.len >= s->seq.size)
    
    In the context between trace_empty() and trace_find_next_entry_inc()
    during ftrace_dump, the ring buffer data was consumed by other readers.
    This caused trace_find_next_entry_inc to return NULL, failing to populate
    `iter.seq`. At this point, due to the prior trace_iterator_reset, both
    `iter.seq.len` and `iter.seq.size` were set to 0. Since they are equal,
    the WARN_ON_ONCE condition is triggered.
    
    Move the trace_printk_seq() into the if block that checks to make sure the
    return value of trace_find_next_entry_inc() is non-NULL in
    ftrace_dump_one(), ensuring the 'iter.seq' is properly populated before
    subsequent operations.
    
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Link: https://lore.kernel.org/20250822033343.3000289-1-wutengda@huaweicloud.com
    Fixes: d769041f8653 ("ring_buffer: implement new locking")
    Signed-off-by: Tengda Wu <wutengda@huaweicloud.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
HID: asus: fix UAF via HID_CLAIMED_INPUT validation [+ + +]
Author: Qasim Ijaz <qasdev00@gmail.com>
Date:   Sun Aug 10 19:10:41 2025 +0100

    HID: asus: fix UAF via HID_CLAIMED_INPUT validation
    
    commit d3af6ca9a8c34bbd8cff32b469b84c9021c9e7e4 upstream.
    
    After hid_hw_start() is called hidinput_connect() will eventually be
    called to set up the device with the input layer since the
    HID_CONNECT_DEFAULT connect mask is used. During hidinput_connect()
    all input and output reports are processed and corresponding hid_inputs
    are allocated and configured via hidinput_configure_usages(). This
    process involves slot tagging report fields and configuring usages
    by setting relevant bits in the capability bitmaps. However it is possible
    that the capability bitmaps are not set at all leading to the subsequent
    hidinput_has_been_populated() check to fail leading to the freeing of the
    hid_input and the underlying input device.
    
    This becomes problematic because a malicious HID device like a
    ASUS ROG N-Key keyboard can trigger the above scenario via a
    specially crafted descriptor which then leads to a user-after-free
    when the name of the freed input device is written to later on after
    hid_hw_start(). Below, report 93 intentionally utilises the
    HID_UP_UNDEFINED Usage Page which is skipped during usage
    configuration, leading to the frees.
    
    0x05, 0x0D,        // Usage Page (Digitizer)
    0x09, 0x05,        // Usage (Touch Pad)
    0xA1, 0x01,        // Collection (Application)
    0x85, 0x0D,        //   Report ID (13)
    0x06, 0x00, 0xFF,  //   Usage Page (Vendor Defined 0xFF00)
    0x09, 0xC5,        //   Usage (0xC5)
    0x15, 0x00,        //   Logical Minimum (0)
    0x26, 0xFF, 0x00,  //   Logical Maximum (255)
    0x75, 0x08,        //   Report Size (8)
    0x95, 0x04,        //   Report Count (4)
    0xB1, 0x02,        //   Feature (Data,Var,Abs)
    0x85, 0x5D,        //   Report ID (93)
    0x06, 0x00, 0x00,  //   Usage Page (Undefined)
    0x09, 0x01,        //   Usage (0x01)
    0x15, 0x00,        //   Logical Minimum (0)
    0x26, 0xFF, 0x00,  //   Logical Maximum (255)
    0x75, 0x08,        //   Report Size (8)
    0x95, 0x1B,        //   Report Count (27)
    0x81, 0x02,        //   Input (Data,Var,Abs)
    0xC0,              // End Collection
    
    Below is the KASAN splat after triggering the UAF:
    
    [   21.672709] ==================================================================
    [   21.673700] BUG: KASAN: slab-use-after-free in asus_probe+0xeeb/0xf80
    [   21.673700] Write of size 8 at addr ffff88810a0ac000 by task kworker/1:2/54
    [   21.673700]
    [   21.673700] CPU: 1 UID: 0 PID: 54 Comm: kworker/1:2 Not tainted 6.16.0-rc4-g9773391cf4dd-dirty #36 PREEMPT(voluntary)
    [   21.673700] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
    [   21.673700] Call Trace:
    [   21.673700]  <TASK>
    [   21.673700]  dump_stack_lvl+0x5f/0x80
    [   21.673700]  print_report+0xd1/0x660
    [   21.673700]  kasan_report+0xe5/0x120
    [   21.673700]  __asan_report_store8_noabort+0x1b/0x30
    [   21.673700]  asus_probe+0xeeb/0xf80
    [   21.673700]  hid_device_probe+0x2ee/0x700
    [   21.673700]  really_probe+0x1c6/0x6b0
    [   21.673700]  __driver_probe_device+0x24f/0x310
    [   21.673700]  driver_probe_device+0x4e/0x220
    [...]
    [   21.673700]
    [   21.673700] Allocated by task 54:
    [   21.673700]  kasan_save_stack+0x3d/0x60
    [   21.673700]  kasan_save_track+0x18/0x40
    [   21.673700]  kasan_save_alloc_info+0x3b/0x50
    [   21.673700]  __kasan_kmalloc+0x9c/0xa0
    [   21.673700]  __kmalloc_cache_noprof+0x139/0x340
    [   21.673700]  input_allocate_device+0x44/0x370
    [   21.673700]  hidinput_connect+0xcb6/0x2630
    [   21.673700]  hid_connect+0xf74/0x1d60
    [   21.673700]  hid_hw_start+0x8c/0x110
    [   21.673700]  asus_probe+0x5a3/0xf80
    [   21.673700]  hid_device_probe+0x2ee/0x700
    [   21.673700]  really_probe+0x1c6/0x6b0
    [   21.673700]  __driver_probe_device+0x24f/0x310
    [   21.673700]  driver_probe_device+0x4e/0x220
    [...]
    [   21.673700]
    [   21.673700] Freed by task 54:
    [   21.673700]  kasan_save_stack+0x3d/0x60
    [   21.673700]  kasan_save_track+0x18/0x40
    [   21.673700]  kasan_save_free_info+0x3f/0x60
    [   21.673700]  __kasan_slab_free+0x3c/0x50
    [   21.673700]  kfree+0xcf/0x350
    [   21.673700]  input_dev_release+0xab/0xd0
    [   21.673700]  device_release+0x9f/0x220
    [   21.673700]  kobject_put+0x12b/0x220
    [   21.673700]  put_device+0x12/0x20
    [   21.673700]  input_free_device+0x4c/0xb0
    [   21.673700]  hidinput_connect+0x1862/0x2630
    [   21.673700]  hid_connect+0xf74/0x1d60
    [   21.673700]  hid_hw_start+0x8c/0x110
    [   21.673700]  asus_probe+0x5a3/0xf80
    [   21.673700]  hid_device_probe+0x2ee/0x700
    [   21.673700]  really_probe+0x1c6/0x6b0
    [   21.673700]  __driver_probe_device+0x24f/0x310
    [   21.673700]  driver_probe_device+0x4e/0x220
    [...]
    
    Fixes: 9ce12d8be12c ("HID: asus: Add i2c touchpad support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Qasim Ijaz <qasdev00@gmail.com>
    Link: https://patch.msgid.link/20250810181041.44874-1-qasdev00@gmail.com
    Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

HID: hid-ntrig: fix unable to handle page fault in ntrig_report_version() [+ + +]
Author: Minjong Kim <minbell.kim@samsung.com>
Date:   Wed Aug 13 19:30:22 2025 +0900

    HID: hid-ntrig: fix unable to handle page fault in ntrig_report_version()
    
    commit 185c926283da67a72df20a63a5046b3b4631b7d9 upstream.
    
    in ntrig_report_version(), hdev parameter passed from hid_probe().
    sending descriptor to /dev/uhid can make hdev->dev.parent->parent to null
    if hdev->dev.parent->parent is null, usb_dev has
    invalid address(0xffffffffffffff58) that hid_to_usb_dev(hdev) returned
    when usb_rcvctrlpipe() use usb_dev,it trigger
    page fault error for address(0xffffffffffffff58)
    
    add null check logic to ntrig_report_version()
    before calling hid_to_usb_dev()
    
    Signed-off-by: Minjong Kim <minbell.kim@samsung.com>
    Link: https://patch.msgid.link/20250813-hid-ntrig-page-fault-fix-v2-1-f98581f35106@samsung.com
    Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

HID: wacom: Add a new Art Pen 2 [+ + +]
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sun Aug 10 22:40:30 2025 -0700

    HID: wacom: Add a new Art Pen 2
    
    commit 9fc51941d9e7793da969b2c66e6f8213c5b1237f upstream.
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
KVM: x86: use array_index_nospec with indices that come from guest [+ + +]
Author: Thijs Raymakers <thijs@raymakers.nl>
Date:   Mon Aug 4 08:44:05 2025 +0200

    KVM: x86: use array_index_nospec with indices that come from guest
    
    commit c87bd4dd43a624109c3cc42d843138378a7f4548 upstream.
    
    min and dest_id are guest-controlled indices. Using array_index_nospec()
    after the bounds checks clamps these values to mitigate speculative execution
    side-channels.
    
    Signed-off-by: Thijs Raymakers <thijs@raymakers.nl>
    Cc: stable@vger.kernel.org
    Cc: Sean Christopherson <seanjc@google.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Fixes: 715062970f37 ("KVM: X86: Implement PV sched yield hypercall")
    Fixes: bdf7ffc89922 ("KVM: LAPIC: Fix pv ipis out-of-bounds access")
    Fixes: 4180bf1b655a ("KVM: X86: Implement "send IPI" hypercall")
    Link: https://lore.kernel.org/r/20250804064405.4802-1-thijs@raymakers.nl
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
Linux: Linux 5.4.298 [+ + +]
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Sep 4 14:05:56 2025 +0200

    Linux 5.4.298
    
    Link: https://lore.kernel.org/r/20250902131924.720400762@linuxfoundation.org
    Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Alok Tiwari <alok.a.tiwari@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
net/atm: remove the atmdev_ops {get, set}sockopt methods [+ + +]
Author: Christoph Hellwig <hch@lst.de>
Date:   Fri Jul 17 08:23:10 2020 +0200

    net/atm: remove the atmdev_ops {get, set}sockopt methods
    
    [ Upstream commit a06d30ae7af492497ffbca6abf1621d508b8fcaa ]
    
    All implementations of these two methods are dummies that always
    return -EINVAL.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: ec79003c5f9d ("atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control().")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
net/mlx5e: Set local Xoff after FW update [+ + +]
Author: Alexei Lazar <alazar@nvidia.com>
Date:   Mon Aug 25 17:34:34 2025 +0300

    net/mlx5e: Set local Xoff after FW update
    
    [ Upstream commit aca0c31af61e0d5cf1675a0cbd29460b95ae693c ]
    
    The local Xoff value is being set before the firmware (FW) update.
    In case of a failure where the FW is not updated with the new value,
    there is no fallback to the previous value.
    Update the local Xoff value after the FW has been successfully set.
    
    Fixes: 0696d60853d5 ("net/mlx5e: Receive buffer configuration")
    Signed-off-by: Alexei Lazar <alazar@nvidia.com>
    Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
    Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
    Signed-off-by: Mark Bloch <mbloch@nvidia.com>
    Link: https://patch.msgid.link/20250825143435.598584-12-mbloch@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net/mlx5e: Update and set Xon/Xoff upon MTU set [+ + +]
Author: Alexei Lazar <alazar@nvidia.com>
Date:   Mon Aug 25 17:34:32 2025 +0300

    net/mlx5e: Update and set Xon/Xoff upon MTU set
    
    [ Upstream commit ceddedc969f0532b7c62ca971ee50d519d2bc0cb ]
    
    Xon/Xoff sizes are derived from calculation that include the MTU size.
    Set Xon/Xoff when MTU is set.
    If Xon/Xoff fails, set the previous MTU.
    
    Fixes: 0696d60853d5 ("net/mlx5e: Receive buffer configuration")
    Signed-off-by: Alexei Lazar <alazar@nvidia.com>
    Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
    Signed-off-by: Mark Bloch <mbloch@nvidia.com>
    Link: https://patch.msgid.link/20250825143435.598584-10-mbloch@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net/mlx5e: Update and set Xon/Xoff upon port speed set [+ + +]
Author: Alexei Lazar <alazar@nvidia.com>
Date:   Mon Aug 25 17:34:33 2025 +0300

    net/mlx5e: Update and set Xon/Xoff upon port speed set
    
    [ Upstream commit d24341740fe48add8a227a753e68b6eedf4b385a ]
    
    Xon/Xoff sizes are derived from calculations that include
    the port speed.
    These settings need to be updated and applied whenever the
    port speed is changed.
    The port speed is typically set after the physical link goes down
    and is negotiated as part of the link-up process between the two
    connected interfaces.
    Xon/Xoff parameters being updated at the point where the new
    negotiated speed is established.
    
    Fixes: 0696d60853d5 ("net/mlx5e: Receive buffer configuration")
    Signed-off-by: Alexei Lazar <alazar@nvidia.com>
    Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
    Signed-off-by: Mark Bloch <mbloch@nvidia.com>
    Link: https://patch.msgid.link/20250825143435.598584-11-mbloch@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
net: dlink: fix multicast stats being counted incorrectly [+ + +]
Author: Yeounsu Moon <yyyynoom@gmail.com>
Date:   Sun Aug 24 03:29:24 2025 +0900

    net: dlink: fix multicast stats being counted incorrectly
    
    [ Upstream commit 007a5ffadc4fd51739527f1503b7cf048f31c413 ]
    
    `McstFramesRcvdOk` counts the number of received multicast packets, and
    it reports the value correctly.
    
    However, reading `McstFramesRcvdOk` clears the register to zero. As a
    result, the driver was reporting only the packets since the last read,
    instead of the accumulated total.
    
    Fix this by updating the multicast statistics accumulatively instaed of
    instantaneously.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Tested-on: D-Link DGE-550T Rev-A3
    Signed-off-by: Yeounsu Moon <yyyynoom@gmail.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Link: https://patch.msgid.link/20250823182927.6063-3-yyyynoom@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: ipv4: fix regression in local-broadcast routes [+ + +]
Author: Oscar Maes <oscmaes92@gmail.com>
Date:   Wed Aug 27 08:23:21 2025 +0200

    net: ipv4: fix regression in local-broadcast routes
    
    [ Upstream commit 5189446ba995556eaa3755a6e875bc06675b88bd ]
    
    Commit 9e30ecf23b1b ("net: ipv4: fix incorrect MTU in broadcast routes")
    introduced a regression where local-broadcast packets would have their
    gateway set in __mkroute_output, which was caused by fi = NULL being
    removed.
    
    Fix this by resetting the fib_info for local-broadcast packets. This
    preserves the intended changes for directed-broadcast packets.
    
    Cc: stable@vger.kernel.org
    Fixes: 9e30ecf23b1b ("net: ipv4: fix incorrect MTU in broadcast routes")
    Reported-by: Brett A C Sheffield <bacs@librecast.net>
    Closes: https://lore.kernel.org/regressions/20250822165231.4353-4-bacs@librecast.net
    Signed-off-by: Oscar Maes <oscmaes92@gmail.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://patch.msgid.link/20250827062322.4807-1-oscmaes92@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: stmmac: xgmac: Do not enable RX FIFO Overflow interrupts [+ + +]
Author: Rohan G Thomas <rohan.g.thomas@altera.com>
Date:   Mon Aug 25 12:36:52 2025 +0800

    net: stmmac: xgmac: Do not enable RX FIFO Overflow interrupts
    
    [ Upstream commit 4f23382841e67174211271a454811dd17c0ef3c5 ]
    
    Enabling RX FIFO Overflow interrupts is counterproductive
    and causes an interrupt storm when RX FIFO overflows.
    Disabling this interrupt has no side effect and eliminates
    interrupt storms when the RX FIFO overflows.
    
    Commit 8a7cb245cf28 ("net: stmmac: Do not enable RX FIFO
    overflow interrupts") disables RX FIFO overflow interrupts
    for DWMAC4 IP and removes the corresponding handling of
    this interrupt. This patch is doing the same thing for
    XGMAC IP.
    
    Fixes: 2142754f8b9c ("net: stmmac: Add MAC related callbacks for XGMAC2")
    Signed-off-by: Rohan G Thomas <rohan.g.thomas@altera.com>
    Reviewed-by: Matthew Gerlach <matthew.gerlach@altera.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Link: https://patch.msgid.link/20250825-xgmac-minor-fixes-v3-1-c225fe4444c0@altera.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: usb: qmi_wwan: add Telit Cinterion LE910C4-WWX new compositions [+ + +]
Author: Fabio Porcedda <fabio.porcedda@gmail.com>
Date:   Fri Aug 22 11:13:24 2025 +0200

    net: usb: qmi_wwan: add Telit Cinterion LE910C4-WWX new compositions
    
    commit e81a7f65288c7e2cfb7e7890f648e099fd885ab3 upstream.
    
    Add the following Telit Cinterion LE910C4-WWX new compositions:
    
    0x1034: tty (AT) + tty (AT) + rmnet
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  8 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=1034 Rev=00.00
    S:  Manufacturer=Telit
    S:  Product=LE910C4-WWX
    S:  SerialNumber=93f617e7
    C:  #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=fe Prot=ff Driver=option
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=85(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    0x1037: tty (diag) + tty (Telit custom) + tty (AT) + tty (AT) + rmnet
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 15 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=1037 Rev=00.00
    S:  Manufacturer=Telit
    S:  Product=LE910C4-WWX
    S:  SerialNumber=93f617e7
    C:  #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=fe Prot=ff Driver=option
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=85(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=87(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    0x1038: tty (Telit custom) + tty (AT) + tty (AT) + rmnet
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  9 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=1038 Rev=00.00
    S:  Manufacturer=Telit
    S:  Product=LE910C4-WWX
    S:  SerialNumber=93f617e7
    C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=fe Prot=ff Driver=option
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=84(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=86(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
    Link: https://patch.msgid.link/20250822091324.39558-1-Fabio.Porcedda@telit.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
pinctrl: STMFX: add missing HAS_IOMEM dependency [+ + +]
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Thu Aug 14 19:27:21 2025 -0700

    pinctrl: STMFX: add missing HAS_IOMEM dependency
    
    [ Upstream commit a12946bef0407cf2db0899c83d42c47c00af3fbc ]
    
    When building on ARCH=um (which does not set HAS_IOMEM), kconfig
    reports an unmet dependency caused by PINCTRL_STMFX. It selects
    MFD_STMFX, which depends on HAS_IOMEM. To stop this warning,
    PINCTRL_STMFX should also depend on HAS_IOMEM.
    
    kconfig warning:
    WARNING: unmet direct dependencies detected for MFD_STMFX
      Depends on [n]: HAS_IOMEM [=n] && I2C [=y] && OF [=y]
      Selected by [y]:
      - PINCTRL_STMFX [=y] && PINCTRL [=y] && I2C [=y] && OF_GPIO [=y]
    
    Fixes: 1490d9f841b1 ("pinctrl: Add STMFX GPIO expander Pinctrl/GPIO driver")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Link: https://lore.kernel.org/20250815022721.1650885-1-rdunlap@infradead.org
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
 
powerpc/kvm: Fix ifdef to remove build warning [+ + +]
Author: Madhavan Srinivasan <maddy@linux.ibm.com>
Date:   Sun May 18 10:11:04 2025 +0530

    powerpc/kvm: Fix ifdef to remove build warning
    
    [ Upstream commit 88688a2c8ac6c8036d983ad8b34ce191c46a10aa ]
    
    When compiling for pseries or powernv defconfig with "make C=1",
    these warning were reported bu sparse tool in powerpc/kernel/kvm.c
    
    arch/powerpc/kernel/kvm.c:635:9: warning: switch with no cases
    arch/powerpc/kernel/kvm.c:646:9: warning: switch with no cases
    
    Currently #ifdef were added after the switch case which are specific
    for BOOKE and PPC_BOOK3S_32. These are not enabled in pseries/powernv
    defconfig. Fix it by moving the #ifdef before switch(){}
    
    Fixes: cbe487fac7fc0 ("KVM: PPC: Add mtsrin PV code")
    Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
    Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
    Link: https://patch.msgid.link/20250518044107.39928-1-maddy@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
Revert "drm/amdgpu: fix incorrect vm flags to map bo" [+ + +]
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Aug 25 13:40:22 2025 -0400

    Revert "drm/amdgpu: fix incorrect vm flags to map bo"
    
    commit ac4ed2da4c1305a1a002415058aa7deaf49ffe3e upstream.
    
    This reverts commit b08425fa77ad2f305fe57a33dceb456be03b653f.
    
    Revert this to align with 6.17 because the fixes tag
    was wrong on this commit.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    (cherry picked from commit be33e8a239aac204d7e9e673c4220ef244eb1ba3)
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
Revert "drm/dp: Change AUX DPCD probe address from DPCD_REV to LANE0_1_STATUS" [+ + +]
Author: Imre Deak <imre.deak@intel.com>
Date:   Thu Aug 28 20:49:26 2025 +0300

    Revert "drm/dp: Change AUX DPCD probe address from DPCD_REV to LANE0_1_STATUS"
    
    This reverts commit 2402adce8da4e7396b63b5ffa71e1fa16e5fe5c4 which is
    commit a40c5d727b8111b5db424a1e43e14a1dcce1e77f upstream.
    
    The upstream commit a40c5d727b8111b5db424a1e43e14a1dcce1e77f ("drm/dp:
    Change AUX DPCD probe address from DPCD_REV to LANE0_1_STATUS") the
    reverted commit backported causes a regression, on one eDP panel at
    least resulting in display flickering, described in detail at the Link:
    below. The issue fixed by the upstream commit will need a different
    solution, revert the backport for now.
    
    Cc: intel-gfx@lists.freedesktop.org
    Cc: dri-devel@lists.freedesktop.org
    Cc: Sasha Levin <sashal@kernel.org>
    Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14558
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
scsi: core: sysfs: Correct sysfs attributes access rights [+ + +]
Author: Damien Le Moal <dlemoal@kernel.org>
Date:   Mon Jul 28 13:17:00 2025 +0900

    scsi: core: sysfs: Correct sysfs attributes access rights
    
    [ Upstream commit a2f54ff15c3bdc0132e20aae041607e2320dbd73 ]
    
    The SCSI sysfs attributes "supported_mode" and "active_mode" do not
    define a store method and thus cannot be modified.  Correct the
    DEVICE_ATTR() call for these two attributes to not include S_IWUSR to
    allow write access as they are read-only.
    
    Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
    Link: https://lore.kernel.org/r/20250728041700.76660-1-dlemoal@kernel.org
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Reviewed-by: Johannes Thumshin <johannes.thumshirn@wdc.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
sctp: initialize more fields in sctp_v6_from_sk() [+ + +]
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Aug 26 14:13:14 2025 +0000

    sctp: initialize more fields in sctp_v6_from_sk()
    
    [ Upstream commit 2e8750469242cad8f01f320131fd5a6f540dbb99 ]
    
    syzbot found that sin6_scope_id was not properly initialized,
    leading to undefined behavior.
    
    Clear sin6_scope_id and sin6_flowinfo.
    
    BUG: KMSAN: uninit-value in __sctp_v6_cmp_addr+0x887/0x8c0 net/sctp/ipv6.c:649
      __sctp_v6_cmp_addr+0x887/0x8c0 net/sctp/ipv6.c:649
      sctp_inet6_cmp_addr+0x4f2/0x510 net/sctp/ipv6.c:983
      sctp_bind_addr_conflict+0x22a/0x3b0 net/sctp/bind_addr.c:390
      sctp_get_port_local+0x21eb/0x2440 net/sctp/socket.c:8452
      sctp_get_port net/sctp/socket.c:8523 [inline]
      sctp_listen_start net/sctp/socket.c:8567 [inline]
      sctp_inet_listen+0x710/0xfd0 net/sctp/socket.c:8636
      __sys_listen_socket net/socket.c:1912 [inline]
      __sys_listen net/socket.c:1927 [inline]
      __do_sys_listen net/socket.c:1932 [inline]
      __se_sys_listen net/socket.c:1930 [inline]
      __x64_sys_listen+0x343/0x4c0 net/socket.c:1930
      x64_sys_call+0x271d/0x3e20 arch/x86/include/generated/asm/syscalls_64.h:51
      do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
      do_syscall_64+0xd9/0x210 arch/x86/entry/syscall_64.c:94
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Local variable addr.i.i created at:
      sctp_get_port net/sctp/socket.c:8515 [inline]
      sctp_listen_start net/sctp/socket.c:8567 [inline]
      sctp_inet_listen+0x650/0xfd0 net/sctp/socket.c:8636
      __sys_listen_socket net/socket.c:1912 [inline]
      __sys_listen net/socket.c:1927 [inline]
      __do_sys_listen net/socket.c:1932 [inline]
      __se_sys_listen net/socket.c:1930 [inline]
      __x64_sys_listen+0x343/0x4c0 net/socket.c:1930
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot+e69f06a0f30116c68056@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/netdev/68adc0a2.050a0220.37038e.00c4.GAE@google.com/T/#u
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Acked-by: Xin Long <lucien.xin@gmail.com>
    Link: https://patch.msgid.link/20250826141314.1802610-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
vhost/net: Protect ubufs with rcu read lock in vhost_net_ubuf_put() [+ + +]
Author: Nikolay Kuratov <kniv@yandex-team.ru>
Date:   Tue Aug 5 16:09:17 2025 +0300

    vhost/net: Protect ubufs with rcu read lock in vhost_net_ubuf_put()
    
    commit dd54bcf86c91a4455b1f95cbc8e9ac91205f3193 upstream.
    
    When operating on struct vhost_net_ubuf_ref, the following execution
    sequence is theoretically possible:
    CPU0 is finalizing DMA operation                   CPU1 is doing VHOST_NET_SET_BACKEND
                                 // ubufs->refcount == 2
    vhost_net_ubuf_put()                               vhost_net_ubuf_put_wait_and_free(oldubufs)
                                                         vhost_net_ubuf_put_and_wait()
                                                           vhost_net_ubuf_put()
                                                             int r = atomic_sub_return(1, &ubufs->refcount);
                                                             // r = 1
    int r = atomic_sub_return(1, &ubufs->refcount);
    // r = 0
                                                          wait_event(ubufs->wait, !atomic_read(&ubufs->refcount));
                                                          // no wait occurs here because condition is already true
                                                        kfree(ubufs);
    if (unlikely(!r))
      wake_up(&ubufs->wait);  // use-after-free
    
    This leads to use-after-free on ubufs access. This happens because CPU1
    skips waiting for wake_up() when refcount is already zero.
    
    To prevent that use a read-side RCU critical section in vhost_net_ubuf_put(),
    as suggested by Hillf Danton. For this lock to take effect, free ubufs with
    kfree_rcu().
    
    Cc: stable@vger.kernel.org
    Fixes: 0ad8b480d6ee9 ("vhost: fix ref cnt checking deadlock")
    Reported-by: Andrey Ryabinin <arbn@yandex-team.com>
    Suggested-by: Hillf Danton <hdanton@sina.com>
    Signed-off-by: Nikolay Kuratov <kniv@yandex-team.ru>
    Message-Id: <20250805130917.727332-1-kniv@yandex-team.ru>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>