commit 0c935c049b5c196b83b968c72d348ae6fff83ea2
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Mar 13 12:51:13 2025 +0100

    Linux 5.15.179
    
    Link: https://lore.kernel.org/r/20250310170545.553361750@linuxfoundation.org
    Tested-by: SeongJae Park <sj@kernel.org>
    Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Hardik Garg <hargar@linux.microsoft.com>
    Link: https://lore.kernel.org/r/20250311135758.248271750@linuxfoundation.org
    Tested-by: Ron Economos <re@w6rz.net>
    Tested-by: Vijayendra Suman <vijayendra.suman@oracle.com>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Mark Brown <broonie@kernel.org>
    Tested-by: Hardik Garg <hargar@linux.microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf500b0d0cfe92ee62dfd4c2ace7f6353cf3a4c8
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Wed Jan 29 19:15:18 2025 -0800

    net: ipv6: fix dst refleaks in rpl, seg6 and ioam6 lwtunnels
    
    commit c71a192976ded2f2f416d03c4f595cdd4478b825 upstream.
    
    dst_cache_get() gives us a reference, we need to release it.
    
    Discovered by the ioam6.sh test, kmemleak was recently fixed
    to catch per-cpu memory leaks.
    
    Fixes: 985ec6f5e623 ("net: ipv6: rpl_iptunnel: mitigate 2-realloc issue")
    Fixes: 40475b63761a ("net: ipv6: seg6_iptunnel: mitigate 2-realloc issue")
    Fixes: dce525185bc9 ("net: ipv6: ioam6_iptunnel: mitigate 2-realloc issue")
    Reviewed-by: Justin Iurman <justin.iurman@uliege.be>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250130031519.2716843-1-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02e43735932d4b5eab0309acc92d8a2d19ca2ce5
Author: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Date:   Mon Feb 17 08:27:54 2025 +0100

    kbuild: userprogs: use correct lld when linking through clang
    
    commit dfc1b168a8c4b376fa222b27b97c2c4ad4b786e1 upstream.
    
    The userprog infrastructure links objects files through $(CC).
    Either explicitly by manually calling $(CC) on multiple object files or
    implicitly by directly compiling a source file to an executable.
    The documentation at Documentation/kbuild/llvm.rst indicates that ld.lld
    would be used for linking if LLVM=1 is specified.
    However clang instead will use either a globally installed cross linker
    from $PATH called ${target}-ld or fall back to the system linker, which
    probably does not support crosslinking.
    For the normal kernel build this is not an issue because the linker is
    always executed directly, without the compiler being involved.
    
    Explicitly pass --ld-path to clang so $(LD) is respected.
    As clang 13.0.1 is required to build the kernel, this option is available.
    
    Fixes: 7f3a59db274c ("kbuild: add infrastructure to build userspace programs")
    Cc: stable@vger.kernel.org # needs wrapping in $(cc-option) for < 6.9
    Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    [nathan: use cc-option for 6.6 and older, as those trees support back to
             clang-11]
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb0245fa72b783cb23a9949c5048781341e91423
Author: Toke Høiland-Jørgensen <toke@redhat.com>
Date:   Tue Jan 7 13:01:05 2025 +0100

    sched: sch_cake: add bounds checks to host bulk flow fairness counts
    
    commit 737d4d91d35b5f7fa5bb442651472277318b0bfd upstream.
    
    Even though we fixed a logic error in the commit cited below, syzbot
    still managed to trigger an underflow of the per-host bulk flow
    counters, leading to an out of bounds memory access.
    
    To avoid any such logic errors causing out of bounds memory accesses,
    this commit factors out all accesses to the per-host bulk flow counters
    to a series of helpers that perform bounds-checking before any
    increments and decrements. This also has the benefit of improving
    readability by moving the conditional checks for the flow mode into
    these helpers, instead of having them spread out throughout the
    code (which was the cause of the original logic error).
    
    As part of this change, the flow quantum calculation is consolidated
    into a helper function, which means that the dithering applied to the
    ost load scaling is now applied both in the DRR rotation and when a
    sparse flow's quantum is first initiated. The only user-visible effect
    of this is that the maximum packet size that can be sent while a flow
    stays sparse will now vary with +/- one byte in some cases. This should
    not make a noticeable difference in practice, and thus it's not worth
    complicating the code to preserve the old behaviour.
    
    Fixes: 546ea84d07e3 ("sched: sch_cake: fix bulk flow accounting logic for host fairness")
    Reported-by: syzbot+f63600d288bfb7057424@syzkaller.appspotmail.com
    Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Acked-by: Dave Taht <dave.taht@gmail.com>
    Link: https://patch.msgid.link/20250107120105.70685-1-toke@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    [Hagar: needed contextual fixes due to missing commit 7e3cf0843fe5]
    Signed-off-by: Hagar Hemdan <hagarhem@amazon.com>
    Reviewed-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bab61f41c942a20ef7b4feea50e9d36d19ad1a26
Author: Michal Luczaj <mhal@rbox.co>
Date:   Mon Feb 10 13:15:00 2025 +0100

    vsock: Orphan socket after transport release
    
    commit 78dafe1cf3afa02ed71084b350713b07e72a18fb upstream.
    
    During socket release, sock_orphan() is called without considering that it
    sets sk->sk_wq to NULL. Later, if SO_LINGER is enabled, this leads to a
    null pointer dereferenced in virtio_transport_wait_close().
    
    Orphan the socket only after transport release.
    
    Partially reverts the 'Fixes:' commit.
    
    KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]
     lock_acquire+0x19e/0x500
     _raw_spin_lock_irqsave+0x47/0x70
     add_wait_queue+0x46/0x230
     virtio_transport_release+0x4e7/0x7f0
     __vsock_release+0xfd/0x490
     vsock_release+0x90/0x120
     __sock_release+0xa3/0x250
     sock_close+0x14/0x20
     __fput+0x35e/0xa90
     __x64_sys_close+0x78/0xd0
     do_syscall_64+0x93/0x1b0
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    Reported-by: syzbot+9d55b199192a4be7d02c@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=9d55b199192a4be7d02c
    Fixes: fcdd2242c023 ("vsock: Keep the binding until socket destruction")
    Tested-by: Luigi Leonardi <leonardi@redhat.com>
    Reviewed-by: Luigi Leonardi <leonardi@redhat.com>
    Signed-off-by: Michal Luczaj <mhal@rbox.co>
    Link: https://patch.msgid.link/20250210-vsock-linger-nullderef-v3-1-ef6244d02b54@rbox.co
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Luigi Leonardi <leonardi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e48fcb403c2d0e574c19683f09399ab4cf67809c
Author: Michal Luczaj <mhal@rbox.co>
Date:   Tue Jan 28 14:15:27 2025 +0100

    vsock: Keep the binding until socket destruction
    
    commit fcdd2242c0231032fc84e1404315c245ae56322a upstream.
    
    Preserve sockets bindings; this includes both resulting from an explicit
    bind() and those implicitly bound through autobind during connect().
    
    Prevents socket unbinding during a transport reassignment, which fixes a
    use-after-free:
    
        1. vsock_create() (refcnt=1) calls vsock_insert_unbound() (refcnt=2)
        2. transport->release() calls vsock_remove_bound() without checking if
           sk was bound and moved to bound list (refcnt=1)
        3. vsock_bind() assumes sk is in unbound list and before
           __vsock_insert_bound(vsock_bound_sockets()) calls
           __vsock_remove_bound() which does:
               list_del_init(&vsk->bound_table); // nop
               sock_put(&vsk->sk);               // refcnt=0
    
    BUG: KASAN: slab-use-after-free in __vsock_bind+0x62e/0x730
    Read of size 4 at addr ffff88816b46a74c by task a.out/2057
     dump_stack_lvl+0x68/0x90
     print_report+0x174/0x4f6
     kasan_report+0xb9/0x190
     __vsock_bind+0x62e/0x730
     vsock_bind+0x97/0xe0
     __sys_bind+0x154/0x1f0
     __x64_sys_bind+0x6e/0xb0
     do_syscall_64+0x93/0x1b0
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    Allocated by task 2057:
     kasan_save_stack+0x1e/0x40
     kasan_save_track+0x10/0x30
     __kasan_slab_alloc+0x85/0x90
     kmem_cache_alloc_noprof+0x131/0x450
     sk_prot_alloc+0x5b/0x220
     sk_alloc+0x2c/0x870
     __vsock_create.constprop.0+0x2e/0xb60
     vsock_create+0xe4/0x420
     __sock_create+0x241/0x650
     __sys_socket+0xf2/0x1a0
     __x64_sys_socket+0x6e/0xb0
     do_syscall_64+0x93/0x1b0
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    Freed by task 2057:
     kasan_save_stack+0x1e/0x40
     kasan_save_track+0x10/0x30
     kasan_save_free_info+0x37/0x60
     __kasan_slab_free+0x4b/0x70
     kmem_cache_free+0x1a1/0x590
     __sk_destruct+0x388/0x5a0
     __vsock_bind+0x5e1/0x730
     vsock_bind+0x97/0xe0
     __sys_bind+0x154/0x1f0
     __x64_sys_bind+0x6e/0xb0
     do_syscall_64+0x93/0x1b0
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    refcount_t: addition on 0; use-after-free.
    WARNING: CPU: 7 PID: 2057 at lib/refcount.c:25 refcount_warn_saturate+0xce/0x150
    RIP: 0010:refcount_warn_saturate+0xce/0x150
     __vsock_bind+0x66d/0x730
     vsock_bind+0x97/0xe0
     __sys_bind+0x154/0x1f0
     __x64_sys_bind+0x6e/0xb0
     do_syscall_64+0x93/0x1b0
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    refcount_t: underflow; use-after-free.
    WARNING: CPU: 7 PID: 2057 at lib/refcount.c:28 refcount_warn_saturate+0xee/0x150
    RIP: 0010:refcount_warn_saturate+0xee/0x150
     vsock_remove_bound+0x187/0x1e0
     __vsock_release+0x383/0x4a0
     vsock_release+0x90/0x120
     __sock_release+0xa3/0x250
     sock_close+0x14/0x20
     __fput+0x359/0xa80
     task_work_run+0x107/0x1d0
     do_exit+0x847/0x2560
     do_group_exit+0xb8/0x250
     __x64_sys_exit_group+0x3a/0x50
     x64_sys_call+0xfec/0x14f0
     do_syscall_64+0x93/0x1b0
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    Fixes: c0cfa2d8a788 ("vsock: add multi-transports support")
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Signed-off-by: Michal Luczaj <mhal@rbox.co>
    Link: https://patch.msgid.link/20250128-vsock-transport-vs-autobind-v3-1-1cf57065b770@rbox.co
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Luigi Leonardi <leonardi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 857428f4acc16e9c45e14ed36c0e46fd9c4d9253
Author: Michal Luczaj <mhal@rbox.co>
Date:   Mon Nov 18 22:03:43 2024 +0100

    bpf, vsock: Invoke proto::close on close()
    
    commit 135ffc7becc82cfb84936ae133da7969220b43b2 upstream.
    
    vsock defines a BPF callback to be invoked when close() is called. However,
    this callback is never actually executed. As a result, a closed vsock
    socket is not automatically removed from the sockmap/sockhash.
    
    Introduce a dummy vsock_close() and make vsock_release() call proto::close.
    
    Note: changes in __vsock_release() look messy, but it's only due to indent
    level reduction and variables xmas tree reorder.
    
    Fixes: 634f1a7110b4 ("vsock: support sockmap")
    Signed-off-by: Michal Luczaj <mhal@rbox.co>
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Reviewed-by: Luigi Leonardi <leonardi@redhat.com>
    Link: https://lore.kernel.org/r/20241118-vsock-bpf-poll-close-v1-3-f1b9669cacdc@rbox.co
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    [LL: There is no sockmap support for this kernel version. This patch has
    been backported because it helps reduce conflicts on future backports]
    Signed-off-by: Luigi Leonardi <leonardi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 117f7a2975baa4b7d702d3f4830d5a4ebd0c6d50
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Tue Dec 3 21:20:10 2024 +0000

    media: uvcvideo: Remove dangling pointers
    
    commit 221cd51efe4565501a3dbf04cc011b537dcce7fb upstream.
    
    When an async control is written, we copy a pointer to the file handle
    that started the operation. That pointer will be used when the device is
    done. Which could be anytime in the future.
    
    If the user closes that file descriptor, its structure will be freed,
    and there will be one dangling pointer per pending async control, that
    the driver will try to use.
    
    Clean all the dangling pointers during release().
    
    To avoid adding a performance penalty in the most common case (no async
    operation), a counter has been introduced with some logic to make sure
    that it is properly handled.
    
    Cc: stable@vger.kernel.org
    Fixes: e5225c820c05 ("media: uvcvideo: Send a control event when a Control Change interrupt arrives")
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-3-26c867231118@chromium.org
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0fdd7cc593385e46e92e180b71e264fc9c195298
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Wed Nov 6 20:36:07 2024 +0000

    media: uvcvideo: Fix crash during unbind if gpio unit is in use
    
    commit a9ea1a3d88b7947ce8cadb2afceee7a54872bbc5 upstream.
    
    We used the wrong device for the device managed functions. We used the
    usb device, when we should be using the interface device.
    
    If we unbind the driver from the usb interface, the cleanup functions
    are never called. In our case, the IRQ is never disabled.
    
    If an IRQ is triggered, it will try to access memory sections that are
    already free, causing an OOPS.
    
    We cannot use the function devm_request_threaded_irq here. The devm_*
    clean functions may be called after the main structure is released by
    uvc_delete.
    
    Luckily this bug has small impact, as it is only affected by devices
    with gpio units and the user has to unbind the device, a disconnect will
    not trigger this error.
    
    Cc: stable@vger.kernel.org
    Fixes: 2886477ff987 ("media: uvcvideo: Implement UVC_EXT_GPIO_UNIT")
    Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Link: https://lore.kernel.org/r/20241106-uvc-crashrmmod-v6-1-fbf9781c6e83@chromium.org
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 607dc724b162f4452dc768865e578c1a509a1c8c
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Sat Jan 11 23:26:35 2025 +0900

    nilfs2: handle errors that nilfs_prepare_chunk() may return
    
    commit ee70999a988b8abc3490609142f50ebaa8344432 upstream.
    
    Patch series "nilfs2: fix issues with rename operations".
    
    This series fixes BUG_ON check failures reported by syzbot around rename
    operations, and a minor behavioral issue where the mtime of a child
    directory changes when it is renamed instead of moved.
    
    
    This patch (of 2):
    
    The directory manipulation routines nilfs_set_link() and
    nilfs_delete_entry() rewrite the directory entry in the folio/page
    previously read by nilfs_find_entry(), so error handling is omitted on the
    assumption that nilfs_prepare_chunk(), which prepares the buffer for
    rewriting, will always succeed for these.  And if an error is returned, it
    triggers the legacy BUG_ON() checks in each routine.
    
    This assumption is wrong, as proven by syzbot: the buffer layer called by
    nilfs_prepare_chunk() may call nilfs_get_block() if necessary, which may
    fail due to metadata corruption or other reasons.  This has been there all
    along, but improved sanity checks and error handling may have made it more
    reproducible in fuzzing tests.
    
    Fix this issue by adding missing error paths in nilfs_set_link(),
    nilfs_delete_entry(), and their caller nilfs_rename().
    
    Link: https://lkml.kernel.org/r/20250111143518.7901-1-konishi.ryusuke@gmail.com
    Link: https://lkml.kernel.org/r/20250111143518.7901-2-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+32c3706ebf5d95046ea1@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=32c3706ebf5d95046ea1
    Reported-by: syzbot+1097e95f134f37d9395c@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=1097e95f134f37d9395c
    Fixes: 2ba466d74ed7 ("nilfs2: directory entry operations")
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5606b783307b76b2d76feb8719a3ca7f036438b
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Mon Nov 27 23:30:21 2023 +0900

    nilfs2: eliminate staggered calls to kunmap in nilfs_rename
    
    commit 8cf57c6df818f58fdad16a909506be213623a88e upstream.
    
    In nilfs_rename(), calls to nilfs_put_page() to release pages obtained
    with nilfs_find_entry() or nilfs_dotdot() are alternated in the normal
    path.
    
    When replacing the kernel memory mapping method from kmap to
    kmap_local_{page,folio}, this violates the constraint on the calling order
    of kunmap_local().
    
    Swap the order of nilfs_put_page calls where the kmap sections of multiple
    pages overlap so that they are nested, allowing direct replacement of
    nilfs_put_page() -> unmap_and_put_page().
    
    Without this reordering, that replacement will cause a kernel WARNING in
    kunmap_local_indexed() on architectures with high memory mapping.
    
    Link: https://lkml.kernel.org/r/20231127143036.2425-3-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Stable-dep-of: ee70999a988b ("nilfs2: handle errors that nilfs_prepare_chunk() may return")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1fa500f494f1a84e52c749ec36d5960df3eacc68
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Mon Nov 27 23:30:20 2023 +0900

    nilfs2: move page release outside of nilfs_delete_entry and nilfs_set_link
    
    commit 584db20c181f5e28c0386d7987406ace7fbd3e49 upstream.
    
    Patch series "nilfs2: Folio conversions for directory paths".
    
    This series applies page->folio conversions to nilfs2 directory
    operations.  This reduces hidden compound_head() calls and also converts
    deprecated kmap calls to kmap_local in the directory code.
    
    Although nilfs2 does not yet support large folios, Matthew has done his
    best here to include support for large folios, which will be needed for
    devices with large block sizes.
    
    This series corresponds to the second half of the original post [1], but
    with two complementary patches inserted at the beginning and some
    adjustments, to prevent a kmap_local constraint violation found during
    testing with highmem mapping.
    
    [1] https://lkml.kernel.org/r/20231106173903.1734114-1-willy@infradead.org
    
    I have reviewed all changes and tested this for regular and small block
    sizes, both on machines with and without highmem mapping.  No issues
    found.
    
    
    This patch (of 17):
    
    In a few directory operations, the call to nilfs_put_page() for a page
    obtained using nilfs_find_entry() or nilfs_dotdot() is hidden in
    nilfs_set_link() and nilfs_delete_entry(), making it difficult to track
    page release and preventing change of its call position.
    
    By moving nilfs_put_page() out of these functions, this makes the page
    get/put correspondence clearer and makes it easier to swap
    nilfs_put_page() calls (and kunmap calls within them) when modifying
    multiple directory entries simultaneously in nilfs_rename().
    
    Also, update comments for nilfs_set_link() and nilfs_delete_entry() to
    reflect changes in their behavior.
    
    To make nilfs_put_page() visible from namei.c, this moves its definition
    to nilfs.h and replaces existing equivalents to use it, but the exposure
    of that definition is temporary and will be removed on a later kmap ->
    kmap_local conversion.
    
    Link: https://lkml.kernel.org/r/20231127143036.2425-1-konishi.ryusuke@gmail.com
    Link: https://lkml.kernel.org/r/20231127143036.2425-2-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Stable-dep-of: ee70999a988b ("nilfs2: handle errors that nilfs_prepare_chunk() may return")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1cd7fd082c789a3f6358bdcd790099f19bd2dc24
Author: Ralf Schlatterbeck <rsc@runtux.com>
Date:   Fri Feb 2 12:53:30 2024 +0100

    spi-mxs: Fix chipselect glitch
    
    commit 269e31aecdd0b70f53a05def79480f15cbcc0fd6 upstream.
    
    There was a change in the mxs-dma engine that uses a new custom flag.
    The change was not applied to the mxs spi driver.
    This results in chipselect being deasserted too early.
    This fixes the chipselect problem by using the new flag in the mxs-spi
    driver.
    
    Fixes: ceeeb99cd821 ("dmaengine: mxs: rename custom flag")
    Signed-off-by: Ralf Schlatterbeck <rsc@runtux.com>
    Link: https://msgid.link/r/20240202115330.wxkbfmvd76sy3a6a@runtux.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: Stefan Wahren <wahrenst@gmx.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd093880587591b08bd53c1f7e537e573b8e26b6
Author: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
Date:   Sun Feb 16 11:15:36 2025 +0800

    mtd: rawnand: cadence: fix unchecked dereference
    
    commit 60255f3704fde70ed3c4d62f919aa4b46f841f70 upstream.
    
    Add NULL check before variable dereference to fix static checker warning.
    
    Fixes: d76d22b5096c ("mtd: rawnand: cadence: use dma_map_resource for sdma address")
    Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
    Closes: https://lore.kernel.org/all/e448a22c-bada-448d-9167-7af71305130d@stanley.mountain/
    Signed-off-by: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e9899c12d5ab3a8ce376bf4365175ea3dbaffc0
Author: NeilBrown <neilb@suse.de>
Date:   Mon Mar 13 13:29:17 2023 -0700

    md: select BLOCK_LEGACY_AUTOLOAD
    
    commit 6c0f5898836c05c6d850a750ed7940ba29e4e6c5 upstream.
    
    When BLOCK_LEGACY_AUTOLOAD is not enable, mdadm is not able to
    activate new arrays unless "CREATE names=yes" appears in
    mdadm.conf
    
    As this is a regression we need to always enable BLOCK_LEGACY_AUTOLOAD
    for when MD is selected - at least until mdadm is updated and the
    updates widely available.
    
    Cc: stable@vger.kernel.org # v5.18+
    Fixes: fbdee71bb5d8 ("block: deprecate autoloading based on dev_t")
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Song Liu <song@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a7c8039d2ee46684f01645f089128dd552512b4
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Wed Dec 1 06:22:18 2021 +0100

    media: uvcvideo: Avoid returning invalid controls
    
    commit 414d3b49d9fd4a0bb16a13d929027847fd094f3f upstream.
    
    If the memory where ctrl_found is placed has the value of uvc_ctrl and
    __uvc_find_control does not find the control we will return an invalid
    index.
    
    Fixes: 6350d6a4ed487 ("media: uvcvideo: Set error_idx during ctrl_commit errors")
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69b06b05ff948314b6cf4367737fa0949ceffc77
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Wed Dec 1 06:22:17 2021 +0100

    media: uvcvideo: Avoid invalid memory access
    
    commit f0577b1b6394f954903fcc67e12fe9e7001dafd6 upstream.
    
    If mappings points to an invalid memory, we will be invalid accessing
    it. Solve it by initializing the value of the variable mapping and by
    changing the order in the conditional statement (to avoid accessing
    mapping->id if not needed).
    
    Fix:
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] PREEMPT SMP KASAN NOPTI
    
    Fixes: 6350d6a4ed487 ("media: uvcvideo: Set error_idx during ctrl_commit errors")
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e15cf870d2c748e45d45ffc4d5b1dc1b7d50120
Author: Haoyu Li <lihaoyu499@gmail.com>
Date:   Thu Jan 30 19:58:11 2025 +0800

    drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl
    
    commit 819cec1dc47cdeac8f5dd6ba81c1dbee2a68c3bb upstream.
    
    In the "pmcmd_ioctl" function, three memory objects allocated by
    kmalloc are initialized by "hcall_get_cpu_state", which are then
    copied to user space. The initializer is indeed implemented in
    "acrn_hypercall2" (arch/x86/include/asm/acrn.h). There is a risk of
    information leakage due to uninitialized bytes.
    
    Fixes: 3d679d5aec64 ("virt: acrn: Introduce interfaces to query C-states and P-states allowed by hypervisor")
    Signed-off-by: Haoyu Li <lihaoyu499@gmail.com>
    Cc: stable <stable@kernel.org>
    Acked-by: Fei Li <fei1.li@intel.com>
    Link: https://lore.kernel.org/r/20250130115811.92424-1-lihaoyu499@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ade9362dec1856bb349aefcb6477f76aad7b04c7
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Fri Feb 7 00:03:11 2025 +0200

    eeprom: digsy_mtc: Make GPIO lookup table match the device
    
    commit 038ef0754aae76f79b147b8867f9250e6a976872 upstream.
    
    The dev_id value in the GPIO lookup table must match to
    the device instance name, which in this case is combined
    of name and platform device ID, i.e. "spi_gpio.1". But
    the table assumed that there was no platform device ID
    defined, which is wrong. Fix the dev_id value accordingly.
    
    Fixes: 9b00bc7b901f ("spi: spi-gpio: Rewrite to use GPIO descriptors")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20250206220311.1554075-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7746f3bb8917fccb4571a576f3837d80fc513054
Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Date:   Wed Jan 8 19:09:27 2025 +0530

    bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock
    
    commit a321d163de3d8aa38a6449ab2becf4b1581aed96 upstream.
    
    There are multiple places from where the recovery work gets scheduled
    asynchronously. Also, there are multiple places where the caller waits
    synchronously for the recovery to be completed. One such place is during
    the PM shutdown() callback.
    
    If the device is not alive during recovery_work, it will try to reset the
    device using pci_reset_function(). This function internally will take the
    device_lock() first before resetting the device. By this time, if the lock
    has already been acquired, then recovery_work will get stalled while
    waiting for the lock. And if the lock was already acquired by the caller
    which waits for the recovery_work to be completed, it will lead to
    deadlock.
    
    This is what happened on the X1E80100 CRD device when the device died
    before shutdown() callback. Driver core calls the driver's shutdown()
    callback while holding the device_lock() leading to deadlock.
    
    And this deadlock scenario can occur on other paths as well, like during
    the PM suspend() callback, where the driver core would hold the
    device_lock() before calling driver's suspend() callback. And if the
    recovery_work was already started, it could lead to deadlock. This is also
    observed on the X1E80100 CRD.
    
    So to fix both issues, use pci_try_reset_function() in recovery_work. This
    function first checks for the availability of the device_lock() before
    trying to reset the device. If the lock is available, it will acquire it
    and reset the device. Otherwise, it will return -EAGAIN. If that happens,
    recovery_work will fail with the error message "Recovery failed" as not
    much could be done.
    
    Cc: stable@vger.kernel.org # 5.12
    Reported-by: Johan Hovold <johan@kernel.org>
    Closes: https://lore.kernel.org/mhi/Z1me8iaK7cwgjL92@hovoldconsulting.com
    Fixes: 7389337f0a78 ("mhi: pci_generic: Add suspend/resume/recovery procedure")
    Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
    Tested-by: Johan Hovold <johan+linaro@kernel.org>
    Analyzed-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/mhi/Z2KKjWY2mPen6GPL@hovoldconsulting.com/
    Reviewed-by: Loic Poulain <loic.poulain@linaro.org>
    Link: https://lore.kernel.org/r/20250108-mhi_recovery_fix-v1-1-a0a00a17da46@linaro.org
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 09d34c4cbc38485c7514069f25348e439555b282
Author: Visweswara Tanuku <quic_vtanuku@quicinc.com>
Date:   Fri Jan 24 04:57:40 2025 -0800

    slimbus: messaging: Free transaction ID in delayed interrupt scenario
    
    commit dcb0d43ba8eb9517e70b1a0e4b0ae0ab657a0e5a upstream.
    
    In case of interrupt delay for any reason, slim_do_transfer()
    returns timeout error but the transaction ID (TID) is not freed.
    This results into invalid memory access inside
    qcom_slim_ngd_rx_msgq_cb() due to invalid TID.
    
    Fix the issue by freeing the TID in slim_do_transfer() before
    returning timeout error to avoid invalid memory access.
    
    Call trace:
    __memcpy_fromio+0x20/0x190
    qcom_slim_ngd_rx_msgq_cb+0x130/0x290 [slim_qcom_ngd_ctrl]
    vchan_complete+0x2a0/0x4a0
    tasklet_action_common+0x274/0x700
    tasklet_action+0x28/0x3c
    _stext+0x188/0x620
    run_ksoftirqd+0x34/0x74
    smpboot_thread_fn+0x1d8/0x464
    kthread+0x178/0x238
    ret_from_fork+0x10/0x20
    Code: aa0003e8 91000429 f100044a 3940002b (3800150b)
    ---[ end trace 0fe00bec2b975c99 ]---
    Kernel panic - not syncing: Oops: Fatal exception in interrupt.
    
    Fixes: afbdcc7c384b ("slimbus: Add messaging APIs to slimbus framework")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Visweswara Tanuku <quic_vtanuku@quicinc.com>
    Link: https://lore.kernel.org/r/20250124125740.16897-1-quic_vtanuku@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1437d13ca83e7ecde3a5e9c777b7ab52fa31acf8
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Tue Feb 11 20:50:17 2025 +0200

    intel_th: pci: Add Panther Lake-P/U support
    
    commit 49114ff05770264ae233f50023fc64a719a9dcf9 upstream.
    
    Add support for the Trace Hub in Panther Lake-P/U.
    
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/20250211185017.1759193-6-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cebbd798ff25b9dc873ec1cb8063b8eb244436e0
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Tue Feb 11 20:50:16 2025 +0200

    intel_th: pci: Add Panther Lake-H support
    
    commit a70034d6c0d5f3cdee40bb00a578e17fd2ebe426 upstream.
    
    Add support for the Trace Hub in Panther Lake-H.
    
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/20250211185017.1759193-5-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8875af55b8259a6685276918612a4fd0cbc3d244
Author: Pawel Chmielewski <pawel.chmielewski@intel.com>
Date:   Tue Feb 11 20:50:15 2025 +0200

    intel_th: pci: Add Arrow Lake support
    
    commit b5edccae9f447a92d475267d94c33f4926963eec upstream.
    
    Add support for the Trace Hub in Arrow Lake.
    
    Signed-off-by: Pawel Chmielewski <pawel.chmielewski@intel.com>
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: stable@kernel.org
    Link: https://lore.kernel.org/r/20250211185017.1759193-4-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1651332291e9faa3e785b1e4db6723ee48d1b80
Author: Alexander Usyskin <alexander.usyskin@intel.com>
Date:   Sun Feb 9 13:05:50 2025 +0200

    mei: me: add panther lake P DID
    
    commit a8e8ffcc3afce2ee5fb70162aeaef3f03573ee1e upstream.
    
    Add Panther Lake P device id.
    
    Cc: stable <stable@kernel.org>
    Co-developed-by: Tomas Winkler <tomasw@gmail.com>
    Signed-off-by: Tomas Winkler <tomasw@gmail.com>
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Link: https://lore.kernel.org/r/20250209110550.1582982-1-alexander.usyskin@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf46f88b92cfc0e32bd8a21ba1273cff13b8745f
Author: Phillip Lougher <phillip@squashfs.org.uk>
Date:   Mon Apr 8 23:02:06 2024 +0100

    Squashfs: check the inode number is not the invalid value of zero
    
    commit 9253c54e01b6505d348afbc02abaa4d9f8a01395 upstream.
    
    Syskiller has produced an out of bounds access in fill_meta_index().
    
    That out of bounds access is ultimately caused because the inode
    has an inode number with the invalid value of zero, which was not checked.
    
    The reason this causes the out of bounds access is due to following
    sequence of events:
    
    1. Fill_meta_index() is called to allocate (via empty_meta_index())
       and fill a metadata index.  It however suffers a data read error
       and aborts, invalidating the newly returned empty metadata index.
       It does this by setting the inode number of the index to zero,
       which means unused (zero is not a valid inode number).
    
    2. When fill_meta_index() is subsequently called again on another
       read operation, locate_meta_index() returns the previous index
       because it matches the inode number of 0.  Because this index
       has been returned it is expected to have been filled, and because
       it hasn't been, an out of bounds access is performed.
    
    This patch adds a sanity check which checks that the inode number
    is not zero when the inode is created and returns -EINVAL if it is.
    
    [phillip@squashfs.org.uk: whitespace fix]
      Link: https://lkml.kernel.org/r/20240409204723.446925-1-phillip@squashfs.org.uk
    Link: https://lkml.kernel.org/r/20240408220206.435788-1-phillip@squashfs.org.uk
    Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
    Reported-by: "Ubisectech Sirius" <bugreport@ubisectech.com>
    Closes: https://lore.kernel.org/lkml/87f5c007-b8a5-41ae-8b57-431e924c5915.bugreport@ubisectech.com/
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
    Signed-off-by: He Zhe <zhe.he@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ac9a7d4c9007f708ecf848c35e07778c420ec295
Author: Michal Pecio <michal.pecio@gmail.com>
Date:   Tue Feb 25 11:59:27 2025 +0200

    usb: xhci: Enable the TRB overfetch quirk on VIA VL805
    
    commit c133ec0e5717868c9967fa3df92a55e537b1aead upstream.
    
    Raspberry Pi is a major user of those chips and they discovered a bug -
    when the end of a transfer ring segment is reached, up to four TRBs can
    be prefetched from the next page even if the segment ends with link TRB
    and on page boundary (the chip claims to support standard 4KB pages).
    
    It also appears that if the prefetched TRBs belong to a different ring
    whose doorbell is later rung, they may be used without refreshing from
    system RAM and the endpoint will stay idle if their cycle bit is stale.
    
    Other users complain about IOMMU faults on x86 systems, unsurprisingly.
    
    Deal with it by using existing quirk which allocates a dummy page after
    each transfer ring segment. This was seen to resolve both problems. RPi
    came up with a more efficient solution, shortening each segment by four
    TRBs, but it complicated the driver and they ditched it for this quirk.
    
    Also rename the quirk and add VL805 device ID macro.
    
    Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
    Link: https://github.com/raspberrypi/linux/issues/4685
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=215906
    CC: stable@vger.kernel.org
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20250225095927.2512358-2-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41eae5d6e308d33fc794e4ba135bf1bff7fd8800
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Nov 6 12:14:48 2024 +0200

    xhci: pci: Fix indentation in the PCI device ID definitions
    
    commit 0309ed83791c079f239c13e0c605210425cd1a61 upstream.
    
    Some of the definitions are missing the one TAB, add it to them.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20241106101459.775897-23-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3a772540220af317ec9e4b8ebcdec6eb5afe9c2
Author: Prashanth K <prashanth.k@oss.qualcomm.com>
Date:   Mon Feb 24 14:26:04 2025 +0530

    usb: gadget: Check bmAttributes only if configuration is valid
    
    commit 8e812e9355a6f14dffd54a33d951ca403b9732f5 upstream.
    
    If the USB configuration is not valid, then avoid checking for
    bmAttributes to prevent null pointer deference.
    
    Cc: stable <stable@kernel.org>
    Fixes: 40e89ff5750f ("usb: gadget: Set self-powered based on MaxPower and bmAttributes")
    Signed-off-by: Prashanth K <prashanth.k@oss.qualcomm.com>
    Link: https://lore.kernel.org/r/20250224085604.417327-1-prashanth.k@oss.qualcomm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e6b36d92dce283324d7f39b9b5010d7c7fccc1f
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Thu Feb 20 13:03:14 2025 +0100

    usb: gadget: Fix setting self-powered state on suspend
    
    commit c783e1258f29c5caac9eea0aea6b172870f1baf8 upstream.
    
    cdev->config might be NULL, so check it before dereferencing.
    
    CC: stable <stable@kernel.org>
    Fixes: 40e89ff5750f ("usb: gadget: Set self-powered based on MaxPower and bmAttributes")
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Link: https://lore.kernel.org/r/20250220120314.3614330-1-m.szyprowski@samsung.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b229d7b8a59042d74a405b9932c120ca368f376
Author: Prashanth K <prashanth.k@oss.qualcomm.com>
Date:   Mon Feb 17 17:33:28 2025 +0530

    usb: gadget: Set self-powered based on MaxPower and bmAttributes
    
    commit 40e89ff5750fca2c1d6da93f98a2038716bba86c upstream.
    
    Currently the USB gadget will be set as bus-powered based solely
    on whether its bMaxPower is greater than 100mA, but this may miss
    devices that may legitimately draw less than 100mA but still want
    to report as bus-powered. Similarly during suspend & resume, USB
    gadget is incorrectly marked as bus/self powered without checking
    the bmAttributes field. Fix these by configuring the USB gadget
    as self or bus powered based on bmAttributes, and explicitly set
    it as bus-powered if it draws more than 100mA.
    
    Cc: stable <stable@kernel.org>
    Fixes: 5e5caf4fa8d3 ("usb: gadget: composite: Inform controller driver of self-powered")
    Signed-off-by: Prashanth K <prashanth.k@oss.qualcomm.com>
    Link: https://lore.kernel.org/r/20250217120328.2446639-1-prashanth.k@oss.qualcomm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a0dc4a3bdede6ca74778fe4a600a005212c35bda
Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Date:   Wed Feb 19 12:47:00 2025 +0100

    usb: typec: tcpci_rt1711h: Unmask alert interrupts to fix functionality
    
    commit d6b82dafd17db0658f089b9cdec573982ca82bc5 upstream.
    
    During probe, the TCPC alert interrupts are getting masked to
    avoid unwanted interrupts during chip setup: this is ok to do
    but there is no unmasking happening at any later time, which
    means that the chip will not raise any interrupt, essentially
    making it not functional as, while internally it does perform
    all of the intended functions, it won't signal anything to the
    outside.
    
    Unmask the alert interrupts to fix functionality.
    
    Fixes: ce08eaeb6388 ("staging: typec: rt1711h typec chip driver")
    Cc: stable <stable@kernel.org>
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20250219114700.41700-1-angelogioacchino.delregno@collabora.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d8b87be73e9df1a2b818be3544a0f7377008994
Author: Fedor Pchelkin <boddah8794@gmail.com>
Date:   Mon Feb 17 13:54:40 2025 +0300

    usb: typec: ucsi: increase timeout for PPM reset operations
    
    commit bf4f9ae1cb08ccaafbe6874be6c46f59b83ae778 upstream.
    
    It is observed that on some systems an initial PPM reset during the boot
    phase can trigger a timeout:
    
    [    6.482546] ucsi_acpi USBC000:00: failed to reset PPM!
    [    6.482551] ucsi_acpi USBC000:00: error -ETIMEDOUT: PPM init failed
    
    Still, increasing the timeout value, albeit being the most straightforward
    solution, eliminates the problem: the initial PPM reset may take up to
    ~8000-10000ms on some Lenovo laptops. When it is reset after the above
    period of time (or even if ucsi_reset_ppm() is not called overall), UCSI
    works as expected.
    
    Moreover, if the ucsi_acpi module is loaded/unloaded manually after the
    system has booted, reading the CCI values and resetting the PPM works
    perfectly, without any timeout. Thus it's only a boot-time issue.
    
    The reason for this behavior is not clear but it may be the consequence
    of some tricks that the firmware performs or be an actual firmware bug.
    As a workaround, increase the timeout to avoid failing the UCSI
    initialization prematurely.
    
    Fixes: b1b59e16075f ("usb: typec: ucsi: Increase command completion timeout value")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Fedor Pchelkin <boddah8794@gmail.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Link: https://lore.kernel.org/r/20250217105442.113486-3-boddah8794@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 00ac1ea9c0cd33d4205e3c43f6d02314250e6bcb
Author: Badhri Jagan Sridharan <badhri@google.com>
Date:   Sun Feb 16 22:30:02 2025 +0000

    usb: dwc3: gadget: Prevent irq storm when TH re-executes
    
    commit 69c58deec19628c8a686030102176484eb94fed4 upstream.
    
    While commit d325a1de49d6 ("usb: dwc3: gadget: Prevent losing events in
    event cache") makes sure that top half(TH) does not end up overwriting the
    cached events before processing them when the TH gets invoked more than one
    time, returning IRQ_HANDLED results in occasional irq storm where the TH
    hogs the CPU. The irq storm can be prevented by the flag before event
    handler busy is cleared. Default enable interrupt moderation in all
    versions which support them.
    
    ftrace event stub during dwc3 irq storm:
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000866: irq_handler_exit: irq=14 ret=handled
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000872: irq_handler_entry: irq=504 name=dwc3
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000874: irq_handler_exit: irq=504 ret=handled
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000881: irq_handler_entry: irq=504 name=dwc3
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000883: irq_handler_exit: irq=504 ret=handled
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000889: irq_handler_entry: irq=504 name=dwc3
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000892: irq_handler_exit: irq=504 ret=handled
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000898: irq_handler_entry: irq=504 name=dwc3
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000901: irq_handler_exit: irq=504 ret=handled
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000907: irq_handler_entry: irq=504 name=dwc3
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000909: irq_handler_exit: irq=504 ret=handled
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000915: irq_handler_entry: irq=504 name=dwc3
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000918: irq_handler_exit: irq=504 ret=handled
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000924: irq_handler_entry: irq=504 name=dwc3
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000927: irq_handler_exit: irq=504 ret=handled
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000933: irq_handler_entry: irq=504 name=dwc3
        irq/504_dwc3-1111  ( 1111) [000] .... 70.000935: irq_handler_exit: irq=504 ret=handled
        ....
    
    Cc: stable <stable@kernel.org>
    Suggested-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Fixes: d325a1de49d6 ("usb: dwc3: gadget: Prevent losing events in event cache")
    Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/20250216223003.3568039-1-badhri@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78669d6f45a5ab5db8ba2de8de3f23f38d966c17
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Thu Jan 30 23:49:31 2025 +0000

    usb: dwc3: Set SUSPENDENABLE soon after phy init
    
    commit cc5bfc4e16fc1d1c520cd7bb28646e82b6e69217 upstream.
    
    After phy initialization, some phy operations can only be executed while
    in lower P states. Ensure GUSB3PIPECTL.SUSPENDENABLE and
    GUSB2PHYCFG.SUSPHY are set soon after initialization to avoid blocking
    phy ops.
    
    Previously the SUSPENDENABLE bits are only set after the controller
    initialization, which may not happen right away if there's no gadget
    driver or xhci driver bound. Revise this to clear SUSPENDENABLE bits
    only when there's mode switching (change in GCTL.PRTCAPDIR).
    
    Fixes: 6d735722063a ("usb: dwc3: core: Prevent phy suspend during init")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/633aef0afee7d56d2316f7cc3e1b2a6d518a8cc9.1738280911.git.Thinh.Nguyen@synopsys.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf4409f84023b52b5e9b36c0a071a121eee42138
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Thu Feb 13 15:22:57 2025 +0300

    usb: atm: cxacru: fix a flaw in existing endpoint checks
    
    commit c90aad369899a607cfbc002bebeafd51e31900cd upstream.
    
    Syzbot once again identified a flaw in usb endpoint checking, see [1].
    This time the issue stems from a commit authored by me (2eabb655a968
    ("usb: atm: cxacru: fix endpoint checking in cxacru_bind()")).
    
    While using usb_find_common_endpoints() may usually be enough to
    discard devices with wrong endpoints, in this case one needs more
    than just finding and identifying the sufficient number of endpoints
    of correct types - one needs to check the endpoint's address as well.
    
    Since cxacru_bind() fills URBs with CXACRU_EP_CMD address in mind,
    switch the endpoint verification approach to usb_check_XXX_endpoints()
    instead to fix incomplete ep testing.
    
    [1] Syzbot report:
    usb 5-1: BOGUS urb xfer, pipe 3 != type 1
    WARNING: CPU: 0 PID: 1378 at drivers/usb/core/urb.c:504 usb_submit_urb+0xc4e/0x18c0 drivers/usb/core/urb.c:503
    ...
    RIP: 0010:usb_submit_urb+0xc4e/0x18c0 drivers/usb/core/urb.c:503
    ...
    Call Trace:
     <TASK>
     cxacru_cm+0x3c8/0xe50 drivers/usb/atm/cxacru.c:649
     cxacru_card_status drivers/usb/atm/cxacru.c:760 [inline]
     cxacru_bind+0xcf9/0x1150 drivers/usb/atm/cxacru.c:1223
     usbatm_usb_probe+0x314/0x1d30 drivers/usb/atm/usbatm.c:1058
     cxacru_usb_probe+0x184/0x220 drivers/usb/atm/cxacru.c:1377
     usb_probe_interface+0x641/0xbb0 drivers/usb/core/driver.c:396
     really_probe+0x2b9/0xad0 drivers/base/dd.c:658
     __driver_probe_device+0x1a2/0x390 drivers/base/dd.c:800
     driver_probe_device+0x50/0x430 drivers/base/dd.c:830
    ...
    
    Reported-and-tested-by: syzbot+ccbbc229a024fa3e13b5@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=ccbbc229a024fa3e13b5
    Fixes: 2eabb655a968 ("usb: atm: cxacru: fix endpoint checking in cxacru_bind()")
    Cc: stable@kernel.org
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Link: https://lore.kernel.org/r/20250213122259.730772-1-n.zhandarovich@fintech.ru
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3248c1f833f924246cb98ce7da4569133c1b2292
Author: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Date:   Tue Feb 25 13:02:48 2025 +0200

    usb: renesas_usbhs: Flush the notify_hotplug_work
    
    commit 552ca6b87e3778f3dd5b87842f95138162e16c82 upstream.
    
    When performing continuous unbind/bind operations on the USB drivers
    available on the Renesas RZ/G2L SoC, a kernel crash with the message
    "Unable to handle kernel NULL pointer dereference at virtual address"
    may occur. This issue points to the usbhsc_notify_hotplug() function.
    
    Flush the delayed work to avoid its execution when driver resources are
    unavailable.
    
    Fixes: bc57381e6347 ("usb: renesas_usbhs: use delayed_work instead of work_struct")
    Cc: stable <stable@kernel.org>
    Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    Link: https://lore.kernel.org/r/20250225110248.870417-4-claudiu.beznea.uj@bp.renesas.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1ad97347a45c99c4e7ea39602df19619671518c
Author: Miao Li <limiao@kylinos.cn>
Date:   Tue Mar 4 15:07:57 2025 +0800

    usb: quirks: Add DELAY_INIT and NO_LPM for Prolific Mass Storage Card Reader
    
    commit ff712188daa3fe3ce7e11e530b4dca3826dae14a upstream.
    
    When used on Huawei hisi platforms, Prolific Mass Storage Card Reader
    which the VID:PID is in 067b:2731 might fail to enumerate at boot time
    and doesn't work well with LPM enabled, combination quirks:
            USB_QUIRK_DELAY_INIT + USB_QUIRK_NO_LPM
    fixed the problems.
    
    Signed-off-by: Miao Li <limiao@kylinos.cn>
    Cc: stable <stable@kernel.org>
    Link: https://lore.kernel.org/r/20250304070757.139473-1-limiao870622@163.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 894b4c75eadf255763bc492f16132d35cf3d3562
Author: Pawel Laszczak <pawell@cadence.com>
Date:   Fri Feb 28 07:50:25 2025 +0000

    usb: hub: lack of clearing xHC resources
    
    commit 2b66ef84d0d2a0ea955b40bd306f5e3abbc5cf9c upstream.
    
    The xHC resources allocated for USB devices are not released in correct
    order after resuming in case when while suspend device was reconnected.
    
    This issue has been detected during the fallowing scenario:
    - connect hub HS to root port
    - connect LS/FS device to hub port
    - wait for enumeration to finish
    - force host to suspend
    - reconnect hub attached to root port
    - wake host
    
    For this scenario during enumeration of USB LS/FS device the Cadence xHC
    reports completion error code for xHC commands because the xHC resources
    used for devices has not been properly released.
    XHCI specification doesn't mention that device can be reset in any order
    so, we should not treat this issue as Cadence xHC controller bug.
    Similar as during disconnecting in this case the device resources should
    be cleared starting form the last usb device in tree toward the root hub.
    To fix this issue usbcore driver should call hcd->driver->reset_device
    for all USB devices connected to hub which was reconnected while
    suspending.
    
    Fixes: 3d82904559f4 ("usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Pawel Laszczak <pawell@cadence.com>
    Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
    Link: https://lore.kernel.org/r/PH7PR07MB953841E38C088678ACDCF6EEDDCC2@PH7PR07MB9538.namprd07.prod.outlook.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec4b6f492ea1f6182ec6072b31214da042f72d89
Author: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Date:   Tue Feb 25 13:02:47 2025 +0200

    usb: renesas_usbhs: Use devm_usb_get_phy()
    
    commit e0c92440938930e7fa7aa6362780d39cdea34449 upstream.
    
    The gpriv->transceiver is retrieved in probe() through usb_get_phy() but
    never released. Use devm_usb_get_phy() to handle this scenario.
    
    This issue was identified through code investigation. No issue was found
    without this change.
    
    Fixes: b5a2875605ca ("usb: renesas_usbhs: Allow an OTG PHY driver to provide VBUS")
    Cc: stable <stable@kernel.org>
    Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    Link: https://lore.kernel.org/r/20250225110248.870417-3-claudiu.beznea.uj@bp.renesas.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 50b9010da101d282f0666f319746630121f8274c
Author: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Date:   Tue Feb 25 13:02:46 2025 +0200

    usb: renesas_usbhs: Call clk_put()
    
    commit b5ea08aa883da05106fcc683d12489a4292d1122 upstream.
    
    Clocks acquired with of_clk_get() need to be freed with clk_put(). Call
    clk_put() on priv->clks[0] on error path.
    
    Fixes: 3df0e240caba ("usb: renesas_usbhs: Add multiple clocks management")
    Cc: stable <stable@kernel.org>
    Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    Link: https://lore.kernel.org/r/20250225110248.870417-2-claudiu.beznea.uj@bp.renesas.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30e37db261208480a1597cdfde421a54799013c7
Author: Christian Heusel <christian@heusel.eu>
Date:   Mon Feb 24 09:32:59 2025 +0100

    Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection"
    
    commit 2397d61ee45cddb8f3bd3a3a9840ef0f0b5aa843 upstream.
    
    This reverts commit 235b630eda072d7e7b102ab346d6b8a2c028a772.
    
    This commit was found responsible for issues with SD card recognition,
    as users had to re-insert their cards in the readers and wait for a
    while. As for some people the SD card was involved in the boot process
    it also caused boot failures.
    
    Cc: stable@vger.kernel.org
    Link: https://bbs.archlinux.org/viewtopic.php?id=303321
    Fixes: 235b630eda07 ("drivers/card_reader/rtsx_usb: Restore interrupt based detection")
    Reported-by: qf <quintafeira@tutanota.com>
    Closes: https://lore.kernel.org/all/1de87dfa-1e81-45b7-8dcb-ad86c21d5352@heusel.eu
    Signed-off-by: Christian Heusel <christian@heusel.eu>
    Link: https://lore.kernel.org/r/20250224-revert-sdcard-patch-v1-1-d1a457fbb796@heusel.eu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 329393a0325b36c2940b929ba82292f9635f5c80
Author: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Date:   Wed Mar 5 16:37:50 2025 +0000

    gpio: rcar: Fix missing of_node_put() call
    
    [ Upstream commit 391b41f983bf7ff853de44704d8e14e7cc648a9b ]
    
    of_parse_phandle_with_fixed_args() requires its caller to
    call into of_node_put() on the node pointer from the output
    structure, but such a call is currently missing.
    
    Call into of_node_put() to rectify that.
    
    Fixes: 159f8a0209af ("gpio-rcar: Add DT support")
    Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
    Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20250305163753.34913-2-fabrizio.castro.jz@renesas.com
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f185b6d0aeea5e5aa091716d7457bd5389e82bca
Author: Justin Iurman <justin.iurman@uliege.be>
Date:   Wed Mar 5 09:16:55 2025 +0100

    net: ipv6: fix missing dst ref drop in ila lwtunnel
    
    [ Upstream commit 5da15a9c11c1c47ef573e6805b60a7d8a1687a2a ]
    
    Add missing skb_dst_drop() to drop reference to the old dst before
    adding the new dst to the skb.
    
    Fixes: 79ff2fc31e0f ("ila: Cache a route to translated address")
    Cc: Tom Herbert <tom@herbertland.com>
    Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
    Link: https://patch.msgid.link/20250305081655.19032-1-justin.iurman@uliege.be
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 82043c99801e35ee7807134920c2ed4312ab4b67
Author: Justin Iurman <justin.iurman@uliege.be>
Date:   Tue Mar 4 19:10:39 2025 +0100

    net: ipv6: fix dst ref loop in ila lwtunnel
    
    [ Upstream commit 0e7633d7b95b67f1758aea19f8e85621c5f506a3 ]
    
    This patch follows commit 92191dd10730 ("net: ipv6: fix dst ref loops in
    rpl, seg6 and ioam6 lwtunnels") and, on a second thought, the same patch
    is also needed for ila (even though the config that triggered the issue
    was pathological, but still, we don't want that to happen).
    
    Fixes: 79ff2fc31e0f ("ila: Cache a route to translated address")
    Cc: Tom Herbert <tom@herbertland.com>
    Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
    Link: https://patch.msgid.link/20250304181039.35951-1-justin.iurman@uliege.be
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5cb300dcdd27e6a351ac02541e0231261c775852
Author: Zecheng Li <zecheng@google.com>
Date:   Tue Mar 4 21:40:31 2025 +0000

    sched/fair: Fix potential memory corruption in child_cfs_rq_on_list
    
    [ Upstream commit 3b4035ddbfc8e4521f85569998a7569668cccf51 ]
    
    child_cfs_rq_on_list attempts to convert a 'prev' pointer to a cfs_rq.
    This 'prev' pointer can originate from struct rq's leaf_cfs_rq_list,
    making the conversion invalid and potentially leading to memory
    corruption. Depending on the relative positions of leaf_cfs_rq_list and
    the task group (tg) pointer within the struct, this can cause a memory
    fault or access garbage data.
    
    The issue arises in list_add_leaf_cfs_rq, where both
    cfs_rq->leaf_cfs_rq_list and rq->leaf_cfs_rq_list are added to the same
    leaf list. Also, rq->tmp_alone_branch can be set to rq->leaf_cfs_rq_list.
    
    This adds a check `if (prev == &rq->leaf_cfs_rq_list)` after the main
    conditional in child_cfs_rq_on_list. This ensures that the container_of
    operation will convert a correct cfs_rq struct.
    
    This check is sufficient because only cfs_rqs on the same CPU are added
    to the list, so verifying the 'prev' pointer against the current rq's list
    head is enough.
    
    Fixes a potential memory corruption issue that due to current struct
    layout might not be manifesting as a crash but could lead to unpredictable
    behavior when the layout changes.
    
    Fixes: fdaba61ef8a2 ("sched/fair: Ensure that the CFS parent is added after unthrottling")
    Signed-off-by: Zecheng Li <zecheng@google.com>
    Reviewed-and-tested-by: K Prateek Nayak <kprateek.nayak@amd.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
    Link: https://lore.kernel.org/r/20250304214031.2882646-1-zecheng@google.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 49bf3147718449e5b565ffb1c5cff364d559046e
Author: Jason Xing <kerneljasonxing@gmail.com>
Date:   Tue Mar 4 08:44:29 2025 +0800

    net-timestamp: support TCP GSO case for a few missing flags
    
    [ Upstream commit 3c9231ea6497dfc50ac0ef69fff484da27d0df66 ]
    
    When I read through the TSO codes, I found out that we probably
    miss initializing the tx_flags of last seg when TSO is turned
    off, which means at the following points no more timestamp
    (for this last one) will be generated. There are three flags
    to be handled in this patch:
    1. SKBTX_HW_TSTAMP
    2. SKBTX_BPF
    3. SKBTX_SCHED_TSTAMP
    Note that SKBTX_BPF[1] was added in 6.14.0-rc2 by commit
    6b98ec7e882af ("bpf: Add BPF_SOCK_OPS_TSTAMP_SCHED_CB callback")
    and only belongs to net-next branch material for now. The common
    issue of the above three flags can be fixed by this single patch.
    
    This patch initializes the tx_flags to SKBTX_ANY_TSTAMP like what
    the UDP GSO does to make the newly segmented last skb inherit the
    tx_flags so that requested timestamp will be generated in each
    certain layer, or else that last one has zero value of tx_flags
    which leads to no timestamp at all.
    
    Fixes: 4ed2d765dfacc ("net-timestamp: TCP timestamping")
    Signed-off-by: Jason Xing <kerneljasonxing@gmail.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 413e908f13cec9a35cbcd012a63564095731fd37
Author: Namjae Jeon <linkinjeon@kernel.org>
Date:   Fri Jan 31 12:55:55 2025 +0900

    exfat: fix soft lockup in exfat_clear_bitmap
    
    [ Upstream commit 9da33619e0ca53627641bc97d1b93ec741299111 ]
    
    bitmap clear loop will take long time in __exfat_free_cluster()
    if data size of file/dir enty is invalid.
    If cluster bit in bitmap is already clear, stop clearing bitmap go to
    out of loop.
    
    Fixes: 31023864e67a ("exfat: add fat entry operations")
    Reported-by: Kun Hu <huk23@m.fudan.edu.cn>, Jiaji Qin <jjtan24@m.fudan.edu.cn>
    Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
    Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d099f3f7b27085df73f9ffb69ae5af583816bdc
Author: Jarkko Sakkinen <jarkko@kernel.org>
Date:   Wed Mar 5 07:00:05 2025 +0200

    x86/sgx: Fix size overflows in sgx_encl_create()
    
    [ Upstream commit 0d3e0dfd68fb9e6b0ec865be9f3377cc3ff55733 ]
    
    The total size calculated for EPC can overflow u64 given the added up page
    for SECS.  Further, the total size calculated for shmem can overflow even
    when the EPC size stays within limits of u64, given that it adds the extra
    space for 128 byte PCMD structures (one for each page).
    
    Address this by pre-evaluating the micro-architectural requirement of
    SGX: the address space size must be power of two. This is eventually
    checked up by ECREATE but the pre-check has the additional benefit of
    making sure that there is some space for additional data.
    
    Fixes: 888d24911787 ("x86/sgx: Add SGX_IOC_ENCLAVE_CREATE")
    Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Acked-by: Dave Hansen <dave.hansen@intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Link: https://lore.kernel.org/r/20250305050006.43896-1-jarkko@kernel.org
    
    Closes: https://lore.kernel.org/linux-sgx/c87e01a0-e7dd-4749-a348-0980d3444f04@stanley.mountain/
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a2d112a3b4083fc720a430a37505bbfcbe7f1492
Author: Reinette Chatre <reinette.chatre@intel.com>
Date:   Tue May 10 11:08:50 2022 -0700

    x86/sgx: Support VA page allocation without reclaiming
    
    [ Upstream commit a76e7f1f18884a94998ca82862c0a4e6d0fd2933 ]
    
    struct sgx_encl should be protected with the mutex
    sgx_encl->lock. One exception is sgx_encl->page_cnt that
    is incremented (in sgx_encl_grow()) when an enclave page
    is added to the enclave. The reason the mutex is not held
    is to allow the reclaimer to be called directly if there are
    no EPC pages (in support of a new VA page) available at the time.
    
    Incrementing sgx_encl->page_cnt without sgc_encl->lock held
    is currently (before SGX2) safe from concurrent updates because
    all paths in which sgx_encl_grow() is called occur before
    enclave initialization and are protected with an atomic
    operation on SGX_ENCL_IOCTL.
    
    SGX2 includes support for dynamically adding pages after
    enclave initialization where the protection of SGX_ENCL_IOCTL
    is not available.
    
    Make direct reclaim of EPC pages optional when new VA pages
    are added to the enclave. Essentially the existing "reclaim"
    flag used when regular EPC pages are added to an enclave
    becomes available to the caller when used to allocate VA pages
    instead of always being "true".
    
    When adding pages without invoking the reclaimer it is possible
    to do so with sgx_encl->lock held, gaining its protection against
    concurrent updates to sgx_encl->page_cnt after enclave
    initialization.
    
    No functional change.
    
    Reported-by: Haitao Huang <haitao.huang@intel.com>
    Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
    Link: https://lkml.kernel.org/r/42c5934c229982ee67982bb97c6ab34bde758620.1652137848.git.reinette.chatre@intel.com
    Stable-dep-of: 0d3e0dfd68fb ("x86/sgx: Fix size overflows in sgx_encl_create()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 51e5bc6d39d10d6a93a80a420238e01efed16885
Author: Reinette Chatre <reinette.chatre@intel.com>
Date:   Tue May 10 11:08:48 2022 -0700

    x86/sgx: Export sgx_encl_{grow,shrink}()
    
    [ Upstream commit 3a5351415228d06c988a1e610e71d3889f707ac9 ]
    
    In order to use sgx_encl_{grow,shrink}() in the page augmentation code
    located in encl.c, export these functions.
    
    Suggested-by: Jarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
    Link: https://lkml.kernel.org/r/d51730acf54b6565710b2261b3099517b38c2ec4.1652137848.git.reinette.chatre@intel.com
    Stable-dep-of: 0d3e0dfd68fb ("x86/sgx: Fix size overflows in sgx_encl_create()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 48fa260f15b695572f804429fcbcf70bd5715116
Author: Reinette Chatre <reinette.chatre@intel.com>
Date:   Tue May 10 11:08:44 2022 -0700

    x86/sgx: Move PTE zap code to new sgx_zap_enclave_ptes()
    
    [ Upstream commit f89c2f9bf5a64f619de06ded4349dff5a35da860 ]
    
    The SGX reclaimer removes page table entries pointing to pages that are
    moved to swap.
    
    SGX2 enables changes to pages belonging to an initialized enclave, thus
    enclave pages may have their permission or type changed while the page
    is being accessed by an enclave. Supporting SGX2 requires page table
    entries to be removed so that any cached mappings to changed pages
    are removed. For example, with the ability to change enclave page types
    a regular enclave page may be changed to a Thread Control Structure
    (TCS) page that may not be accessed by an enclave.
    
    Factor out the code removing page table entries to a separate function
    sgx_zap_enclave_ptes(), fixing accuracy of comments in the process,
    and make it available to the upcoming SGX2 code.
    
    Place sgx_zap_enclave_ptes() with the rest of the enclave code in
    encl.c interacting with the page table since this code is no longer
    unique to the reclaimer.
    
    Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
    Link: https://lkml.kernel.org/r/b010cdf01d7ce55dd0f00e883b7ccbd9db57160a.1652137848.git.reinette.chatre@intel.com
    Stable-dep-of: 0d3e0dfd68fb ("x86/sgx: Fix size overflows in sgx_encl_create()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 110a40c5141547dcf239764bf93e1a0c1dddb085
Author: Reinette Chatre <reinette.chatre@intel.com>
Date:   Tue May 10 11:08:41 2022 -0700

    x86/sgx: Support loading enclave page without VMA permissions check
    
    [ Upstream commit b3fb517dc6020fec85c82171a909da10c6a6f90a ]
    
    sgx_encl_load_page() is used to find and load an enclave page into
    enclave (EPC) memory, potentially loading it from the backing storage.
    Both usages of sgx_encl_load_page() are during an access to the
    enclave page from a VMA and thus the permissions of the VMA are
    considered before the enclave page is loaded.
    
    SGX2 functions operating on enclave pages belonging to an initialized
    enclave requiring the page to be in EPC. It is thus required to
    support loading enclave pages into the EPC independent from a VMA.
    
    Split the current sgx_encl_load_page() to support the two usages:
    A new call, sgx_encl_load_page_in_vma(), behaves exactly like the
    current sgx_encl_load_page() that takes VMA permissions into account,
    while sgx_encl_load_page() just loads an enclave page into EPC.
    
    VMA, PTE, and EPCM permissions continue to dictate whether
    the pages can be accessed from within an enclave.
    
    Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
    Link: https://lkml.kernel.org/r/d4393513c1f18987c14a490bcf133bfb71a5dc43.1652137848.git.reinette.chatre@intel.com
    Stable-dep-of: 0d3e0dfd68fb ("x86/sgx: Fix size overflows in sgx_encl_create()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0fb7aa04c19eac4417f360a9f7611a60637bdacc
Author: Oscar Maes <oscmaes92@gmail.com>
Date:   Mon Mar 3 16:56:19 2025 +0100

    vlan: enforce underlying device type
    
    [ Upstream commit b33a534610067ade2bdaf2052900aaad99701353 ]
    
    Currently, VLAN devices can be created on top of non-ethernet devices.
    
    Besides the fact that it doesn't make much sense, this also causes a
    bug which leaks the address of a kernel function to usermode.
    
    When creating a VLAN device, we initialize GARP (garp_init_applicant)
    and MRP (mrp_init_applicant) for the underlying device.
    
    As part of the initialization process, we add the multicast address of
    each applicant to the underlying device, by calling dev_mc_add.
    
    __dev_mc_add uses dev->addr_len to determine the length of the new
    multicast address.
    
    This causes an out-of-bounds read if dev->addr_len is greater than 6,
    since the multicast addresses provided by GARP and MRP are only 6
    bytes long.
    
    This behaviour can be reproduced using the following commands:
    
    ip tunnel add gretest mode ip6gre local ::1 remote ::2 dev lo
    ip l set up dev gretest
    ip link add link gretest name vlantest type vlan id 100
    
    Then, the following command will display the address of garp_pdu_rcv:
    
    ip maddr show | grep 01:80:c2:00:00:21
    
    Fix the bug by enforcing the type of the underlying device during VLAN
    device initialization.
    
    Fixes: 22bedad3ce11 ("net: convert multicast list to list_head")
    Reported-by: syzbot+91161fe81857b396c8a0@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/netdev/000000000000ca9a81061a01ec20@google.com/
    Signed-off-by: Oscar Maes <oscmaes92@gmail.com>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Link: https://patch.msgid.link/20250303155619.8918-1-oscmaes92@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4e2191b0fd0c064d37b0db67396216f2d4787e0f
Author: Jiayuan Chen <jiayuan.chen@linux.dev>
Date:   Fri Feb 28 22:14:08 2025 +0800

    ppp: Fix KMSAN uninit-value warning with bpf
    
    [ Upstream commit 4c2d14c40a68678d885eab4008a0129646805bae ]
    
    Syzbot caught an "KMSAN: uninit-value" warning [1], which is caused by the
    ppp driver not initializing a 2-byte header when using socket filter.
    
    The following code can generate a PPP filter BPF program:
    '''
    struct bpf_program fp;
    pcap_t *handle;
    handle = pcap_open_dead(DLT_PPP_PPPD, 65535);
    pcap_compile(handle, &fp, "ip and outbound", 0, 0);
    bpf_dump(&fp, 1);
    '''
    Its output is:
    '''
    (000) ldh [2]
    (001) jeq #0x21 jt 2 jf 5
    (002) ldb [0]
    (003) jeq #0x1 jt 4 jf 5
    (004) ret #65535
    (005) ret #0
    '''
    Wen can find similar code at the following link:
    https://github.com/ppp-project/ppp/blob/master/pppd/options.c#L1680
    The maintainer of this code repository is also the original maintainer
    of the ppp driver.
    
    As you can see the BPF program skips 2 bytes of data and then reads the
    'Protocol' field to determine if it's an IP packet. Then it read the first
    byte of the first 2 bytes to determine the direction.
    
    The issue is that only the first byte indicating direction is initialized
    in current ppp driver code while the second byte is not initialized.
    
    For normal BPF programs generated by libpcap, uninitialized data won't be
    used, so it's not a problem. However, for carefully crafted BPF programs,
    such as those generated by syzkaller [2], which start reading from offset
    0, the uninitialized data will be used and caught by KMSAN.
    
    [1] https://syzkaller.appspot.com/bug?extid=853242d9c9917165d791
    [2] https://syzkaller.appspot.com/text?tag=ReproC&x=11994913980000
    
    Cc: Paul Mackerras <paulus@samba.org>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot+853242d9c9917165d791@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/bpf/000000000000dea025060d6bc3bc@google.com/
    Signed-off-by: Jiayuan Chen <jiayuan.chen@linux.dev>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250228141408.393864-1-jiayuan.chen@linux.dev
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7d8d4529984e2d4a72a6d552fb886233e8e83cb
Author: Peiyang Wang <wangpeiyang1@huawei.com>
Date:   Fri Feb 28 18:52:58 2025 +0800

    net: hns3: make sure ptp clock is unregister and freed if hclge_ptp_get_cycle returns an error
    
    [ Upstream commit b7365eab39831487a84e63a9638209b68dc54008 ]
    
    During the initialization of ptp, hclge_ptp_get_cycle might return an error
    and returned directly without unregister clock and free it. To avoid that,
    call hclge_ptp_destroy_clock to unregist and free clock if
    hclge_ptp_get_cycle failed.
    
    Fixes: 8373cd38a888 ("net: hns3: change the method of obtaining default ptp cycle")
    Signed-off-by: Peiyang Wang <wangpeiyang1@huawei.com>
    Signed-off-by: Jijie Shao <shaojijie@huawei.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250228105258.1243461-1-shaojijie@huawei.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 671aaa17bd3153e25526934f92307169ce927b5e
Author: Nikolay Aleksandrov <razor@blackwall.org>
Date:   Thu Feb 27 18:41:29 2025 +0200

    be2net: fix sleeping while atomic bugs in be_ndo_bridge_getlink
    
    [ Upstream commit 1a82d19ca2d6835904ee71e2d40fd331098f94a0 ]
    
    Partially revert commit b71724147e73 ("be2net: replace polling with
    sleeping in the FW completion path") w.r.t mcc mutex it introduces and the
    use of usleep_range. The be2net be_ndo_bridge_getlink() callback is
    called with rcu_read_lock, so this code has been broken for a long time.
    Both the mutex_lock and the usleep_range can cause the issue Ian Kumlien
    reported[1]. The call path is:
    be_ndo_bridge_getlink -> be_cmd_get_hsw_config -> be_mcc_notify_wait ->
    be_mcc_wait_compl -> usleep_range()
    
    [1] https://lore.kernel.org/netdev/CAA85sZveppNgEVa_FD+qhOMtG_AavK9_mFiU+jWrMtXmwqefGA@mail.gmail.com/
    
    Tested-by: Ian Kumlien <ian.kumlien@gmail.com>
    Fixes: b71724147e73 ("be2net: replace polling with sleeping in the FW completion path")
    Signed-off-by: Nikolay Aleksandrov <razor@blackwall.org>
    Link: https://patch.msgid.link/20250227164129.1201164-1-razor@blackwall.org
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3f9e7298053c8101abaf8b18a5263640f4848f06
Author: Philipp Stanner <phasta@kernel.org>
Date:   Tue Feb 18 13:41:50 2025 +0100

    drm/sched: Fix preprocessor guard
    
    [ Upstream commit 23e0832d6d7be2d3c713f9390c060b6f1c48bf36 ]
    
    When writing the header guard for gpu_scheduler_trace.h, a typo,
    apparently, occurred.
    
    Fix the typo and document the scope of the guard.
    
    Fixes: 353da3c520b4 ("drm/amdgpu: add tracepoint for scheduler (v2)")
    Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
    Signed-off-by: Philipp Stanner <phasta@kernel.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250218124149.118002-2-phasta@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e9813e0887fee12100dff7da8876b0594c1809a6
Author: Xinghuo Chen <xinghuo.chen@foxmail.com>
Date:   Mon Mar 3 07:57:33 2025 -0500

    hwmon: fix a NULL vs IS_ERR_OR_NULL() check in xgene_hwmon_probe()
    
    [ Upstream commit 10fce7ebe888fa8c97eee7e317a47e7603e5e78d ]
    
    The devm_memremap() function returns error pointers on error,
    it doesn't return NULL.
    
    Fixes: c7cefce03e69 ("hwmon: (xgene) access mailbox as RAM")
    Signed-off-by: Xinghuo Chen <xinghuo.chen@foxmail.com>
    Link: https://lore.kernel.org/r/tencent_9AD8E7683EC29CAC97496B44F3F865BA070A@qq.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b6f083db141ece0024be01526aa05aa978811cb
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Feb 27 08:26:42 2025 +0000

    llc: do not use skb_get() before dev_queue_xmit()
    
    [ Upstream commit 64e6a754d33d31aa844b3ee66fb93ac84ca1565e ]
    
    syzbot is able to crash hosts [1], using llc and devices
    not supporting IFF_TX_SKB_SHARING.
    
    In this case, e1000 driver calls eth_skb_pad(), while
    the skb is shared.
    
    Simply replace skb_get() by skb_clone() in net/llc/llc_s_ac.c
    
    Note that e1000 driver might have an issue with pktgen,
    because it does not clear IFF_TX_SKB_SHARING, this is an
    orthogonal change.
    
    We need to audit other skb_get() uses in net/llc.
    
    [1]
    
    kernel BUG at net/core/skbuff.c:2178 !
    Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI
    CPU: 0 UID: 0 PID: 16371 Comm: syz.2.2764 Not tainted 6.14.0-rc4-syzkaller-00052-gac9c34d1e45a #0
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
     RIP: 0010:pskb_expand_head+0x6ce/0x1240 net/core/skbuff.c:2178
    Call Trace:
     <TASK>
      __skb_pad+0x18a/0x610 net/core/skbuff.c:2466
      __skb_put_padto include/linux/skbuff.h:3843 [inline]
      skb_put_padto include/linux/skbuff.h:3862 [inline]
      eth_skb_pad include/linux/etherdevice.h:656 [inline]
      e1000_xmit_frame+0x2d99/0x5800 drivers/net/ethernet/intel/e1000/e1000_main.c:3128
      __netdev_start_xmit include/linux/netdevice.h:5151 [inline]
      netdev_start_xmit include/linux/netdevice.h:5160 [inline]
      xmit_one net/core/dev.c:3806 [inline]
      dev_hard_start_xmit+0x9a/0x7b0 net/core/dev.c:3822
      sch_direct_xmit+0x1ae/0xc30 net/sched/sch_generic.c:343
      __dev_xmit_skb net/core/dev.c:4045 [inline]
      __dev_queue_xmit+0x13d4/0x43e0 net/core/dev.c:4621
      dev_queue_xmit include/linux/netdevice.h:3313 [inline]
      llc_sap_action_send_test_c+0x268/0x320 net/llc/llc_s_ac.c:144
      llc_exec_sap_trans_actions net/llc/llc_sap.c:153 [inline]
      llc_sap_next_state net/llc/llc_sap.c:182 [inline]
      llc_sap_state_process+0x239/0x510 net/llc/llc_sap.c:209
      llc_ui_sendmsg+0xd0d/0x14e0 net/llc/af_llc.c:993
      sock_sendmsg_nosec net/socket.c:718 [inline]
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot+da65c993ae113742a25f@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/netdev/67c020c0.050a0220.222324.0011.GAE@google.com/T/#u
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e2eebbb52d156dad9dc378ca4c87b1a34cc4b735
Author: Murad Masimov <m.masimov@mt-integration.ru>
Date:   Mon Mar 3 13:04:13 2025 +0300

    ALSA: usx2y: validate nrpacks module parameter on probe
    
    [ Upstream commit 172a0f509723fe4741d4b8e9190cf434b18320d8 ]
    
    The module parameter defines number of iso packets per one URB. User is
    allowed to set any value to the parameter of type int, which can lead to
    various kinds of weird and incorrect behavior like integer overflows,
    truncations, etc. Number of packets should be a small non-negative number.
    
    Since this parameter is read-only, its value can be validated on driver
    probe.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Murad Masimov <m.masimov@mt-integration.ru>
    Link: https://patch.msgid.link/20250303100413.835-1-m.masimov@mt-integration.ru
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit afa9cd90e765e62b3dbb070e38b5788c692e39c1
Author: Erik Schumacher <erik.schumacher@iris-sensing.com>
Date:   Mon Feb 24 09:19:04 2025 +0000

    hwmon: (ad7314) Validate leading zero bits and return error
    
    [ Upstream commit e278d5e8aef4c0a1d9a9fa8b8910d713a89aa800 ]
    
    Leading zero bits are sent on the bus before the temperature value is
    transmitted. If any of these bits are high, the connection might be
    unstable or there could be no AD7314 / ADT730x (or compatible) at all.
    Return -EIO in that case.
    
    Signed-off-by: Erik Schumacher <erik.schumacher@iris-sensing.com>
    Fixes: 4f3a659581cab ("hwmon: AD7314 driver (ported from IIO)")
    Link: https://lore.kernel.org/r/24a50c2981a318580aca8f50d23be7987b69ea00.camel@iris-sensing.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 996340f3db89152270062e3e9de49175bffcadff
Author: Maud Spierings <maudspierings@gocontroll.com>
Date:   Thu Feb 27 13:57:53 2025 +0100

    hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table
    
    [ Upstream commit 1c7932d5ae0f5c22fa52ac811b4c427bbca5aff5 ]
    
    I could not find a single table that has the values currently present in
    the table, change it to the actual values that can be found in [1]/[2]
    and [3] (page 15 column 2)
    
    [1]: https://www.murata.com/products/productdetail?partno=NCP15XH103F03RC
    [2]: https://www.murata.com/products/productdata/8796836626462/NTHCG83.txt?1437969843000
    [3]: https://nl.mouser.com/datasheet/2/281/r44e-522712.pdf
    
    Fixes: 54ce3a0d8011 ("hwmon: (ntc_thermistor) Add support for ncpXXxh103")
    Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>
    Link: https://lore.kernel.org/r/20250227-ntc_thermistor_fixes-v1-3-70fa73200b52@gocontroll.com
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13de3056e38c8229a38535d0e115b082785cdb4c
Author: Titus Rwantare <titusr@google.com>
Date:   Thu Feb 27 22:24:55 2025 +0000

    hwmon: (pmbus) Initialise page count in pmbus_identify()
    
    [ Upstream commit 6b6e2e8fd0de3fa7c6f4f8fe6841b01770b2e7bc ]
    
    The `pmbus_identify()` function fails to correctly determine the number
    of supported pages on PMBus devices. This occurs because `info->pages`
    is implicitly zero-initialised, and `pmbus_set_page()` does not perform
    writes to the page register if `info->pages` is not yet initialised.
    Without this patch, `info->pages` is always set to the maximum after
    scanning.
    
    This patch initialises `info->pages` to `PMBUS_PAGES` before the probing
    loop, enabling `pmbus_set_page()` writes to make it out onto the bus
    correctly identifying the number of pages. `PMBUS_PAGES` seemed like a
    reasonable non-zero number because that's the current result of the
    identification process.
    
    Testing was done with a PMBus device in QEMU.
    
    Signed-off-by: Titus Rwantare <titusr@google.com>
    Fixes: 442aba78728e7 ("hwmon: PMBus device driver")
    Link: https://lore.kernel.org/r/20250227222455.2583468-1-titusr@google.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8e4e08ca4cc634b337bb74bc9a70758fdeda0bcb
Author: Vitaliy Shevtsov <v.shevtsov@mt-integration.ru>
Date:   Thu Feb 27 23:46:27 2025 +0500

    caif_virtio: fix wrong pointer check in cfv_probe()
    
    [ Upstream commit a466fd7e9fafd975949e5945e2f70c33a94b1a70 ]
    
    del_vqs() frees virtqueues, therefore cfv->vq_tx pointer should be checked
    for NULL before calling it, not cfv->vdev. Also the current implementation
    is redundant because the pointer cfv->vdev is dereferenced before it is
    checked for NULL.
    
    Fix this by checking cfv->vq_tx for NULL instead of cfv->vdev before
    calling del_vqs().
    
    Fixes: 0d2e1a2926b1 ("caif_virtio: Introduce caif over virtio")
    Signed-off-by: Vitaliy Shevtsov <v.shevtsov@mt-integration.ru>
    Reviewed-by: Gerhard Engleder <gerhard@engleder-embedded.com>
    Link: https://patch.msgid.link/20250227184716.4715-1-v.shevtsov@mt-integration.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 455217ac9db0cf9349b3933664355e907bb1a569
Author: Antoine Tenart <atenart@kernel.org>
Date:   Wed Feb 26 18:13:42 2025 +0100

    net: gso: fix ownership in __udp_gso_segment
    
    [ Upstream commit ee01b2f2d7d0010787c2343463965bbc283a497f ]
    
    In __udp_gso_segment the skb destructor is removed before segmenting the
    skb but the socket reference is kept as-is. This is an issue if the
    original skb is later orphaned as we can hit the following bug:
    
      kernel BUG at ./include/linux/skbuff.h:3312!  (skb_orphan)
      RIP: 0010:ip_rcv_core+0x8b2/0xca0
      Call Trace:
       ip_rcv+0xab/0x6e0
       __netif_receive_skb_one_core+0x168/0x1b0
       process_backlog+0x384/0x1100
       __napi_poll.constprop.0+0xa1/0x370
       net_rx_action+0x925/0xe50
    
    The above can happen following a sequence of events when using
    OpenVSwitch, when an OVS_ACTION_ATTR_USERSPACE action precedes an
    OVS_ACTION_ATTR_OUTPUT action:
    
    1. OVS_ACTION_ATTR_USERSPACE is handled (in do_execute_actions): the skb
       goes through queue_gso_packets and then __udp_gso_segment, where its
       destructor is removed.
    2. The segments' data are copied and sent to userspace.
    3. OVS_ACTION_ATTR_OUTPUT is handled (in do_execute_actions) and the
       same original skb is sent to its path.
    4. If it later hits skb_orphan, we hit the bug.
    
    Fix this by also removing the reference to the socket in
    __udp_gso_segment.
    
    Fixes: ad405857b174 ("udp: better wmem accounting on gso")
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Link: https://patch.msgid.link/20250226171352.258045-1-atenart@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 17451b795002a54de102df2221211c55e8f190a0
Author: Meir Elisha <meir.elisha@volumez.com>
Date:   Wed Feb 26 09:28:12 2025 +0200

    nvmet-tcp: Fix a possible sporadic response drops in weakly ordered arch
    
    [ Upstream commit a16f88964c647103dad7743a484b216d488a6352 ]
    
    The order in which queue->cmd and rcv_state are updated is crucial.
    If these assignments are reordered by the compiler, the worker might not
    get queued in nvmet_tcp_queue_response(), hanging the IO. to enforce the
    the correct reordering, set rcv_state using smp_store_release().
    
    Fixes: bdaf13279192 ("nvmet-tcp: fix a segmentation fault during io parsing error")
    
    Signed-off-by: Meir Elisha <meir.elisha@volumez.com>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 01b18a330cda61cc21423a7d1af92cf31ded8f60
Author: Zhang Lixu <lixu.zhang@intel.com>
Date:   Tue Feb 18 14:37:30 2025 +0800

    HID: intel-ish-hid: Fix use-after-free issue in ishtp_hid_remove()
    
    [ Upstream commit 07583a0010696a17fb0942e0b499a62785c5fc9f ]
    
    The system can experience a random crash a few minutes after the driver is
    removed. This issue occurs due to improper handling of memory freeing in
    the ishtp_hid_remove() function.
    
    The function currently frees the `driver_data` directly within the loop
    that destroys the HID devices, which can lead to accessing freed memory.
    Specifically, `hid_destroy_device()` uses `driver_data` when it calls
    `hid_ishtp_set_feature()` to power off the sensor, so freeing
    `driver_data` beforehand can result in accessing invalid memory.
    
    This patch resolves the issue by storing the `driver_data` in a temporary
    variable before calling `hid_destroy_device()`, and then freeing the
    `driver_data` after the device is destroyed.
    
    Fixes: 0b28cb4bcb17 ("HID: intel-ish-hid: ISH HID client driver")
    Signed-off-by: Zhang Lixu <lixu.zhang@intel.com>
    Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4283afde4f8dcfb9cc6bd08d1746f5c24838e485
Author: Yu-Chun Lin <eleanor15x@gmail.com>
Date:   Tue Feb 18 00:50:13 2025 +0800

    HID: google: fix unused variable warning under !CONFIG_ACPI
    
    [ Upstream commit 4bd0725c09f377ffaf22b834241f6c050742e4fc ]
    
    As reported by the kernel test robot, the following warning occurs:
    
    >> drivers/hid/hid-google-hammer.c:261:36: warning: 'cbas_ec_acpi_ids' defined but not used [-Wunused-const-variable=]
         261 | static const struct acpi_device_id cbas_ec_acpi_ids[] = {
             |                                    ^~~~~~~~~~~~~~~~
    
    The 'cbas_ec_acpi_ids' array is only used when CONFIG_ACPI is enabled.
    Wrapping its definition and 'MODULE_DEVICE_TABLE' in '#ifdef CONFIG_ACPI'
    prevents a compiler warning when ACPI is disabled.
    
    Fixes: eb1aac4c8744f75 ("HID: google: add support tablet mode switch for Whiskers")
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501201141.jctFH5eB-lkp@intel.com/
    Signed-off-by: Yu-Chun Lin <eleanor15x@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 47616b82f2d42ea2060334746fed9a2988d845c9
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Sun Feb 9 14:34:51 2025 +0200

    wifi: iwlwifi: limit printed string from FW file
    
    [ Upstream commit e0dc2c1bef722cbf16ae557690861e5f91208129 ]
    
    There's no guarantee here that the file is always with a
    NUL-termination, so reading the string may read beyond the
    end of the TLV. If that's the last TLV in the file, it can
    perhaps even read beyond the end of the file buffer.
    
    Fix that by limiting the print format to the size of the
    buffer we have.
    
    Fixes: aee1b6385e29 ("iwlwifi: support fseq tlv and print fseq version")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://patch.msgid.link/20250209143303.cb5f9d0c2f5d.Idec695d53c6c2234aade306f7647b576c7e3d928@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b4739de37538e935302f15d596c98ec28a8228e2
Author: Ryan Roberts <ryan.roberts@arm.com>
Date:   Wed Feb 26 12:16:09 2025 +0000

    mm: don't skip arch_sync_kernel_mappings() in error paths
    
    commit 3685024edd270f7c791f993157d65d3c928f3d6e upstream.
    
    Fix callers that previously skipped calling arch_sync_kernel_mappings() if
    an error occurred during a pgtable update.  The call is still required to
    sync any pgtable updates that may have occurred prior to hitting the error
    condition.
    
    These are theoretical bugs discovered during code review.
    
    Link: https://lkml.kernel.org/r/20250226121610.2401743-1-ryan.roberts@arm.com
    Fixes: 2ba3e6947aed ("mm/vmalloc: track which page-table levels were modified")
    Fixes: 0c95cba49255 ("mm: apply_to_pte_range warn and fail if a large pte is encountered")
    Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
    Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
    Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christop Hellwig <hch@infradead.org>
    Cc: "Uladzislau Rezki (Sony)" <urezki@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 955c5a1ddd6e0f9f6b6e3f3a314dec1041a95e66
Author: Hao Zhang <zhanghao1@kylinos.cn>
Date:   Thu Feb 27 11:41:29 2025 +0800

    mm/page_alloc: fix uninitialized variable
    
    commit 8fe9ed44dc29fba0786b7e956d2e87179e407582 upstream.
    
    The variable "compact_result" is not initialized in function
    __alloc_pages_slowpath().  It causes should_compact_retry() to use an
    uninitialized value.
    
    Initialize variable "compact_result" with the value COMPACT_SKIPPED.
    
    BUG: KMSAN: uninit-value in __alloc_pages_slowpath+0xee8/0x16c0 mm/page_alloc.c:4416
     __alloc_pages_slowpath+0xee8/0x16c0 mm/page_alloc.c:4416
     __alloc_frozen_pages_noprof+0xa4c/0xe00 mm/page_alloc.c:4752
     alloc_pages_mpol+0x4cd/0x890 mm/mempolicy.c:2270
     alloc_frozen_pages_noprof mm/mempolicy.c:2341 [inline]
     alloc_pages_noprof mm/mempolicy.c:2361 [inline]
     folio_alloc_noprof+0x1dc/0x350 mm/mempolicy.c:2371
     filemap_alloc_folio_noprof+0xa6/0x440 mm/filemap.c:1019
     __filemap_get_folio+0xb9a/0x1840 mm/filemap.c:1970
     grow_dev_folio fs/buffer.c:1039 [inline]
     grow_buffers fs/buffer.c:1105 [inline]
     __getblk_slow fs/buffer.c:1131 [inline]
     bdev_getblk+0x2c9/0xab0 fs/buffer.c:1431
     getblk_unmovable include/linux/buffer_head.h:369 [inline]
     ext4_getblk+0x3b7/0xe50 fs/ext4/inode.c:864
     ext4_bread_batch+0x9f/0x7d0 fs/ext4/inode.c:933
     __ext4_find_entry+0x1ebb/0x36c0 fs/ext4/namei.c:1627
     ext4_lookup_entry fs/ext4/namei.c:1729 [inline]
     ext4_lookup+0x189/0xb40 fs/ext4/namei.c:1797
     __lookup_slow+0x538/0x710 fs/namei.c:1793
     lookup_slow+0x6a/0xd0 fs/namei.c:1810
     walk_component fs/namei.c:2114 [inline]
     link_path_walk+0xf29/0x1420 fs/namei.c:2479
     path_openat+0x30f/0x6250 fs/namei.c:3985
     do_filp_open+0x268/0x600 fs/namei.c:4016
     do_sys_openat2+0x1bf/0x2f0 fs/open.c:1428
     do_sys_open fs/open.c:1443 [inline]
     __do_sys_openat fs/open.c:1459 [inline]
     __se_sys_openat fs/open.c:1454 [inline]
     __x64_sys_openat+0x2a1/0x310 fs/open.c:1454
     x64_sys_call+0x36f5/0x3c30 arch/x86/include/generated/asm/syscalls_64.h:258
     do_syscall_x64 arch/x86/entry/common.c:52 [inline]
     do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Local variable compact_result created at:
     __alloc_pages_slowpath+0x66/0x16c0 mm/page_alloc.c:4218
     __alloc_frozen_pages_noprof+0xa4c/0xe00 mm/page_alloc.c:4752
    
    Link: https://lkml.kernel.org/r/tencent_ED1032321D6510B145CDBA8CBA0093178E09@qq.com
    Reported-by: syzbot+0cfd5e38e96a5596f2b6@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=0cfd5e38e96a5596f2b6
    Signed-off-by: Hao Zhang <zhanghao1@kylinos.cn>
    Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 51e0101ab9e932b3094b0068f5c97efdedfe2084
Author: Olivier Gayot <olivier.gayot@canonical.com>
Date:   Wed Mar 5 10:21:54 2025 +0800

    block: fix conversion of GPT partition name to 7-bit
    
    commit e06472bab2a5393430cc2fbc3211cd3602422c1e upstream.
    
    The utf16_le_to_7bit function claims to, naively, convert a UTF-16
    string to a 7-bit ASCII string. By naively, we mean that it:
     * drops the first byte of every character in the original UTF-16 string
     * checks if all characters are printable, and otherwise replaces them
       by exclamation mark "!".
    
    This means that theoretically, all characters outside the 7-bit ASCII
    range should be replaced by another character. Examples:
    
     * lower-case alpha (É’) 0x0252 becomes 0x52 (R)
     * ligature OE (Å“) 0x0153 becomes 0x53 (S)
     * hangul letter pieup (ã…‚) 0x3142 becomes 0x42 (B)
     * upper-case gamma (Æ”) 0x0194 becomes 0x94 (not printable) so gets
       replaced by "!"
    
    The result of this conversion for the GPT partition name is passed to
    user-space as PARTNAME via udev, which is confusing and feels questionable.
    
    However, there is a flaw in the conversion function itself. By dropping
    one byte of each character and using isprint() to check if the remaining
    byte corresponds to a printable character, we do not actually guarantee
    that the resulting character is 7-bit ASCII.
    
    This happens because we pass 8-bit characters to isprint(), which
    in the kernel returns 1 for many values > 0x7f - as defined in ctype.c.
    
    This results in many values which should be replaced by "!" to be kept
    as-is, despite not being valid 7-bit ASCII. Examples:
    
     * e with acute accent (é) 0x00E9 becomes 0xE9 - kept as-is because
       isprint(0xE9) returns 1.
     * euro sign (€) 0x20AC becomes 0xAC - kept as-is because isprint(0xAC)
       returns 1.
    
    This way has broken pyudev utility[1], fixes it by using a mask of 7 bits
    instead of 8 bits before calling isprint.
    
    Link: https://github.com/pyudev/pyudev/issues/490#issuecomment-2685794648 [1]
    Link: https://lore.kernel.org/linux-block/4cac90c2-e414-4ebb-ae62-2a4589d9dc6e@canonical.com/
    Cc: Mulhern <amulhern@redhat.com>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/20250305022154.3903128-1-ming.lei@redhat.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03f075d5606333643499f1616de36863f1a584b1
Author: Heiko Carstens <hca@linux.ibm.com>
Date:   Tue Feb 25 10:53:10 2025 +0100

    s390/traps: Fix test_monitor_call() inline assembly
    
    commit 5623bc23a1cb9f9a9470fa73b3a20321dc4c4870 upstream.
    
    The test_monitor_call() inline assembly uses the xgr instruction, which
    also modifies the condition code, to clear a register. However the clobber
    list of the inline assembly does not specify that the condition code is
    modified, which may lead to incorrect code generation.
    
    Use the lhi instruction instead to clear the register without that the
    condition code is modified. Furthermore this limits clearing to the lower
    32 bits of val, since its type is int.
    
    Fixes: 17248ea03674 ("s390: fix __EMIT_BUG() macro")
    Cc: stable@vger.kernel.org
    Reviewed-by: Juergen Christ <jchrist@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cdd9f58f7fe41a55fae4305ea51fc234769fd466
Author: Haoxiang Li <haoxiang_li2024@163.com>
Date:   Thu Feb 27 15:34:09 2025 +0800

    rapidio: fix an API misues when rio_add_net() fails
    
    commit b2ef51c74b0171fde7eb69b6152d3d2f743ef269 upstream.
    
    rio_add_net() calls device_register() and fails when device_register()
    fails.  Thus, put_device() should be used rather than kfree().  Add
    "mport->net = NULL;" to avoid a use after free issue.
    
    Link: https://lkml.kernel.org/r/20250227073409.3696854-1-haoxiang_li2024@163.com
    Fixes: e8de370188d0 ("rapidio: add mport char device driver")
    Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
    Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
    Cc: Alexandre Bounine <alex.bou9@gmail.com>
    Cc: Matt Porter <mporter@kernel.crashing.org>
    Cc: Yang Yingliang <yangyingliang@huawei.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 181d4daaefb3bceeb2f2635ba9f3781eeda9e550
Author: Haoxiang Li <haoxiang_li2024@163.com>
Date:   Thu Feb 27 12:11:31 2025 +0800

    rapidio: add check for rio_add_net() in rio_scan_alloc_net()
    
    commit e842f9a1edf306bf36fe2a4d847a0b0d458770de upstream.
    
    The return value of rio_add_net() should be checked.  If it fails,
    put_device() should be called to free the memory and give up the reference
    initialized in rio_add_net().
    
    Link: https://lkml.kernel.org/r/20250227041131.3680761-1-haoxiang_li2024@163.com
    Fixes: e6b585ca6e81 ("rapidio: move net allocation into core code")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
    Cc: Alexandre Bounine <alex.bou9@gmail.com>
    Cc: Matt Porter <mporter@kernel.crashing.org>
    Cc: Dan Carpenter <dan.carpenter@linaro.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd1bdcb77fdc03c253137e55bae10551b3481461
Author: Vitaliy Shevtsov <v.shevtsov@mt-integration.ru>
Date:   Fri Jan 31 20:26:55 2025 +0500

    wifi: nl80211: reject cooked mode if it is set along with other flags
    
    commit 49f27f29446a5bfe633dd2cc0cfebd48a1a5e77f upstream.
    
    It is possible to set both MONITOR_FLAG_COOK_FRAMES and MONITOR_FLAG_ACTIVE
    flags simultaneously on the same monitor interface from the userspace. This
    causes a sub-interface to be created with no IEEE80211_SDATA_IN_DRIVER bit
    set because the monitor interface is in the cooked state and it takes
    precedence over all other states. When the interface is then being deleted
    the kernel calls WARN_ONCE() from check_sdata_in_driver() because of missing
    that bit.
    
    Fix this by rejecting MONITOR_FLAG_COOK_FRAMES if it is set along with
    other flags.
    
    Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
    
    Fixes: 66f7ac50ed7c ("nl80211: Add monitor interface configuration flags")
    Cc: stable@vger.kernel.org
    Reported-by: syzbot+2e5c1e55b9e5c28a3da7@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=2e5c1e55b9e5c28a3da7
    Signed-off-by: Vitaliy Shevtsov <v.shevtsov@mt-integration.ru>
    Link: https://patch.msgid.link/20250131152657.5606-1-v.shevtsov@mt-integration.ru
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a5e3b23054cee3b92683d1467e3fa83921f5622
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Fri Feb 28 16:46:57 2025 +0300

    wifi: cfg80211: regulatory: improve invalid hints checking
    
    commit 59b348be7597c4a9903cb003c69e37df20c04a30 upstream.
    
    Syzbot keeps reporting an issue [1] that occurs when erroneous symbols
    sent from userspace get through into user_alpha2[] via
    regulatory_hint_user() call. Such invalid regulatory hints should be
    rejected.
    
    While a sanity check from commit 47caf685a685 ("cfg80211: regulatory:
    reject invalid hints") looks to be enough to deter these very cases,
    there is a way to get around it due to 2 reasons.
    
    1) The way isalpha() works, symbols other than latin lower and
    upper letters may be used to determine a country/domain.
    For instance, greek letters will also be considered upper/lower
    letters and for such characters isalpha() will return true as well.
    However, ISO-3166-1 alpha2 codes should only hold latin
    characters.
    
    2) While processing a user regulatory request, between
    reg_process_hint_user() and regulatory_hint_user() there happens to
    be a call to queue_regulatory_request() which modifies letters in
    request->alpha2[] with toupper(). This works fine for latin symbols,
    less so for weird letter characters from the second part of _ctype[].
    
    Syzbot triggers a warning in is_user_regdom_saved() by first sending
    over an unexpected non-latin letter that gets malformed by toupper()
    into a character that ends up failing isalpha() check.
    
    Prevent this by enhancing is_an_alpha2() to ensure that incoming
    symbols are latin letters and nothing else.
    
    [1] Syzbot report:
    ------------[ cut here ]------------
    Unexpected user alpha2: A�
    WARNING: CPU: 1 PID: 964 at net/wireless/reg.c:442 is_user_regdom_saved net/wireless/reg.c:440 [inline]
    WARNING: CPU: 1 PID: 964 at net/wireless/reg.c:442 restore_alpha2 net/wireless/reg.c:3424 [inline]
    WARNING: CPU: 1 PID: 964 at net/wireless/reg.c:442 restore_regulatory_settings+0x3c0/0x1e50 net/wireless/reg.c:3516
    Modules linked in:
    CPU: 1 UID: 0 PID: 964 Comm: kworker/1:2 Not tainted 6.12.0-rc5-syzkaller-00044-gc1e939a21eb1 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
    Workqueue: events_power_efficient crda_timeout_work
    RIP: 0010:is_user_regdom_saved net/wireless/reg.c:440 [inline]
    RIP: 0010:restore_alpha2 net/wireless/reg.c:3424 [inline]
    RIP: 0010:restore_regulatory_settings+0x3c0/0x1e50 net/wireless/reg.c:3516
    ...
    Call Trace:
     <TASK>
     crda_timeout_work+0x27/0x50 net/wireless/reg.c:542
     process_one_work kernel/workqueue.c:3229 [inline]
     process_scheduled_works+0xa65/0x1850 kernel/workqueue.c:3310
     worker_thread+0x870/0xd30 kernel/workqueue.c:3391
     kthread+0x2f2/0x390 kernel/kthread.c:389
     ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147
     ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
     </TASK>
    
    Reported-by: syzbot+e10709ac3c44f3d4e800@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=e10709ac3c44f3d4e800
    Fixes: 09d989d179d0 ("cfg80211: add regulatory hint disconnect support")
    Cc: stable@kernel.org
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Link: https://patch.msgid.link/20250228134659.1577656-1-n.zhandarovich@fintech.ru
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8786dfa9f4519927f2fa38449fe4fe22d237e5a
Author: Ahmed S. Darwish <darwi@linutronix.de>
Date:   Tue Mar 4 09:51:14 2025 +0100

    x86/cpu: Properly parse CPUID leaf 0x2 TLB descriptor 0x63
    
    commit f6bdaab79ee4228a143ee1b4cb80416d6ffc0c63 upstream.
    
    CPUID leaf 0x2's one-byte TLB descriptors report the number of entries
    for specific TLB types, among other properties.
    
    Typically, each emitted descriptor implies the same number of entries
    for its respective TLB type(s).  An emitted 0x63 descriptor is an
    exception: it implies 4 data TLB entries for 1GB pages and 32 data TLB
    entries for 2MB or 4MB pages.
    
    For the TLB descriptors parsing code, the entry count for 1GB pages is
    encoded at the intel_tlb_table[] mapping, but the 2MB/4MB entry count is
    totally ignored.
    
    Update leaf 0x2's parsing logic 0x2 to account for 32 data TLB entries
    for 2MB/4MB pages implied by the 0x63 descriptor.
    
    Fixes: e0ba94f14f74 ("x86/tlb_info: get last level TLB entry number of CPU")
    Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: stable@kernel.org
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: https://lore.kernel.org/r/20250304085152.51092-4-darwi@linutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61104ea208404dc7c53ccb05090cd3e7d28e941f
Author: Ahmed S. Darwish <darwi@linutronix.de>
Date:   Tue Mar 4 09:51:13 2025 +0100

    x86/cpu: Validate CPUID leaf 0x2 EDX output
    
    commit 1881148215c67151b146450fb89ec22fd92337a7 upstream.
    
    CPUID leaf 0x2 emits one-byte descriptors in its four output registers
    EAX, EBX, ECX, and EDX.  For these descriptors to be valid, the most
    significant bit (MSB) of each register must be clear.
    
    Leaf 0x2 parsing at intel.c only validated the MSBs of EAX, EBX, and
    ECX, but left EDX unchecked.
    
    Validate EDX's most-significant bit as well.
    
    Fixes: e0ba94f14f74 ("x86/tlb_info: get last level TLB entry number of CPU")
    Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: stable@kernel.org
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: https://lore.kernel.org/r/20250304085152.51092-3-darwi@linutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dafc649de2711b8844953b185d4183f63970def6
Author: Ahmed S. Darwish <darwi@linutronix.de>
Date:   Tue Mar 4 09:51:12 2025 +0100

    x86/cacheinfo: Validate CPUID leaf 0x2 EDX output
    
    commit 8177c6bedb7013cf736137da586cf783922309dd upstream.
    
    CPUID leaf 0x2 emits one-byte descriptors in its four output registers
    EAX, EBX, ECX, and EDX.  For these descriptors to be valid, the most
    significant bit (MSB) of each register must be clear.
    
    The historical Git commit:
    
      019361a20f016 ("- pre6: Intel: start to add Pentium IV specific stuff (128-byte cacheline etc)...")
    
    introduced leaf 0x2 output parsing.  It only validated the MSBs of EAX,
    EBX, and ECX, but left EDX unchecked.
    
    Validate EDX's most-significant bit.
    
    Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: stable@vger.kernel.org
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: https://lore.kernel.org/r/20250304085152.51092-2-darwi@linutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 421c91ba9099deb55f99f84221eefd7207687ae1
Author: Mingcong Bai <jeffbai@aosc.io>
Date:   Sat Feb 22 00:48:24 2025 +0800

    platform/x86: thinkpad_acpi: Add battery quirk for ThinkPad X131e
    
    commit d0d10eaedcb53740883d7e5d53c5e15c879b48fb upstream.
    
    Based on the dmesg messages from the original reporter:
    
    [    4.964073] ACPI: \_SB_.PCI0.LPCB.EC__.HKEY: BCTG evaluated but flagged as error
    [    4.964083] thinkpad_acpi: Error probing battery 2
    
    Lenovo ThinkPad X131e also needs this battery quirk.
    
    Reported-by: Fan Yang <804284660@qq.com>
    Tested-by: Fan Yang <804284660@qq.com>
    Co-developed-by: Xi Ruoyao <xry111@xry111.site>
    Signed-off-by: Xi Ruoyao <xry111@xry111.site>
    Signed-off-by: Mingcong Bai <jeffbai@aosc.io>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20250221164825.77315-1-jeffbai@aosc.io
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 63c2c523f5ca05002b4986dfea5ff9fc80a7f720
Author: Richard Thier <u9vata@gmail.com>
Date:   Mon Jun 17 23:46:27 2019 +0200

    drm/radeon: Fix rs400_gpu_init for ATI mobility radeon Xpress 200M
    
    commit 29ffeb73b216ce3eff10229eb077cf9b7812119d upstream.
    
    num_gb_pipes was set to a wrong value using r420_pipe_config
    
    This have lead to HyperZ glitches on fast Z clearing.
    
    Closes: https://bugs.freedesktop.org/show_bug.cgi?id=110897
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>
    Signed-off-by: Richard Thier <u9vata@gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    (cherry picked from commit 044e59a85c4d84e3c8d004c486e5c479640563a6)
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ffcc3f070263f7fd2c33d1edec09820c274dc8e7
Author: Kailang Yang <kailang@realtek.com>
Date:   Wed Mar 5 13:54:34 2025 +0800

    ALSA: hda/realtek: update ALC222 depop optimize
    
    commit ca0dedaff92307591f66c9206933fbdfe87add10 upstream.
    
    Add ALC222 its own depop functions for alc_init and alc_shutup.
    
    [note: this fixes pop noise issues on the models with two headphone
     jacks -- tiwai ]
    
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ea0f0a4764078c995e50adb2436bf2205a3a450
Author: Hoku Ishibe <me@hokuishi.be>
Date:   Sun Feb 23 21:05:17 2025 -0500

    ALSA: hda: intel: Add Dell ALC3271 to power_save denylist
    
    commit 1ee5aa765c22a0577ec552d460bf2035300b4b51 upstream.
    
    Dell XPS 13 7390 with the Realtek ALC3271 codec experiences
    persistent humming noise when the power_save mode is enabled.
    This issue occurs when the codec enters power saving mode,
    leading to unwanted noise from the speakers.
    
    This patch adds the affected model (PCI ID 0x1028:0x0962) to the
    power_save denylist to ensure power_save is disabled by default,
    preventing power-off related noise issues.
    
    Steps to Reproduce
    1. Boot the system with `snd_hda_intel` loaded.
    2. Verify that `power_save` mode is enabled:
    ```sh
    cat /sys/module/snd_hda_intel/parameters/power_save
    ````
    output: 10 (default power save timeout)
    3. Wait for the power save timeout
    4. Observe a persistent humming noise from the speakers
    5. Disable `power_save` manually:
    ```sh
    echo 0 | sudo tee /sys/module/snd_hda_intel/parameters/power_save
    ````
    6. Confirm that the noise disappears immediately.
    
    This issue has been observed on my system, and this patch
    successfully eliminates the unwanted noise. If other users
    experience similar issues, additional reports would be helpful.
    
    Signed-off-by: Hoku Ishibe <me@hokuishi.be>
    Cc: <stable@vger.kernel.org>
    Link: https://patch.msgid.link/20250224020517.51035-1-me@hokuishi.be
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 807789018186cf508ceb3a1f8f02935cd195717b
Author: Koichiro Den <koichiro.den@canonical.com>
Date:   Mon Feb 24 23:31:26 2025 +0900

    gpio: aggregator: protect driver attr handlers against module unload
    
    commit 12f65d1203507f7db3ba59930fe29a3b8eee9945 upstream.
    
    Both new_device_store and delete_device_store touch module global
    resources (e.g. gpio_aggregator_lock). To prevent race conditions with
    module unload, a reference needs to be held.
    
    Add try_module_get() in these handlers.
    
    For new_device_store, this eliminates what appears to be the most dangerous
    scenario: if an id is allocated from gpio_aggregator_idr but
    platform_device_register has not yet been called or completed, a concurrent
    module unload could fail to unregister/delete the device, leaving behind a
    dangling platform device/GPIO forwarder. This can result in various issues.
    The following simple reproducer demonstrates these problems:
    
      #!/bin/bash
      while :; do
        # note: whether 'gpiochip0 0' exists or not does not matter.
        echo 'gpiochip0 0' > /sys/bus/platform/drivers/gpio-aggregator/new_device
      done &
      while :; do
        modprobe gpio-aggregator
        modprobe -r gpio-aggregator
      done &
      wait
    
      Starting with the following warning, several kinds of warnings will appear
      and the system may become unstable:
    
      ------------[ cut here ]------------
      list_del corruption, ffff888103e2e980->next is LIST_POISON1 (dead000000000100)
      WARNING: CPU: 1 PID: 1327 at lib/list_debug.c:56 __list_del_entry_valid_or_report+0xa3/0x120
      [...]
      RIP: 0010:__list_del_entry_valid_or_report+0xa3/0x120
      [...]
      Call Trace:
       <TASK>
       ? __list_del_entry_valid_or_report+0xa3/0x120
       ? __warn.cold+0x93/0xf2
       ? __list_del_entry_valid_or_report+0xa3/0x120
       ? report_bug+0xe6/0x170
       ? __irq_work_queue_local+0x39/0xe0
       ? handle_bug+0x58/0x90
       ? exc_invalid_op+0x13/0x60
       ? asm_exc_invalid_op+0x16/0x20
       ? __list_del_entry_valid_or_report+0xa3/0x120
       gpiod_remove_lookup_table+0x22/0x60
       new_device_store+0x315/0x350 [gpio_aggregator]
       kernfs_fop_write_iter+0x137/0x1f0
       vfs_write+0x262/0x430
       ksys_write+0x60/0xd0
       do_syscall_64+0x6c/0x180
       entry_SYSCALL_64_after_hwframe+0x76/0x7e
       [...]
       </TASK>
      ---[ end trace 0000000000000000 ]---
    
    Fixes: 828546e24280 ("gpio: Add GPIO Aggregator")
    Cc: stable@vger.kernel.org
    Signed-off-by: Koichiro Den <koichiro.den@canonical.com>
    Link: https://lore.kernel.org/r/20250224143134.3024598-2-koichiro.den@canonical.com
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c1f36f9c9aca507d317479a3d3388150ae40a87
Author: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Date:   Tue Jan 21 14:58:33 2025 +0100

    gpio: rcar: Use raw_spinlock to protect register access
    
    commit f02c41f87cfe61440c18bf77d1ef0a884b9ee2b5 upstream.
    
    Use raw_spinlock in order to fix spurious messages about invalid context
    when spinlock debugging is enabled. The lock is only used to serialize
    register access.
    
        [    4.239592] =============================
        [    4.239595] [ BUG: Invalid wait context ]
        [    4.239599] 6.13.0-rc7-arm64-renesas-05496-gd088502a519f #35 Not tainted
        [    4.239603] -----------------------------
        [    4.239606] kworker/u8:5/76 is trying to lock:
        [    4.239609] ffff0000091898a0 (&p->lock){....}-{3:3}, at: gpio_rcar_config_interrupt_input_mode+0x34/0x164
        [    4.239641] other info that might help us debug this:
        [    4.239643] context-{5:5}
        [    4.239646] 5 locks held by kworker/u8:5/76:
        [    4.239651]  #0: ffff0000080fb148 ((wq_completion)async){+.+.}-{0:0}, at: process_one_work+0x190/0x62c
        [    4.250180] OF: /soc/sound@ec500000/ports/port@0/endpoint: Read of boolean property 'frame-master' with a value.
        [    4.254094]  #1: ffff80008299bd80 ((work_completion)(&entry->work)){+.+.}-{0:0}, at: process_one_work+0x1b8/0x62c
        [    4.254109]  #2: ffff00000920c8f8
        [    4.258345] OF: /soc/sound@ec500000/ports/port@1/endpoint: Read of boolean property 'bitclock-master' with a value.
        [    4.264803]  (&dev->mutex){....}-{4:4}, at: __device_attach_async_helper+0x3c/0xdc
        [    4.264820]  #3: ffff00000a50ca40 (request_class#2){+.+.}-{4:4}, at: __setup_irq+0xa0/0x690
        [    4.264840]  #4:
        [    4.268872] OF: /soc/sound@ec500000/ports/port@1/endpoint: Read of boolean property 'frame-master' with a value.
        [    4.273275] ffff00000a50c8c8 (lock_class){....}-{2:2}, at: __setup_irq+0xc4/0x690
        [    4.296130] renesas_sdhi_internal_dmac ee100000.mmc: mmc1 base at 0x00000000ee100000, max clock rate 200 MHz
        [    4.304082] stack backtrace:
        [    4.304086] CPU: 1 UID: 0 PID: 76 Comm: kworker/u8:5 Not tainted 6.13.0-rc7-arm64-renesas-05496-gd088502a519f #35
        [    4.304092] Hardware name: Renesas Salvator-X 2nd version board based on r8a77965 (DT)
        [    4.304097] Workqueue: async async_run_entry_fn
        [    4.304106] Call trace:
        [    4.304110]  show_stack+0x14/0x20 (C)
        [    4.304122]  dump_stack_lvl+0x6c/0x90
        [    4.304131]  dump_stack+0x14/0x1c
        [    4.304138]  __lock_acquire+0xdfc/0x1584
        [    4.426274]  lock_acquire+0x1c4/0x33c
        [    4.429942]  _raw_spin_lock_irqsave+0x5c/0x80
        [    4.434307]  gpio_rcar_config_interrupt_input_mode+0x34/0x164
        [    4.440061]  gpio_rcar_irq_set_type+0xd4/0xd8
        [    4.444422]  __irq_set_trigger+0x5c/0x178
        [    4.448435]  __setup_irq+0x2e4/0x690
        [    4.452012]  request_threaded_irq+0xc4/0x190
        [    4.456285]  devm_request_threaded_irq+0x7c/0xf4
        [    4.459398] ata1: link resume succeeded after 1 retries
        [    4.460902]  mmc_gpiod_request_cd_irq+0x68/0xe0
        [    4.470660]  mmc_start_host+0x50/0xac
        [    4.474327]  mmc_add_host+0x80/0xe4
        [    4.477817]  tmio_mmc_host_probe+0x2b0/0x440
        [    4.482094]  renesas_sdhi_probe+0x488/0x6f4
        [    4.486281]  renesas_sdhi_internal_dmac_probe+0x60/0x78
        [    4.491509]  platform_probe+0x64/0xd8
        [    4.495178]  really_probe+0xb8/0x2a8
        [    4.498756]  __driver_probe_device+0x74/0x118
        [    4.503116]  driver_probe_device+0x3c/0x154
        [    4.507303]  __device_attach_driver+0xd4/0x160
        [    4.511750]  bus_for_each_drv+0x84/0xe0
        [    4.515588]  __device_attach_async_helper+0xb0/0xdc
        [    4.520470]  async_run_entry_fn+0x30/0xd8
        [    4.524481]  process_one_work+0x210/0x62c
        [    4.528494]  worker_thread+0x1ac/0x340
        [    4.532245]  kthread+0x10c/0x110
        [    4.535476]  ret_from_fork+0x10/0x20
    
    Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20250121135833.3769310-1-niklas.soderlund+renesas@ragnatech.se
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1d95d733cd6e74f595653daddcfc357bea461e8
Author: Daniil Dulov <d.dulov@aladdin.ru>
Date:   Mon Feb 24 20:30:30 2025 +0300

    HID: appleir: Fix potential NULL dereference at raw event handle
    
    commit 2ff5baa9b5275e3acafdf7f2089f74cccb2f38d1 upstream.
    
    Syzkaller reports a NULL pointer dereference issue in input_event().
    
    BUG: KASAN: null-ptr-deref in instrument_atomic_read include/linux/instrumented.h:68 [inline]
    BUG: KASAN: null-ptr-deref in _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline]
    BUG: KASAN: null-ptr-deref in is_event_supported drivers/input/input.c:67 [inline]
    BUG: KASAN: null-ptr-deref in input_event+0x42/0xa0 drivers/input/input.c:395
    Read of size 8 at addr 0000000000000028 by task syz-executor199/2949
    
    CPU: 0 UID: 0 PID: 2949 Comm: syz-executor199 Not tainted 6.13.0-rc4-syzkaller-00076-gf097a36ef88d #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
    Call Trace:
     <IRQ>
     __dump_stack lib/dump_stack.c:94 [inline]
     dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120
     kasan_report+0xd9/0x110 mm/kasan/report.c:602
     check_region_inline mm/kasan/generic.c:183 [inline]
     kasan_check_range+0xef/0x1a0 mm/kasan/generic.c:189
     instrument_atomic_read include/linux/instrumented.h:68 [inline]
     _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline]
     is_event_supported drivers/input/input.c:67 [inline]
     input_event+0x42/0xa0 drivers/input/input.c:395
     input_report_key include/linux/input.h:439 [inline]
     key_down drivers/hid/hid-appleir.c:159 [inline]
     appleir_raw_event+0x3e5/0x5e0 drivers/hid/hid-appleir.c:232
     __hid_input_report.constprop.0+0x312/0x440 drivers/hid/hid-core.c:2111
     hid_ctrl+0x49f/0x550 drivers/hid/usbhid/hid-core.c:484
     __usb_hcd_giveback_urb+0x389/0x6e0 drivers/usb/core/hcd.c:1650
     usb_hcd_giveback_urb+0x396/0x450 drivers/usb/core/hcd.c:1734
     dummy_timer+0x17f7/0x3960 drivers/usb/gadget/udc/dummy_hcd.c:1993
     __run_hrtimer kernel/time/hrtimer.c:1739 [inline]
     __hrtimer_run_queues+0x20a/0xae0 kernel/time/hrtimer.c:1803
     hrtimer_run_softirq+0x17d/0x350 kernel/time/hrtimer.c:1820
     handle_softirqs+0x206/0x8d0 kernel/softirq.c:561
     __do_softirq kernel/softirq.c:595 [inline]
     invoke_softirq kernel/softirq.c:435 [inline]
     __irq_exit_rcu+0xfa/0x160 kernel/softirq.c:662
     irq_exit_rcu+0x9/0x30 kernel/softirq.c:678
     instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1049 [inline]
     sysvec_apic_timer_interrupt+0x90/0xb0 arch/x86/kernel/apic/apic.c:1049
     </IRQ>
     <TASK>
     asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
     __mod_timer+0x8f6/0xdc0 kernel/time/timer.c:1185
     add_timer+0x62/0x90 kernel/time/timer.c:1295
     schedule_timeout+0x11f/0x280 kernel/time/sleep_timeout.c:98
     usbhid_wait_io+0x1c7/0x380 drivers/hid/usbhid/hid-core.c:645
     usbhid_init_reports+0x19f/0x390 drivers/hid/usbhid/hid-core.c:784
     hiddev_ioctl+0x1133/0x15b0 drivers/hid/usbhid/hiddev.c:794
     vfs_ioctl fs/ioctl.c:51 [inline]
     __do_sys_ioctl fs/ioctl.c:906 [inline]
     __se_sys_ioctl fs/ioctl.c:892 [inline]
     __x64_sys_ioctl+0x190/0x200 fs/ioctl.c:892
     do_syscall_x64 arch/x86/entry/common.c:52 [inline]
     do_syscall_64+0xcd/0x250 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
     </TASK>
    
    This happens due to the malformed report items sent by the emulated device
    which results in a report, that has no fields, being added to the report list.
    Due to this appleir_input_configured() is never called, hidinput_connect()
    fails which results in the HID_CLAIMED_INPUT flag is not being set. However,
    it  does not make appleir_probe() fail and lets the event callback to be
    called without the associated input device.
    
    Thus, add a check for the HID_CLAIMED_INPUT flag and leave the event hook
    early if the driver didn't claim any input_dev for some reason. Moreover,
    some other hid drivers accessing input_dev in their event callbacks do have
    similar checks, too.
    
    Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
    
    Fixes: 9a4a5574ce42 ("HID: appleir: add support for Apple ir devices")
    Cc: stable@vger.kernel.org
    Signed-off-by: Daniil Dulov <d.dulov@aladdin.ru>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3325fdbee9bbd3c824dc83ec7251d85b06ea16d
Author: Rob Herring (Arm) <robh@kernel.org>
Date:   Wed Feb 26 13:38:19 2025 -0600

    Revert "of: reserved-memory: Fix using wrong number of cells to get property 'alignment'"
    
    commit 75f1f311d883dfaffb98be3c1da208d6ed5d4df9 upstream.
    
    This reverts commit 267b21d0bef8e67dbe6c591c9991444e58237ec9.
    
    Turns out some DTs do depend on this behavior. Specifically, a
    downstream Pixel 6 DT. Revert the change at least until we can decide if
    the DT spec can be changed instead.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6486abfcf891a908351b8ab5e6c6cffe09caf8ae
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Feb 17 10:55:05 2025 -0500

    drm/amdgpu: disable BAR resize on Dell G5 SE
    
    [ Upstream commit 099bffc7cadff40bfab1517c3461c53a7a38a0d7 ]
    
    There was a quirk added to add a workaround for a Sapphire
    RX 5600 XT Pulse that didn't allow BAR resizing.  However,
    the quirk caused a regression with runtime pm on Dell laptops
    using those chips, rather than narrowing the scope of the
    resizing quirk, add a quirk to prevent amdgpu from resizing
    the BAR on those Dell platforms unless runtime pm is disabled.
    
    v2: update commit message, add runpm check
    
    Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/1707
    Fixes: 907830b0fc9e ("PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse")
    Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    (cherry picked from commit 5235053f443cef4210606e5fb71f99b915a9723d)
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4be891399cdce39714445a92243fe42280239057
Author: Ma Jun <Jun.Ma2@amd.com>
Date:   Mon Dec 18 11:32:06 2023 +0800

    drm/amdgpu: Check extended configuration space register when system uses large bar
    
    [ Upstream commit e372baeb3d336b20fd9463784c577fd8824497cd ]
    
    Some customer platforms do not enable mmconfig for various reasons,
    such as bios bug, and therefore cannot access the GPU extend configuration
    space through mmio.
    
    When the system enters the d3cold state and resumes, the amdgpu driver
    fails to resume because the extend configuration space registers of
    GPU can't be restored. At this point, Usually we only see some failure
    dmesg log printed by amdgpu driver, it is difficult to find the root
    cause.
    
    Therefor print a warnning message if the system can't access the
    extended configuration space register when using large bar.
    
    Signed-off-by: Ma Jun <Jun.Ma2@amd.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Stable-dep-of: 099bffc7cadf ("drm/amdgpu: disable BAR resize on Dell G5 SE")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f618aeb6cad2307e48a641379db610abcf593edf
Author: Haoxiang Li <haoxiang_li2024@163.com>
Date:   Mon Feb 17 15:20:38 2025 +0800

    smb: client: Add check for next_buffer in receive_encrypted_standard()
    
    [ Upstream commit 860ca5e50f73c2a1cef7eefc9d39d04e275417f7 ]
    
    Add check for the return value of cifs_buf_get() and cifs_small_buf_get()
    in receive_encrypted_standard() to prevent null pointer dereference.
    
    Fixes: eec04ea11969 ("smb: client: fix OOB in receive_encrypted_standard()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a56a6e8589a9b98d8171611fbcc1e45a15fd2455
Author: Quang Le <quanglex97@gmail.com>
Date:   Mon Feb 3 16:58:38 2025 -0800

    pfifo_tail_enqueue: Drop new packet when sch->limit == 0
    
    commit 647cef20e649c576dff271e018d5d15d998b629d upstream.
    
    Expected behaviour:
    In case we reach scheduler's limit, pfifo_tail_enqueue() will drop a
    packet in scheduler's queue and decrease scheduler's qlen by one.
    Then, pfifo_tail_enqueue() enqueue new packet and increase
    scheduler's qlen by one. Finally, pfifo_tail_enqueue() return
    `NET_XMIT_CN` status code.
    
    Weird behaviour:
    In case we set `sch->limit == 0` and trigger pfifo_tail_enqueue() on a
    scheduler that has no packet, the 'drop a packet' step will do nothing.
    This means the scheduler's qlen still has value equal 0.
    Then, we continue to enqueue new packet and increase scheduler's qlen by
    one. In summary, we can leverage pfifo_tail_enqueue() to increase qlen by
    one and return `NET_XMIT_CN` status code.
    
    The problem is:
    Let's say we have two qdiscs: Qdisc_A and Qdisc_B.
     - Qdisc_A's type must have '->graft()' function to create parent/child relationship.
       Let's say Qdisc_A's type is `hfsc`. Enqueue packet to this qdisc will trigger `hfsc_enqueue`.
     - Qdisc_B's type is pfifo_head_drop. Enqueue packet to this qdisc will trigger `pfifo_tail_enqueue`.
     - Qdisc_B is configured to have `sch->limit == 0`.
     - Qdisc_A is configured to route the enqueued's packet to Qdisc_B.
    
    Enqueue packet through Qdisc_A will lead to:
     - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B)
     - Qdisc_B->q.qlen += 1
     - pfifo_tail_enqueue() return `NET_XMIT_CN`
     - hfsc_enqueue() check for `NET_XMIT_SUCCESS` and see `NET_XMIT_CN` => hfsc_enqueue() don't increase qlen of Qdisc_A.
    
    The whole process lead to a situation where Qdisc_A->q.qlen == 0 and Qdisc_B->q.qlen == 1.
    Replace 'hfsc' with other type (for example: 'drr') still lead to the same problem.
    This violate the design where parent's qlen should equal to the sum of its childrens'qlen.
    
    Bug impact: This issue can be used for user->kernel privilege escalation when it is reachable.
    
    Fixes: 57dbb2d83d10 ("sched: add head drop fifo queue")
    Reported-by: Quang Le <quanglex97@gmail.com>
    Signed-off-by: Quang Le <quanglex97@gmail.com>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Link: https://patch.msgid.link/20250204005841.223511-2-xiyou.wangcong@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Lee Jones <lee@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e38f9d761b34d8545010dc8b980a96a7310c6064
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue Feb 25 23:37:08 2025 +0100

    intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly
    
    commit c157d351460bcf202970e97e611cb6b54a3dd4a4 upstream.
    
    The Intel idle driver is preferred over the ACPI processor idle driver,
    but fails to implement the work around for Core2 generation CPUs, where
    the TSC stops in C2 and deeper C-states. This causes stalls and boot
    delays, when the clocksource watchdog does not catch the unstable TSC
    before the CPU goes deep idle for the first time.
    
    The ACPI driver marks the TSC unstable when it detects that the CPU
    supports C2 or deeper and the CPU does not have a non-stop TSC.
    
    Add the equivivalent work around to the Intel idle driver to cure that.
    
    Fixes: 18734958e9bf ("intel_idle: Use ACPI _CST for processor models without C-state tables")
    Reported-by: Fab Stz <fabstz-it@yahoo.fr>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Fab Stz <fabstz-it@yahoo.fr>
    Cc: All applicable <stable@vger.kernel.org>
    Closes: https://lore.kernel.org/all/10cf96aa-1276-4bd4-8966-c890377030c3@yahoo.fr
    Link: https://patch.msgid.link/87bjupfy7f.ffs@tglx
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 288fdb8dcb71ec77b76ab8b8a06bc10f595ea504
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Mon Dec 16 14:20:56 2024 +0100

    sched/core: Prevent rescheduling when interrupts are disabled
    
    commit 82c387ef7568c0d96a918a5a78d9cad6256cfa15 upstream.
    
    David reported a warning observed while loop testing kexec jump:
    
      Interrupts enabled after irqrouter_resume+0x0/0x50
      WARNING: CPU: 0 PID: 560 at drivers/base/syscore.c:103 syscore_resume+0x18a/0x220
       kernel_kexec+0xf6/0x180
       __do_sys_reboot+0x206/0x250
       do_syscall_64+0x95/0x180
    
    The corresponding interrupt flag trace:
    
      hardirqs last  enabled at (15573): [<ffffffffa8281b8e>] __up_console_sem+0x7e/0x90
      hardirqs last disabled at (15580): [<ffffffffa8281b73>] __up_console_sem+0x63/0x90
    
    That means __up_console_sem() was invoked with interrupts enabled. Further
    instrumentation revealed that in the interrupt disabled section of kexec
    jump one of the syscore_suspend() callbacks woke up a task, which set the
    NEED_RESCHED flag. A later callback in the resume path invoked
    cond_resched() which in turn led to the invocation of the scheduler:
    
      __cond_resched+0x21/0x60
      down_timeout+0x18/0x60
      acpi_os_wait_semaphore+0x4c/0x80
      acpi_ut_acquire_mutex+0x3d/0x100
      acpi_ns_get_node+0x27/0x60
      acpi_ns_evaluate+0x1cb/0x2d0
      acpi_rs_set_srs_method_data+0x156/0x190
      acpi_pci_link_set+0x11c/0x290
      irqrouter_resume+0x54/0x60
      syscore_resume+0x6a/0x200
      kernel_kexec+0x145/0x1c0
      __do_sys_reboot+0xeb/0x240
      do_syscall_64+0x95/0x180
    
    This is a long standing problem, which probably got more visible with
    the recent printk changes. Something does a task wakeup and the
    scheduler sets the NEED_RESCHED flag. cond_resched() sees it set and
    invokes schedule() from a completely bogus context. The scheduler
    enables interrupts after context switching, which causes the above
    warning at the end.
    
    Quite some of the code paths in syscore_suspend()/resume() can result in
    triggering a wakeup with the exactly same consequences. They might not
    have done so yet, but as they share a lot of code with normal operations
    it's just a question of time.
    
    The problem only affects the PREEMPT_NONE and PREEMPT_VOLUNTARY scheduling
    models. Full preemption is not affected as cond_resched() is disabled and
    the preemption check preemptible() takes the interrupt disabled flag into
    account.
    
    Cure the problem by adding a corresponding check into cond_resched().
    
    Reported-by: David Woodhouse <dwmw@amazon.co.uk>
    Suggested-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Tested-by: David Woodhouse <dwmw@amazon.co.uk>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: stable@vger.kernel.org
    Closes: https://lore.kernel.org/all/7717fe2ac0ce5f0a2c43fdab8b11f4483d54a2a4.camel@infradead.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d67976d304ee1cda29ed45d6f0725b6252083f9
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Fri Feb 21 14:57:06 2025 +0100

    vmlinux.lds: Ensure that const vars with relocations are mapped R/O
    
    commit 68f3ea7ee199ef77551e090dfef5a49046ea8443 upstream.
    
    In the kernel, there are architectures (x86, arm64) that perform
    boot-time relocation (for KASLR) without relying on PIE codegen. In this
    case, all const global objects are emitted into .rodata, including const
    objects with fields that will be fixed up by the boot-time relocation
    code.  This implies that .rodata (and .text in some cases) need to be
    writable at boot, but they will usually be mapped read-only as soon as
    the boot completes.
    
    When using PIE codegen, the compiler will emit const global objects into
    .data.rel.ro rather than .rodata if the object contains fields that need
    such fixups at boot-time. This permits the linker to annotate such
    regions as requiring read-write access only at load time, but not at
    execution time (in user space), while keeping .rodata truly const (in
    user space, this is important for reducing the CoW footprint of dynamic
    executables).
    
    This distinction does not matter for the kernel, but it does imply that
    const data will end up in writable memory if the .data.rel.ro sections
    are not treated in a special way, as they will end up in the writable
    .data segment by default.
    
    So emit .data.rel.ro into the .rodata segment.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Link: https://lore.kernel.org/r/20250221135704.431269-5-ardb+git@google.com
    Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cca31035c05819643ffb5d7518e9a331b3f6651
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Mon Feb 24 19:11:50 2025 +0100

    mptcp: always handle address removal under msk socket lock
    
    commit f865c24bc55158313d5779fc81116023a6940ca3 upstream.
    
    Syzkaller reported a lockdep splat in the PM control path:
    
      WARNING: CPU: 0 PID: 6693 at ./include/net/sock.h:1711 sock_owned_by_me include/net/sock.h:1711 [inline]
      WARNING: CPU: 0 PID: 6693 at ./include/net/sock.h:1711 msk_owned_by_me net/mptcp/protocol.h:363 [inline]
      WARNING: CPU: 0 PID: 6693 at ./include/net/sock.h:1711 mptcp_pm_nl_addr_send_ack+0x57c/0x610 net/mptcp/pm_netlink.c:788
      Modules linked in:
      CPU: 0 UID: 0 PID: 6693 Comm: syz.0.205 Not tainted 6.14.0-rc2-syzkaller-00303-gad1b832bf1cf #0
      Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
      RIP: 0010:sock_owned_by_me include/net/sock.h:1711 [inline]
      RIP: 0010:msk_owned_by_me net/mptcp/protocol.h:363 [inline]
      RIP: 0010:mptcp_pm_nl_addr_send_ack+0x57c/0x610 net/mptcp/pm_netlink.c:788
      Code: 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc e8 ca 7b d3 f5 eb b9 e8 c3 7b d3 f5 90 0f 0b 90 e9 dd fb ff ff e8 b5 7b d3 f5 90 <0f> 0b 90 e9 3e fb ff ff 44 89 f1 80 e1 07 38 c1 0f 8c eb fb ff ff
      RSP: 0000:ffffc900034f6f60 EFLAGS: 00010283
      RAX: ffffffff8bee3c2b RBX: 0000000000000001 RCX: 0000000000080000
      RDX: ffffc90004d42000 RSI: 000000000000a407 RDI: 000000000000a408
      RBP: ffffc900034f7030 R08: ffffffff8bee37f6 R09: 0100000000000000
      R10: dffffc0000000000 R11: ffffed100bcc62e4 R12: ffff88805e6316e0
      R13: ffff88805e630c00 R14: dffffc0000000000 R15: ffff88805e630c00
      FS:  00007f7e9a7e96c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000001b2fd18ff8 CR3: 0000000032c24000 CR4: 00000000003526f0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
       <TASK>
       mptcp_pm_remove_addr+0x103/0x1d0 net/mptcp/pm.c:59
       mptcp_pm_remove_anno_addr+0x1f4/0x2f0 net/mptcp/pm_netlink.c:1486
       mptcp_nl_remove_subflow_and_signal_addr net/mptcp/pm_netlink.c:1518 [inline]
       mptcp_pm_nl_del_addr_doit+0x118d/0x1af0 net/mptcp/pm_netlink.c:1629
       genl_family_rcv_msg_doit net/netlink/genetlink.c:1115 [inline]
       genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
       genl_rcv_msg+0xb1f/0xec0 net/netlink/genetlink.c:1210
       netlink_rcv_skb+0x206/0x480 net/netlink/af_netlink.c:2543
       genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219
       netlink_unicast_kernel net/netlink/af_netlink.c:1322 [inline]
       netlink_unicast+0x7f6/0x990 net/netlink/af_netlink.c:1348
       netlink_sendmsg+0x8de/0xcb0 net/netlink/af_netlink.c:1892
       sock_sendmsg_nosec net/socket.c:718 [inline]
       __sock_sendmsg+0x221/0x270 net/socket.c:733
       ____sys_sendmsg+0x53a/0x860 net/socket.c:2573
       ___sys_sendmsg net/socket.c:2627 [inline]
       __sys_sendmsg+0x269/0x350 net/socket.c:2659
       do_syscall_x64 arch/x86/entry/common.c:52 [inline]
       do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
      RIP: 0033:0x7f7e9998cde9
      Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48
      RSP: 002b:00007f7e9a7e9038 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
      RAX: ffffffffffffffda RBX: 00007f7e99ba5fa0 RCX: 00007f7e9998cde9
      RDX: 000000002000c094 RSI: 0000400000000000 RDI: 0000000000000007
      RBP: 00007f7e99a0e2a0 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
      R13: 0000000000000000 R14: 00007f7e99ba5fa0 R15: 00007fff49231088
    
    Indeed the PM can try to send a RM_ADDR over a msk without acquiring
    first the msk socket lock.
    
    The bugged code-path comes from an early optimization: when there
    are no subflows, the PM should (usually) not send RM_ADDR
    notifications.
    
    The above statement is incorrect, as without locks another process
    could concurrent create a new subflow and cause the RM_ADDR generation.
    
    Additionally the supposed optimization is not very effective even
    performance-wise, as most mptcp sockets should have at least one
    subflow: the MPC one.
    
    Address the issue removing the buggy code path, the existing "slow-path"
    will handle correctly even the edge case.
    
    Fixes: b6c08380860b ("mptcp: remove addr and subflow in PM netlink")
    Cc: stable@vger.kernel.org
    Reported-by: syzbot+cd3ce3d03a3393ae9700@syzkaller.appspotmail.com
    Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/546
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
    Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
    Link: https://patch.msgid.link/20250224-net-mptcp-misc-fixes-v1-1-f550f636b435@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b66eb3f54ac3c6e0763c49c170ed768b30f54ab5
Author: Kaustabh Chakraborty <kauschluss@disroot.org>
Date:   Sun Feb 9 00:29:30 2025 +0530

    phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk
    
    commit e2158c953c973adb49383ddea2504faf08d375b7 upstream.
    
    In exynos5_usbdrd_{pipe3,utmi}_set_refclk(), the masks
    PHYCLKRST_MPLL_MULTIPLIER_MASK and PHYCLKRST_SSC_REFCLKSEL_MASK are not
    inverted when applied to the register values. Fix it.
    
    Cc: stable@vger.kernel.org
    Fixes: 59025887fb08 ("phy: Add new Exynos5 USB 3.0 PHY driver")
    Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Anand Moon <linux.amoon@gmail.com>
    Link: https://lore.kernel.org/r/20250209-exynos5-usbdrd-masks-v1-1-4f7f83f323d7@disroot.org
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f07c325f54c47049d0b854972e2b0146cf3e38a1
Author: BH Hsieh <bhsieh@nvidia.com>
Date:   Wed Jan 22 18:59:43 2025 +0800

    phy: tegra: xusb: reset VBUS & ID OVERRIDE
    
    commit 55f1a5f7c97c3c92ba469e16991a09274410ceb7 upstream.
    
    Observed VBUS_OVERRIDE & ID_OVERRIDE might be programmed
    with unexpected value prior to XUSB PADCTL driver, this
    could also occur in virtualization scenario.
    
    For example, UEFI firmware programs ID_OVERRIDE=GROUNDED to set
    a type-c port to host mode and keeps the value to kernel.
    If the type-c port is connected a usb host, below errors can be
    observed right after usb host mode driver gets probed. The errors
    would keep until usb role class driver detects the type-c port
    as device mode and notifies usb device mode driver to set both
    ID_OVERRIDE and VBUS_OVERRIDE to correct value by XUSB PADCTL
    driver.
    
    [  173.765814] usb usb3-port2: Cannot enable. Maybe the USB cable is bad?
    [  173.765837] usb usb3-port2: config error
    
    Taking virtualization into account, asserting XUSB PADCTL
    reset would break XUSB functions used by other guest OS,
    hence only reset VBUS & ID OVERRIDE of the port in
    utmi_phy_init.
    
    Fixes: bbf711682cd5 ("phy: tegra: xusb: Add Tegra186 support")
    Cc: stable@vger.kernel.org
    Change-Id: Ic63058d4d49b4a1f8f9ab313196e20ad131cc591
    Signed-off-by: BH Hsieh <bhsieh@nvidia.com>
    Signed-off-by: Henry Lin <henryl@nvidia.com>
    Link: https://lore.kernel.org/r/20250122105943.8057-1-henryl@nvidia.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d20b23a5412c08891c1aa94c17edde50520e172c
Author: Wei Fang <wei.fang@nxp.com>
Date:   Mon Feb 24 19:12:46 2025 +0800

    net: enetc: correct the xdp_tx statistics
    
    commit 432a2cb3ee97a7c6ea578888fe81baad035b9307 upstream.
    
    The 'xdp_tx' is used to count the number of XDP_TX frames sent, not the
    number of Tx BDs.
    
    Fixes: 7ed2bc80074e ("net: enetc: add support for XDP_TX")
    Cc: stable@vger.kernel.org
    Signed-off-by: Wei Fang <wei.fang@nxp.com>
    Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://patch.msgid.link/20250224111251.1061098-4-wei.fang@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccce797d9052710fa8646664d26a2c9f6814687c
Author: Wei Fang <wei.fang@nxp.com>
Date:   Mon Feb 24 19:12:48 2025 +0800

    net: enetc: update UDP checksum when updating originTimestamp field
    
    commit bbcbc906ab7b5834c1219cd17a38d78dba904aa0 upstream.
    
    There is an issue with one-step timestamp based on UDP/IP. The peer will
    discard the sync packet because of the wrong UDP checksum. For ENETC v1,
    the software needs to update the UDP checksum when updating the
    originTimestamp field, so that the hardware can correctly update the UDP
    checksum when updating the correction field. Otherwise, the UDP checksum
    in the sync packet will be wrong.
    
    Fixes: 7294380c5211 ("enetc: support PTP Sync packet one-step timestamping")
    Cc: stable@vger.kernel.org
    Signed-off-by: Wei Fang <wei.fang@nxp.com>
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://patch.msgid.link/20250224111251.1061098-6-wei.fang@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b68d88b799750290225509e36e62dbf93783f6d6
Author: Wei Fang <wei.fang@nxp.com>
Date:   Mon Feb 24 19:12:44 2025 +0800

    net: enetc: fix the off-by-one issue in enetc_map_tx_buffs()
    
    commit 39ab773e4c120f7f98d759415ccc2aca706bbc10 upstream.
    
    When a DMA mapping error occurs while processing skb frags, it will free
    one more tx_swbd than expected, so fix this off-by-one issue.
    
    Fixes: d4fd0404c1c9 ("enetc: Introduce basic PF and VF ENETC ethernet drivers")
    Cc: stable@vger.kernel.org
    Suggested-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Suggested-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Signed-off-by: Wei Fang <wei.fang@nxp.com>
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
    Link: https://patch.msgid.link/20250224111251.1061098-2-wei.fang@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9bcb8cbc3e5d67eb223bfb7e2291a270dbb699dc
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Mon Feb 24 20:29:17 2025 +0300

    usbnet: gl620a: fix endpoint checking in genelink_bind()
    
    commit 1cf9631d836b289bd5490776551961c883ae8a4f upstream.
    
    Syzbot reports [1] a warning in usb_submit_urb() triggered by
    inconsistencies between expected and actually present endpoints
    in gl620a driver. Since genelink_bind() does not properly
    verify whether specified eps are in fact provided by the device,
    in this case, an artificially manufactured one, one may get a
    mismatch.
    
    Fix the issue by resorting to a usbnet utility function
    usbnet_get_endpoints(), usually reserved for this very problem.
    Check for endpoints and return early before proceeding further if
    any are missing.
    
    [1] Syzbot report:
    usb 5-1: Manufacturer: syz
    usb 5-1: SerialNumber: syz
    usb 5-1: config 0 descriptor??
    gl620a 5-1:0.23 usb0: register 'gl620a' at usb-dummy_hcd.0-1, ...
    ------------[ cut here ]------------
    usb 5-1: BOGUS urb xfer, pipe 3 != type 1
    WARNING: CPU: 2 PID: 1841 at drivers/usb/core/urb.c:503 usb_submit_urb+0xe4b/0x1730 drivers/usb/core/urb.c:503
    Modules linked in:
    CPU: 2 UID: 0 PID: 1841 Comm: kworker/2:2 Not tainted 6.12.0-syzkaller-07834-g06afb0f36106 #0
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
    Workqueue: mld mld_ifc_work
    RIP: 0010:usb_submit_urb+0xe4b/0x1730 drivers/usb/core/urb.c:503
    ...
    Call Trace:
     <TASK>
     usbnet_start_xmit+0x6be/0x2780 drivers/net/usb/usbnet.c:1467
     __netdev_start_xmit include/linux/netdevice.h:5002 [inline]
     netdev_start_xmit include/linux/netdevice.h:5011 [inline]
     xmit_one net/core/dev.c:3590 [inline]
     dev_hard_start_xmit+0x9a/0x7b0 net/core/dev.c:3606
     sch_direct_xmit+0x1ae/0xc30 net/sched/sch_generic.c:343
     __dev_xmit_skb net/core/dev.c:3827 [inline]
     __dev_queue_xmit+0x13d4/0x43e0 net/core/dev.c:4400
     dev_queue_xmit include/linux/netdevice.h:3168 [inline]
     neigh_resolve_output net/core/neighbour.c:1514 [inline]
     neigh_resolve_output+0x5bc/0x950 net/core/neighbour.c:1494
     neigh_output include/net/neighbour.h:539 [inline]
     ip6_finish_output2+0xb1b/0x2070 net/ipv6/ip6_output.c:141
     __ip6_finish_output net/ipv6/ip6_output.c:215 [inline]
     ip6_finish_output+0x3f9/0x1360 net/ipv6/ip6_output.c:226
     NF_HOOK_COND include/linux/netfilter.h:303 [inline]
     ip6_output+0x1f8/0x540 net/ipv6/ip6_output.c:247
     dst_output include/net/dst.h:450 [inline]
     NF_HOOK include/linux/netfilter.h:314 [inline]
     NF_HOOK include/linux/netfilter.h:308 [inline]
     mld_sendpack+0x9f0/0x11d0 net/ipv6/mcast.c:1819
     mld_send_cr net/ipv6/mcast.c:2120 [inline]
     mld_ifc_work+0x740/0xca0 net/ipv6/mcast.c:2651
     process_one_work+0x9c5/0x1ba0 kernel/workqueue.c:3229
     process_scheduled_works kernel/workqueue.c:3310 [inline]
     worker_thread+0x6c8/0xf00 kernel/workqueue.c:3391
     kthread+0x2c1/0x3a0 kernel/kthread.c:389
     ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
     ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
     </TASK>
    
    Reported-by: syzbot+d693c07c6f647e0388d3@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=d693c07c6f647e0388d3
    Fixes: 47ee3051c856 ("[PATCH] USB: usbnet (5/9) module for genesys gl620a cables")
    Cc: stable@vger.kernel.org
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Link: https://patch.msgid.link/20250224172919.1220522-1-n.zhandarovich@fintech.ru
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3aea1dba97d31eceed7b622000af0406988b9c8
Author: Tyrone Ting <kfting@nuvoton.com>
Date:   Thu Feb 20 12:00:29 2025 +0800

    i2c: npcm: disable interrupt enable bit before devm_request_irq
    
    commit dd1998e243f5fa25d348a384ba0b6c84d980f2b2 upstream.
    
    The customer reports that there is a soft lockup issue related to
    the i2c driver. After checking, the i2c module was doing a tx transfer
    and the bmc machine reboots in the middle of the i2c transaction, the i2c
    module keeps the status without being reset.
    
    Due to such an i2c module status, the i2c irq handler keeps getting
    triggered since the i2c irq handler is registered in the kernel booting
    process after the bmc machine is doing a warm rebooting.
    The continuous triggering is stopped by the soft lockup watchdog timer.
    
    Disable the interrupt enable bit in the i2c module before calling
    devm_request_irq to fix this issue since the i2c relative status bit
    is read-only.
    
    Here is the soft lockup log.
    [   28.176395] watchdog: BUG: soft lockup - CPU#0 stuck for 26s! [swapper/0:1]
    [   28.183351] Modules linked in:
    [   28.186407] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.120-yocto-s-dirty-bbebc78 #1
    [   28.201174] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [   28.208128] pc : __do_softirq+0xb0/0x368
    [   28.212055] lr : __do_softirq+0x70/0x368
    [   28.215972] sp : ffffff8035ebca00
    [   28.219278] x29: ffffff8035ebca00 x28: 0000000000000002 x27: ffffff80071a3780
    [   28.226412] x26: ffffffc008bdc000 x25: ffffffc008bcc640 x24: ffffffc008be50c0
    [   28.233546] x23: ffffffc00800200c x22: 0000000000000000 x21: 000000000000001b
    [   28.240679] x20: 0000000000000000 x19: ffffff80001c3200 x18: ffffffffffffffff
    [   28.247812] x17: ffffffc02d2e0000 x16: ffffff8035eb8b40 x15: 00001e8480000000
    [   28.254945] x14: 02c3647e37dbfcb6 x13: 02c364f2ab14200c x12: 0000000002c364f2
    [   28.262078] x11: 00000000fa83b2da x10: 000000000000b67e x9 : ffffffc008010250
    [   28.269211] x8 : 000000009d983d00 x7 : 7fffffffffffffff x6 : 0000036d74732434
    [   28.276344] x5 : 00ffffffffffffff x4 : 0000000000000015 x3 : 0000000000000198
    [   28.283476] x2 : ffffffc02d2e0000 x1 : 00000000000000e0 x0 : ffffffc008bdcb40
    [   28.290611] Call trace:
    [   28.293052]  __do_softirq+0xb0/0x368
    [   28.296625]  __irq_exit_rcu+0xe0/0x100
    [   28.300374]  irq_exit+0x14/0x20
    [   28.303513]  handle_domain_irq+0x68/0x90
    [   28.307440]  gic_handle_irq+0x78/0xb0
    [   28.311098]  call_on_irq_stack+0x20/0x38
    [   28.315019]  do_interrupt_handler+0x54/0x5c
    [   28.319199]  el1_interrupt+0x2c/0x4c
    [   28.322777]  el1h_64_irq_handler+0x14/0x20
    [   28.326872]  el1h_64_irq+0x74/0x78
    [   28.330269]  __setup_irq+0x454/0x780
    [   28.333841]  request_threaded_irq+0xd0/0x1b4
    [   28.338107]  devm_request_threaded_irq+0x84/0x100
    [   28.342809]  npcm_i2c_probe_bus+0x188/0x3d0
    [   28.346990]  platform_probe+0x6c/0xc4
    [   28.350653]  really_probe+0xcc/0x45c
    [   28.354227]  __driver_probe_device+0x8c/0x160
    [   28.358578]  driver_probe_device+0x44/0xe0
    [   28.362670]  __driver_attach+0x124/0x1d0
    [   28.366589]  bus_for_each_dev+0x7c/0xe0
    [   28.370426]  driver_attach+0x28/0x30
    [   28.373997]  bus_add_driver+0x124/0x240
    [   28.377830]  driver_register+0x7c/0x124
    [   28.381662]  __platform_driver_register+0x2c/0x34
    [   28.386362]  npcm_i2c_init+0x3c/0x5c
    [   28.389937]  do_one_initcall+0x74/0x230
    [   28.393768]  kernel_init_freeable+0x24c/0x2b4
    [   28.398126]  kernel_init+0x28/0x130
    [   28.401614]  ret_from_fork+0x10/0x20
    [   28.405189] Kernel panic - not syncing: softlockup: hung tasks
    [   28.411011] SMP: stopping secondary CPUs
    [   28.414933] Kernel Offset: disabled
    [   28.418412] CPU features: 0x00000000,00000802
    [   28.427644] Rebooting in 20 seconds..
    
    Fixes: 56a1485b102e ("i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver")
    Signed-off-by: Tyrone Ting <kfting@nuvoton.com>
    Cc: <stable@vger.kernel.org> # v5.8+
    Reviewed-by: Tali Perry <tali.perry1@gmail.com>
    Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
    Link: https://lore.kernel.org/r/20250220040029.27596-2-kfting@nuvoton.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c327a355a4ffc08fcc0d2b484a761257c12c84de
Author: Roman Li <Roman.Li@amd.com>
Date:   Wed Feb 12 14:49:36 2025 -0500

    drm/amd/display: Fix HPD after gpu reset
    
    commit 4de141b8b1b7991b607f77e5f4580e1c67c24717 upstream.
    
    [Why]
    DC is not using amdgpu_irq_get/put to manage the HPD interrupt refcounts.
    So when amdgpu_irq_gpu_reset_resume_helper() reprograms all of the IRQs,
    HPD gets disabled.
    
    [How]
    Use amdgpu_irq_get/put() for HPD init/fini in DM in order to sync refcounts
    
    Cc: Mario Limonciello <mario.limonciello@amd.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
    Signed-off-by: Roman Li <Roman.Li@amd.com>
    Signed-off-by: Zaeem Mohamed <zaeem.mohamed@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    (cherry picked from commit f3dde2ff7fcaacd77884502e8f572f2328e9c745)
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 922e18d67bc0a534f1aef5c7643d8f682bb3eec6
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Fri Jan 17 07:19:12 2025 -0800

    perf/core: Fix low freq setting via IOC_PERIOD
    
    commit 0d39844150546fa1415127c5fbae26db64070dd3 upstream.
    
    A low attr::freq value cannot be set via IOC_PERIOD on some platforms.
    
    The perf_event_check_period() introduced in:
    
      81ec3f3c4c4d ("perf/x86: Add check_period PMU callback")
    
    was intended to check the period, rather than the frequency.
    A low frequency may be mistakenly rejected by limit_period().
    
    Fix it.
    
    Fixes: 81ec3f3c4c4d ("perf/x86: Add check_period PMU callback")
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Reviewed-by: Ravi Bangoria <ravi.bangoria@amd.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20250117151913.3043942-2-kan.liang@linux.intel.com
    Closes: https://lore.kernel.org/lkml/20250115154949.3147-1-ravi.bangoria@amd.com/
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fca3b89abc9206ecfe5d036b170e224957669eb1
Author: Dmitry Panchenko <dmitry@d-systems.ee>
Date:   Thu Feb 20 18:15:37 2025 +0200

    ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2
    
    commit 9af3b4f2d879da01192d6168e6c651e7fb5b652d upstream.
    
    Re-add the sample-rate quirk for the Pioneer DJM-900NXS2. This
    device does not work without setting sample-rate.
    
    Signed-off-by: Dmitry Panchenko <dmitry@d-systems.ee>
    Cc: <stable@vger.kernel.org>
    Link: https://patch.msgid.link/20250220161540.3624660-1-dmitry@d-systems.ee
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d738b53ed6cddb68e68c9874520a4bf846163b5
Author: Nikolay Kuratov <kniv@yandex-team.ru>
Date:   Thu Feb 6 12:01:56 2025 +0300

    ftrace: Avoid potential division by zero in function_stat_show()
    
    commit a1a7eb89ca0b89dc1c326eeee2596f263291aca3 upstream.
    
    Check whether denominator expression x * (x - 1) * 1000 mod {2^32, 2^64}
    produce zero and skip stddev computation in that case.
    
    For now don't care about rec->counter * rec->counter overflow because
    rec->time * rec->time overflow will likely happen earlier.
    
    Cc: stable@vger.kernel.org
    Cc: Wen Yang <wenyang@linux.alibaba.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Link: https://lore.kernel.org/20250206090156.1561783-1-kniv@yandex-team.ru
    Fixes: e31f7939c1c27 ("ftrace: Avoid potential division by zero in function profiler")
    Signed-off-by: Nikolay Kuratov <kniv@yandex-team.ru>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7163da88c07b166ecc703a7bb3478a49f45027ab
Author: Russell Senior <russell@personaltelco.net>
Date:   Tue Feb 25 22:31:20 2025 +0100

    x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems
    
    [ Upstream commit bebe35bb738b573c32a5033499cd59f20293f2a3 ]
    
    I still have some Soekris net4826 in a Community Wireless Network I
    volunteer with. These devices use an AMD SC1100 SoC. I am running
    OpenWrt on them, which uses a patched kernel, that naturally has
    evolved over time.  I haven't updated the ones in the field in a
    number of years (circa 2017), but have one in a test bed, where I have
    intermittently tried out test builds.
    
    A few years ago, I noticed some trouble, particularly when "warm
    booting", that is, doing a reboot without removing power, and noticed
    the device was hanging after the kernel message:
    
      [    0.081615] Working around Cyrix MediaGX virtual DMA bugs.
    
    If I removed power and then restarted, it would boot fine, continuing
    through the message above, thusly:
    
      [    0.081615] Working around Cyrix MediaGX virtual DMA bugs.
      [    0.090076] Enable Memory-Write-back mode on Cyrix/NSC processor.
      [    0.100000] Enable Memory access reorder on Cyrix/NSC processor.
      [    0.100070] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
      [    0.110058] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0
      [    0.120037] CPU: NSC Geode(TM) Integrated Processor by National Semi (family: 0x5, model: 0x9, stepping: 0x1)
      [...]
    
    In order to continue using modern tools, like ssh, to interact with
    the software on these old devices, I need modern builds of the OpenWrt
    firmware on the devices. I confirmed that the warm boot hang was still
    an issue in modern OpenWrt builds (currently using a patched linux
    v6.6.65).
    
    Last night, I decided it was time to get to the bottom of the warm
    boot hang, and began bisecting. From preserved builds, I narrowed down
    the bisection window from late February to late May 2019. During this
    period, the OpenWrt builds were using 4.14.x. I was able to build
    using period-correct Ubuntu 18.04.6. After a number of bisection
    iterations, I identified a kernel bump from 4.14.112 to 4.14.113 as
    the commit that introduced the warm boot hang.
    
      https://github.com/openwrt/openwrt/commit/07aaa7e3d62ad32767d7067107db64b6ade81537
    
    Looking at the upstream changes in the stable kernel between 4.14.112
    and 4.14.113 (tig v4.14.112..v4.14.113), I spotted a likely suspect:
    
      https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=20afb90f730982882e65b01fb8bdfe83914339c5
    
    So, I tried reverting just that kernel change on top of the breaking
    OpenWrt commit, and my warm boot hang went away.
    
    Presumably, the warm boot hang is due to some register not getting
    cleared in the same way that a loss of power does. That is
    approximately as much as I understand about the problem.
    
    More poking/prodding and coaching from Jonas Gorski, it looks
    like this test patch fixes the problem on my board: Tested against
    v6.6.67 and v4.14.113.
    
    Fixes: 18fb053f9b82 ("x86/cpu/cyrix: Use correct macros for Cyrix calls on Geode processors")
    Debugged-by: Jonas Gorski <jonas.gorski@gmail.com>
    Signed-off-by: Russell Senior <russell@personaltelco.net>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Link: https://lore.kernel.org/r/CAHP3WfOgs3Ms4Z+L9i0-iBOE21sdMk5erAiJurPjnrL9LSsgRA@mail.gmail.com
    Cc: Matthew Whitehead <tedheadster@gmail.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2daabaa55c7cb8e1d30229b0db46dc19ba6c7abb
Author: Justin Iurman <justin.iurman@uliege.be>
Date:   Tue Feb 25 18:51:39 2025 +0100

    net: ipv6: fix dst ref loop on input in rpl lwt
    
    [ Upstream commit 13e55fbaec176119cff68a7e1693b251c8883c5f ]
    
    Prevent a dst ref loop on input in rpl_iptunnel.
    
    Fixes: a7a29f9c361f ("net: ipv6: add rpl sr tunnel")
    Cc: Alexander Aring <alex.aring@gmail.com>
    Cc: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Ido Schimmel <idosch@nvidia.com>
    Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c0b11dc50590e10590b39dcda79835cd32f49d00
Author: Justin Iurman <justin.iurman@uliege.be>
Date:   Tue Dec 3 13:49:45 2024 +0100

    net: ipv6: rpl_iptunnel: mitigate 2-realloc issue
    
    [ Upstream commit 985ec6f5e6235242191370628acb73d7a9f0c0ea ]
    
    This patch mitigates the two-reallocations issue with rpl_iptunnel by
    providing the dst_entry (in the cache) to the first call to
    skb_cow_head(). As a result, the very first iteration would still
    trigger two reallocations (i.e., empty cache), while next iterations
    would only trigger a single reallocation.
    
    Performance tests before/after applying this patch, which clearly shows
    there is no impact (it even shows improvement):
    - before: https://ibb.co/nQJhqwc
    - after: https://ibb.co/4ZvW6wV
    
    Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
    Cc: Alexander Aring <aahringo@redhat.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Stable-dep-of: 13e55fbaec17 ("net: ipv6: fix dst ref loop on input in rpl lwt")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dbd4f89a4a58f4a1ef568605d53ab6c045c8cb4c
Author: Justin Iurman <justin.iurman@uliege.be>
Date:   Tue Feb 25 18:51:38 2025 +0100

    net: ipv6: fix dst ref loop on input in seg6 lwt
    
    [ Upstream commit c64a0727f9b1cbc63a5538c8c0014e9a175ad864 ]
    
    Prevent a dst ref loop on input in seg6_iptunnel.
    
    Fixes: af4a2209b134 ("ipv6: sr: use dst_cache in seg6_input")
    Cc: David Lebrun <dlebrun@google.com>
    Cc: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Ido Schimmel <idosch@nvidia.com>
    Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 634710a372ba65bee667c2f6e58a97658c639eab
Author: Justin Iurman <justin.iurman@uliege.be>
Date:   Tue Dec 3 13:49:44 2024 +0100

    net: ipv6: seg6_iptunnel: mitigate 2-realloc issue
    
    [ Upstream commit 40475b63761abb6f8fdef960d03228a08662c9c4 ]
    
    This patch mitigates the two-reallocations issue with seg6_iptunnel by
    providing the dst_entry (in the cache) to the first call to
    skb_cow_head(). As a result, the very first iteration would still
    trigger two reallocations (i.e., empty cache), while next iterations
    would only trigger a single reallocation.
    
    Performance tests before/after applying this patch, which clearly shows
    the improvement:
    - before: https://ibb.co/3Cg4sNH
    - after: https://ibb.co/8rQ350r
    
    Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
    Cc: David Lebrun <dlebrun@google.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Stable-dep-of: c64a0727f9b1 ("net: ipv6: fix dst ref loop on input in seg6 lwt")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8513e56e31fcf22dc09ef2b841333a1825a06fa7
Author: Justin Iurman <justin.iurman@uliege.be>
Date:   Tue Dec 3 13:49:42 2024 +0100

    include: net: add static inline dst_dev_overhead() to dst.h
    
    [ Upstream commit 0600cf40e9b36fe17f9c9f04d4f9cef249eaa5e7 ]
    
    Add static inline dst_dev_overhead() function to include/net/dst.h. This
    helper function is used by ioam6_iptunnel, rpl_iptunnel and
    seg6_iptunnel to get the dev's overhead based on a cache entry
    (dst_entry). If the cache is empty, the default and generic value
    skb->mac_len is returned. Otherwise, LL_RESERVED_SPACE() over dst's dev
    is returned.
    
    Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
    Cc: Alexander Lobakin <aleksander.lobakin@intel.com>
    Cc: Vadim Fedorenko <vadim.fedorenko@linux.dev>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Stable-dep-of: c64a0727f9b1 ("net: ipv6: fix dst ref loop on input in seg6 lwt")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e97606c954fb3453e8c203e1da8840e09afe157
Author: Andrea Mayer <andrea.mayer@uniroma2.it>
Date:   Wed Jul 27 20:54:06 2022 +0200

    seg6: add support for SRv6 H.L2Encaps.Red behavior
    
    [ Upstream commit 13f0296be8ece1189cbc4383a45ba97cafaecc09 ]
    
    The SRv6 H.L2Encaps.Red behavior described in [1] is an optimization of
    the SRv6 H.L2Encaps behavior [2].
    
    H.L2Encaps.Red reduces the length of the SRH by excluding the first
    segment (SID) in the SRH of the pushed IPv6 header. The first SID is
    only placed in the IPv6 Destination Address field of the pushed IPv6
    header.
    When the SRv6 Policy only contains one SID the SRH is omitted, unless
    there is an HMAC TLV to be carried.
    
    [1] - https://datatracker.ietf.org/doc/html/rfc8986#section-5.4
    [2] - https://datatracker.ietf.org/doc/html/rfc8986#section-5.3
    
    Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
    Signed-off-by: Anton Makarov <anton.makarov11235@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: c64a0727f9b1 ("net: ipv6: fix dst ref loop on input in seg6 lwt")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 86df97f030be3c4702843aa0c9cef41c05bc6808
Author: Andrea Mayer <andrea.mayer@uniroma2.it>
Date:   Wed Jul 27 20:54:05 2022 +0200

    seg6: add support for SRv6 H.Encaps.Red behavior
    
    [ Upstream commit b07c8cdbe918aa17da864da9a89b22afaed0393e ]
    
    The SRv6 H.Encaps.Red behavior described in [1] is an optimization of
    the SRv6 H.Encaps behavior [2].
    
    H.Encaps.Red reduces the length of the SRH by excluding the first
    segment (SID) in the SRH of the pushed IPv6 header. The first SID is
    only placed in the IPv6 Destination Address field of the pushed IPv6
    header.
    When the SRv6 Policy only contains one SID the SRH is omitted, unless
    there is an HMAC TLV to be carried.
    
    [1] - https://datatracker.ietf.org/doc/html/rfc8986#section-5.2
    [2] - https://datatracker.ietf.org/doc/html/rfc8986#section-5.1
    
    Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
    Signed-off-by: Anton Makarov <anton.makarov11235@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: c64a0727f9b1 ("net: ipv6: fix dst ref loop on input in seg6 lwt")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf5801cc24cc578985c29b7d85d27bcdab895fbb
Author: Shay Drory <shayd@nvidia.com>
Date:   Tue Feb 25 09:26:08 2025 +0200

    net/mlx5: IRQ, Fix null string in debug print
    
    [ Upstream commit 2f5a6014eb168a97b24153adccfa663d3b282767 ]
    
    irq_pool_alloc() debug print can print a null string.
    Fix it by providing a default string to print.
    
    Fixes: 71e084e26414 ("net/mlx5: Allocating a pool of MSI-X vectors for SFs")
    Signed-off-by: Shay Drory <shayd@nvidia.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501141055.SwfIphN0-lkp@intel.com/
    Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Link: https://patch.msgid.link/20250225072608.526866-4-tariqt@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8e0dd7ff31977e3f1ed7dd8e0348d5be81c09fe
Author: Harshal Chaudhari <hchaudhari@marvell.com>
Date:   Mon Feb 24 20:20:58 2025 -0800

    net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination.
    
    [ Upstream commit 2d253726ff7106b39a44483b6864398bba8a2f74 ]
    
    Non IP flow, with vlan tag not working as expected while
    running below command for vlan-priority. fixed that.
    
    ethtool -N eth1 flow-type ether vlan 0x8000 vlan-mask 0x1fff action 0 loc 0
    
    Fixes: 1274daede3ef ("net: mvpp2: cls: Add steering based on vlan Id and priority.")
    Signed-off-by: Harshal Chaudhari <hchaudhari@marvell.com>
    Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
    Link: https://patch.msgid.link/20250225042058.2643838-1-hchaudhari@marvell.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0e70cec1839f0e2b3dc22ef6d1dc52962cdd5cc0
Author: Wang Hai <wanghai38@huawei.com>
Date:   Mon Feb 24 17:00:47 2025 +0800

    tcp: Defer ts_recent changes until req is owned
    
    [ Upstream commit 8d52da23b6c68a0f6bad83959ebb61a2cf623c4e ]
    
    Recently a bug was discovered where the server had entered TCP_ESTABLISHED
    state, but the upper layers were not notified.
    
    The same 5-tuple packet may be processed by different CPUSs, so two
    CPUs may receive different ack packets at the same time when the
    state is TCP_NEW_SYN_RECV.
    
    In that case, req->ts_recent in tcp_check_req may be changed concurrently,
    which will probably cause the newsk's ts_recent to be incorrectly large.
    So that tcp_validate_incoming will fail. At this point, newsk will not be
    able to enter the TCP_ESTABLISHED.
    
    cpu1                                    cpu2
    tcp_check_req
                                            tcp_check_req
     req->ts_recent = rcv_tsval = t1
                                             req->ts_recent = rcv_tsval = t2
    
     syn_recv_sock
      tcp_sk(child)->rx_opt.ts_recent = req->ts_recent = t2 // t1 < t2
    tcp_child_process
     tcp_rcv_state_process
      tcp_validate_incoming
       tcp_paws_check
        if ((s32)(rx_opt->ts_recent - rx_opt->rcv_tsval) <= paws_win)
            // t2 - t1 > paws_win, failed
                                            tcp_v4_do_rcv
                                             tcp_rcv_state_process
                                             // TCP_ESTABLISHED
    
    The cpu2's skb or a newly received skb will call tcp_v4_do_rcv to get
    the newsk into the TCP_ESTABLISHED state, but at this point it is no
    longer possible to notify the upper layer application. A notification
    mechanism could be added here, but the fix is more complex, so the
    current fix is used.
    
    In tcp_check_req, req->ts_recent is used to assign a value to
    tcp_sk(child)->rx_opt.ts_recent, so removing the change in req->ts_recent
    and changing tcp_sk(child)->rx_opt.ts_recent directly after owning the
    req fixes this bug.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Reviewed-by: Jason Xing <kerneljasonxing@gmail.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3c25f8374c2f89eae31011edc91ddedee01d832
Author: Philo Lu <lulie@linux.alibaba.com>
Date:   Sat Feb 22 11:35:18 2025 +0800

    ipvs: Always clear ipvs_property flag in skb_scrub_packet()
    
    [ Upstream commit de2c211868b9424f9aa9b3432c4430825bafb41b ]
    
    We found an issue when using bpf_redirect with ipvs NAT mode after
    commit ff70202b2d1a ("dev_forward_skb: do not scrub skb mark within
    the same name space"). Particularly, we use bpf_redirect to return
    the skb directly back to the netif it comes from, i.e., xnet is
    false in skb_scrub_packet(), and then ipvs_property is preserved
    and SNAT is skipped in the rx path.
    
    ipvs_property has been already cleared when netns is changed in
    commit 2b5ec1a5f973 ("netfilter/ipvs: clear ipvs_property flag when
    SKB net namespace changed"). This patch just clears it in spite of
    netns.
    
    Fixes: 2b5ec1a5f973 ("netfilter/ipvs: clear ipvs_property flag when SKB net namespace changed")
    Signed-off-by: Philo Lu <lulie@linux.alibaba.com>
    Acked-by: Julian Anastasov <ja@ssi.bg>
    Link: https://patch.msgid.link/20250222033518.126087-1-lulie@linux.alibaba.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eba344580acbe12e37ee3dd70df6a691328c5e6a
Author: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Date:   Sat Feb 22 20:39:57 2025 +0100

    ASoC: es8328: fix route from DAC to output
    
    [ Upstream commit 5b0c02f9b8acf2a791e531bbc09acae2d51f4f9b ]
    
    The ES8328 codec driver, which is also used for the ES8388 chip that
    appears to have an identical register map, claims that the output can
    either take the route from DAC->Mixer->Output or through DAC->Output
    directly. To the best of what I could find, this is not true, and
    creates problems.
    
    Without DACCONTROL17 bit index 7 set for the left channel, as well as
    DACCONTROL20 bit index 7 set for the right channel, I cannot get any
    analog audio out on Left Out 2 and Right Out 2 respectively, despite the
    DAPM routes claiming that this should be possible. Furthermore, the same
    is the case for Left Out 1 and Right Out 1, showing that those two don't
    have a direct route from DAC to output bypassing the mixer either.
    
    Those control bits toggle whether the DACs are fed (stale bread?) into
    their respective mixers. If one "unmutes" the mixer controls in
    alsamixer, then sure, the audio output works, but if it doesn't work
    without the mixer being fed the DAC input then evidently it's not a
    direct output from the DAC.
    
    ES8328/ES8388 are seemingly not alone in this. ES8323, which uses a
    separate driver for what appears to be a very similar register map,
    simply flips those two bits on in its probe function, and then pretends
    there is no power management whatsoever for the individual controls.
    Fair enough.
    
    My theory as to why nobody has noticed this up to this point is that
    everyone just assumes it's their fault when they had to unmute an
    additional control in ALSA.
    
    Fix this in the es8328 driver by removing the erroneous direct route,
    then get rid of the playback switch controls and have those bits tied to
    the mixer's widget instead, which until now had no register to play
    with.
    
    Fixes: 567e4f98922c ("ASoC: add es8328 codec driver")
    Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
    Link: https://patch.msgid.link/20250222-es8328-route-bludgeoning-v1-1-99bfb7fb22d9@collabora.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 39a26120ad996625ea7815b96c410f93819eb921
Author: Sean Anderson <sean.anderson@linux.dev>
Date:   Thu Feb 20 11:29:50 2025 -0500

    net: cadence: macb: Synchronize stats calculations
    
    [ Upstream commit fa52f15c745ce55261b92873676f64f7348cfe82 ]
    
    Stats calculations involve a RMW to add the stat update to the existing
    value. This is currently not protected by any synchronization mechanism,
    so data races are possible. Add a spinlock to protect the update. The
    reader side could be protected using u64_stats, but we would still need
    a spinlock for the update side anyway. And we always do an update
    immediately before reading the stats anyway.
    
    Fixes: 89e5785fc8a6 ("[PATCH] Atmel MACB ethernet driver")
    Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
    Link: https://patch.msgid.link/20250220162950.95941-1-sean.anderson@linux.dev
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 718725496191ada3e82318056c8300b52f31405a
Author: Ido Schimmel <idosch@nvidia.com>
Date:   Thu Feb 20 09:25:59 2025 +0200

    net: loopback: Avoid sending IP packets without an Ethernet header
    
    [ Upstream commit 0e4427f8f587c4b603475468bb3aee9418574893 ]
    
    After commit 22600596b675 ("ipv4: give an IPv4 dev to blackhole_netdev")
    IPv4 neighbors can be constructed on the blackhole net device, but they
    are constructed with an output function (neigh_direct_output()) that
    simply calls dev_queue_xmit(). The latter will transmit packets via
    'skb->dev' which might not be the blackhole net device if dst_dev_put()
    switched 'dst->dev' to the blackhole net device while another CPU was
    using the dst entry in ip_output(), but after it already initialized
    'skb->dev' from 'dst->dev'.
    
    Specifically, the following can happen:
    
        CPU1                                      CPU2
    
    udp_sendmsg(sk1)                          udp_sendmsg(sk2)
    udp_send_skb()                            [...]
    ip_output()
        skb->dev = skb_dst(skb)->dev
                                              dst_dev_put()
                                                  dst->dev = blackhole_netdev
    ip_finish_output2()
        resolves neigh on dst->dev
    neigh_output()
    neigh_direct_output()
    dev_queue_xmit()
    
    This will result in IPv4 packets being sent without an Ethernet header
    via a valid net device:
    
    tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
    listening on enp9s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    22:07:02.329668 20:00:40:11:18:fb > 45:00:00:44:f4:94, ethertype Unknown
    (0x58c6), length 68:
            0x0000:  8dda 74ca f1ae ca6c ca6c 0098 969c 0400  ..t....l.l......
            0x0010:  0000 4730 3f18 6800 0000 0000 0000 9971  ..G0?.h........q
            0x0020:  c4c9 9055 a157 0a70 9ead bf83 38ca ab38  ...U.W.p....8..8
            0x0030:  8add ab96 e052                           .....R
    
    Fix by making sure that neighbors are constructed on top of the
    blackhole net device with an output function that simply consumes the
    packets, in a similar fashion to dst_discard_out() and
    blackhole_netdev_xmit().
    
    Fixes: 8d7017fd621d ("blackhole_netdev: use blackhole_netdev to invalidate dst entries")
    Fixes: 22600596b675 ("ipv4: give an IPv4 dev to blackhole_netdev")
    Reported-by: Florian Meister <fmei@sfs.com>
    Closes: https://lore.kernel.org/netdev/20250210084931.23a5c2e4@hermes.local/
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://patch.msgid.link/20250220072559.782296-1-idosch@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 806fcc99e4c06cf30cb17303bd15e7f51411be31
Author: David Howells <dhowells@redhat.com>
Date:   Tue Feb 18 19:22:47 2025 +0000

    afs: Fix the server_list to unuse a displaced server rather than putting it
    
    [ Upstream commit add117e48df4788a86a21bd0515833c0a6db1ad1 ]
    
    When allocating and building an afs_server_list struct object from a VLDB
    record, we look up each server address to get the server record for it -
    but a server may have more than one entry in the record and we discard the
    duplicate pointers.  Currently, however, when we discard, we only put a
    server record, not unuse it - but the lookup got as an active-user count.
    
    The active-user count on an afs_server_list object determines its lifetime
    whereas the refcount keeps the memory backing it around.  Failing to reduce
    the active-user counter prevents the record from being cleaned up and can
    lead to multiple copied being seen - and pointing to deleted afs_cell
    objects and other such things.
    
    Fix this by switching the incorrect 'put' to an 'unuse' instead.
    
    Without this, occasionally, a dead server record can be seen in
    /proc/net/afs/servers and list corruption may be observed:
    
        list_del corruption. prev->next should be ffff888102423e40, but was 0000000000000000. (prev=ffff88810140cd38)
    
    Fixes: 977e5f8ed0ab ("afs: Split the usage count on struct afs_server")
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: Simon Horman <horms@kernel.org>
    cc: linux-afs@lists.infradead.org
    Link: https://patch.msgid.link/20250218192250.296870-5-dhowells@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9055fb0bb4f43e03e3c54c6219ccb28200ec4763
Author: David Howells <dhowells@redhat.com>
Date:   Thu Nov 2 16:08:43 2023 +0000

    afs: Make it possible to find the volumes that are using a server
    
    [ Upstream commit ca0e79a46097d54e4af46c67c852479d97af35bb ]
    
    Make it possible to find the afs_volume structs that are using an
    afs_server struct to aid in breaking volume callbacks.
    
    The way this is done is that each afs_volume already has an array of
    afs_server_entry records that point to the servers where that volume might
    be found.  An afs_volume backpointer and a list node is added to each entry
    and each entry is then added to an RCU-traversable list on the afs_server
    to which it points.
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    Stable-dep-of: add117e48df4 ("afs: Fix the server_list to unuse a displaced server rather than putting it")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ba335b157a6a81ceaa6ff258e065d9224df56ccd
Author: Colin Ian King <colin.i.king@gmail.com>
Date:   Thu Oct 20 18:39:23 2022 +0100

    afs: remove variable nr_servers
    
    [ Upstream commit 318b83b71242998814a570c3420c042ee6165fca ]
    
    Variable nr_servers is no longer being used, the last reference
    to it was removed in commit 45df8462730d ("afs: Fix server list handling")
    so clean up the code by removing it.
    
    Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    Link: https://lore.kernel.org/r/20221020173923.21342-1-colin.i.king@gmail.com/
    Stable-dep-of: add117e48df4 ("afs: Fix the server_list to unuse a displaced server rather than putting it")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1154e50e53e4f1f13dc5e75090d46a14b52a46fe
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Fri Feb 14 10:30:25 2025 -0500

    Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response
    
    [ Upstream commit b25120e1d5f2ebb3db00af557709041f47f7f3d0 ]
    
    L2CAP_ECRED_CONN_RSP needs to respond DCID in the same order received as
    SCID but the order is reversed due to use of list_add which actually
    prepend channels to the list so the response is reversed:
    
    > ACL Data RX: Handle 16 flags 0x02 dlen 26
          LE L2CAP: Enhanced Credit Connection Request (0x17) ident 2 len 18
            PSM: 39 (0x0027)
            MTU: 256
            MPS: 251
            Credits: 65535
            Source CID: 116
            Source CID: 117
            Source CID: 118
            Source CID: 119
            Source CID: 120
    < ACL Data TX: Handle 16 flags 0x00 dlen 26
          LE L2CAP: Enhanced Credit Connection Response (0x18) ident 2 len 18
            MTU: 517
            MPS: 247
            Credits: 3
            Result: Connection successful (0x0000)
            Destination CID: 68
            Destination CID: 67
            Destination CID: 66
            Destination CID: 65
            Destination CID: 64
    
    Also make sure the response don't include channels that are not on
    BT_CONNECT2 since the chan->ident can be set to the same value as in the
    following trace:
    
    < ACL Data TX: Handle 16 flags 0x00 dlen 12
          LE L2CAP: LE Flow Control Credit (0x16) ident 6 len 4
            Source CID: 64
            Credits: 1
    ...
    > ACL Data RX: Handle 16 flags 0x02 dlen 18
          LE L2CAP: Enhanced Credit Connection Request (0x17) ident 6 len 10
            PSM: 39 (0x0027)
            MTU: 517
            MPS: 251
            Credits: 255
            Source CID: 70
    < ACL Data TX: Handle 16 flags 0x00 dlen 20
          LE L2CAP: Enhanced Credit Connection Response (0x18) ident 6 len 12
            MTU: 517
            MPS: 247
            Credits: 3
            Result: Connection successful (0x0000)
            Destination CID: 64
            Destination CID: 68
    
    Closes: https://github.com/bluez/bluez/issues/1094
    Fixes: 9aa9d9473f15 ("Bluetooth: L2CAP: Fix responding with wrong PDU type")
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a340768d731105ba330bc556f58e41076393f6ea
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Feb 18 12:40:24 2025 +0100

    ALSA: usb-audio: Avoid dropping MIDI events at closing multiple ports
    
    [ Upstream commit a3bdd8f5c2217e1cb35db02c2eed36ea20fb50f5 ]
    
    We fixed the UAF issue in USB MIDI code by canceling the pending work
    at closing each MIDI output device in the commit below.  However, this
    assumed that it's the only one that is tied with the endpoint, and it
    resulted in unexpected data truncations when multiple devices are
    assigned to a single endpoint and opened simultaneously.
    
    For addressing the unexpected MIDI message drops, simply replace
    cancel_work_sync() with flush_work().  The drain callback should have
    been already invoked before the close callback, hence the port->active
    flag must be already cleared.  So this just assures that the pending
    work is finished before freeing the resources.
    
    Fixes: 0125de38122f ("ALSA: usb-audio: Cancel pending work at closing a MIDI substream")
    Reported-and-tested-by: John Keeping <jkeeping@inmusicbrands.com>
    Closes: https://lore.kernel.org/20250217111647.3368132-1-jkeeping@inmusicbrands.com
    Link: https://patch.msgid.link/20250218114024.23125-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8f4ceb21f65f66e22191f85359adae29dad5e2a
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Feb 25 15:52:21 2025 +0100

    sunrpc: suppress warnings for unused procfs functions
    
    [ Upstream commit 1f7a4f98c11fbeb18ed21f3b3a497e90a50ad2e0 ]
    
    There is a warning about unused variables when building with W=1 and no procfs:
    
    net/sunrpc/cache.c:1660:30: error: 'cache_flush_proc_ops' defined but not used [-Werror=unused-const-variable=]
     1660 | static const struct proc_ops cache_flush_proc_ops = {
          |                              ^~~~~~~~~~~~~~~~~~~~
    net/sunrpc/cache.c:1622:30: error: 'content_proc_ops' defined but not used [-Werror=unused-const-variable=]
     1622 | static const struct proc_ops content_proc_ops = {
          |                              ^~~~~~~~~~~~~~~~
    net/sunrpc/cache.c:1598:30: error: 'cache_channel_proc_ops' defined but not used [-Werror=unused-const-variable=]
     1598 | static const struct proc_ops cache_channel_proc_ops = {
          |                              ^~~~~~~~~~~~~~~~~~~~~~
    
    These are used inside of an #ifdef, so replacing that with an
    IS_ENABLED() check lets the compiler see how they are used while
    still dropping them during dead code elimination.
    
    Fixes: dbf847ecb631 ("knfsd: allow cache_register to return error on failure")
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Acked-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f36cf97e4978ac6fcbdd9653d4ab04b0ccbc24aa
Author: Patrisious Haddad <phaddad@nvidia.com>
Date:   Thu Feb 20 08:47:10 2025 +0200

    RDMA/mlx5: Fix bind QP error cleanup flow
    
    [ Upstream commit e1a0bdbdfdf08428f0ede5ae49c7f4139ac73ef5 ]
    
    When there is a failure during bind QP, the cleanup flow destroys the
    counter regardless if it is the one that created it or not, which is
    problematic since if it isn't the one that created it, that counter could
    still be in use.
    
    Fix that by destroying the counter only if it was created during this call.
    
    Fixes: 45842fc627c7 ("IB/mlx5: Support statistic q counter configuration")
    Signed-off-by: Patrisious Haddad <phaddad@nvidia.com>
    Reviewed-by: Mark Zhang <markzhang@nvidia.com>
    Link: https://patch.msgid.link/25dfefddb0ebefa668c32e06a94d84e3216257cf.1740033937.git.leon@kernel.org
    Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 66fee638e4ddd4ebc5b2e2bd5247cbdd03b1f813
Author: Ye Bin <yebin10@huawei.com>
Date:   Mon Feb 17 10:16:28 2025 +0800

    scsi: core: Clear driver private data when retrying request
    
    [ Upstream commit dce5c4afd035e8090a26e5d776b1682c0e649683 ]
    
    After commit 1bad6c4a57ef ("scsi: zero per-cmd private driver data for each
    MQ I/O"), the xen-scsifront/virtio_scsi/snic drivers all removed code that
    explicitly zeroed driver-private command data.
    
    In combination with commit 464a00c9e0ad ("scsi: core: Kill DRIVER_SENSE"),
    after virtio_scsi performs a capacity expansion, the first request will
    return a unit attention to indicate that the capacity has changed. And then
    the original command is retried. As driver-private command data was not
    cleared, the request would return UA again and eventually time out and fail.
    
    Zero driver-private command data when a request is retried.
    
    Fixes: f7de50da1479 ("scsi: xen-scsifront: Remove code that zeroes driver-private command data")
    Fixes: c2bb87318baa ("scsi: virtio_scsi: Remove code that zeroes driver-private command data")
    Fixes: c3006a926468 ("scsi: snic: Remove code that zeroes driver-private command data")
    Signed-off-by: Ye Bin <yebin10@huawei.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250217021628.2929248-1-yebin@huaweicloud.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 668ef6c54ca7b3c2c332aa86cf36db6500aee235
Author: Christoph Hellwig <hch@lst.de>
Date:   Thu Feb 24 18:55:46 2022 +0100

    scsi: core: Don't memset() the entire scsi_cmnd in scsi_init_command()
    
    [ Upstream commit 71bada345b33b9297e7cc9415db6328c99b554f9 ]
    
    Replace the big fat memset that requires saving and restoring various
    fields with just initializing those fields that need initialization.
    
    All the clearing to 0 is moved to scsi_prepare_cmd() as scsi_ioctl_reset()
    alreadly uses kzalloc() to allocate a pre-zeroed command.
    
    This is still conservative and can probably be optimized further.
    
    Link: https://lore.kernel.org/r/20220224175552.988286-3-hch@lst.de
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Stable-dep-of: dce5c4afd035 ("scsi: core: Clear driver private data when retrying request")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4b49d939b5a79117f939b77cc67efae2694d9799
Author: Vasiliy Kovalev <kovalev@altlinux.org>
Date:   Sat Feb 15 00:51:48 2025 +0300

    ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up
    
    [ Upstream commit c84e125fff2615b4d9c259e762596134eddd2f27 ]
    
    The issue was caused by dput(upper) being called before
    ovl_dentry_update_reval(), while upper->d_flags was still
    accessed in ovl_dentry_remote().
    
    Move dput(upper) after its last use to prevent use-after-free.
    
    BUG: KASAN: slab-use-after-free in ovl_dentry_remote fs/overlayfs/util.c:162 [inline]
    BUG: KASAN: slab-use-after-free in ovl_dentry_update_reval+0xd2/0xf0 fs/overlayfs/util.c:167
    
    Call Trace:
     <TASK>
     __dump_stack lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:114
     print_address_description mm/kasan/report.c:377 [inline]
     print_report+0xc3/0x620 mm/kasan/report.c:488
     kasan_report+0xd9/0x110 mm/kasan/report.c:601
     ovl_dentry_remote fs/overlayfs/util.c:162 [inline]
     ovl_dentry_update_reval+0xd2/0xf0 fs/overlayfs/util.c:167
     ovl_link_up fs/overlayfs/copy_up.c:610 [inline]
     ovl_copy_up_one+0x2105/0x3490 fs/overlayfs/copy_up.c:1170
     ovl_copy_up_flags+0x18d/0x200 fs/overlayfs/copy_up.c:1223
     ovl_rename+0x39e/0x18c0 fs/overlayfs/dir.c:1136
     vfs_rename+0xf84/0x20a0 fs/namei.c:4893
    ...
     </TASK>
    
    Fixes: b07d5cc93e1b ("ovl: update of dentry revalidate flags after copy up")
    Reported-by: syzbot+316db8a1191938280eb6@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=316db8a1191938280eb6
    Signed-off-by: Vasiliy Kovalev <kovalev@altlinux.org>
    Link: https://lore.kernel.org/r/20250214215148.761147-1-kovalev@altlinux.org
    Reviewed-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 802d342bf8bc7dec462ba00ca8840c3a90993ec5
Author: Christian Brauner <brauner@kernel.org>
Date:   Mon Apr 4 12:51:43 2022 +0200

    ovl: pass ofs to creation operations
    
    [ Upstream commit 576bb263450bbba6601a9f528d0cf601d97a13e6 ]
    
    Pass down struct ovl_fs to all creation helpers so we can ultimately
    retrieve the relevant upper mount and take the mount's idmapping into
    account when creating new filesystem objects. This is needed to support
    idmapped base layers with overlay.
    
    Cc: <linux-unionfs@vger.kernel.org>
    Tested-by: Giuseppe Scrivano <gscrivan@redhat.com>
    Reviewed-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Stable-dep-of: c84e125fff26 ("ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit be2343e08165a1b509ae85f20e12a814f9e3257c
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Mon Apr 4 12:51:42 2022 +0200

    ovl: use wrappers to all vfs_*xattr() calls
    
    [ Upstream commit c914c0e27eb0843b7cf3bec71d6f34d53a3a671e ]
    
    Use helpers ovl_*xattr() to access user/trusted.overlay.* xattrs
    and use helpers ovl_do_*xattr() to access generic xattrs. This is a
    preparatory patch for using idmapped base layers with overlay.
    
    Note that a few of those places called vfs_*xattr() calls directly to
    reduce the amount of debug output. But as Miklos pointed out since
    overlayfs has been stable for quite some time the debug output isn't all
    that relevant anymore and the additional debug in all locations was
    actually quite helpful when developing this patch series.
    
    Cc: <linux-unionfs@vger.kernel.org>
    Tested-by: Giuseppe Scrivano <gscrivan@redhat.com>
    Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org>
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Stable-dep-of: c84e125fff26 ("ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1cd7f84c88ae933d14031cc7eb374560da79c909
Author: Mark Zhang <markzhang@nvidia.com>
Date:   Sun Jan 19 14:39:46 2025 +0200

    IB/mlx5: Set and get correct qp_num for a DCT QP
    
    [ Upstream commit 12d044770e12c4205fa69535b4fa8a9981fea98f ]
    
    When a DCT QP is created on an active lag, it's dctc.port is assigned
    in a round-robin way, which is from 1 to dev->lag_port. In this case
    when querying this QP, we may get qp_attr.port_num > 2.
    Fix this by setting qp->port when modifying a DCT QP, and read port_num
    from qp->port instead of dctc.port when querying it.
    
    Fixes: 7c4b1ab9f167 ("IB/mlx5: Add DCT RoCE LAG support")
    Signed-off-by: Mark Zhang <markzhang@nvidia.com>
    Reviewed-by: Maher Sanalla <msanalla@nvidia.com>
    Link: https://patch.msgid.link/94c76bf0adbea997f87ffa27674e0a7118ad92a9.1737290358.git.leon@kernel.org
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9a7fc5641c6f2b23f27da3fb3b3c8a606c8204b8
Author: Patrick Bellasi <derkling@google.com>
Date:   Wed Feb 5 14:04:41 2025 +0000

    x86/cpu/kvm: SRSO: Fix possible missing IBPB on VM-Exit
    
    commit 318e8c339c9a0891c389298bb328ed0762a9935e upstream.
    
    In [1] the meaning of the synthetic IBPB flags has been redefined for a
    better separation of concerns:
     - ENTRY_IBPB     -- issue IBPB on entry only
     - IBPB_ON_VMEXIT -- issue IBPB on VM-Exit only
    and the Retbleed mitigations have been updated to match this new
    semantics.
    
    Commit [2] was merged shortly before [1], and their interaction was not
    handled properly. This resulted in IBPB not being triggered on VM-Exit
    in all SRSO mitigation configs requesting an IBPB there.
    
    Specifically, an IBPB on VM-Exit is triggered only when
    X86_FEATURE_IBPB_ON_VMEXIT is set. However:
    
     - X86_FEATURE_IBPB_ON_VMEXIT is not set for "spec_rstack_overflow=ibpb",
       because before [1] having X86_FEATURE_ENTRY_IBPB was enough. Hence,
       an IBPB is triggered on entry but the expected IBPB on VM-exit is
       not.
    
     - X86_FEATURE_IBPB_ON_VMEXIT is not set also when
       "spec_rstack_overflow=ibpb-vmexit" if X86_FEATURE_ENTRY_IBPB is
       already set.
    
       That's because before [1] this was effectively redundant. Hence, e.g.
       a "retbleed=ibpb spec_rstack_overflow=bpb-vmexit" config mistakenly
       reports the machine still vulnerable to SRSO, despite an IBPB being
       triggered both on entry and VM-Exit, because of the Retbleed selected
       mitigation config.
    
     - UNTRAIN_RET_VM won't still actually do anything unless
       CONFIG_MITIGATION_IBPB_ENTRY is set.
    
    For "spec_rstack_overflow=ibpb", enable IBPB on both entry and VM-Exit
    and clear X86_FEATURE_RSB_VMEXIT which is made superfluous by
    X86_FEATURE_IBPB_ON_VMEXIT. This effectively makes this mitigation
    option similar to the one for 'retbleed=ibpb', thus re-order the code
    for the RETBLEED_MITIGATION_IBPB option to be less confusing by having
    all features enabling before the disabling of the not needed ones.
    
    For "spec_rstack_overflow=ibpb-vmexit", guard this mitigation setting
    with CONFIG_MITIGATION_IBPB_ENTRY to ensure UNTRAIN_RET_VM sequence is
    effectively compiled in. Drop instead the CONFIG_MITIGATION_SRSO guard,
    since none of the SRSO compile cruft is required in this configuration.
    Also, check only that the required microcode is present to effectively
    enabled the IBPB on VM-Exit.
    
    Finally, update the KConfig description for CONFIG_MITIGATION_IBPB_ENTRY
    to list also all SRSO config settings enabled by this guard.
    
    Fixes: 864bcaa38ee4 ("x86/cpu/kvm: Provide UNTRAIN_RET_VM") [1]
    Fixes: d893832d0e1e ("x86/srso: Add IBPB on VMEXIT") [2]
    Reported-by: Yosry Ahmed <yosryahmed@google.com>
    Signed-off-by: Patrick Bellasi <derkling@google.com>
    Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0c7cda8d6369dd49022dac54627032411ece078
Author: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
Date:   Mon Feb 10 13:35:51 2025 +0800

    mtd: rawnand: cadence: fix incorrect device in dma_unmap_single
    
    commit f37d135b42cb484bdecee93f56b9f483214ede78 upstream.
    
    dma_map_single is using physical/bus device (DMA) but dma_unmap_single
    is using framework device(NAND controller), which is incorrect.
    Fixed dma_unmap_single to use correct physical/bus device.
    
    Fixes: ec4ba01e894d ("mtd: rawnand: Add new Cadence NAND driver to MTD subsystem")
    Cc: stable@vger.kernel.org
    Signed-off-by: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 099a316518508be7c57de4134ef919b2dea948ce
Author: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
Date:   Mon Feb 10 13:35:50 2025 +0800

    mtd: rawnand: cadence: use dma_map_resource for sdma address
    
    commit d76d22b5096c5b05208fd982b153b3f182350b19 upstream.
    
    Remap the slave DMA I/O resources to enhance driver portability.
    Using a physical address causes DMA translation failure when the
    ARM SMMU is enabled.
    
    Fixes: ec4ba01e894d ("mtd: rawnand: Add new Cadence NAND driver to MTD subsystem")
    Cc: stable@vger.kernel.org
    Signed-off-by: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0301f9b44877defeff49fed71cd40433b37572a5
Author: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
Date:   Mon Feb 10 13:35:49 2025 +0800

    mtd: rawnand: cadence: fix error code in cadence_nand_init()
    
    commit 2b9df00cded911e2ca2cfae5c45082166b24f8aa upstream.
    
    Replace dma_request_channel() with dma_request_chan_by_mask() and use
    helper functions to return proper error code instead of fixed -EBUSY.
    
    Fixes: ec4ba01e894d ("mtd: rawnand: Add new Cadence NAND driver to MTD subsystem")
    Cc: stable@vger.kernel.org
    Signed-off-by: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29853440da38d287d335568fce2b40877e3b3926
Author: Christian Brauner <brauner@kernel.org>
Date:   Tue Feb 11 18:16:00 2025 +0100

    acct: block access to kernel internal filesystems
    
    commit 890ed45bde808c422c3c27d3285fc45affa0f930 upstream.
    
    There's no point in allowing anything kernel internal nor procfs or
    sysfs.
    
    Link: https://lore.kernel.org/r/20250127091811.3183623-1-quzicheng@huawei.com
    Link: https://lore.kernel.org/r/20250211-work-acct-v1-2-1c16aecab8b3@kernel.org
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reviewed-by: Amir Goldstein <amir73il@gmail.com>
    Reported-by: Zicheng Qu <quzicheng@huawei.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d5b936cfa4b0d5670ca7420ef165a074bc008eb
Author: Christian Brauner <brauner@kernel.org>
Date:   Tue Feb 11 18:15:59 2025 +0100

    acct: perform last write from workqueue
    
    commit 56d5f3eba3f5de0efdd556de4ef381e109b973a9 upstream.
    
    In [1] it was reported that the acct(2) system call can be used to
    trigger NULL deref in cases where it is set to write to a file that
    triggers an internal lookup. This can e.g., happen when pointing acc(2)
    to /sys/power/resume. At the point the where the write to this file
    happens the calling task has already exited and called exit_fs(). A
    lookup will thus trigger a NULL-deref when accessing current->fs.
    
    Reorganize the code so that the the final write happens from the
    workqueue but with the caller's credentials. This preserves the
    (strange) permission model and has almost no regression risk.
    
    This api should stop to exist though.
    
    Link: https://lore.kernel.org/r/20250127091811.3183623-1-quzicheng@huawei.com [1]
    Link: https://lore.kernel.org/r/20250211-work-acct-v1-1-1c16aecab8b3@kernel.org
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: Zicheng Qu <quzicheng@huawei.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d97d560f7d36cec3f34d4055dbe4f8cb0b5c732c
Author: John Veness <john-linux@pelago.org.uk>
Date:   Mon Feb 17 12:15:50 2025 +0000

    ALSA: hda/conexant: Add quirk for HP ProBook 450 G4 mute LED
    
    commit 6d1f86610f23b0bc334d6506a186f21a98f51392 upstream.
    
    Allows the LED on the dedicated mute button on the HP ProBook 450 G4
    laptop to change colour correctly.
    
    Signed-off-by: John Veness <john-linux@pelago.org.uk>
    Cc: <stable@vger.kernel.org>
    Link: https://patch.msgid.link/2fb55d48-6991-4a42-b591-4c78f2fad8d7@pelago.org.uk
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 924b239f9704566e0d86abd894d2d64bd73c11eb
Author: Haoxiang Li <haoxiang_li2024@163.com>
Date:   Tue Feb 18 11:04:09 2025 +0800

    nfp: bpf: Add check for nfp_app_ctrl_msg_alloc()
    
    commit 878e7b11736e062514e58f3b445ff343e6705537 upstream.
    
    Add check for the return value of nfp_app_ctrl_msg_alloc() in
    nfp_bpf_cmsg_alloc() to prevent null pointer dereference.
    
    Fixes: ff3d43f7568c ("nfp: bpf: implement helpers for FW map ops")
    Cc: stable@vger.kernel.org
    Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
    Link: https://patch.msgid.link/20250218030409.2425798-1-haoxiang_li2024@163.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 872c7c7e57a746046796ddfead529c9d37b9f6b4
Author: Gavrilov Ilia <Ilia.Gavrilov@infotecs.ru>
Date:   Thu Feb 13 15:20:55 2025 +0000

    drop_monitor: fix incorrect initialization order
    
    commit 07b598c0e6f06a0f254c88dafb4ad50f8a8c6eea upstream.
    
    Syzkaller reports the following bug:
    
    BUG: spinlock bad magic on CPU#1, syz-executor.0/7995
     lock: 0xffff88805303f3e0, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
    CPU: 1 PID: 7995 Comm: syz-executor.0 Tainted: G            E     5.10.209+ #1
    Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x119/0x179 lib/dump_stack.c:118
     debug_spin_lock_before kernel/locking/spinlock_debug.c:83 [inline]
     do_raw_spin_lock+0x1f6/0x270 kernel/locking/spinlock_debug.c:112
     __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:117 [inline]
     _raw_spin_lock_irqsave+0x50/0x70 kernel/locking/spinlock.c:159
     reset_per_cpu_data+0xe6/0x240 [drop_monitor]
     net_dm_cmd_trace+0x43d/0x17a0 [drop_monitor]
     genl_family_rcv_msg_doit+0x22f/0x330 net/netlink/genetlink.c:739
     genl_family_rcv_msg net/netlink/genetlink.c:783 [inline]
     genl_rcv_msg+0x341/0x5a0 net/netlink/genetlink.c:800
     netlink_rcv_skb+0x14d/0x440 net/netlink/af_netlink.c:2497
     genl_rcv+0x29/0x40 net/netlink/genetlink.c:811
     netlink_unicast_kernel net/netlink/af_netlink.c:1322 [inline]
     netlink_unicast+0x54b/0x800 net/netlink/af_netlink.c:1348
     netlink_sendmsg+0x914/0xe00 net/netlink/af_netlink.c:1916
     sock_sendmsg_nosec net/socket.c:651 [inline]
     __sock_sendmsg+0x157/0x190 net/socket.c:663
     ____sys_sendmsg+0x712/0x870 net/socket.c:2378
     ___sys_sendmsg+0xf8/0x170 net/socket.c:2432
     __sys_sendmsg+0xea/0x1b0 net/socket.c:2461
     do_syscall_64+0x30/0x40 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x62/0xc7
    RIP: 0033:0x7f3f9815aee9
    Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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:00007f3f972bf0c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 00007f3f9826d050 RCX: 00007f3f9815aee9
    RDX: 0000000020000000 RSI: 0000000020001300 RDI: 0000000000000007
    RBP: 00007f3f981b63bd R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    R13: 000000000000006e R14: 00007f3f9826d050 R15: 00007ffe01ee6768
    
    If drop_monitor is built as a kernel module, syzkaller may have time
    to send a netlink NET_DM_CMD_START message during the module loading.
    This will call the net_dm_monitor_start() function that uses
    a spinlock that has not yet been initialized.
    
    To fix this, let's place resource initialization above the registration
    of a generic netlink family.
    
    Found by InfoTeCS on behalf of Linux Verification Center
    (linuxtesting.org) with Syzkaller.
    
    Fixes: 9a8afc8d3962 ("Network Drop Monitor: Adding drop monitor implementation & Netlink protocol")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ilia Gavrilov <Ilia.Gavrilov@infotecs.ru>
    Reviewed-by: Ido Schimmel <idosch@nvidia.com>
    Link: https://patch.msgid.link/20250213152054.2785669-1-Ilia.Gavrilov@infotecs.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0a9a948159153be145f9471435695373904ee6d
Author: Sumit Garg <sumit.garg@kernel.org>
Date:   Tue Feb 4 13:04:18 2025 +0530

    tee: optee: Fix supplicant wait loop
    
    commit 70b0d6b0a199c5a3ee6c72f5e61681ed6f759612 upstream.
    
    OP-TEE supplicant is a user-space daemon and it's possible for it
    be hung or crashed or killed in the middle of processing an OP-TEE
    RPC call. It becomes more complicated when there is incorrect shutdown
    ordering of the supplicant process vs the OP-TEE client application which
    can eventually lead to system hang-up waiting for the closure of the
    client application.
    
    Allow the client process waiting in kernel for supplicant response to
    be killed rather than indefinitely waiting in an unkillable state. Also,
    a normal uninterruptible wait should not have resulted in the hung-task
    watchdog getting triggered, but the endless loop would.
    
    This fixes issues observed during system reboot/shutdown when supplicant
    got hung for some reason or gets crashed/killed which lead to client
    getting hung in an unkillable state. It in turn lead to system being in
    hung up state requiring hard power off/on to recover.
    
    Fixes: 4fb0a5eb364d ("tee: add OP-TEE driver")
    Suggested-by: Arnd Bergmann <arnd@arndb.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3feeb1b4cb2cdf58efccbdce2c5fb7422fb988a
Author: Yan Zhai <yan@cloudflare.com>
Date:   Sun Feb 9 23:22:35 2025 -0800

    bpf: skip non exist keys in generic_map_lookup_batch
    
    [ Upstream commit 5644c6b50ffee0a56c1e01430a8c88e34decb120 ]
    
    The generic_map_lookup_batch currently returns EINTR if it fails with
    ENOENT and retries several times on bpf_map_copy_value. The next batch
    would start from the same location, presuming it's a transient issue.
    This is incorrect if a map can actually have "holes", i.e.
    "get_next_key" can return a key that does not point to a valid value. At
    least the array of maps type may contain such holes legitly. Right now
    these holes show up, generic batch lookup cannot proceed any more. It
    will always fail with EINTR errors.
    
    Rather, do not retry in generic_map_lookup_batch. If it finds a non
    existing element, skip to the next key. This simple solution comes with
    a price that transient errors may not be recovered, and the iteration
    might cycle back to the first key under parallel deletion. For example,
    Hou Tao <houtao@huaweicloud.com> pointed out a following scenario:
    
    For LPM trie map:
    (1) ->map_get_next_key(map, prev_key, key) returns a valid key
    
    (2) bpf_map_copy_value() return -ENOMENT
    It means the key must be deleted concurrently.
    
    (3) goto next_key
    It swaps the prev_key and key
    
    (4) ->map_get_next_key(map, prev_key, key) again
    prev_key points to a non-existing key, for LPM trie it will treat just
    like prev_key=NULL case, the returned key will be duplicated.
    
    With the retry logic, the iteration can continue to the key next to the
    deleted one. But if we directly skip to the next key, the iteration loop
    would restart from the first key for the lpm_trie type.
    
    However, not all races may be recovered. For example, if current key is
    deleted after instead of before bpf_map_copy_value, or if the prev_key
    also gets deleted, then the loop will still restart from the first key
    for lpm_tire anyway. For generic lookup it might be better to stay
    simple, i.e. just skip to the next key. To guarantee that the output
    keys are not duplicated, it is better to implement map type specific
    batch operations, which can properly lock the trie and synchronize with
    concurrent mutators.
    
    Fixes: cb4d03ab499d ("bpf: Add generic support for lookup batch op")
    Closes: https://lore.kernel.org/bpf/Z6JXtA1M5jAZx8xD@debian.debian/
    Signed-off-by: Yan Zhai <yan@cloudflare.com>
    Acked-by: Hou Tao <houtao1@huawei.com>
    Link: https://lore.kernel.org/r/85618439eea75930630685c467ccefeac0942e2b.1739171594.git.yan@cloudflare.com
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3bb2204ec30f7b2e81bd9fecbe44d2dbb5591a51
Author: Caleb Sander Mateos <csander@purestorage.com>
Date:   Thu Feb 13 10:05:14 2025 -0700

    nvme/ioctl: add missing space in err message
    
    [ Upstream commit 487a3ea7b1b8ba2ca7d2c2bb3c3594dc360d6261 ]
    
    nvme_validate_passthru_nsid() logs an err message whose format string is
    split over 2 lines. There is a missing space between the two pieces,
    resulting in log lines like "... does not match nsid (1)of namespace".
    Add the missing space between ")" and "of". Also combine the format
    string pieces onto a single line to make the err message easier to grep.
    
    Fixes: e7d4b5493a2d ("nvme: factor out a nvme_validate_passthru_nsid helper")
    Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9f3891867e8e5227115ed9831f1253bc7dacbdc5
Author: Andrey Vatoropin <a.vatoropin@crpt.ru>
Date:   Thu Jan 30 09:00:34 2025 +0000

    power: supply: da9150-fg: fix potential overflow
    
    [ Upstream commit 3fb3cb4350befc4f901c54e0cb4a2a47b1302e08 ]
    
    Size of variable sd_gain equals four bytes - DA9150_QIF_SD_GAIN_SIZE.
    Size of variable shunt_val equals two bytes - DA9150_QIF_SHUNT_VAL_SIZE.
    
    The expression sd_gain * shunt_val is currently being evaluated using
    32-bit arithmetic. So during the multiplication an overflow may occur.
    
    As the value of type 'u64' is used as storage for the eventual result, put
    ULL variable at the first position of each expression in order to give the
    compiler complete information about the proper arithmetic to use. According
    to C99 the guaranteed width for a variable of type 'unsigned long long' >=
    64 bits.
    
    Remove the explicit cast to u64 as it is meaningless.
    
    Just for the sake of consistency, perform the similar trick with another
    expression concerning 'iavg'.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: a419b4fd9138 ("power: Add support for DA9150 Fuel-Gauge")
    Signed-off-by: Andrey Vatoropin <a.vatoropin@crpt.ru>
    Link: https://lore.kernel.org/r/20250130090030.53422-1-a.vatoropin@crpt.ru
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef305447885e2884837104d529c82a0c54c4041c
Author: Breno Leitao <leitao@debian.org>
Date:   Tue Feb 18 05:49:31 2025 -0800

    arp: switch to dev_getbyhwaddr() in arp_req_set_public()
    
    [ Upstream commit 4eae0ee0f1e6256d0b0b9dd6e72f1d9cf8f72e08 ]
    
    The arp_req_set_public() function is called with the rtnl lock held,
    which provides enough synchronization protection. This makes the RCU
    variant of dev_getbyhwaddr() unnecessary. Switch to using the simpler
    dev_getbyhwaddr() function since we already have the required rtnl
    locking.
    
    This change helps maintain consistency in the networking code by using
    the appropriate helper function for the existing locking context.
    Since we're not holding the RCU read lock in arp_req_set_public()
    existing code could trigger false positive locking warnings.
    
    Fixes: 941666c2e3e0 ("net: RCU conversion of dev_getbyhwaddr() and arp_ioctl()")
    Suggested-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Link: https://patch.msgid.link/20250218-arm_fix_selftest-v5-2-d3d6892db9e1@debian.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e860d51035912e1af6344a687cac401583f8bffc
Author: Breno Leitao <leitao@debian.org>
Date:   Tue Feb 18 05:49:30 2025 -0800

    net: Add non-RCU dev_getbyhwaddr() helper
    
    [ Upstream commit 4b5a28b38c4a0106c64416a1b2042405166b26ce ]
    
    Add dedicated helper for finding devices by hardware address when
    holding rtnl_lock, similar to existing dev_getbyhwaddr_rcu(). This prevents
    PROVE_LOCKING warnings when rtnl_lock is held but RCU read lock is not.
    
    Extract common address comparison logic into dev_addr_cmp().
    
    The context about this change could be found in the following
    discussion:
    
    Link: https://lore.kernel.org/all/20250206-scarlet-ermine-of-improvement-1fcac5@leitao/
    
    Cc: kuniyu@amazon.com
    Cc: ushankar@purestorage.com
    Suggested-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250218-arm_fix_selftest-v5-1-d3d6892db9e1@debian.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Stable-dep-of: 4eae0ee0f1e6 ("arp: switch to dev_getbyhwaddr() in arp_req_set_public()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2af45b1f29626a5469da667d5da20b894d1cfd71
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Mon Feb 17 20:32:09 2025 -0800

    flow_dissector: Fix port range key handling in BPF conversion
    
    [ Upstream commit 69ab34f705fbfabcace64b5d53bb7a4450fac875 ]
    
    Fix how port range keys are handled in __skb_flow_bpf_to_target() by:
    - Separating PORTS and PORTS_RANGE key handling
    - Using correct key_ports_range structure for range keys
    - Properly initializing both key types independently
    
    This ensures port range information is correctly stored in its dedicated
    structure rather than incorrectly using the regular ports key structure.
    
    Fixes: 59fb9b62fb6c ("flow_dissector: Fix to use new variables for port ranges in bpf hook")
    Reported-by: Qiang Zhang <dtzq01@gmail.com>
    Closes: https://lore.kernel.org/netdev/CAPx+-5uvFxkhkz4=j_Xuwkezjn9U6kzKTD5jz4tZ9msSJ0fOJA@mail.gmail.com/
    Cc: Yoshiki Komachi <komachi.yoshiki@gmail.com>
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Cc: Jiri Pirko <jiri@resnulli.us>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Link: https://patch.msgid.link/20250218043210.732959-4-xiyou.wangcong@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fbb727e4934aa25996608d800f797f23c2197d0e
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Mon Feb 17 20:32:07 2025 -0800

    flow_dissector: Fix handling of mixed port and port-range keys
    
    [ Upstream commit 3e5796862c692ea608d96f0a1437f9290f44953a ]
    
    This patch fixes a bug in TC flower filter where rules combining a
    specific destination port with a source port range weren't working
    correctly.
    
    The specific case was when users tried to configure rules like:
    
    tc filter add dev ens38 ingress protocol ip flower ip_proto udp \
    dst_port 5000 src_port 2000-3000 action drop
    
    The root cause was in the flow dissector code. While both
    FLOW_DISSECTOR_KEY_PORTS and FLOW_DISSECTOR_KEY_PORTS_RANGE flags
    were being set correctly in the classifier, the __skb_flow_dissect_ports()
    function was only populating one of them: whichever came first in
    the enum check. This meant that when the code needed both a specific
    port and a port range, one of them would be left as 0, causing the
    filter to not match packets as expected.
    
    Fix it by removing the either/or logic and instead checking and
    populating both key types independently when they're in use.
    
    Fixes: 8ffb055beae5 ("cls_flower: Fix the behavior using port ranges with hw-offload")
    Reported-by: Qiang Zhang <dtzq01@gmail.com>
    Closes: https://lore.kernel.org/netdev/CAPx+-5uvFxkhkz4=j_Xuwkezjn9U6kzKTD5jz4tZ9msSJ0fOJA@mail.gmail.com/
    Cc: Yoshiki Komachi <komachi.yoshiki@gmail.com>
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Cc: Jiri Pirko <jiri@resnulli.us>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Reviewed-by: Ido Schimmel <idosch@nvidia.com>
    Link: https://patch.msgid.link/20250218043210.732959-2-xiyou.wangcong@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 65196ee66ec250a2072a461395534a95762938b8
Author: Maksym Glubokiy <maksym.glubokiy@plvision.eu>
Date:   Mon Jul 11 18:09:07 2022 +0300

    net: extract port range fields from fl_flow_key
    
    [ Upstream commit 83d85bb069152b790caad905fa53e6d50cd3734d ]
    
    So it can be used for port range filter offloading.
    
    Co-developed-by: Volodymyr Mytnyk <volodymyr.mytnyk@plvision.eu>
    Signed-off-by: Volodymyr Mytnyk <volodymyr.mytnyk@plvision.eu>
    Signed-off-by: Maksym Glubokiy <maksym.glubokiy@plvision.eu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: 3e5796862c69 ("flow_dissector: Fix handling of mixed port and port-range keys")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a94e59db1d89d382d0330a5d73835a0d1c1dc8b5
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Feb 17 12:37:05 2025 -0800

    geneve: Suppress list corruption splat in geneve_destroy_tunnels().
    
    [ Upstream commit 62fab6eef61f245dc8797e3a6a5b890ef40e8628 ]
    
    As explained in the previous patch, iterating for_each_netdev() and
    gn->geneve_list during ->exit_batch_rtnl() could trigger ->dellink()
    twice for the same device.
    
    If CONFIG_DEBUG_LIST is enabled, we will see a list_del() corruption
    splat in the 2nd call of geneve_dellink().
    
    Let's remove for_each_netdev() in geneve_destroy_tunnels() and delegate
    that part to default_device_exit_batch().
    
    Fixes: 9593172d93b9 ("geneve: Fix use-after-free in geneve_find_dev().")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250217203705.40342-3-kuniyu@amazon.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb15bb1bde0ba97cbbed9508e45210dcafec3657
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Feb 17 12:37:04 2025 -0800

    gtp: Suppress list corruption splat in gtp_net_exit_batch_rtnl().
    
    [ Upstream commit 4ccacf86491d33d2486b62d4d44864d7101b299d ]
    
    Brad Spengler reported the list_del() corruption splat in
    gtp_net_exit_batch_rtnl(). [0]
    
    Commit eb28fd76c0a0 ("gtp: Destroy device along with udp socket's netns
    dismantle.") added the for_each_netdev() loop in gtp_net_exit_batch_rtnl()
    to destroy devices in each netns as done in geneve and ip tunnels.
    
    However, this could trigger ->dellink() twice for the same device during
    ->exit_batch_rtnl().
    
    Say we have two netns A & B and gtp device B that resides in netns B but
    whose UDP socket is in netns A.
    
      1. cleanup_net() processes netns A and then B.
    
      2. gtp_net_exit_batch_rtnl() finds the device B while iterating
         netns A's gn->gtp_dev_list and calls ->dellink().
    
      [ device B is not yet unlinked from netns B
        as unregister_netdevice_many() has not been called. ]
    
      3. gtp_net_exit_batch_rtnl() finds the device B while iterating
         netns B's for_each_netdev() and calls ->dellink().
    
    gtp_dellink() cleans up the device's hash table, unlinks the dev from
    gn->gtp_dev_list, and calls unregister_netdevice_queue().
    
    Basically, calling gtp_dellink() multiple times is fine unless
    CONFIG_DEBUG_LIST is enabled.
    
    Let's remove for_each_netdev() in gtp_net_exit_batch_rtnl() and
    delegate the destruction to default_device_exit_batch() as done
    in bareudp.
    
    [0]:
    list_del corruption, ffff8880aaa62c00->next (autoslab_size_M_dev_P_net_core_dev_11127_8_1328_8_S_4096_A_64_n_139+0xc00/0x1000 [slab object]) is LIST_POISON1 (ffffffffffffff02) (prev is 0xffffffffffffff04)
    kernel BUG at lib/list_debug.c:58!
    Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN
    CPU: 1 UID: 0 PID: 1804 Comm: kworker/u8:7 Tainted: G                T   6.12.13-grsec-full-20250211091339 #1
    Tainted: [T]=RANDSTRUCT
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
    Workqueue: netns cleanup_net
    RIP: 0010:[<ffffffff84947381>] __list_del_entry_valid_or_report+0x141/0x200 lib/list_debug.c:58
    Code: c2 76 91 31 c0 e8 9f b1 f7 fc 0f 0b 4d 89 f0 48 c7 c1 02 ff ff ff 48 89 ea 48 89 ee 48 c7 c7 e0 c2 76 91 31 c0 e8 7f b1 f7 fc <0f> 0b 4d 89 e8 48 c7 c1 04 ff ff ff 48 89 ea 48 89 ee 48 c7 c7 60
    RSP: 0018:fffffe8040b4fbd0 EFLAGS: 00010283
    RAX: 00000000000000cc RBX: dffffc0000000000 RCX: ffffffff818c4054
    RDX: ffffffff84947381 RSI: ffffffff818d1512 RDI: 0000000000000000
    RBP: ffff8880aaa62c00 R08: 0000000000000001 R09: fffffbd008169f32
    R10: fffffe8040b4f997 R11: 0000000000000001 R12: a1988d84f24943e4
    R13: ffffffffffffff02 R14: ffffffffffffff04 R15: ffff8880aaa62c08
    RBX: kasan shadow of 0x0
    RCX: __wake_up_klogd.part.0+0x74/0xe0 kernel/printk/printk.c:4554
    RDX: __list_del_entry_valid_or_report+0x141/0x200 lib/list_debug.c:58
    RSI: vprintk+0x72/0x100 kernel/printk/printk_safe.c:71
    RBP: autoslab_size_M_dev_P_net_core_dev_11127_8_1328_8_S_4096_A_64_n_139+0xc00/0x1000 [slab object]
    RSP: process kstack fffffe8040b4fbd0+0x7bd0/0x8000 [kworker/u8:7+netns 1804 ]
    R09: kasan shadow of process kstack fffffe8040b4f990+0x7990/0x8000 [kworker/u8:7+netns 1804 ]
    R10: process kstack fffffe8040b4f997+0x7997/0x8000 [kworker/u8:7+netns 1804 ]
    R15: autoslab_size_M_dev_P_net_core_dev_11127_8_1328_8_S_4096_A_64_n_139+0xc08/0x1000 [slab object]
    FS:  0000000000000000(0000) GS:ffff888116000000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000748f5372c000 CR3: 0000000015408000 CR4: 00000000003406f0 shadow CR4: 00000000003406f0
    Stack:
     0000000000000000 ffffffff8a0c35e7 ffffffff8a0c3603 ffff8880aaa62c00
     ffff8880aaa62c00 0000000000000004 ffff88811145311c 0000000000000005
     0000000000000001 ffff8880aaa62000 fffffe8040b4fd40 ffffffff8a0c360d
    Call Trace:
     <TASK>
     [<ffffffff8a0c360d>] __list_del_entry_valid include/linux/list.h:131 [inline] fffffe8040b4fc28
     [<ffffffff8a0c360d>] __list_del_entry include/linux/list.h:248 [inline] fffffe8040b4fc28
     [<ffffffff8a0c360d>] list_del include/linux/list.h:262 [inline] fffffe8040b4fc28
     [<ffffffff8a0c360d>] gtp_dellink+0x16d/0x360 drivers/net/gtp.c:1557 fffffe8040b4fc28
     [<ffffffff8a0d0404>] gtp_net_exit_batch_rtnl+0x124/0x2c0 drivers/net/gtp.c:2495 fffffe8040b4fc88
     [<ffffffff8e705b24>] cleanup_net+0x5a4/0xbe0 net/core/net_namespace.c:635 fffffe8040b4fcd0
     [<ffffffff81754c97>] process_one_work+0xbd7/0x2160 kernel/workqueue.c:3326 fffffe8040b4fd88
     [<ffffffff81757195>] process_scheduled_works kernel/workqueue.c:3407 [inline] fffffe8040b4fec0
     [<ffffffff81757195>] worker_thread+0x6b5/0xfa0 kernel/workqueue.c:3488 fffffe8040b4fec0
     [<ffffffff817782a0>] kthread+0x360/0x4c0 kernel/kthread.c:397 fffffe8040b4ff78
     [<ffffffff814d8594>] ret_from_fork+0x74/0xe0 arch/x86/kernel/process.c:172 fffffe8040b4ffb8
     [<ffffffff8110f509>] ret_from_fork_asm+0x29/0xc0 arch/x86/entry/entry_64.S:399 fffffe8040b4ffe8
     </TASK>
    Modules linked in:
    
    Fixes: eb28fd76c0a0 ("gtp: Destroy device along with udp socket's netns dismantle.")
    Reported-by: Brad Spengler <spender@grsecurity.net>
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250217203705.40342-2-kuniyu@amazon.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f74f6560146714241c6e167b03165ee77a86e316
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Thu Feb 13 13:33:54 2025 +0900

    geneve: Fix use-after-free in geneve_find_dev().
    
    [ Upstream commit 9593172d93b9f91c362baec4643003dc29802929 ]
    
    syzkaller reported a use-after-free in geneve_find_dev() [0]
    without repro.
    
    geneve_configure() links struct geneve_dev.next to
    net_generic(net, geneve_net_id)->geneve_list.
    
    The net here could differ from dev_net(dev) if IFLA_NET_NS_PID,
    IFLA_NET_NS_FD, or IFLA_TARGET_NETNSID is set.
    
    When dev_net(dev) is dismantled, geneve_exit_batch_rtnl() finally
    calls unregister_netdevice_queue() for each dev in the netns,
    and later the dev is freed.
    
    However, its geneve_dev.next is still linked to the backend UDP
    socket netns.
    
    Then, use-after-free will occur when another geneve dev is created
    in the netns.
    
    Let's call geneve_dellink() instead in geneve_destroy_tunnels().
    
    [0]:
    BUG: KASAN: slab-use-after-free in geneve_find_dev drivers/net/geneve.c:1295 [inline]
    BUG: KASAN: slab-use-after-free in geneve_configure+0x234/0x858 drivers/net/geneve.c:1343
    Read of size 2 at addr ffff000054d6ee24 by task syz.1.4029/13441
    
    CPU: 1 UID: 0 PID: 13441 Comm: syz.1.4029 Not tainted 6.13.0-g0ad9617c78ac #24 dc35ca22c79fb82e8e7bc5c9c9adafea898b1e3d
    Hardware name: linux,dummy-virt (DT)
    Call trace:
     show_stack+0x38/0x50 arch/arm64/kernel/stacktrace.c:466 (C)
     __dump_stack lib/dump_stack.c:94 [inline]
     dump_stack_lvl+0xbc/0x108 lib/dump_stack.c:120
     print_address_description mm/kasan/report.c:378 [inline]
     print_report+0x16c/0x6f0 mm/kasan/report.c:489
     kasan_report+0xc0/0x120 mm/kasan/report.c:602
     __asan_report_load2_noabort+0x20/0x30 mm/kasan/report_generic.c:379
     geneve_find_dev drivers/net/geneve.c:1295 [inline]
     geneve_configure+0x234/0x858 drivers/net/geneve.c:1343
     geneve_newlink+0xb8/0x128 drivers/net/geneve.c:1634
     rtnl_newlink_create+0x23c/0x868 net/core/rtnetlink.c:3795
     __rtnl_newlink net/core/rtnetlink.c:3906 [inline]
     rtnl_newlink+0x1054/0x1630 net/core/rtnetlink.c:4021
     rtnetlink_rcv_msg+0x61c/0x918 net/core/rtnetlink.c:6911
     netlink_rcv_skb+0x1dc/0x398 net/netlink/af_netlink.c:2543
     rtnetlink_rcv+0x34/0x50 net/core/rtnetlink.c:6938
     netlink_unicast_kernel net/netlink/af_netlink.c:1322 [inline]
     netlink_unicast+0x618/0x838 net/netlink/af_netlink.c:1348
     netlink_sendmsg+0x5fc/0x8b0 net/netlink/af_netlink.c:1892
     sock_sendmsg_nosec net/socket.c:713 [inline]
     __sock_sendmsg net/socket.c:728 [inline]
     ____sys_sendmsg+0x410/0x6f8 net/socket.c:2568
     ___sys_sendmsg+0x178/0x1d8 net/socket.c:2622
     __sys_sendmsg net/socket.c:2654 [inline]
     __do_sys_sendmsg net/socket.c:2659 [inline]
     __se_sys_sendmsg net/socket.c:2657 [inline]
     __arm64_sys_sendmsg+0x12c/0x1c8 net/socket.c:2657
     __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
     invoke_syscall+0x90/0x278 arch/arm64/kernel/syscall.c:49
     el0_svc_common+0x13c/0x250 arch/arm64/kernel/syscall.c:132
     do_el0_svc+0x54/0x70 arch/arm64/kernel/syscall.c:151
     el0_svc+0x4c/0xa8 arch/arm64/kernel/entry-common.c:744
     el0t_64_sync_handler+0x78/0x108 arch/arm64/kernel/entry-common.c:762
     el0t_64_sync+0x198/0x1a0 arch/arm64/kernel/entry.S:600
    
    Allocated by task 13247:
     kasan_save_stack mm/kasan/common.c:47 [inline]
     kasan_save_track+0x30/0x68 mm/kasan/common.c:68
     kasan_save_alloc_info+0x44/0x58 mm/kasan/generic.c:568
     poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
     __kasan_kmalloc+0x84/0xa0 mm/kasan/common.c:394
     kasan_kmalloc include/linux/kasan.h:260 [inline]
     __do_kmalloc_node mm/slub.c:4298 [inline]
     __kmalloc_node_noprof+0x2a0/0x560 mm/slub.c:4304
     __kvmalloc_node_noprof+0x9c/0x230 mm/util.c:645
     alloc_netdev_mqs+0xb8/0x11a0 net/core/dev.c:11470
     rtnl_create_link+0x2b8/0xb50 net/core/rtnetlink.c:3604
     rtnl_newlink_create+0x19c/0x868 net/core/rtnetlink.c:3780
     __rtnl_newlink net/core/rtnetlink.c:3906 [inline]
     rtnl_newlink+0x1054/0x1630 net/core/rtnetlink.c:4021
     rtnetlink_rcv_msg+0x61c/0x918 net/core/rtnetlink.c:6911
     netlink_rcv_skb+0x1dc/0x398 net/netlink/af_netlink.c:2543
     rtnetlink_rcv+0x34/0x50 net/core/rtnetlink.c:6938
     netlink_unicast_kernel net/netlink/af_netlink.c:1322 [inline]
     netlink_unicast+0x618/0x838 net/netlink/af_netlink.c:1348
     netlink_sendmsg+0x5fc/0x8b0 net/netlink/af_netlink.c:1892
     sock_sendmsg_nosec net/socket.c:713 [inline]
     __sock_sendmsg net/socket.c:728 [inline]
     ____sys_sendmsg+0x410/0x6f8 net/socket.c:2568
     ___sys_sendmsg+0x178/0x1d8 net/socket.c:2622
     __sys_sendmsg net/socket.c:2654 [inline]
     __do_sys_sendmsg net/socket.c:2659 [inline]
     __se_sys_sendmsg net/socket.c:2657 [inline]
     __arm64_sys_sendmsg+0x12c/0x1c8 net/socket.c:2657
     __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
     invoke_syscall+0x90/0x278 arch/arm64/kernel/syscall.c:49
     el0_svc_common+0x13c/0x250 arch/arm64/kernel/syscall.c:132
     do_el0_svc+0x54/0x70 arch/arm64/kernel/syscall.c:151
     el0_svc+0x4c/0xa8 arch/arm64/kernel/entry-common.c:744
     el0t_64_sync_handler+0x78/0x108 arch/arm64/kernel/entry-common.c:762
     el0t_64_sync+0x198/0x1a0 arch/arm64/kernel/entry.S:600
    
    Freed by task 45:
     kasan_save_stack mm/kasan/common.c:47 [inline]
     kasan_save_track+0x30/0x68 mm/kasan/common.c:68
     kasan_save_free_info+0x58/0x70 mm/kasan/generic.c:582
     poison_slab_object mm/kasan/common.c:247 [inline]
     __kasan_slab_free+0x48/0x68 mm/kasan/common.c:264
     kasan_slab_free include/linux/kasan.h:233 [inline]
     slab_free_hook mm/slub.c:2353 [inline]
     slab_free mm/slub.c:4613 [inline]
     kfree+0x140/0x420 mm/slub.c:4761
     kvfree+0x4c/0x68 mm/util.c:688
     netdev_release+0x94/0xc8 net/core/net-sysfs.c:2065
     device_release+0x98/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+0x2b0/0x438 lib/kobject.c:737
     netdev_run_todo+0xe5c/0xfc8 net/core/dev.c:11185
     rtnl_unlock+0x20/0x38 net/core/rtnetlink.c:151
     cleanup_net+0x4fc/0x8c0 net/core/net_namespace.c:648
     process_one_work+0x700/0x1398 kernel/workqueue.c:3236
     process_scheduled_works kernel/workqueue.c:3317 [inline]
     worker_thread+0x8c4/0xe10 kernel/workqueue.c:3398
     kthread+0x4bc/0x608 kernel/kthread.c:464
     ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:862
    
    The buggy address belongs to the object at ffff000054d6e000
     which belongs to the cache kmalloc-cg-4k of size 4096
    The buggy address is located 3620 bytes inside of
     freed 4096-byte region [ffff000054d6e000, ffff000054d6f000)
    
    The buggy address belongs to the physical page:
    page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x94d68
    head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
    memcg:ffff000016276181
    flags: 0x3fffe0000000040(head|node=0|zone=0|lastcpupid=0x1ffff)
    page_type: f5(slab)
    raw: 03fffe0000000040 ffff0000c000f500 dead000000000122 0000000000000000
    raw: 0000000000000000 0000000000040004 00000001f5000000 ffff000016276181
    head: 03fffe0000000040 ffff0000c000f500 dead000000000122 0000000000000000
    head: 0000000000000000 0000000000040004 00000001f5000000 ffff000016276181
    head: 03fffe0000000003 fffffdffc1535a01 ffffffffffffffff 0000000000000000
    head: 0000000000000008 0000000000000000 00000000ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff000054d6ed00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff000054d6ed80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    >ffff000054d6ee00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                   ^
     ffff000054d6ee80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff000054d6ef00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    
    Fixes: 2d07dc79fe04 ("geneve: add initial netdev driver for GENEVE tunnels")
    Reported-by: syzkaller <syzkaller@googlegroups.com>
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250213043354.91368-1-kuniyu@amazon.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6847b3e40bb963e57b61d1cc6fe84cb37b9d3d4c
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Wed Feb 12 07:46:28 2025 +0100

    powerpc/code-patching: Fix KASAN hit by not flagging text patching area as VM_ALLOC
    
    [ Upstream commit d262a192d38e527faa5984629aabda2e0d1c4f54 ]
    
    Erhard reported the following KASAN hit while booting his PowerMac G4
    with a KASAN-enabled kernel 6.13-rc6:
    
      BUG: KASAN: vmalloc-out-of-bounds in copy_to_kernel_nofault+0xd8/0x1c8
      Write of size 8 at addr f1000000 by task chronyd/1293
    
      CPU: 0 UID: 123 PID: 1293 Comm: chronyd Tainted: G        W          6.13.0-rc6-PMacG4 #2
      Tainted: [W]=WARN
      Hardware name: PowerMac3,6 7455 0x80010303 PowerMac
      Call Trace:
      [c2437590] [c1631a84] dump_stack_lvl+0x70/0x8c (unreliable)
      [c24375b0] [c0504998] print_report+0xdc/0x504
      [c2437610] [c050475c] kasan_report+0xf8/0x108
      [c2437690] [c0505a3c] kasan_check_range+0x24/0x18c
      [c24376a0] [c03fb5e4] copy_to_kernel_nofault+0xd8/0x1c8
      [c24376c0] [c004c014] patch_instructions+0x15c/0x16c
      [c2437710] [c00731a8] bpf_arch_text_copy+0x60/0x7c
      [c2437730] [c0281168] bpf_jit_binary_pack_finalize+0x50/0xac
      [c2437750] [c0073cf4] bpf_int_jit_compile+0xb30/0xdec
      [c2437880] [c0280394] bpf_prog_select_runtime+0x15c/0x478
      [c24378d0] [c1263428] bpf_prepare_filter+0xbf8/0xc14
      [c2437990] [c12677ec] bpf_prog_create_from_user+0x258/0x2b4
      [c24379d0] [c027111c] do_seccomp+0x3dc/0x1890
      [c2437ac0] [c001d8e0] system_call_exception+0x2dc/0x420
      [c2437f30] [c00281ac] ret_from_syscall+0x0/0x2c
      --- interrupt: c00 at 0x5a1274
      NIP:  005a1274 LR: 006a3b3c CTR: 005296c8
      REGS: c2437f40 TRAP: 0c00   Tainted: G        W           (6.13.0-rc6-PMacG4)
      MSR:  0200f932 <VEC,EE,PR,FP,ME,IR,DR,RI>  CR: 24004422  XER: 00000000
    
      GPR00: 00000166 af8f3fa0 a7ee3540 00000001 00000000 013b6500 005a5858 0200f932
      GPR08: 00000000 00001fe9 013d5fc8 005296c8 2822244c 00b2fcd8 00000000 af8f4b57
      GPR16: 00000000 00000001 00000000 00000000 00000000 00000001 00000000 00000002
      GPR24: 00afdbb0 00000000 00000000 00000000 006e0004 013ce060 006e7c1c 00000001
      NIP [005a1274] 0x5a1274
      LR [006a3b3c] 0x6a3b3c
      --- interrupt: c00
    
      The buggy address belongs to the virtual mapping at
       [f1000000, f1002000) created by:
       text_area_cpu_up+0x20/0x190
    
      The buggy address belongs to the physical page:
      page: refcount:1 mapcount:0 mapping:00000000 index:0x0 pfn:0x76e30
      flags: 0x80000000(zone=2)
      raw: 80000000 00000000 00000122 00000000 00000000 00000000 ffffffff 00000001
      raw: 00000000
      page dumped because: kasan: bad access detected
    
      Memory state around the buggy address:
       f0ffff00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
       f0ffff80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      >f1000000: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
                 ^
       f1000080: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
       f1000100: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
      ==================================================================
    
    f8 corresponds to KASAN_VMALLOC_INVALID which means the area is not
    initialised hence not supposed to be used yet.
    
    Powerpc text patching infrastructure allocates a virtual memory area
    using get_vm_area() and flags it as VM_ALLOC. But that flag is meant
    to be used for vmalloc() and vmalloc() allocated memory is not
    supposed to be used before a call to __vmalloc_node_range() which is
    never called for that area.
    
    That went undetected until commit e4137f08816b ("mm, kasan, kmsan:
    instrument copy_from/to_kernel_nofault")
    
    The area allocated by text_area_cpu_up() is not vmalloc memory, it is
    mapped directly on demand when needed by map_kernel_page(). There is
    no VM flag corresponding to such usage, so just pass no flag. That way
    the area will be unpoisonned and usable immediately.
    
    Reported-by: Erhard Furtner <erhard_f@mailbox.org>
    Closes: https://lore.kernel.org/all/20250112135832.57c92322@yea/
    Fixes: 37bc3e5fd764 ("powerpc/lib/code-patching: Use alternate map for patch_instruction()")
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
    Link: https://patch.msgid.link/06621423da339b374f48c0886e3a5db18e896be8.1739342693.git.christophe.leroy@csgroup.eu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 718d0480ca3a05d0f36d91b3b0facda9c8903bb6
Author: Kailang Yang <kailang@realtek.com>
Date:   Wed Feb 12 14:40:46 2025 +0800

    ALSA: hda/realtek: Fixup ALC225 depop procedure
    
    [ Upstream commit 174448badb4409491bfba2e6b46f7aa078741c5e ]
    
    Headset MIC will no function when power_save=0.
    
    Fixes: 1fd50509fe14 ("ALSA: hda/realtek: Update ALC225 depop procedure")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=219743
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Link: https://lore.kernel.org/0474a095ab0044d0939ec4bf4362423d@realtek.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 71f427413d2d0a9a6fe57abedec732ac9f3339be
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Sun Jan 12 19:24:46 2025 +0100

    powerpc/64s: Rewrite __real_pte() and __rpte_to_hidx() as static inline
    
    [ Upstream commit 61bcc752d1b81fde3cae454ff20c1d3c359df500 ]
    
    Rewrite __real_pte() and __rpte_to_hidx() as static inline in order to
    avoid following warnings/errors when building with 4k page size:
    
              CC      arch/powerpc/mm/book3s64/hash_tlb.o
            arch/powerpc/mm/book3s64/hash_tlb.c: In function 'hpte_need_flush':
            arch/powerpc/mm/book3s64/hash_tlb.c:49:16: error: variable 'offset' set but not used [-Werror=unused-but-set-variable]
               49 |         int i, offset;
                  |                ^~~~~~
    
              CC      arch/powerpc/mm/book3s64/hash_native.o
            arch/powerpc/mm/book3s64/hash_native.c: In function 'native_flush_hash_range':
            arch/powerpc/mm/book3s64/hash_native.c:782:29: error: variable 'index' set but not used [-Werror=unused-but-set-variable]
              782 |         unsigned long hash, index, hidx, shift, slot;
                  |                             ^~~~~
    
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501081741.AYFwybsq-lkp@intel.com/
    Fixes: ff31e105464d ("powerpc/mm/hash64: Store the slot information at the right offset for hugetlb")
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
    Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
    Link: https://patch.msgid.link/e0d340a5b7bd478ecbf245d826e6ab2778b74e06.1736706263.git.christophe.leroy@csgroup.eu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 61a45806db4632998c71ced7287e38541d56eb2c
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Wed Aug 21 18:07:29 2024 +1000

    powerpc/64s/mm: Move __real_pte stubs into hash-4k.h
    
    [ Upstream commit 8ae4f16f7d7b59cca55aeca6db7c9636ffe7fbaa ]
    
    The stub versions of __real_pte() etc are only used with HPT & 4K pages,
    so move them into the hash-4k.h header.
    
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20240821080729.872034-1-mpe@ellerman.id.au
    Stable-dep-of: 61bcc752d1b8 ("powerpc/64s: Rewrite __real_pte() and __rpte_to_hidx() as static inline")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b09957657d7767d164b3432af2129bd72947553c
Author: Jill Donahue <jilliandonahue58@gmail.com>
Date:   Tue Feb 11 10:48:05 2025 -0700

    USB: gadget: f_midi: f_midi_complete to call queue_work
    
    [ Upstream commit 4ab37fcb42832cdd3e9d5e50653285ca84d6686f ]
    
    When using USB MIDI, a lock is attempted to be acquired twice through a
    re-entrant call to f_midi_transmit, causing a deadlock.
    
    Fix it by using queue_work() to schedule the inner f_midi_transmit() via
    a high priority work queue from the completion handler.
    
    Link: https://lore.kernel.org/all/CAArt=LjxU0fUZOj06X+5tkeGT+6RbXzpWg1h4t4Fwa_KGVAX6g@mail.gmail.com/
    Fixes: d5daf49b58661 ("USB: gadget: midi: add midi function driver")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Jill Donahue <jilliandonahue58@gmail.com>
    Link: https://lore.kernel.org/r/20250211174805.1369265-1-jdonahue@fender.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 006a4e9069a1eaf27f36bff5d164816da51d96d0
Author: Selvarasu Ganesan <selvarasu.g@samsung.com>
Date:   Sat Feb 1 22:09:02 2025 +0530

    usb: dwc3: Fix timeout issue during controller enter/exit from halt state
    
    [ Upstream commit d3a8c28426fc1fb3252753a9f1db0d691ffc21b0 ]
    
    There is a frequent timeout during controller enter/exit from halt state
    after toggling the run_stop bit by SW. This timeout occurs when
    performing frequent role switches between host and device, causing
    device enumeration issues due to the timeout. This issue was not present
    when USB2 suspend PHY was disabled by passing the SNPS quirks
    (snps,dis_u2_susphy_quirk and snps,dis_enblslpm_quirk) from the DTS.
    However, there is a requirement to enable USB2 suspend PHY by setting of
    GUSB2PHYCFG.ENBLSLPM and GUSB2PHYCFG.SUSPHY bits when controller starts
    in gadget or host mode results in the timeout issue.
    
    This commit addresses this timeout issue by ensuring that the bits
    GUSB2PHYCFG.ENBLSLPM and GUSB2PHYCFG.SUSPHY are cleared before starting
    the dwc3_gadget_run_stop sequence and restoring them after the
    dwc3_gadget_run_stop sequence is completed.
    
    Fixes: 72246da40f37 ("usb: Introduce DesignWare USB3 DRD Driver")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/20250201163903.459-1-selvarasu.g@samsung.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 47cc53c3ebe32e7b306980536f39ef48be31fc47
Author: Wesley Cheng <quic_wcheng@quicinc.com>
Date:   Thu Sep 1 12:36:23 2022 -0700

    usb: dwc3: Increase DWC3 controller halt timeout
    
    [ Upstream commit 461ee467507cb98a348fa91ff8460908bb0ea423 ]
    
    Since EP0 transactions need to be completed before the controller halt
    sequence is finished, this may take some time depending on the host and the
    enabled functions.  Increase the controller halt timeout, so that we give
    the controller sufficient time to handle EP0 transfers.
    
    Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
    Link: https://lore.kernel.org/r/20220901193625.8727-4-quic_wcheng@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: d3a8c28426fc ("usb: dwc3: Fix timeout issue during controller enter/exit from halt state")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c0e0aecb78cb2a2ca1dc701982d08fedb088dc6
Author: Sven Eckelmann <sven@narfation.org>
Date:   Mon Jan 20 00:06:11 2025 +0100

    batman-adv: Drop unmanaged ELP metric worker
    
    [ Upstream commit 8c8ecc98f5c65947b0070a24bac11e12e47cc65d ]
    
    The ELP worker needs to calculate new metric values for all neighbors
    "reachable" over an interface. Some of the used metric sources require
    locks which might need to sleep. This sleep is incompatible with the RCU
    list iterator used for the recorded neighbors. The initial approach to work
    around of this problem was to queue another work item per neighbor and then
    run this in a new context.
    
    Even when this solved the RCU vs might_sleep() conflict, it has a major
    problems: Nothing was stopping the work item in case it is not needed
    anymore - for example because one of the related interfaces was removed or
    the batman-adv module was unloaded - resulting in potential invalid memory
    accesses.
    
    Directly canceling the metric worker also has various problems:
    
    * cancel_work_sync for a to-be-deactivated interface is called with
      rtnl_lock held. But the code in the ELP metric worker also tries to use
      rtnl_lock() - which will never return in this case. This also means that
      cancel_work_sync would never return because it is waiting for the worker
      to finish.
    * iterating over the neighbor list for the to-be-deactivated interface is
      currently done using the RCU specific methods. Which means that it is
      possible to miss items when iterating over it without the associated
      spinlock - a behaviour which is acceptable for a periodic metric check
      but not for a cleanup routine (which must "stop" all still running
      workers)
    
    The better approch is to get rid of the per interface neighbor metric
    worker and handle everything in the interface worker. The original problems
    are solved by:
    
    * creating a list of neighbors which require new metric information inside
      the RCU protected context, gathering the metric according to the new list
      outside the RCU protected context
    * only use rcu_trylock inside metric gathering code to avoid a deadlock
      when the cancel_delayed_work_sync is called in the interface removal code
      (which is called with the rtnl_lock held)
    
    Cc: stable@vger.kernel.org
    Fixes: c833484e5f38 ("batman-adv: ELP - compute the metric based on the estimated throughput")
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6ad06346133220d68ee6534dd64ad9bfb5556892
Author: Sven Eckelmann <sven@narfation.org>
Date:   Sat Aug 20 09:32:50 2022 +0200

    batman-adv: Drop initialization of flexible ethtool_link_ksettings
    
    [ Upstream commit 813e62a6fe7539fdf0d8e018d4f157b57bdaeedd ]
    
    The commit 94dfc73e7cf4 ("treewide: uapi: Replace zero-length arrays with
    flexible-array members") changed various structures from using 0-length
    arrays to flexible arrays
    
      net/batman-adv/bat_v_elp.c: note: in included file:
      ./include/linux/ethtool.h:148:38: warning: nested flexible array
      net/batman-adv/bat_v_elp.c:128:9: warning: using sizeof on a flexible structure
    
    In theory, this could be worked around by using {} as initializer for the
    variable on the stack. But this variable doesn't has to be initialized at
    all by the caller of __ethtool_get_link_ksettings - everything will be
    initialized by the callee when no error occurs.
    
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Stable-dep-of: 8c8ecc98f5c6 ("batman-adv: Drop unmanaged ELP metric worker")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d775f9e9e663690d702ca29da0b18f8bdd7a6e37
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Tue Dec 3 21:20:08 2024 +0000

    media: uvcvideo: Only save async fh if success
    
    [ Upstream commit d9fecd096f67a4469536e040a8a10bbfb665918b ]
    
    Now we keep a reference to the active fh for any call to uvc_ctrl_set,
    regardless if it is an actual set or if it is a just a try or if the
    device refused the operation.
    
    We should only keep the file handle if the device actually accepted
    applying the operation.
    
    Cc: stable@vger.kernel.org
    Fixes: e5225c820c05 ("media: uvcvideo: Send a control event when a Control Change interrupt arrives")
    Suggested-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-1-26c867231118@chromium.org
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0360e0099047898eca2dab42ca404919df045db
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Mon Apr 29 15:04:42 2024 +0000

    media: uvcvideo: Refactor iterators
    
    [ Upstream commit 64627daf0c5f7838111f52bbbd1a597cb5d6871a ]
    
    Avoid using the iterators after the list_for_each() constructs.
    This patch should be a NOP, but makes cocci, happier:
    
    drivers/media/usb/uvc/uvc_ctrl.c:1861:44-50: ERROR: invalid reference to the index variable of the iterator on line 1850
    drivers/media/usb/uvc/uvc_ctrl.c:2195:17-23: ERROR: invalid reference to the index variable of the iterator on line 2179
    
    Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Stable-dep-of: d9fecd096f67 ("media: uvcvideo: Only save async fh if success")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 972f412da53b2e4189622d2807c52ae9c5a760a3
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Fri Jun 18 14:29:17 2021 +0200

    media: uvcvideo: Set error_idx during ctrl_commit errors
    
    [ Upstream commit 6350d6a4ed487d16a3a021f76a7edcb9cb60fdbf ]
    
    If we have an error setting a control, return the affected control in
    the error_idx field.
    
    Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Stable-dep-of: d9fecd096f67 ("media: uvcvideo: Only save async fh if success")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c113bccf1f8714175af94e710707836e574b7643
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Sat Jan 4 15:20:12 2025 +0100

    soc: mediatek: mtk-devapc: Fix leaking IO map on driver remove
    
    [ Upstream commit c9c0036c1990da8d2dd33563e327e05a775fcf10 ]
    
    Driver removal should fully clean up - unmap the memory.
    
    Fixes: 0890beb22618 ("soc: mediatek: add mt6779 devapc driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20250104142012.115974-2-krzysztof.kozlowski@linaro.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c3fa28e6cac8903401c22a79fbd194384b6ab93c
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Mon Sep 25 11:55:05 2023 +0200

    soc/mediatek: mtk-devapc: Convert to platform remove callback returning void
    
    [ Upstream commit a129ac3555c0dca6f04ae404dc0f0790656587fb ]
    
    The .remove() callback for a platform driver returns an int which makes
    many driver authors wrongly assume it's possible to do error handling by
    returning an error code. However the value returned is ignored (apart
    from emitting a warning) and this typically results in resource leaks.
    To improve here there is a quest to make the remove callback return
    void. In the first step of this quest all drivers are converted to
    .remove_new() which already returns void. Eventually after all drivers
    are converted, .remove_new() will be renamed to .remove().
    
    Trivially convert this driver from always returning zero in the remove
    callback to the void returning variant.
    
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20230925095532.1984344-15-u.kleine-koenig@pengutronix.de
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Stable-dep-of: c9c0036c1990 ("soc: mediatek: mtk-devapc: Fix leaking IO map on driver remove")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4dd78251db13f09994f75624e7d86bbb7f15bfbb
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Sat Jan 4 15:20:11 2025 +0100

    soc: mediatek: mtk-devapc: Fix leaking IO map on error paths
    
    [ Upstream commit c0eb059a4575ed57f265d9883a5203799c19982c ]
    
    Error paths of mtk_devapc_probe() should unmap the memory.  Reported by
    Smatch:
    
      drivers/soc/mediatek/mtk-devapc.c:292 mtk_devapc_probe() warn: 'ctx->infra_base' from of_iomap() not released on lines: 277,281,286.
    
    Fixes: 0890beb22618 ("soc: mediatek: add mt6779 devapc driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20250104142012.115974-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 10185d020c8f7698e5bb69854f179f18dae33949
Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Date:   Thu Oct 6 13:09:35 2022 +0200

    soc: mediatek: mtk-devapc: Switch to devm_clk_get_enabled()
    
    [ Upstream commit 916120df5aa926d65f4666c075ed8d4955ef7bab ]
    
    This driver does exactly devm_clk_get() and clk_prepare_enable() right
    after, which is exactly what devm_clk_get_enabled() does: clean that
    up by switching to the latter.
    
    This commit brings no functional changes.
    
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20221006110935.59695-1-angelogioacchino.delregno@collabora.com
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Stable-dep-of: c0eb059a4575 ("soc: mediatek: mtk-devapc: Fix leaking IO map on error paths")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f03ad378249f83a45895c5092e8d52714093fc5a
Author: Marco Elver <elver@google.com>
Date:   Fri Jan 24 13:01:38 2025 +0100

    kfence: skip __GFP_THISNODE allocations on NUMA systems
    
    [ Upstream commit e64f81946adf68cd75e2207dd9a51668348a4af8 ]
    
    On NUMA systems, __GFP_THISNODE indicates that an allocation _must_ be on
    a particular node, and failure to allocate on the desired node will result
    in a failed allocation.
    
    Skip __GFP_THISNODE allocations if we are running on a NUMA system, since
    KFENCE can't guarantee which node its pool pages are allocated on.
    
    Link: https://lkml.kernel.org/r/20250124120145.410066-1-elver@google.com
    Fixes: 236e9f153852 ("kfence: skip all GFP_ZONEMASK allocations")
    Signed-off-by: Marco Elver <elver@google.com>
    Reported-by: Vlastimil Babka <vbabka@suse.cz>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Chistoph Lameter <cl@linux.com>
    Cc: Dmitriy Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8e19db074ab32d1d7cbc95a59d278a5879e0124a
Author: huangshaobo <huangshaobo6@huawei.com>
Date:   Mon May 9 18:20:51 2022 -0700

    kfence: enable check kfence canary on panic via boot param
    
    [ Upstream commit 3c81b3bb0a33e2b555edb8d7eb99a7ae4f17d8bb ]
    
    Out-of-bounds accesses that aren't caught by a guard page will result in
    corruption of canary memory.  In pathological cases, where an object has
    certain alignment requirements, an out-of-bounds access might never be
    caught by the guard page.  Such corruptions, however, are only detected on
    kfree() normally.  If the bug causes the kernel to panic before kfree(),
    KFENCE has no opportunity to report the issue.  Such corruptions may also
    indicate failing memory or other faults.
    
    To provide some more information in such cases, add the option to check
    canary bytes on panic.  This might help narrow the search for the panic
    cause; but, due to only having the allocation stack trace, such reports
    are difficult to use to diagnose an issue alone.  In most cases, such
    reports are inactionable, and is therefore an opt-in feature (disabled by
    default).
    
    [akpm@linux-foundation.org: add __read_mostly, per Marco]
    Link: https://lkml.kernel.org/r/20220425022456.44300-1-huangshaobo6@huawei.com
    Signed-off-by: huangshaobo <huangshaobo6@huawei.com>
    Suggested-by: chenzefeng <chenzefeng2@huawei.com>
    Reviewed-by: Marco Elver <elver@google.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Xiaoming Ni <nixiaoming@huawei.com>
    Cc: Wangbing <wangbing6@huawei.com>
    Cc: Jubin Zhong <zhongjubin@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Stable-dep-of: e64f81946adf ("kfence: skip __GFP_THISNODE allocations on NUMA systems")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7792fe79fbeae077e3c8bb3f28f6f8420bae63e
Author: Marco Elver <elver@google.com>
Date:   Tue Mar 22 14:48:25 2022 -0700

    kfence: allow use of a deferrable timer
    
    [ Upstream commit 737b6a10ac19e41877aa1911bf6b361a72a88ad9 ]
    
    Allow the use of a deferrable timer, which does not force CPU wake-ups
    when the system is idle.  A consequence is that the sample interval
    becomes very unpredictable, to the point that it is not guaranteed that
    the KFENCE KUnit test still passes.
    
    Nevertheless, on power-constrained systems this may be preferable, so
    let's give the user the option should they accept the above trade-off.
    
    Link: https://lkml.kernel.org/r/20220308141415.3168078-1-elver@google.com
    Signed-off-by: Marco Elver <elver@google.com>
    Reviewed-by: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Stable-dep-of: e64f81946adf ("kfence: skip __GFP_THISNODE allocations on NUMA systems")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0621d2599d6e02d05c85d6bbd58eaea2f15b3503
Author: Jarkko Sakkinen <jarkko@kernel.org>
Date:   Fri Dec 27 17:39:09 2024 +0200

    tpm: Change to kvalloc() in eventlog/acpi.c
    
    [ Upstream commit a3a860bc0fd6c07332e4911cf9a238d20de90173 ]
    
    The following failure was reported on HPE ProLiant D320:
    
    [   10.693310][    T1] tpm_tis STM0925:00: 2.0 TPM (device-id 0x3, rev-id 0)
    [   10.848132][    T1] ------------[ cut here ]------------
    [   10.853559][    T1] WARNING: CPU: 59 PID: 1 at mm/page_alloc.c:4727 __alloc_pages_noprof+0x2ca/0x330
    [   10.862827][    T1] Modules linked in:
    [   10.866671][    T1] CPU: 59 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.0-lp155.2.g52785e2-default #1 openSUSE Tumbleweed (unreleased) 588cd98293a7c9eba9013378d807364c088c9375
    [   10.882741][    T1] Hardware name: HPE ProLiant DL320 Gen12/ProLiant DL320 Gen12, BIOS 1.20 10/28/2024
    [   10.892170][    T1] RIP: 0010:__alloc_pages_noprof+0x2ca/0x330
    [   10.898103][    T1] Code: 24 08 e9 4a fe ff ff e8 34 36 fa ff e9 88 fe ff ff 83 fe 0a 0f 86 b3 fd ff ff 80 3d 01 e7 ce 01 00 75 09 c6 05 f8 e6 ce 01 01 <0f> 0b 45 31 ff e9 e5 fe ff ff f7 c2 00 00 08 00 75 42 89 d9 80 e1
    [   10.917750][    T1] RSP: 0000:ffffb7cf40077980 EFLAGS: 00010246
    [   10.923777][    T1] RAX: 0000000000000000 RBX: 0000000000040cc0 RCX: 0000000000000000
    [   10.931727][    T1] RDX: 0000000000000000 RSI: 000000000000000c RDI: 0000000000040cc0
    
    The above transcript shows that ACPI pointed a 16 MiB buffer for the log
    events because RSI maps to the 'order' parameter of __alloc_pages_noprof().
    Address the bug by moving from devm_kmalloc() to devm_add_action() and
    kvmalloc() and devm_add_action().
    
    Suggested-by: Ard Biesheuvel <ardb@kernel.org>
    Cc: stable@vger.kernel.org # v2.6.16+
    Fixes: 55a82ab3181b ("[PATCH] tpm: add bios measurement log")
    Reported-by: Andy Liang <andy.liang@hpe.com>
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219495
    Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
    Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
    Reviewed-by: Takashi Iwai <tiwai@suse.de>
    Tested-by: Andy Liang <andy.liang@hpe.com>
    Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 906ac470b16c96b5b8acb995fc5fcd3fbae17d46
Author: Eddie James <eajames@linux.ibm.com>
Date:   Thu Jan 26 15:08:09 2023 -0600

    tpm: Use managed allocation for bios event log
    
    [ Upstream commit 441b7152729f4a2bdb100135a58625fa0aeb69e4 ]
    
    Since the bios event log is freed in the device release function,
    let devres handle the deallocation. This will allow other memory
    allocation/mapping functions to be used for the bios event log.
    
    Signed-off-by: Eddie James <eajames@linux.ibm.com>
    Tested-by: Jarkko Sakkinen <jarkko@kernel.org>
    Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
    Stable-dep-of: a3a860bc0fd6 ("tpm: Change to kvalloc() in eventlog/acpi.c")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5e8bee0e491455cba2f8cdd87271c8a85c1934ac
Author: Chen-Yu Tsai <wenst@chromium.org>
Date:   Fri Oct 25 15:56:28 2024 +0800

    arm64: dts: mediatek: mt8183: Disable DSI display output by default
    
    [ Upstream commit 26f6e91fa29a58fdc76b47f94f8f6027944a490c ]
    
    Most SoC dtsi files have the display output interfaces disabled by
    default, and only enabled on boards that utilize them. The MT8183
    has it backwards: the display outputs are left enabled by default,
    and only disabled at the board level.
    
    Reverse the situation for the DSI output so that it follows the
    normal scheme. For ease of backporting the DPI output is handled
    in a separate patch.
    
    Fixes: 88ec840270e6 ("arm64: dts: mt8183: Add dsi node")
    Fixes: 19b6403f1e2a ("arm64: dts: mt8183: add mt8183 pumpkin board")
    Cc: stable@vger.kernel.org
    Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
    Reviewed-by: Fei Shao <fshao@chromium.org>
    Link: https://lore.kernel.org/r/20241025075630.3917458-2-wenst@chromium.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a06ed6b962b38bc43330efaac21c6a15ef27842
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Wed Jan 8 12:28:46 2025 +0300

    ASoC: renesas: rz-ssi: Add a check for negative sample_space
    
    [ Upstream commit 82a0a3e6f8c02b3236b55e784a083fa4ee07c321 ]
    
    My static checker rule complains about this code.  The concern is that
    if "sample_space" is negative then the "sample_space >= runtime->channels"
    condition will not work as intended because it will be type promoted to a
    high unsigned int value.
    
    strm->fifo_sample_size is SSI_FIFO_DEPTH (32).  The SSIFSR_TDC_MASK is
    0x3f.  Without any further context it does seem like a reasonable warning
    and it can't hurt to add a check for negatives.
    
    Cc: stable@vger.kernel.org
    Fixes: 03e786bd4341 ("ASoC: sh: Add RZ/G2L SSIF-2 driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://patch.msgid.link/e07c3dc5-d885-4b04-a742-71f42243f4fd@stanley.mountain
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c4b9b0c3950e99e7785eaac54485612c3e3ddac
Author: Thomas Zimmermann <tzimmermann@suse.de>
Date:   Tue Nov 5 14:38:16 2024 +0100

    drm/rockchip: cdn-dp: Use drm_connector_helper_hpd_irq_event()
    
    [ Upstream commit 666e1960464140cc4bc9203c203097e70b54c95a ]
    
    The code for detecting and updating the connector status in
    cdn_dp_pd_event_work() has a number of problems.
    
    - It does not aquire the locks to call the detect helper and update
    the connector status. These are struct drm_mode_config.connection_mutex
    and struct drm_mode_config.mutex.
    
    - It does not use drm_helper_probe_detect(), which helps with the
    details of locking and detection.
    
    - It uses the connector's status field to determine a change to
    the connector status. The epoch_counter field is the correct one. The
    field signals a change even if the connector status' value did not
    change.
    
    Replace the code with a call to drm_connector_helper_hpd_irq_event(),
    which fixes all these problems.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Fixes: 81632df69772 ("drm/rockchip: cdn-dp: do not use drm_helper_hpd_irq_event")
    Cc: Chris Zhong <zyw@rock-chips.com>
    Cc: Guenter Roeck <groeck@chromium.org>
    Cc: Sandy Huang <hjc@rock-chips.com>
    Cc: "Heiko Stübner" <heiko@sntech.de>
    Cc: Andy Yan <andy.yan@rock-chips.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-rockchip@lists.infradead.org
    Cc: <stable@vger.kernel.org> # v4.11+
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20241105133848.480407-1-tzimmermann@suse.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5211d75e2cb75cb129602247e79058f26afb4104
Author: Maxime Ripard <mripard@kernel.org>
Date:   Tue Sep 14 12:17:23 2021 +0200

    drm/probe-helper: Create a HPD IRQ event helper for a single connector
    
    [ Upstream commit 0464ed1a79b818d5e3eda1ac3c23a057ac0cc7c3 ]
    
    The drm_helper_hpd_irq_event() function is iterating over all the
    connectors when an hotplug event is detected.
    
    During that iteration, it will call each connector detect function and
    figure out if its status changed.
    
    Finally, if any connector changed, it will notify the user-space and the
    clients that something changed on the DRM device.
    
    This is supposed to be used for drivers that don't have a hotplug
    interrupt for individual connectors. However, drivers that can use an
    interrupt for a single connector are left in the dust and can either
    reimplement the logic used during the iteration for each connector or
    use that helper and iterate over all connectors all the time.
    
    Since both are suboptimal, let's create a helper that will only perform
    the status detection on a single connector.
    
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210914101724.266570-2-maxime@cerno.tech
    Stable-dep-of: 666e19604641 ("drm/rockchip: cdn-dp: Use drm_connector_helper_hpd_irq_event()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f3b9fb2764591d792d160f375851013665a9e820
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Wed Jan 15 09:28:35 2025 +0900

    ksmbd: fix integer overflows on 32 bit systems
    
    [ Upstream commit aab98e2dbd648510f8f51b83fbf4721206ccae45 ]
    
    On 32bit systems the addition operations in ipc_msg_alloc() can
    potentially overflow leading to memory corruption.
    Add bounds checking using KSMBD_IPC_MAX_PAYLOAD to avoid overflow.
    
    Fixes: 0626e6641f6b ("cifsd: add server handler for central processing and tranport layers")
    Cc: stable@vger.kernel.org
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a9042dbc1ed4bf25a5f5c699d10c3d676abf8ca2
Author: Chen Ridong <chenridong@huawei.com>
Date:   Tue Dec 24 02:52:38 2024 +0000

    memcg: fix soft lockup in the OOM process
    
    [ Upstream commit ade81479c7dda1ce3eedb215c78bc615bbd04f06 ]
    
    A soft lockup issue was found in the product with about 56,000 tasks were
    in the OOM cgroup, it was traversing them when the soft lockup was
    triggered.
    
    watchdog: BUG: soft lockup - CPU#2 stuck for 23s! [VM Thread:1503066]
    CPU: 2 PID: 1503066 Comm: VM Thread Kdump: loaded Tainted: G
    Hardware name: Huawei Cloud OpenStack Nova, BIOS
    RIP: 0010:console_unlock+0x343/0x540
    RSP: 0000:ffffb751447db9a0 EFLAGS: 00000247 ORIG_RAX: ffffffffffffff13
    RAX: 0000000000000001 RBX: 0000000000000000 RCX: 00000000ffffffff
    RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000247
    RBP: ffffffffafc71f90 R08: 0000000000000000 R09: 0000000000000040
    R10: 0000000000000080 R11: 0000000000000000 R12: ffffffffafc74bd0
    R13: ffffffffaf60a220 R14: 0000000000000247 R15: 0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f2fe6ad91f0 CR3: 00000004b2076003 CR4: 0000000000360ee0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     vprintk_emit+0x193/0x280
     printk+0x52/0x6e
     dump_task+0x114/0x130
     mem_cgroup_scan_tasks+0x76/0x100
     dump_header+0x1fe/0x210
     oom_kill_process+0xd1/0x100
     out_of_memory+0x125/0x570
     mem_cgroup_out_of_memory+0xb5/0xd0
     try_charge+0x720/0x770
     mem_cgroup_try_charge+0x86/0x180
     mem_cgroup_try_charge_delay+0x1c/0x40
     do_anonymous_page+0xb5/0x390
     handle_mm_fault+0xc4/0x1f0
    
    This is because thousands of processes are in the OOM cgroup, it takes a
    long time to traverse all of them.  As a result, this lead to soft lockup
    in the OOM process.
    
    To fix this issue, call 'cond_resched' in the 'mem_cgroup_scan_tasks'
    function per 1000 iterations.  For global OOM, call
    'touch_softlockup_watchdog' per 1000 iterations to avoid this issue.
    
    Link: https://lkml.kernel.org/r/20241224025238.3768787-1-chenridong@huaweicloud.com
    Fixes: 9cbb78bb3143 ("mm, memcg: introduce own oom handler to iterate only over its own threads")
    Signed-off-by: Chen Ridong <chenridong@huawei.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Roman Gushchin <roman.gushchin@linux.dev>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Muchun Song <songmuchun@bytedance.com>
    Cc: Michal Koutný <mkoutny@suse.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4edae3ff6d4e553dd5e20de92fb3cf55bea608e5
Author: Carlos Galo <carlosgalo@google.com>
Date:   Fri Feb 23 17:32:49 2024 +0000

    mm: update mark_victim tracepoints fields
    
    [ Upstream commit 72ba14deb40a9e9668ec5e66a341ed657e5215c2 ]
    
    The current implementation of the mark_victim tracepoint provides only the
    process ID (pid) of the victim process.  This limitation poses challenges
    for userspace tools requiring real-time OOM analysis and intervention.
    Although this information is available from the kernel logs, it’s not
    the appropriate format to provide OOM notifications.  In Android, BPF
    programs are used with the mark_victim trace events to notify userspace of
    an OOM kill.  For consistency, update the trace event to include the same
    information about the OOMed victim as the kernel logs.
    
    - UID
       In Android each installed application has a unique UID. Including
       the `uid` assists in correlating OOM events with specific apps.
    
    - Process Name (comm)
       Enables identification of the affected process.
    
    - OOM Score
      Will allow userspace to get additional insight of the relative kill
      priority of the OOM victim. In Android, the oom_score_adj is used to
      categorize app state (foreground, background, etc.), which aids in
      analyzing user-perceptible impacts of OOM events [1].
    
    - Total VM, RSS Stats, and pgtables
      Amount of memory used by the victim that will, potentially, be freed up
      by killing it.
    
    [1] https://cs.android.com/android/platform/superproject/main/+/246dc8fc95b6d93afcba5c6d6c133307abb3ac2e:frameworks/base/services/core/java/com/android/server/am/ProcessList.java;l=188-283
    Signed-off-by: Carlos Galo <carlosgalo@google.com>
    Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Stable-dep-of: ade81479c7dd ("memcg: fix soft lockup in the OOM process")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a32ba399a030853f2db45a90ba5474fdd3494aad
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Thu Oct 17 23:34:16 2024 +0300

    media: imx-jpeg: Fix potential error pointer dereference in detach_pm()
    
    [ Upstream commit 1378ffec30367233152b7dbf4fa6a25ee98585d1 ]
    
    The proble is on the first line:
    
            if (jpeg->pd_dev[i] && !pm_runtime_suspended(jpeg->pd_dev[i]))
    
    If jpeg->pd_dev[i] is an error pointer, then passing it to
    pm_runtime_suspended() will lead to an Oops.  The other conditions
    check for both error pointers and NULL, but it would be more clear to
    use the IS_ERR_OR_NULL() check for that.
    
    Fixes: fd0af4cd35da ("media: imx-jpeg: Ensure power suppliers be suspended before detach them")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Reviewed-by: Ming Qian <ming.qian@nxp.com>
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e290d1fe37f79bbddf4e5738a677cc403cd5f689
Author: Ignat Korchagin <ignat@cloudflare.com>
Date:   Sun Jul 17 14:37:46 2022 +0100

    crypto: testmgr - some more fixes to RSA test vectors
    
    [ Upstream commit 9d2bb9a74b2877f100637d6ab5685bcd33c69d44 ]
    
    Two more fixes:
    
      * some test vectors in commit 79e6e2f3f3ff ("crypto: testmgr - populate
        RSA CRT parameters in RSA test vectors") had misplaced commas, which
        break the test and trigger KASAN warnings at least on x86-64
    
      * pkcs1pad test vector did not have its CRT parameters
    
    Fixes: 79e6e2f3f3ff ("crypto: testmgr - populate RSA CRT parameters in RSA test vectors")
    Reported-by: Eric Biggers <ebiggers@kernel.org>
    Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit add54f9639388aaeac827f4bfd5be78a6aabce3d
Author: Ignat Korchagin <ignat@cloudflare.com>
Date:   Mon Jul 4 11:38:40 2022 +0100

    crypto: testmgr - populate RSA CRT parameters in RSA test vectors
    
    [ Upstream commit 79e6e2f3f3ff345947075341781e900e4f70db81 ]
    
    Changes from v1:
      * replace some accidental spaces with tabs
    
    In commit f145d411a67e ("crypto: rsa - implement Chinese Remainder Theorem
    for faster private key operations") we have started to use the additional
    primes and coefficients for RSA private key operations. However, these
    additional parameters are not present (defined as 0 integers) in the RSA
    test vectors.
    
    Some parameters were borrowed from OpenSSL, so I was able to find the
    source. I could not find the public source for 1 vector though, so had to
    recover the parameters by implementing Appendix C from [1].
    
    [1]: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Br1.pdf
    
    Fixes: f145d411a67e ("crypto: rsa - implement Chinese Remainder Theorem for faster private key operations")
    Reported-by: Tasmiya Nalatwad <tasmiya@linux.vnet.ibm.com>
    Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40689219a28bfcba76b87e7b641795a91e151677
Author: lei he <helei.sig11@bytedance.com>
Date:   Fri Jun 24 18:06:25 2022 +0800

    crypto: testmgr - fix version number of RSA tests
    
    [ Upstream commit 0bb8f125253843c445b70fc6ef4fb21aa7b25625 ]
    
    According to PKCS#1 standard, the 'otherPrimeInfos' field contains
    the information for the additional primes r_3, ..., r_u, in order.
    It shall be omitted if the version is 0 and shall contain at least
    one instance of OtherPrimeInfo if the version is 1, see:
            https://www.rfc-editor.org/rfc/rfc3447#page-44
    
    Replace the version number '1' with 0, otherwise, some drivers may
    not pass the run-time tests.
    
    Signed-off-by: lei he <helei.sig11@bytedance.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd258be9a8becffcf9c82a80f9ee1794832ba701
Author: Lei He <helei.sig11@bytedance.com>
Date:   Fri Nov 5 20:25:31 2021 +0800

    crypto: testmgr - Fix wrong test case of RSA
    
    [ Upstream commit a9887010ed2da3fddaff83ceec80e2b71be8a966 ]
    
    According to the BER encoding rules, integer value should be encoded
    as two's complement, and if the highest bit of a positive integer
    is 1, should add a leading zero-octet.
    
    The kernel's built-in RSA algorithm cannot recognize negative numbers
    when parsing keys, so it can pass this test case.
    
    Export the key to file and run the following command to verify the
    fix result:
    
      openssl asn1parse -inform DER -in /path/to/key/file
    
    Signed-off-by: Lei He <helei.sig11@bytedance.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8fbf27a746c3793822f374d0535a02c7ed8c700c
Author: Lei He <helei.sig11@bytedance.com>
Date:   Fri Oct 22 20:44:43 2021 +0800

    crypto: testmgr - fix wrong key length for pkcs1pad
    
    [ Upstream commit 39ef08517082a424b5b65c3dbaa6c0fa9d3303b9 ]
    
    Fix wrong test data at testmgr.h, it seems to be caused
    by ignoring the last '\0' when calling sizeof.
    
    Signed-off-by: Lei He <helei.sig11@bytedance.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4969dcc05bc3fe25eb56ed3015773dd2b6604967
Author: Catalin Marinas <catalin.marinas@arm.com>
Date:   Thu Feb 20 15:58:01 2025 +0000

    arm64: mte: Do not allow PROT_MTE on MAP_HUGETLB user mappings
    
    PROT_MTE (memory tagging extensions) is not supported on all user mmap()
    types for various reasons (memory attributes, backing storage, CoW
    handling). The arm64 arch_validate_flags() function checks whether the
    VM_MTE_ALLOWED flag has been set for a vma during mmap(), usually by
    arch_calc_vm_flag_bits().
    
    Linux prior to 6.13 does not support PROT_MTE hugetlb mappings. This was
    added by commit 25c17c4b55de ("hugetlb: arm64: add mte support").
    However, earlier kernels inadvertently set VM_MTE_ALLOWED on
    (MAP_ANONYMOUS | MAP_HUGETLB) mappings by only checking for
    MAP_ANONYMOUS.
    
    Explicitly check MAP_HUGETLB in arch_calc_vm_flag_bits() and avoid
    setting VM_MTE_ALLOWED for such mappings.
    
    Fixes: 9f3419315f3c ("arm64: mte: Add PROT_MTE support to mmap() and mprotect()")
    Cc: <stable@vger.kernel.org> # 5.10.x-6.12.x
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4041b6b0a7a3def8cf3f3d6120ff337bc4c40f7
Author: Calvin Owens <calvin@wbinvd.org>
Date:   Mon Nov 11 20:13:29 2024 -0800

    pps: Fix a use-after-free
    
    commit c79a39dc8d060b9e64e8b0fa9d245d44befeefbe upstream.
    
    On a board running ntpd and gpsd, I'm seeing a consistent use-after-free
    in sys_exit() from gpsd when rebooting:
    
        pps pps1: removed
        ------------[ cut here ]------------
        kobject: '(null)' (00000000db4bec24): is not initialized, yet kobject_put() is being called.
        WARNING: CPU: 2 PID: 440 at lib/kobject.c:734 kobject_put+0x120/0x150
        CPU: 2 UID: 299 PID: 440 Comm: gpsd Not tainted 6.11.0-rc6-00308-gb31c44928842 #1
        Hardware name: Raspberry Pi 4 Model B Rev 1.1 (DT)
        pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
        pc : kobject_put+0x120/0x150
        lr : kobject_put+0x120/0x150
        sp : ffffffc0803d3ae0
        x29: ffffffc0803d3ae0 x28: ffffff8042dc9738 x27: 0000000000000001
        x26: 0000000000000000 x25: ffffff8042dc9040 x24: ffffff8042dc9440
        x23: ffffff80402a4620 x22: ffffff8042ef4bd0 x21: ffffff80405cb600
        x20: 000000000008001b x19: ffffff8040b3b6e0 x18: 0000000000000000
        x17: 0000000000000000 x16: 0000000000000000 x15: 696e6920746f6e20
        x14: 7369203a29343263 x13: 205d303434542020 x12: 0000000000000000
        x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000
        x8 : 0000000000000000 x7 : 0000000000000000 x6 : 0000000000000000
        x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000
        x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
        Call trace:
         kobject_put+0x120/0x150
         cdev_put+0x20/0x3c
         __fput+0x2c4/0x2d8
         ____fput+0x1c/0x38
         task_work_run+0x70/0xfc
         do_exit+0x2a0/0x924
         do_group_exit+0x34/0x90
         get_signal+0x7fc/0x8c0
         do_signal+0x128/0x13b4
         do_notify_resume+0xdc/0x160
         el0_svc+0xd4/0xf8
         el0t_64_sync_handler+0x140/0x14c
         el0t_64_sync+0x190/0x194
        ---[ end trace 0000000000000000 ]---
    
    ...followed by more symptoms of corruption, with similar stacks:
    
        refcount_t: underflow; use-after-free.
        kernel BUG at lib/list_debug.c:62!
        Kernel panic - not syncing: Oops - BUG: Fatal exception
    
    This happens because pps_device_destruct() frees the pps_device with the
    embedded cdev immediately after calling cdev_del(), but, as the comment
    above cdev_del() notes, fops for previously opened cdevs are still
    callable even after cdev_del() returns. I think this bug has always
    been there: I can't explain why it suddenly started happening every time
    I reboot this particular board.
    
    In commit d953e0e837e6 ("pps: Fix a use-after free bug when
    unregistering a source."), George Spelvin suggested removing the
    embedded cdev. That seems like the simplest way to fix this, so I've
    implemented his suggestion, using __register_chrdev() with pps_idr
    becoming the source of truth for which minor corresponds to which
    device.
    
    But now that pps_idr defines userspace visibility instead of cdev_add(),
    we need to be sure the pps->dev refcount can't reach zero while
    userspace can still find it again. So, the idr_remove() call moves to
    pps_unregister_cdev(), and pps_idr now holds a reference to pps->dev.
    
        pps_core: source serial1 got cdev (251:1)
        <...>
        pps pps1: removed
        pps_core: unregistering pps1
        pps_core: deallocating pps1
    
    Fixes: d953e0e837e6 ("pps: Fix a use-after free bug when unregistering a source.")
    Cc: stable@vger.kernel.org
    Signed-off-by: Calvin Owens <calvin@wbinvd.org>
    Reviewed-by: Michal Schmidt <mschmidt@redhat.com>
    Link: https://lore.kernel.org/r/a17975fd5ae99385791929e563f72564edbcf28f.1731383727.git.calvin@wbinvd.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26f2fdc47feaf63e3ccfd6139a9a3ecd0b339ab4
Author: Filipe Manana <fdmanana@suse.com>
Date:   Fri Feb 7 01:20:23 2025 +0900

    btrfs: avoid monopolizing a core when activating a swap file
    
    commit 2c8507c63f5498d4ee4af404a8e44ceae4345056 upstream.
    
    This commit re-attempts the backport of the change to the linux-5.15.y
    branch. Commit 214d92f0a465 ("btrfs: avoid monopolizing a core when
    activating a swap file") on this branch was reverted.
    
    During swap activation we iterate over the extents of a file and we can
    have many thousands of them, so we can end up in a busy loop monopolizing
    a core. Avoid this by doing a voluntary reschedule after processing each
    extent.
    
    CC: stable@vger.kernel.org # 5.4+
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Koichiro Den <koichiro.den@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc550af962b72e41957dec547cd85b222f7140a2
Author: Koichiro Den <koichiro.den@canonical.com>
Date:   Fri Feb 7 01:20:22 2025 +0900

    Revert "btrfs: avoid monopolizing a core when activating a swap file"
    
    This reverts commit 214d92f0a465f93eea15e702e743f2c63823b1fd.
    
    The backport for linux-5.15.y, commit 214d92f0a465 ("btrfs: avoid
    monopolizing a core when activating a swap file"), inserted
    cond_resched() in the wrong location.
    
    Revert it now; a subsequent commit will re-backport the original patch.
    
    Fixes: 214d92f0a465 ("btrfs: avoid monopolizing a core when activating a swap file") # linux-5.15.y
    Signed-off-by: Koichiro Den <koichiro.den@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit caae544264022e68b6565e462f8d4e2a105ffcaa
Author: David Woodhouse <dwmw@amazon.co.uk>
Date:   Fri Aug 2 14:55:54 2024 +0100

    x86/i8253: Disable PIT timer 0 when not in use
    
    commit 70e6b7d9ae3c63df90a7bba7700e8d5c300c3c60 upstream.
    
    Leaving the PIT interrupt running can cause noticeable steal time for
    virtual guests. The VMM generally has a timer which toggles the IRQ input
    to the PIC and I/O APIC, which takes CPU time away from the guest. Even
    on real hardware, running the counter may use power needlessly (albeit
    not much).
    
    Make sure it's turned off if it isn't going to be used.
    
    Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Michael Kelley <mhkelley@outlook.com>
    Link: https://lore.kernel.org/all/20240802135555.564941-1-dwmw2@infradead.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3aa5254d80969cb576601fb9fec7a188cc8dc169
Author: Chao Yu <chao@kernel.org>
Date:   Thu Jun 27 15:17:11 2024 +0800

    f2fs: fix to wait dio completion
    
    commit 96cfeb0389530ae32ade8a48ae3ae1ac3b6c009d upstream.
    
    It should wait all existing dio write IOs before block removal,
    otherwise, previous direct write IO may overwrite data in the
    block which may be reused by other inode.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Alva Lan <alvalan9@foxmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 234549fb3db35232fd136fa59b3b3ee08f26fac9
Author: Romain Naour <romain.naour@skf.com>
Date:   Fri Nov 15 11:25:37 2024 +0100

    ARM: dts: dra7: Add bus_dma_limit for l4 cfg bus
    
    commit c1472ec1dc4419d0bae663c1a1e6cb98dc7881ad upstream.
    
    A bus_dma_limit was added for l3 bus by commit cfb5d65f2595
    ("ARM: dts: dra7: Add bus_dma_limit for L3 bus") to fix an issue
    observed only with SATA on DRA7-EVM with 4GB RAM and CONFIG_ARM_LPAE
    enabled.
    
    Since kernel 5.13, the SATA issue can be reproduced again following
    the SATA node move from L3 bus to L4_cfg in commit 8af15365a368
    ("ARM: dts: Configure interconnect target module for dra7 sata").
    
    Fix it by adding an empty dma-ranges property to l4_cfg and
    segment@100000 nodes (parent device tree node of SATA controller) to
    inherit the 2GB dma ranges limit from l3 bus node.
    
    Note: A similar fix was applied for PCIe controller by commit
    90d4d3f4ea45 ("ARM: dts: dra7: Fix bus_dma_limit for PCIe").
    
    Fixes: 8af15365a368 ("ARM: dts: Configure interconnect target module for dra7 sata").
    Link: https://lore.kernel.org/linux-omap/c583e1bb-f56b-4489-8012-ce742e85f233@smile.fr/
    Cc: stable@vger.kernel.org # 5.13
    Signed-off-by: Romain Naour <romain.naour@skf.com>
    Link: https://lore.kernel.org/r/20241115102537.1330300-1-romain.naour@smile.fr
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c97306464928b13c243fade9eb3b2e9f748187f7
Author: Hangbin Liu <liuhangbin@gmail.com>
Date:   Thu Oct 10 04:00:27 2024 +0000

    selftests: rtnetlink: update netdevsim ipsec output format
    
    commit 3ec920bb978ccdc68a7dfb304d303d598d038cb1 upstream.
    
    After the netdevsim update to use human-readable IP address formats for
    IPsec, we can now use the source and destination IPs directly in testing.
    Here is the result:
      # ./rtnetlink.sh -t kci_test_ipsec_offload
      PASS: ipsec_offload
    
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Acked-by: Stanislav Fomichev <sdf@fomichev.me>
    Link: https://patch.msgid.link/20241010040027.21440-4-liuhangbin@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28435f5d9d08162322d1260411fe7e21af2eb2f4
Author: Hangbin Liu <liuhangbin@gmail.com>
Date:   Thu Oct 10 04:00:25 2024 +0000

    netdevsim: print human readable IP address
    
    commit c71bc6da6198a6d88df86094f1052bb581951d65 upstream.
    
    Currently, IPSec addresses are printed in hexadecimal format, which is
    not user-friendly. e.g.
    
      # cat /sys/kernel/debug/netdevsim/netdevsim0/ports/0/ipsec
      SA count=2 tx=20
      sa[0] rx ipaddr=0x00000000 00000000 00000000 0100a8c0
      sa[0]    spi=0x00000101 proto=0x32 salt=0x0adecc3a crypt=1
      sa[0]    key=0x3167608a ca4f1397 43565909 941fa627
      sa[1] tx ipaddr=0x00000000 00000000 00000000 00000000
      sa[1]    spi=0x00000100 proto=0x32 salt=0x0adecc3a crypt=1
      sa[1]    key=0x3167608a ca4f1397 43565909 941fa627
    
    This patch updates the code to print the IPSec address in a human-readable
    format for easier debug. e.g.
    
     # cat /sys/kernel/debug/netdevsim/netdevsim0/ports/0/ipsec
     SA count=4 tx=40
     sa[0] tx ipaddr=0.0.0.0
     sa[0]    spi=0x00000100 proto=0x32 salt=0x0adecc3a crypt=1
     sa[0]    key=0x3167608a ca4f1397 43565909 941fa627
     sa[1] rx ipaddr=192.168.0.1
     sa[1]    spi=0x00000101 proto=0x32 salt=0x0adecc3a crypt=1
     sa[1]    key=0x3167608a ca4f1397 43565909 941fa627
     sa[2] tx ipaddr=::
     sa[2]    spi=0x00000100 proto=0x32 salt=0x0adecc3a crypt=1
     sa[2]    key=0x3167608a ca4f1397 43565909 941fa627
     sa[3] rx ipaddr=2000::1
     sa[3]    spi=0x00000101 proto=0x32 salt=0x0adecc3a crypt=1
     sa[3]    key=0x3167608a ca4f1397 43565909 941fa627
    
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Link: https://patch.msgid.link/20241010040027.21440-2-liuhangbin@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 810109436b2847ef64ddad3244b6de201cd1c864
Author: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
Date:   Mon Jul 24 08:39:33 2023 +0000

    parport_pc: add support for ASIX AX99100
    
    commit 16aae4c64600a6319a6f10dbff833fa198bf9599 upstream.
    
    The PCI function 2 on ASIX AX99100 PCIe to Multi I/O Controller can be
    configured as a single-port parallel port controller. The subvendor id
    is 0x2000 when configured as parallel port. It supports IEEE-1284 EPP /
    ECP with its ECR on BAR1.
    
    Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Link: https://lore.kernel.org/r/20230724083933.3173513-5-jiaqing.zhao@linux.intel.com
    Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79cf08014ef3296bb5e12a2ead8208308b2af3bc
Author: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
Date:   Mon Jul 24 08:39:32 2023 +0000

    serial: 8250_pci: add support for ASIX AX99100
    
    commit 0b32216557ce3b2a468d1282d99b428bf72ff532 upstream.
    
    Each of the 4 PCI functions on ASIX AX99100 PCIe to Multi I/O
    Controller can be configured as a single-port serial port controller.
    The subvendor id is 0x1000 when configured as serial port and MSI
    interrupts are supported.
    
    Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20230724083933.3173513-4-jiaqing.zhao@linux.intel.com
    Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1840fb92baf433b65df3324ae4ce1af44123aed2
Author: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
Date:   Mon Jul 24 08:39:31 2023 +0000

    can: ems_pci: move ASIX AX99100 ids to pci_ids.h
    
    commit 3029ad91335353a70feb42acd24d580d70ab258b upstream.
    
    Move PCI Vendor and Device ID of ASIX AX99100 PCIe to Multi I/O
    Controller to pci_ids.h for its serial and parallel port driver
    support in subsequent patches.
    
    Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Link: https://lore.kernel.org/r/20230724083933.3173513-3-jiaqing.zhao@linux.intel.com
    [Moeko: Drop changes in drivers/net/can/sja1000/ems_pci.c]
    Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8ff250e085a4c4cdda4ad1cdd234ed110393143
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Fri Feb 7 23:23:49 2025 +0900

    nilfs2: protect access to buffers with no active references
    
    commit 367a9bffabe08c04f6d725032cce3d891b2b9e1a upstream.
    
    nilfs_lookup_dirty_data_buffers(), which iterates through the buffers
    attached to dirty data folios/pages, accesses the attached buffers without
    locking the folios/pages.
    
    For data cache, nilfs_clear_folio_dirty() may be called asynchronously
    when the file system degenerates to read only, so
    nilfs_lookup_dirty_data_buffers() still has the potential to cause use
    after free issues when buffers lose the protection of their dirty state
    midway due to this asynchronous clearing and are unintentionally freed by
    try_to_free_buffers().
    
    Eliminate this race issue by adjusting the lock section in this function.
    
    [konishi.ryusuke@gmail.com: adjusted for page/folio conversion]
    Link: https://lkml.kernel.org/r/20250107200202.6432-3-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Fixes: 8c26c4e2694a ("nilfs2: fix issue with flush kernel thread after remount in RO mode because of driver's internal error or metadata corruption")
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f51ff43c4c5a6c8e72d0aca89e4d5e688938412f
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Fri Feb 7 23:23:48 2025 +0900

    nilfs2: do not force clear folio if buffer is referenced
    
    commit ca76bb226bf47ff04c782cacbd299f12ddee1ec1 upstream.
    
    Patch series "nilfs2: protect busy buffer heads from being force-cleared".
    
    This series fixes the buffer head state inconsistency issues reported by
    syzbot that occurs when the filesystem is corrupted and falls back to
    read-only, and the associated buffer head use-after-free issue.
    
    This patch (of 2):
    
    Syzbot has reported that after nilfs2 detects filesystem corruption and
    falls back to read-only, inconsistencies in the buffer state may occur.
    
    One of the inconsistencies is that when nilfs2 calls mark_buffer_dirty()
    to set a data or metadata buffer as dirty, but it detects that the buffer
    is not in the uptodate state:
    
     WARNING: CPU: 0 PID: 6049 at fs/buffer.c:1177 mark_buffer_dirty+0x2e5/0x520
      fs/buffer.c:1177
     ...
     Call Trace:
      <TASK>
      nilfs_palloc_commit_alloc_entry+0x4b/0x160 fs/nilfs2/alloc.c:598
      nilfs_ifile_create_inode+0x1dd/0x3a0 fs/nilfs2/ifile.c:73
      nilfs_new_inode+0x254/0x830 fs/nilfs2/inode.c:344
      nilfs_mkdir+0x10d/0x340 fs/nilfs2/namei.c:218
      vfs_mkdir+0x2f9/0x4f0 fs/namei.c:4257
      do_mkdirat+0x264/0x3a0 fs/namei.c:4280
      __do_sys_mkdirat fs/namei.c:4295 [inline]
      __se_sys_mkdirat fs/namei.c:4293 [inline]
      __x64_sys_mkdirat+0x87/0xa0 fs/namei.c:4293
      do_syscall_x64 arch/x86/entry/common.c:52 [inline]
      do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
      entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    The other is when nilfs_btree_propagate(), which propagates the dirty
    state to the ancestor nodes of a b-tree that point to a dirty buffer,
    detects that the origin buffer is not dirty, even though it should be:
    
     WARNING: CPU: 0 PID: 5245 at fs/nilfs2/btree.c:2089
      nilfs_btree_propagate+0xc79/0xdf0 fs/nilfs2/btree.c:2089
     ...
     Call Trace:
      <TASK>
      nilfs_bmap_propagate+0x75/0x120 fs/nilfs2/bmap.c:345
      nilfs_collect_file_data+0x4d/0xd0 fs/nilfs2/segment.c:587
      nilfs_segctor_apply_buffers+0x184/0x340 fs/nilfs2/segment.c:1006
      nilfs_segctor_scan_file+0x28c/0xa50 fs/nilfs2/segment.c:1045
      nilfs_segctor_collect_blocks fs/nilfs2/segment.c:1216 [inline]
      nilfs_segctor_collect fs/nilfs2/segment.c:1540 [inline]
      nilfs_segctor_do_construct+0x1c28/0x6b90 fs/nilfs2/segment.c:2115
      nilfs_segctor_construct+0x181/0x6b0 fs/nilfs2/segment.c:2479
      nilfs_segctor_thread_construct fs/nilfs2/segment.c:2587 [inline]
      nilfs_segctor_thread+0x69e/0xe80 fs/nilfs2/segment.c:2701
      kthread+0x2f0/0x390 kernel/kthread.c:389
      ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
      ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
      </TASK>
    
    Both of these issues are caused by the callbacks that handle the
    page/folio write requests, forcibly clear various states, including the
    working state of the buffers they hold, at unexpected times when they
    detect read-only fallback.
    
    Fix these issues by checking if the buffer is referenced before clearing
    the page/folio state, and skipping the clear if it is.
    
    [konishi.ryusuke@gmail.com: adjusted for page/folio conversion]
    Link: https://lkml.kernel.org/r/20250107200202.6432-1-konishi.ryusuke@gmail.com
    Link: https://lkml.kernel.org/r/20250107200202.6432-2-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+b2b14916b77acf8626d7@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=b2b14916b77acf8626d7
    Reported-by: syzbot+d98fd19acd08b36ff422@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=d98fd19acd08b36ff422
    Fixes: 8c26c4e2694a ("nilfs2: fix issue with flush kernel thread after remount in RO mode because of driver's internal error or metadata corruption")
    Tested-by: syzbot+b2b14916b77acf8626d7@syzkaller.appspotmail.com
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1bf43414ccff08200843f2b7f9c2a1479838acfb
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Fri Feb 7 23:23:47 2025 +0900

    nilfs2: do not output warnings when clearing dirty buffers
    
    commit 299910dcb4525ac0274f3efa9527876315ba4f67 upstream.
    
    After detecting file system corruption and degrading to a read-only mount,
    dirty folios and buffers in the page cache are cleared, and a large number
    of warnings are output at that time, often filling up the kernel log.
    
    In this case, since the degrading to a read-only mount is output to the
    kernel log, these warnings are not very meaningful, and are rather a
    nuisance in system management and debugging.
    
    The related nilfs2-specific page/folio routines have a silent argument
    that suppresses the warning output, but since it is not currently used
    meaningfully, remove both the silent argument and the warning output.
    
    [konishi.ryusuke@gmail.com: adjusted for page/folio conversion]
    Link: https://lkml.kernel.org/r/20240816090128.4561-1-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Stable-dep-of: ca76bb226bf4 ("nilfs2: do not force clear folio if buffer is referenced")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c6ddb38485993e599c6ee038cd355faec5e15c34
Author: Ivan Kokshaysky <ink@unseen.parts>
Date:   Tue Feb 4 23:35:22 2025 +0100

    alpha: replace hardcoded stack offsets with autogenerated ones
    
    commit 77b823fa619f97d16409ca37ad4f7936e28c5f83 upstream.
    
    This allows the assembly in entry.S to automatically keep in sync with
    changes in the stack layout (struct pt_regs and struct switch_stack).
    
    Cc: stable@vger.kernel.org
    Tested-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Tested-by: Matt Turner <mattst88@gmail.com>
    Reviewed-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Signed-off-by: Ivan Kokshaysky <ink@unseen.parts>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5fb8cda2fceaf2656ffdf2c41854817319e6db23
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Sat Dec 21 21:10:46 2024 +0000

    x86/static-call: Remove early_boot_irqs_disabled check to fix Xen PVH dom0
    
    commit 5cc2db37124bb33914996d6fdbb2ddb3811f2945 upstream.
    
    __static_call_update_early() has a check for early_boot_irqs_disabled, but
    is used before early_boot_irqs_disabled is set up in start_kernel().
    
    Xen PV has always special cased early_boot_irqs_disabled, but Xen PVH does
    not and falls over the BUG when booting as dom0.
    
    It is very suspect that early_boot_irqs_disabled starts as 0, becomes 1 for
    a time, then becomes 0 again, but as this needs backporting to fix a
    breakage in a security fix, dropping the BUG_ON() is the far safer option.
    
    Fixes: 0ef8047b737d ("x86/static-call: provide a way to do very early static-call updates")
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219620
    Reported-by: Alex Zenla <alex@edera.dev>
    Suggested-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Tested-by: Alex Zenla <alex@edera.dev>
    Link: https://lore.kernel.org/r/20241221211046.6475-1-andrew.cooper3@citrix.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c0a3aab4b8d88d32a255ba7bbd900603a96600d
Author: John Ogness <john.ogness@linutronix.de>
Date:   Mon Jul 17 21:52:01 2023 +0206

    kdb: Do not assume write() callback available
    
    commit 6d3e0d8cc63221dec670d0ee92ac57961581e975 upstream.
    
    It is allowed for consoles to not provide a write() callback. For
    example ttynull does this.
    
    Check if a write() callback is available before using it.
    
    Signed-off-by: John Ogness <john.ogness@linutronix.de>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
    Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
    Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
    Signed-off-by: Petr Mladek <pmladek@suse.com>
    Link: https://lore.kernel.org/r/20230717194607.145135-2-john.ogness@linutronix.de
    Cc: Brian Norris <briannorris@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22e19c8c5f6b709f4ae40227392a30d57bac187d
Author: Christian Gmeiner <cgmeiner@igalia.com>
Date:   Mon Nov 18 23:19:47 2024 +0100

    drm/v3d: Stop active perfmon if it is being destroyed
    
    commit 21f1435b1e6b012a07c42f36b206d2b66fc8f13b upstream.
    
    If the active performance monitor (`v3d->active_perfmon`) is being
    destroyed, stop it first. Currently, the active perfmon is not
    stopped during destruction, leaving the `v3d->active_perfmon` pointer
    stale. This can lead to undefined behavior and instability.
    
    This patch ensures that the active perfmon is stopped before being
    destroyed, aligning with the behavior introduced in commit
    7d1fd3638ee3 ("drm/v3d: Stop the active perfmon before being destroyed").
    
    Cc: stable@vger.kernel.org # v5.15+
    Fixes: 26a4dc29b74a ("drm/v3d: Expose performance counters to userspace")
    Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
    Signed-off-by: Maíra Canal <mcanal@igalia.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20241118221948.1758130-1-christian.gmeiner@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37054243cf5d5db4086aa30852bd29e33be2dada
Author: Devarsh Thakkar <devarsht@ti.com>
Date:   Mon Oct 21 17:07:49 2024 +0300

    drm/tidss: Clear the interrupt status for interrupts being disabled
    
    commit 361a2ebb5cad211732ec3c5d962de49b21895590 upstream.
    
    The driver does not touch the irqstatus register when it is disabling
    interrupts.  This might cause an interrupt to trigger for an interrupt
    that was just disabled.
    
    To fix the issue, clear the irqstatus registers right after disabling
    the interrupts.
    
    Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
    Cc: stable@vger.kernel.org
    Reported-by: Jonathan Cormier <jcormier@criticallink.com>
    Closes: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1394222/am625-issue-about-tidss-rcu_preempt-self-detected-stall-on-cpu/5424479#5424479
    Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
    [Tomi: mostly rewrote the patch]
    Reviewed-by: Jonathan Cormier <jcormier@criticallink.com>
    Tested-by: Jonathan Cormier <jcormier@criticallink.com>
    Reviewed-by: Aradhya Bhatia <aradhya.bhatia@linux.dev>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20241021-tidss-irq-fix-v1-5-82ddaec94e4a@ideasonboard.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b7db8abf84f037edda7eb1482438bf9a99d8108
Author: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Date:   Mon Oct 21 17:07:45 2024 +0300

    drm/tidss: Fix issue in irq handling causing irq-flood issue
    
    commit 44b6730ab53ef04944fbaf6da0e77397531517b7 upstream.
    
    It has been observed that sometimes DSS will trigger an interrupt and
    the top level interrupt (DISPC_IRQSTATUS) is not zero, but the VP and
    VID level interrupt-statuses are zero.
    
    As the top level irqstatus is supposed to tell whether we have VP/VID
    interrupts, the thinking of the driver authors was that this particular
    case could never happen. Thus the driver only clears the DISPC_IRQSTATUS
    bits which has corresponding interrupts in VP/VID status. So when this
    issue happens, the driver will not clear DISPC_IRQSTATUS, and we get an
    interrupt flood.
    
    It is unclear why the issue happens. It could be a race issue in the
    driver, but no such race has been found. It could also be an issue with
    the HW. However a similar case can be easily triggered by manually
    writing to DISPC_IRQSTATUS_RAW. This will forcibly set a bit in the
    DISPC_IRQSTATUS and trigger an interrupt, and as the driver never clears
    the bit, we get an interrupt flood.
    
    To fix the issue, always clear DISPC_IRQSTATUS. The concern with this
    solution is that if the top level irqstatus is the one that triggers the
    interrupt, always clearing DISPC_IRQSTATUS might leave some interrupts
    unhandled if VP/VID interrupt statuses have bits set. However, testing
    shows that if any of the irqstatuses is set (i.e. even if
    DISPC_IRQSTATUS == 0, but a VID irqstatus has a bit set), we will get an
    interrupt.
    
    Co-developed-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Co-developed-by: Devarsh Thakkar <devarsht@ti.com>
    Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
    Co-developed-by: Jonathan Cormier <jcormier@criticallink.com>
    Signed-off-by: Jonathan Cormier <jcormier@criticallink.com>
    Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
    Cc: stable@vger.kernel.org
    Tested-by: Jonathan Cormier <jcormier@criticallink.com>
    Reviewed-by: Aradhya Bhatia <aradhya.bhatia@linux.dev>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20241021-tidss-irq-fix-v1-1-82ddaec94e4a@ideasonboard.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29fa42197f26a97cde29fa8c40beddf44ea5c8f3
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Feb 12 14:10:21 2025 +0000

    ipv6: mcast: add RCU protection to mld_newpack()
    
    [ Upstream commit a527750d877fd334de87eef81f1cb5f0f0ca3373 ]
    
    mld_newpack() can be called without RTNL or RCU being held.
    
    Note that we no longer can use sock_alloc_send_skb() because
    ipv6.igmp_sk uses GFP_KERNEL allocations which can sleep.
    
    Instead use alloc_skb() and charge the net->ipv6.igmp_sk
    socket under RCU protection.
    
    Fixes: b8ad0cbc58f7 ("[NETNS][IPV6] mcast - handle several network namespace")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://patch.msgid.link/20250212141021.1663666-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e24d225e4cb8cf108bde00b76594499b98f0a74d
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Feb 7 13:58:39 2025 +0000

    ndisc: extend RCU protection in ndisc_send_skb()
    
    [ Upstream commit ed6ae1f325d3c43966ec1b62ac1459e2b8e45640 ]
    
    ndisc_send_skb() can be called without RTNL or RCU held.
    
    Acquire rcu_read_lock() earlier, so that we can use dev_net_rcu()
    and avoid a potential UAF.
    
    Fixes: 1762f7e88eb3 ("[NETNS][IPV6] ndisc - make socket control per namespace")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250207135841.1948589-8-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a884f57600e463f69d7b279c4598b865260b62a1
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Feb 7 13:58:37 2025 +0000

    openvswitch: use RCU protection in ovs_vport_cmd_fill_info()
    
    [ Upstream commit 90b2f49a502fa71090d9f4fe29a2f51fe5dff76d ]
    
    ovs_vport_cmd_fill_info() can be called without RTNL or RCU.
    
    Use RCU protection and dev_net_rcu() to avoid potential UAF.
    
    Fixes: 9354d4520342 ("openvswitch: reliable interface indentification in port dumps")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250207135841.1948589-6-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d9366ac2f956a1948b68c0500f84a3462ff2ed8a
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Feb 7 13:58:36 2025 +0000

    arp: use RCU protection in arp_xmit()
    
    [ Upstream commit a42b69f692165ec39db42d595f4f65a4c8f42e44 ]
    
    arp_xmit() can be called without RTNL or RCU protection.
    
    Use RCU protection to avoid potential UAF.
    
    Fixes: 29a26a568038 ("netfilter: Pass struct net into the netfilter hooks")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250207135841.1948589-5-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40d8f2f2a373b6c294ffac394d2bb814b572ead1
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Feb 7 13:58:35 2025 +0000

    neighbour: use RCU protection in __neigh_notify()
    
    [ Upstream commit becbd5850c03ed33b232083dd66c6e38c0c0e569 ]
    
    __neigh_notify() can be called without RTNL or RCU protection.
    
    Use RCU protection to avoid potential UAF.
    
    Fixes: 426b5303eb43 ("[NETNS]: Modify the neighbour table code so it handles multiple network namespaces")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250207135841.1948589-4-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 44e35955237802b4b175ab1eb7bdb971a402a644
Author: Li Zetao <lizetao1@huawei.com>
Date:   Thu Aug 22 12:32:45 2024 +0800

    neighbour: delete redundant judgment statements
    
    [ Upstream commit c25bdd2ac8cf7da70a226f1a66cdce7af15ff86f ]
    
    The initial value of err is -ENOBUFS, and err is guaranteed to be
    less than 0 before all goto errout. Therefore, on the error path
    of errout, there is no need to repeatedly judge that err is less than 0,
    and delete redundant judgments to make the code more concise.
    
    Signed-off-by: Li Zetao <lizetao1@huawei.com>
    Reviewed-by: Petr Machata <petrm@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: becbd5850c03 ("neighbour: use RCU protection in __neigh_notify()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b870256dd2a5648d5ed2f22316b3ac29a7e5ed63
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Feb 7 13:58:34 2025 +0000

    ndisc: use RCU protection in ndisc_alloc_skb()
    
    [ Upstream commit 628e6d18930bbd21f2d4562228afe27694f66da9 ]
    
    ndisc_alloc_skb() can be called without RTNL or RCU being held.
    
    Add RCU protection to avoid possible UAF.
    
    Fixes: de09334b9326 ("ndisc: Introduce ndisc_alloc_skb() helper.")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250207135841.1948589-3-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28de355b63ad42309ed5a03ee7c436c90512265b
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Feb 5 15:51:18 2025 +0000

    ipv6: use RCU protection in ip6_default_advmss()
    
    [ Upstream commit 3c8ffcd248da34fc41e52a46e51505900115fc2a ]
    
    ip6_default_advmss() needs rcu protection to make
    sure the net structure it reads does not disappear.
    
    Fixes: 5578689a4e3c ("[NETNS][IPV6] route6 - make route6 per namespace")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250205155120.1676781-11-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ce3c6165fce0f06305c806696882a3ad4b90e33f
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Feb 5 15:51:15 2025 +0000

    ipv4: use RCU protection in __ip_rt_update_pmtu()
    
    [ Upstream commit 139512191bd06f1b496117c76372b2ce372c9a41 ]
    
    __ip_rt_update_pmtu() must use RCU protection to make
    sure the net structure it reads does not disappear.
    
    Fixes: 2fbc6e89b2f1 ("ipv4: Update exception handling for multipath routes via same device")
    Fixes: 1de6b15a434c ("Namespaceify min_pmtu sysctl")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Link: https://patch.msgid.link/20250205155120.1676781-8-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fc07a232326a623d0be482e307c08ea7049c2846
Author: Vladimir Vdovin <deliran@verdict.gg>
Date:   Fri Nov 8 09:34:24 2024 +0000

    net: ipv4: Cache pmtu for all packet paths if multipath enabled
    
    [ Upstream commit 7d3f3b4367f315a61fc615e3138f3d320da8c466 ]
    
    Check number of paths by fib_info_num_path(),
    and update_or_create_fnhe() for every path.
    Problem is that pmtu is cached only for the oif
    that has received icmp message "need to frag",
    other oifs will still try to use "default" iface mtu.
    
    An example topology showing the problem:
    
                        |  host1
                    +---------+
                    |  dummy0 | 10.179.20.18/32  mtu9000
                    +---------+
            +-----------+----------------+
        +---------+                     +---------+
        | ens17f0 |  10.179.2.141/31    | ens17f1 |  10.179.2.13/31
        +---------+                     +---------+
            |    (all here have mtu 9000)    |
        +------+                         +------+
        | ro1  |  10.179.2.140/31        | ro2  |  10.179.2.12/31
        +------+                         +------+
            |                                |
    ---------+------------+-------------------+------
                            |
                        +-----+
                        | ro3 | 10.10.10.10  mtu1500
                        +-----+
                            |
        ========================================
                    some networks
        ========================================
                            |
                        +-----+
                        | eth0| 10.10.30.30  mtu9000
                        +-----+
                            |  host2
    
    host1 have enabled multipath and
    sysctl net.ipv4.fib_multipath_hash_policy = 1:
    
    default proto static src 10.179.20.18
            nexthop via 10.179.2.12 dev ens17f1 weight 1
            nexthop via 10.179.2.140 dev ens17f0 weight 1
    
    When host1 tries to do pmtud from 10.179.20.18/32 to host2,
    host1 receives at ens17f1 iface an icmp packet from ro3 that ro3 mtu=1500.
    And host1 caches it in nexthop exceptions cache.
    
    Problem is that it is cached only for the iface that has received icmp,
    and there is no way that ro3 will send icmp msg to host1 via another path.
    
    Host1 now have this routes to host2:
    
    ip r g 10.10.30.30 sport 30000 dport 443
    10.10.30.30 via 10.179.2.12 dev ens17f1 src 10.179.20.18 uid 0
        cache expires 521sec mtu 1500
    
    ip r g 10.10.30.30 sport 30033 dport 443
    10.10.30.30 via 10.179.2.140 dev ens17f0 src 10.179.20.18 uid 0
        cache
    
    So when host1 tries again to reach host2 with mtu>1500,
    if packet flow is lucky enough to be hashed with oif=ens17f1 its ok,
    if oif=ens17f0 it blackholes and still gets icmp msgs from ro3 to ens17f1,
    until lucky day when ro3 will send it through another flow to ens17f0.
    
    Signed-off-by: Vladimir Vdovin <deliran@verdict.gg>
    Reviewed-by: Ido Schimmel <idosch@nvidia.com>
    Link: https://patch.msgid.link/20241108093427.317942-1-deliran@verdict.gg
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Stable-dep-of: 139512191bd0 ("ipv4: use RCU protection in __ip_rt_update_pmtu()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7246d3949c2e368a17545503e142cb1ed5a03c8
Author: Guillaume Nault <gnault@redhat.com>
Date:   Thu Mar 17 13:45:11 2022 +0100

    selftest: net: Test IPv4 PMTU exceptions with DSCP and ECN
    
    [ Upstream commit ec730c3e1f0e3a80612a9be2beb00e2b4f93fe70 ]
    
    Add two tests to pmtu.sh, for verifying that PMTU exceptions get
    properly created for routes that don't belong to the main table.
    
    A fib-rule based on the packet's DSCP field is used to jump to the
    correct table. ECN shouldn't interfere with this process, so each test
    has two components: one that only sets DSCP and one that sets both DSCP
    and ECN.
    
    One of the test triggers PMTU exceptions using ICMP Echo Requests, the
    other using UDP packets (to test different handlers in the kernel).
    
    A few adjustments are necessary in the rest of the script to allow
    policy routing scenarios:
    
      * Add global variable rt_table that allows setup_routing_*() to
        add routes to a specific routing table. By default rt_table is set
        to "main", so existing tests don't need to be modified.
    
      * Another global variable, policy_mark, is used to define which
        dsfield value is used for policy routing. This variable has no
        effect on tests that don't use policy routing.
    
      * The UDP version of the test uses socat. So cleanup() now also need
        to kill socat PIDs.
    
      * route_get_dst_pmtu_from_exception() and route_get_dst_exception()
        now take an optional third argument specifying the dsfield. If
        not specified, 0 is used, so existing users don't need to be
        modified.
    
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Stable-dep-of: 139512191bd0 ("ipv4: use RCU protection in __ip_rt_update_pmtu()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7385291def47139c59eb997d51b844fd9c461a72
Author: xu xin <xu.xin16@zte.com.cn>
Date:   Tue Jan 4 10:59:47 2022 +0000

    Namespaceify mtu_expires sysctl
    
    [ Upstream commit 1135fad204805518462c1f0caaca6bcd52ba78cf ]
    
    This patch enables the sysctl mtu_expires to be configured per net
    namespace.
    
    Signed-off-by: xu xin <xu.xin16@zte.com.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: 139512191bd0 ("ipv4: use RCU protection in __ip_rt_update_pmtu()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 686792179f2077350186a1375a8750e8be1940f7
Author: xu xin <xu.xin16@zte.com.cn>
Date:   Tue Jan 4 10:59:34 2022 +0000

    Namespaceify min_pmtu sysctl
    
    [ Upstream commit 1de6b15a434c0068253fea5d719f71143e7e3a79 ]
    
    This patch enables the sysctl min_pmtu to be configured per net
    namespace.
    
    Signed-off-by: xu xin <xu.xin16@zte.com.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: 139512191bd0 ("ipv4: use RCU protection in __ip_rt_update_pmtu()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4561343d2b6c04311ab61cd7837fd63fdf396d53
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Feb 5 15:51:14 2025 +0000

    ipv4: use RCU protection in inet_select_addr()
    
    [ Upstream commit 719817cd293e4fa389e1f69c396f3f816ed5aa41 ]
    
    inet_select_addr() must use RCU protection to make
    sure the net structure it reads does not disappear.
    
    Fixes: c4544c724322 ("[NETNS]: Process inet_select_addr inside a namespace.")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Link: https://patch.msgid.link/20250205155120.1676781-7-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 50d356db0542448dda30f37a08de2724b92cbc7c
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Feb 5 15:51:13 2025 +0000

    ipv4: use RCU protection in rt_is_expired()
    
    [ Upstream commit dd205fcc33d92d54eee4d7f21bb073af9bd5ce2b ]
    
    rt_is_expired() must use RCU protection to make
    sure the net structure it reads does not disappear.
    
    Fixes: e84f84f27647 ("netns: place rt_genid into struct net")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250205155120.1676781-6-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e0d214916862f4acb395281059265feb9b65883
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Feb 5 15:51:09 2025 +0000

    net: add dev_net_rcu() helper
    
    [ Upstream commit 482ad2a4ace2740ca0ff1cbc8f3c7f862f3ab507 ]
    
    dev->nd_net can change, readers should either
    use rcu_read_lock() or RTNL.
    
    We currently use a generic helper, dev_net() with
    no debugging support. We probably have many hidden bugs.
    
    Add dev_net_rcu() helper for callers using rcu_read_lock()
    protection.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250205155120.1676781-2-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Stable-dep-of: dd205fcc33d9 ("ipv4: use RCU protection in rt_is_expired()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c22b8d77816e8f67536190599f46f2f6195f5c36
Author: Jiri Pirko <jiri@resnulli.us>
Date:   Fri Oct 13 14:10:23 2023 +0200

    net: treat possible_net_t net pointer as an RCU one and add read_pnet_rcu()
    
    [ Upstream commit 2034d90ae41ae93e30d492ebcf1f06f97a9cfba6 ]
    
    Make the net pointer stored in possible_net_t structure annotated as
    an RCU pointer. Change the access helpers to treat it as such.
    Introduce read_pnet_rcu() helper to allow caller to dereference
    the net pointer under RCU read lock.
    
    Signed-off-by: Jiri Pirko <jiri@nvidia.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: dd205fcc33d9 ("ipv4: use RCU protection in rt_is_expired()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0e5ea98edc3b81af3165430e3cae0b97237d258e
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Feb 5 15:51:10 2025 +0000

    ipv4: add RCU protection to ip4_dst_hoplimit()
    
    [ Upstream commit 469308552ca4560176cfc100e7ca84add1bebd7c ]
    
    ip4_dst_hoplimit() must use RCU protection to make
    sure the net structure it reads does not disappear.
    
    Fixes: fa50d974d104 ("ipv4: Namespaceify ip_default_ttl sysctl knob")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250205155120.1676781-3-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60f54f0d4ea530950549a8263e6fdd70a40490a4
Author: Waiman Long <longman@redhat.com>
Date:   Fri Jan 31 12:33:23 2025 -0500

    clocksource: Use migrate_disable() to avoid calling get_random_u32() in atomic context
    
    [ Upstream commit 6bb05a33337b2c842373857b63de5c9bf1ae2a09 ]
    
    The following bug report happened with a PREEMPT_RT kernel:
    
      BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
      in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 2012, name: kwatchdog
      preempt_count: 1, expected: 0
      RCU nest depth: 0, expected: 0
      get_random_u32+0x4f/0x110
      clocksource_verify_choose_cpus+0xab/0x1a0
      clocksource_verify_percpu.part.0+0x6b/0x330
      clocksource_watchdog_kthread+0x193/0x1a0
    
    It is due to the fact that clocksource_verify_choose_cpus() is invoked with
    preemption disabled.  This function invokes get_random_u32() to obtain
    random numbers for choosing CPUs.  The batched_entropy_32 local lock and/or
    the base_crng.lock spinlock in driver/char/random.c will be acquired during
    the call. In PREEMPT_RT kernel, they are both sleeping locks and so cannot
    be acquired in atomic context.
    
    Fix this problem by using migrate_disable() to allow smp_processor_id() to
    be reliably used without introducing atomic context. preempt_disable() is
    then called after clocksource_verify_choose_cpus() but before the
    clocksource measurement is being run to avoid introducing unexpected
    latency.
    
    Fixes: 7560c02bdffb ("clocksource: Check per-CPU clock synchronization when marked unstable")
    Suggested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Waiman Long <longman@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
    Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Link: https://lore.kernel.org/all/20250131173323.891943-2-longman@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a02540d4401f983f3774346f0ff7c90246b65f9f
Author: Waiman Long <longman@redhat.com>
Date:   Fri Jan 24 20:54:41 2025 -0500

    clocksource: Use pr_info() for "Checking clocksource synchronization" message
    
    [ Upstream commit 1f566840a82982141f94086061927a90e79440e5 ]
    
    The "Checking clocksource synchronization" message is normally printed
    when clocksource_verify_percpu() is called for a given clocksource if
    both the CLOCK_SOURCE_UNSTABLE and CLOCK_SOURCE_VERIFY_PERCPU flags
    are set.
    
    It is an informational message and so pr_info() is the correct choice.
    
    Signed-off-by: Waiman Long <longman@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
    Acked-by: John Stultz <jstultz@google.com>
    Link: https://lore.kernel.org/all/20250125015442.3740588-1-longman@redhat.com
    Stable-dep-of: 6bb05a33337b ("clocksource: Use migrate_disable() to avoid calling get_random_u32() in atomic context")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4ae5e361537d8cd78f3b134d5036b3352884fe9f
Author: Yury Norov <yury.norov@gmail.com>
Date:   Thu Feb 10 14:49:07 2022 -0800

    clocksource: Replace cpumask_weight() with cpumask_empty()
    
    [ Upstream commit 8afbcaf8690dac19ebf570a4e4fef9c59c75bf8e ]
    
    clocksource_verify_percpu() calls cpumask_weight() to check if any bit of a
    given cpumask is set.
    
    This can be done more efficiently with cpumask_empty() because
    cpumask_empty() stops traversing the cpumask as soon as it finds first set
    bit, while cpumask_weight() counts all bits unconditionally.
    
    Signed-off-by: Yury Norov <yury.norov@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/r/20220210224933.379149-24-yury.norov@gmail.com
    Stable-dep-of: 6bb05a33337b ("clocksource: Use migrate_disable() to avoid calling get_random_u32() in atomic context")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit acfebfb2abf388b53a1f7c6957007069b6020392
Author: Filipe Manana <fdmanana@suse.com>
Date:   Wed Feb 5 17:36:48 2025 +0000

    btrfs: fix hole expansion when writing at an offset beyond EOF
    
    commit da2dccd7451de62b175fb8f0808d644959e964c7 upstream.
    
    At btrfs_write_check() if our file's i_size is not sector size aligned and
    we have a write that starts at an offset larger than the i_size that falls
    within the same page of the i_size, then we end up not zeroing the file
    range [i_size, write_offset).
    
    The code is this:
    
        start_pos = round_down(pos, fs_info->sectorsize);
        oldsize = i_size_read(inode);
        if (start_pos > oldsize) {
            /* Expand hole size to cover write data, preventing empty gap */
            loff_t end_pos = round_up(pos + count, fs_info->sectorsize);
    
            ret = btrfs_cont_expand(BTRFS_I(inode), oldsize, end_pos);
            if (ret)
                return ret;
        }
    
    So if our file's i_size is 90269 bytes and a write at offset 90365 bytes
    comes in, we get 'start_pos' set to 90112 bytes, which is less than the
    i_size and therefore we don't zero out the range [90269, 90365) by
    calling btrfs_cont_expand().
    
    This is an old bug introduced in commit 9036c10208e1 ("Btrfs: update hole
    handling v2"), from 2008, and the buggy code got moved around over the
    years.
    
    Fix this by discarding 'start_pos' and comparing against the write offset
    ('pos') without any alignment.
    
    This bug was recently exposed by test case generic/363 which tests this
    scenario by polluting ranges beyond EOF with an mmap write and than verify
    that after a file increases we get zeroes for the range which is supposed
    to be a hole and not what we wrote with the previous mmaped write.
    
    We're only seeing this exposed now because generic/363 used to run only
    on xfs until last Sunday's fstests update.
    
    The test was failing like this:
    
       $ ./check generic/363
       FSTYP         -- btrfs
       PLATFORM      -- Linux/x86_64 debian0 6.13.0-rc7-btrfs-next-185+ #17 SMP PREEMPT_DYNAMIC Mon Feb  3 12:28:46 WET 2025
       MKFS_OPTIONS  -- /dev/sdc
       MOUNT_OPTIONS -- /dev/sdc /home/fdmanana/btrfs-tests/scratch_1
    
       generic/363 0s ... [failed, exit status 1]- output mismatch (see /home/fdmanana/git/hub/xfstests/results//generic/363.out.bad)
    #      --- tests/generic/363.out        2025-02-05 15:31:14.013646509 +0000
    #      +++ /home/fdmanana/git/hub/xfstests/results//generic/363.out.bad 2025-02-05 17:25:33.112630781 +0000
           @@ -1 +1,46 @@
            QA output created by 363
           +READ BAD DATA: offset = 0xdcad, size = 0xd921, fname = /home/fdmanana/btrfs-tests/dev/junk
           +OFFSET      GOOD    BAD     RANGE
           +0x1609d     0x0000  0x3104  0x0
           +operation# (mod 256) for the bad data may be 4
           +0x1609e     0x0000  0x0472  0x1
           +operation# (mod 256) for the bad data may be 4
           ...
           (Run 'diff -u /home/fdmanana/git/hub/xfstests/tests/generic/363.out /home/fdmanana/git/hub/xfstests/results//generic/363.out.bad'  to see the entire diff)
       Ran: generic/363
       Failures: generic/363
       Failed 1 of 1 tests
    
    Fixes: 9036c10208e1 ("Btrfs: update hole handling v2")
    CC: stable@vger.kernel.org
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e4291f26c5017c83c8f7b5ead4580a8f097c2707
Author: Wentao Liang <vulab@iscas.ac.cn>
Date:   Wed Feb 12 23:23:11 2025 +0800

    mlxsw: Add return value check for mlxsw_sp_port_get_stats_raw()
    
    commit fee5d688940690cc845937459e340e4e02598e90 upstream.
    
    Add a check for the return value of mlxsw_sp_port_get_stats_raw()
    in __mlxsw_sp_port_get_stats(). If mlxsw_sp_port_get_stats_raw()
    returns an error, exit the function to prevent further processing
    with potentially invalid data.
    
    Fixes: 614d509aa1e7 ("mlxsw: Move ethtool_ops to spectrum_ethtool.c")
    Cc: stable@vger.kernel.org # 5.9+
    Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
    Reviewed-by: Petr Machata <petrm@nvidia.com>
    Link: https://patch.msgid.link/20250212152311.1332-1-vulab@iscas.ac.cn
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9abfb2c8693d28f33598018e3f04371728f49eb3
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Thu Feb 6 10:21:38 2025 -0700

    arm64: Handle .ARM.attributes section in linker scripts
    
    commit ca0f4fe7cf7183bfbdc67ca2de56ae1fc3a8db2b upstream.
    
    A recent LLVM commit [1] started generating an .ARM.attributes section
    similar to the one that exists for 32-bit, which results in orphan
    section warnings (or errors if CONFIG_WERROR is enabled) from the linker
    because it is not handled in the arm64 linker scripts.
    
      ld.lld: error: arch/arm64/kernel/vdso/vgettimeofday.o:(.ARM.attributes) is being placed in '.ARM.attributes'
      ld.lld: error: arch/arm64/kernel/vdso/vgetrandom.o:(.ARM.attributes) is being placed in '.ARM.attributes'
    
      ld.lld: error: vmlinux.a(lib/vsprintf.o):(.ARM.attributes) is being placed in '.ARM.attributes'
      ld.lld: error: vmlinux.a(lib/win_minmax.o):(.ARM.attributes) is being placed in '.ARM.attributes'
      ld.lld: error: vmlinux.a(lib/xarray.o):(.ARM.attributes) is being placed in '.ARM.attributes'
    
    Discard the new sections in the necessary linker scripts to resolve the
    warnings, as the kernel and vDSO do not need to retain it, similar to
    the .note.gnu.property section.
    
    Cc: stable@vger.kernel.org
    Fixes: b3e5d80d0c48 ("arm64/build: Warn on orphan section placement")
    Link: https://github.com/llvm/llvm-project/commit/ee99c4d4845db66c4daa2373352133f4b237c942 [1]
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Link: https://lore.kernel.org/r/20250206-arm64-handle-arm-attributes-in-linker-script-v3-1-d53d169913eb@kernel.org
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78be8f779b2023689e302fcf19f0680c882fa4e6
Author: Jiasheng Jiang <jiashengjiangcool@gmail.com>
Date:   Wed Feb 5 00:43:43 2025 +0000

    regmap-irq: Add missing kfree()
    
    commit 32ffed055dcee17f6705f545b069e44a66067808 upstream.
    
    Add kfree() for "d->main_status_buf" to the error-handling path to prevent
    a memory leak.
    
    Fixes: a2d21848d921 ("regmap: regmap-irq: Add main status register support")
    Cc: stable@vger.kernel.org  # v5.1+
    Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
    Link: https://patch.msgid.link/20250205004343.14413-1-jiashengjiangcool@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40a35d14f3c0dc72b689061ec72fc9b193f37d1f
Author: Jann Horn <jannh@google.com>
Date:   Fri Feb 14 02:39:50 2025 +0100

    partitions: mac: fix handling of bogus partition table
    
    commit 80e648042e512d5a767da251d44132553fe04ae0 upstream.
    
    Fix several issues in partition probing:
    
     - The bailout for a bad partoffset must use put_dev_sector(), since the
       preceding read_part_sector() succeeded.
     - If the partition table claims a silly sector size like 0xfff bytes
       (which results in partition table entries straddling sector boundaries),
       bail out instead of accessing out-of-bounds memory.
     - We must not assume that the partition table contains proper NUL
       termination - use strnlen() and strncmp() instead of strlen() and
       strcmp().
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Jann Horn <jannh@google.com>
    Link: https://lore.kernel.org/r/20250214-partition-mac-v1-1-c1c626dffbd5@google.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4647cb4e001341aa0ed8b1e371ca2f95a904b018
Author: Wentao Liang <vulab@iscas.ac.cn>
Date:   Wed Feb 12 10:18:49 2025 +0800

    gpio: stmpe: Check return value of stmpe_reg_read in stmpe_gpio_irq_sync_unlock
    
    commit b9644fbfbcab13da7f8b37bef7c51e5b8407d031 upstream.
    
    The stmpe_reg_read function can fail, but its return value is not checked
    in stmpe_gpio_irq_sync_unlock. This can lead to silent failures and
    incorrect behavior if the hardware access fails.
    
    This patch adds checks for the return value of stmpe_reg_read. If the
    function fails, an error message is logged and the function returns
    early to avoid further issues.
    
    Fixes: b888fb6f2a27 ("gpio: stmpe: i2c transfer are forbiden in atomic context")
    Cc: stable@vger.kernel.org # 4.16+
    Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
    Link: https://lore.kernel.org/r/20250212021849.275-1-vulab@iscas.ac.cn
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ede3fa7b0cb6b3116cd1f3985ce3aea7b1bb013c
Author: Ivan Kokshaysky <ink@unseen.parts>
Date:   Tue Feb 4 23:35:24 2025 +0100

    alpha: align stack for page fault and user unaligned trap handlers
    
    commit 3b35a171060f846b08b48646b38c30b5d57d17ff upstream.
    
    do_page_fault() and do_entUna() are special because they use
    non-standard stack frame layout. Fix them manually.
    
    Cc: stable@vger.kernel.org
    Tested-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Tested-by: Magnus Lindholm <linmag7@gmail.com>
    Tested-by: Matt Turner <mattst88@gmail.com>
    Reviewed-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Suggested-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Signed-off-by: Ivan Kokshaysky <ink@unseen.parts>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf3f395b9c37956eca866c9e1679769ed7dcce68
Author: John Keeping <jkeeping@inmusicbrands.com>
Date:   Sat Feb 8 12:41:44 2025 +0000

    serial: 8250: Fix fifo underflow on flush
    
    commit 9e512eaaf8f4008c44ede3dfc0fbc9d9c5118583 upstream.
    
    When flushing the serial port's buffer, uart_flush_buffer() calls
    kfifo_reset() but if there is an outstanding DMA transfer then the
    completion function will consume data from the kfifo via
    uart_xmit_advance(), underflowing and leading to ongoing DMA as the
    driver tries to transmit another 2^32 bytes.
    
    This is readily reproduced with serial-generic and amidi sending even
    short messages as closing the device on exit will wait for the fifo to
    drain and in the underflow case amidi hangs for 30 seconds on exit in
    tty_wait_until_sent().  A trace of that gives:
    
         kworker/1:1-84    [001]    51.769423: bprint:               serial8250_tx_dma: tx_size=3 fifo_len=3
               amidi-763   [001]    51.769460: bprint:               uart_flush_buffer: resetting fifo
     irq/21-fe530000-76    [000]    51.769474: bprint:               __dma_tx_complete: tx_size=3
     irq/21-fe530000-76    [000]    51.769479: bprint:               serial8250_tx_dma: tx_size=4096 fifo_len=4294967293
     irq/21-fe530000-76    [000]    51.781295: bprint:               __dma_tx_complete: tx_size=4096
     irq/21-fe530000-76    [000]    51.781301: bprint:               serial8250_tx_dma: tx_size=4096 fifo_len=4294963197
     irq/21-fe530000-76    [000]    51.793131: bprint:               __dma_tx_complete: tx_size=4096
     irq/21-fe530000-76    [000]    51.793135: bprint:               serial8250_tx_dma: tx_size=4096 fifo_len=4294959101
     irq/21-fe530000-76    [000]    51.804949: bprint:               __dma_tx_complete: tx_size=4096
    
    Since the port lock is held in when the kfifo is reset in
    uart_flush_buffer() and in __dma_tx_complete(), adding a flush_buffer
    hook to adjust the outstanding DMA byte count is sufficient to avoid the
    kfifo underflow.
    
    Fixes: 9ee4b83e51f74 ("serial: 8250: Add support for dmaengine")
    Cc: stable <stable@kernel.org>
    Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
    Link: https://lore.kernel.org/r/20250208124148.1189191-1-jkeeping@inmusicbrands.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 19f3e16bc9f727017e60f9c7c79ef9200748d383
Author: Shakeel Butt <shakeel.butt@linux.dev>
Date:   Thu Jan 30 16:05:42 2025 -0800

    cgroup: fix race between fork and cgroup.kill
    
    commit b69bb476dee99d564d65d418e9a20acca6f32c3f upstream.
    
    Tejun reported the following race between fork() and cgroup.kill at [1].
    
    Tejun:
      I was looking at cgroup.kill implementation and wondering whether there
      could be a race window. So, __cgroup_kill() does the following:
    
       k1. Set CGRP_KILL.
       k2. Iterate tasks and deliver SIGKILL.
       k3. Clear CGRP_KILL.
    
      The copy_process() does the following:
    
       c1. Copy a bunch of stuff.
       c2. Grab siglock.
       c3. Check fatal_signal_pending().
       c4. Commit to forking.
       c5. Release siglock.
       c6. Call cgroup_post_fork() which puts the task on the css_set and tests
           CGRP_KILL.
    
      The intention seems to be that either a forking task gets SIGKILL and
      terminates on c3 or it sees CGRP_KILL on c6 and kills the child. However, I
      don't see what guarantees that k3 can't happen before c6. ie. After a
      forking task passes c5, k2 can take place and then before the forking task
      reaches c6, k3 can happen. Then, nobody would send SIGKILL to the child.
      What am I missing?
    
    This is indeed a race. One way to fix this race is by taking
    cgroup_threadgroup_rwsem in write mode in __cgroup_kill() as the fork()
    side takes cgroup_threadgroup_rwsem in read mode from cgroup_can_fork()
    to cgroup_post_fork(). However that would be heavy handed as this adds
    one more potential stall scenario for cgroup.kill which is usually
    called under extreme situation like memory pressure.
    
    To fix this race, let's maintain a sequence number per cgroup which gets
    incremented on __cgroup_kill() call. On the fork() side, the
    cgroup_can_fork() will cache the sequence number locally and recheck it
    against the cgroup's sequence number at cgroup_post_fork() site. If the
    sequence numbers mismatch, it means __cgroup_kill() can been called and
    we should send SIGKILL to the newly created task.
    
    Reported-by: Tejun Heo <tj@kernel.org>
    Closes: https://lore.kernel.org/all/Z5QHE2Qn-QZ6M-KW@slm.duckdns.org/ [1]
    Fixes: 661ee6280931 ("cgroup: introduce cgroup.kill")
    Cc: stable@vger.kernel.org # v5.14+
    Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
    Reviewed-by: Michal Koutný <mkoutny@suse.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d832459170dd5d5437229d41909286057afc750
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Sat Feb 1 18:21:35 2025 +0100

    efi: Avoid cold plugged memory for placing the kernel
    
    commit ba69e0750b0362870294adab09339a0c39c3beaf upstream.
    
    UEFI 2.11 introduced EFI_MEMORY_HOT_PLUGGABLE to annotate system memory
    regions that are 'cold plugged' at boot, i.e., hot pluggable memory that
    is available from early boot, and described as system RAM by the
    firmware.
    
    Existing loaders and EFI applications running in the boot context will
    happily use this memory for allocating data structures that cannot be
    freed or moved at runtime, and this prevents the memory from being
    unplugged. Going forward, the new EFI_MEMORY_HOT_PLUGGABLE attribute
    should be tested, and memory annotated as such should be avoided for
    such allocations.
    
    In the EFI stub, there are a couple of occurrences where, instead of the
    high-level AllocatePages() UEFI boot service, a low-level code sequence
    is used that traverses the EFI memory map and carves out the requested
    number of pages from a free region. This is needed, e.g., for allocating
    as low as possible, or for allocating pages at random.
    
    While AllocatePages() should presumably avoid special purpose memory and
    cold plugged regions, this manual approach needs to incorporate this
    logic itself, in order to prevent the kernel itself from ending up in a
    hot unpluggable region, preventing it from being unplugged.
    
    So add the EFI_MEMORY_HOTPLUGGABLE macro definition, and check for it
    where appropriate.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b737d64391138b40e5a02302f5f5283ddca6e0d5
Author: Ivan Kokshaysky <ink@unseen.parts>
Date:   Tue Feb 4 23:35:23 2025 +0100

    alpha: make stack 16-byte aligned (most cases)
    
    commit 0a0f7362b0367634a2d5cb7c96226afc116f19c9 upstream.
    
    The problem is that GCC expects 16-byte alignment of the incoming stack
    since early 2004, as Maciej found out [1]:
      Having actually dug speculatively I can see that the psABI was changed in
     GCC 3.5 with commit e5e10fb4a350 ("re PR target/14539 (128-bit long double
     improperly aligned)") back in Mar 2004, when the stack pointer alignment
     was increased from 8 bytes to 16 bytes, and arch/alpha/kernel/entry.S has
     various suspicious stack pointer adjustments, starting with SP_OFF which
     is not a whole multiple of 16.
    
    Also, as Magnus noted, "ALPHA Calling Standard" [2] required the same:
     D.3.1 Stack Alignment
      This standard requires that stacks be octaword aligned at the time a
      new procedure is invoked.
    
    However:
    - the "normal" kernel stack is always misaligned by 8 bytes, thanks to
      the odd number of 64-bit words in 'struct pt_regs', which is the very
      first thing pushed onto the kernel thread stack;
    - syscall, fault, interrupt etc. handlers may, or may not, receive aligned
      stack depending on numerous factors.
    
    Somehow we got away with it until recently, when we ended up with
    a stack corruption in kernel/smp.c:smp_call_function_single() due to
    its use of 32-byte aligned local data and the compiler doing clever
    things allocating it on the stack.
    
    This adds padding between the PAL-saved and kernel-saved registers
    so that 'struct pt_regs' have an even number of 64-bit words.
    This makes the stack properly aligned for most of the kernel
    code, except two handlers which need special threatment.
    
    Note: struct pt_regs doesn't belong in uapi/asm; this should be fixed,
    but let's put this off until later.
    
    Link: https://lore.kernel.org/rcu/alpine.DEB.2.21.2501130248010.18889@angie.orcam.me.uk/ [1]
    Link: https://bitsavers.org/pdf/dec/alpha/Alpha_Calling_Standard_Rev_2.0_19900427.pdf [2]
    
    Cc: stable@vger.kernel.org
    Tested-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Tested-by: Magnus Lindholm <linmag7@gmail.com>
    Tested-by: Matt Turner <mattst88@gmail.com>
    Reviewed-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Signed-off-by: Ivan Kokshaysky <ink@unseen.parts>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f1767d255807d14ce6a0db95aab6a03014b10503
Author: Alexander Hölzl <alexander.hoelzl@gmx.net>
Date:   Wed Feb 5 18:46:51 2025 +0100

    can: j1939: j1939_sk_send_loop(): fix unable to send messages with data length zero
    
    commit 44de577e61ed239db09f0da9d436866bef9b77dd upstream.
    
    The J1939 standard requires the transmission of messages of length 0.
    
    For example proprietary messages are specified with a data length of 0
    to 1785. The transmission of such messages is not possible. Sending
    results in no error being returned but no corresponding can frame
    being generated.
    
    Enable the transmission of zero length J1939 messages. In order to
    facilitate this two changes are necessary:
    
    1) If the transmission of a new message is requested from user space
    the message is segmented in j1939_sk_send_loop(). Let the segmentation
    take into account zero length messages, do not terminate immediately,
    queue the corresponding skb.
    
    2) j1939_session_skb_get_by_offset() selects the next skb to transmit
    for a session. Take into account that there might be zero length skbs
    in the queue.
    
    Signed-off-by: Alexander Hölzl <alexander.hoelzl@gmx.net>
    Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Link: https://patch.msgid.link/20250205174651.103238-1-alexander.hoelzl@gmx.net
    Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
    Cc: stable@vger.kernel.org
    [mkl: commit message rephrased]
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7a43d1563ac8301664c731fedf6b54510189178
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Sun Jan 12 13:41:52 2025 +0100

    can: c_can: fix unbalanced runtime PM disable in error path
    
    commit 257a2cd3eb578ee63d6bf90475dc4f4b16984139 upstream.
    
    Runtime PM is enabled as one of the last steps of probe(), so all
    earlier gotos to "exit_free_device" label were not correct and were
    leading to unbalanced runtime PM disable depth.
    
    Fixes: 6e2fe01dd6f9 ("can: c_can: move runtime PM enable/disable to c_can_platform")
    Cc: stable@vger.kernel.org
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
    Link: https://patch.msgid.link/20250112-syscon-phandle-args-can-v1-1-314d9549906f@linaro.org
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9fccb6b6551062062f0a7d0a99e82d58da8d6396
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Feb 11 15:45:16 2025 +0100

    USB: serial: option: drop MeiG Smart defines
    
    commit 6aa8a63c471eb6756aabd03f880feffe6a7af6c9 upstream.
    
    Several MeiG Smart modems apparently use the same product id, making the
    defines even less useful.
    
    Drop them in favour of using comments consistently to make the id table
    slightly less unwieldy.
    
    Cc: stable@vger.kernel.org
    Acked-by: Chester A. Unal <chester.a.unal@arinc9.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 412458d7e92bc8fbd87b9262a805cebb86b83c33
Author: Fabio Porcedda <fabio.porcedda@gmail.com>
Date:   Wed Feb 5 18:16:47 2025 +0100

    USB: serial: option: fix Telit Cinterion FN990A name
    
    commit 12606fe73f33647c5e79bf666833bf0b225e649d upstream.
    
    The correct name for FN990 is FN990A so use it in order to avoid
    confusion with FN990B.
    
    Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 60f0765d673bf7a60a2882fae3a28a8c09dbe580
Author: Fabio Porcedda <fabio.porcedda@gmail.com>
Date:   Wed Feb 5 18:16:45 2025 +0100

    USB: serial: option: add Telit Cinterion FN990B compositions
    
    commit c979fb5ece2dc11cc9cc3d5c66f750e210bfdee2 upstream.
    
    Add the following Telit Cinterion FN990B40 compositions:
    
    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
    
    0x10d1: MBIM + 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#= 16 Spd=480  MxCh= 0
    D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=10d1 Rev=05.15
    S:  Manufacturer=Telit Cinterion
    S:  Product=FN990
    S:  SerialNumber=43b38f19
    C:  #Ifs=10 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
    E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=32ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 2 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#= 3 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#= 4 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#= 5 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#= 6 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#= 7 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#= 8 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#= 9 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
    
    0x10d2: RNDIS + 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#= 18 Spd=480  MxCh= 0
    D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=10d2 Rev=05.15
    S:  Manufacturer=Telit Cinterion
    S:  Product=FN990
    S:  SerialNumber=43b38f19
    C:  #Ifs=10 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=rndis_host
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 2 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#= 3 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#= 4 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#= 5 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#= 6 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#= 7 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#= 8 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#= 9 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
    
    0x10d3: ECM + 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#= 20 Spd=480  MxCh= 0
    D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=10d3 Rev=05.15
    S:  Manufacturer=Telit Cinterion
    S:  Product=FN990
    S:  SerialNumber=43b38f19
    C:  #Ifs=10 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
    E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 2 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#= 3 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#= 4 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#= 5 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#= 6 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#= 7 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#= 8 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#= 9 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: stable@vger.kernel.org
    Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
    Reviewed-by: Daniele Palmas <dnlplm@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95fcacb5b9a9504766628add1d8620b685fc4bf1
Author: Chester A. Unal <chester.a.unal@arinc9.com>
Date:   Fri Jan 24 10:28:00 2025 +0000

    USB: serial: option: add MeiG Smart SLM828
    
    commit db79e75460fc59b19f9c89d4b068e61cee59f37d upstream.
    
    MeiG Smart SLM828 is an LTE-A CAT6 modem with the mPCIe form factor. The
    "Cls=ff(vend.) Sub=10 Prot=02" and "Cls=ff(vend.) Sub=10 Prot=03"
    interfaces respond to AT commands. Add these interfaces.
    
    The product ID the modem uses is shared across multiple modems. Therefore,
    add comments to describe which interface is used for which modem.
    
    T:  Bus=01 Lev=01 Prnt=05 Port=01 Cnt=01 Dev#=  6 Spd=480  MxCh= 0
    D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=2dee ProdID=4d22 Rev=05.04
    S:  Manufacturer=MEIG
    S:  Product=LTE-A Module
    S:  SerialNumber=4da7ec42
    C:  #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=10 Prot=01 Driver=(none)
    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=10 Prot=02 Driver=(none)
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=10 Prot=03 Driver=(none)
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=10 Prot=04 Driver=(none)
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    I:  If#= 4 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E:  Ad=88(I) Atr=03(Int.) MxPS=  64 Ivl=32ms
    I:  If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=10 Prot=05 Driver=qmi_wwan
    E:  Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Signed-off-by: Chester A. Unal <chester.a.unal@arinc9.com>
    Link: https://lore.kernel.org/20250124-for-johan-meig-slm828-v2-1-6b4cd3f6344f@arinc9.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6878c61a3880f7570ad5f2a9d99d199c9668aebc
Author: Jann Horn <jannh@google.com>
Date:   Wed Feb 12 19:15:16 2025 +0100

    usb: cdc-acm: Fix handling of oversized fragments
    
    commit 12e712964f41d05ae034989892de445781c46730 upstream.
    
    If we receive an initial fragment of size 8 bytes which specifies a wLength
    of 1 byte (so the reassembled message is supposed to be 9 bytes long), and
    we then receive a second fragment of size 9 bytes (which is not supposed to
    happen), we currently wrongly bypass the fragment reassembly code but still
    pass the pointer to the acm->notification_buffer to
    acm_process_notification().
    
    Make this less wrong by always going through fragment reassembly when we
    expect more fragments.
    
    Before this patch, receiving an overlong fragment could lead to `newctrl`
    in acm_process_notification() being uninitialized data (instead of data
    coming from the device).
    
    Cc: stable <stable@kernel.org>
    Fixes: ea2583529cd1 ("cdc-acm: reassemble fragmented notifications")
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 871619c2b78fdfe05afb4e8ba548678687beb812
Author: Jann Horn <jannh@google.com>
Date:   Wed Feb 12 19:15:15 2025 +0100

    usb: cdc-acm: Check control transfer buffer size before access
    
    commit e563b01208f4d1f609bcab13333b6c0e24ce6a01 upstream.
    
    If the first fragment is shorter than struct usb_cdc_notification, we can't
    calculate an expected_size. Log an error and discard the notification
    instead of reading lengths from memory outside the received data, which can
    lead to memory corruption when the expected_size decreases between
    fragments, causing `expected_size - acm->nb_index` to wrap.
    
    This issue has been present since the beginning of git history; however,
    it only leads to memory corruption since commit ea2583529cd1
    ("cdc-acm: reassemble fragmented notifications").
    
    A mitigating factor is that acm_ctrl_irq() can only execute after userspace
    has opened /dev/ttyACM*; but if ModemManager is running, ModemManager will
    do that automatically depending on the USB device's vendor/product IDs and
    its other interfaces.
    
    Cc: stable <stable@kernel.org>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ee5bb1938f36fa53a3ae472feda9a776ce969c0
Author: Marek Vasut <marek.vasut+renesas@mailbox.org>
Date:   Sun Feb 9 15:56:11 2025 +0100

    USB: cdc-acm: Fill in Renesas R-Car D3 USB Download mode quirk
    
    commit 7284922f3e4fa285dff1b8bb593aa9a0b8458f30 upstream.
    
    Add Renesas R-Car D3 USB Download mode quirk and update comments
    on all the other Renesas R-Car USB Download mode quirks to discern
    them from each other. This follows R-Car Series, 3rd Generation
    reference manual Rev.2.00 chapter 19.2.8 USB download mode .
    
    Fixes: 6d853c9e4104 ("usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20250209145708.106914-1-marek.vasut+renesas@mailbox.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3a67adb365cdfdac4620daf38a82e57ca45806c
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Jan 22 14:26:17 2025 -0500

    USB: hub: Ignore non-compliant devices with too many configs or interfaces
    
    commit 2240fed37afbcdb5e8b627bc7ad986891100e05d upstream.
    
    Robert Morris created a test program which can cause
    usb_hub_to_struct_hub() to dereference a NULL or inappropriate
    pointer:
    
    Oops: general protection fault, probably for non-canonical address
    0xcccccccccccccccc: 0000 [#1] SMP DEBUG_PAGEALLOC PTI
    CPU: 7 UID: 0 PID: 117 Comm: kworker/7:1 Not tainted 6.13.0-rc3-00017-gf44d154d6e3d #14
    Hardware name: FreeBSD BHYVE/BHYVE, BIOS 14.0 10/17/2021
    Workqueue: usb_hub_wq hub_event
    RIP: 0010:usb_hub_adjust_deviceremovable+0x78/0x110
    ...
    Call Trace:
     <TASK>
     ? die_addr+0x31/0x80
     ? exc_general_protection+0x1b4/0x3c0
     ? asm_exc_general_protection+0x26/0x30
     ? usb_hub_adjust_deviceremovable+0x78/0x110
     hub_probe+0x7c7/0xab0
     usb_probe_interface+0x14b/0x350
     really_probe+0xd0/0x2d0
     ? __pfx___device_attach_driver+0x10/0x10
     __driver_probe_device+0x6e/0x110
     driver_probe_device+0x1a/0x90
     __device_attach_driver+0x7e/0xc0
     bus_for_each_drv+0x7f/0xd0
     __device_attach+0xaa/0x1a0
     bus_probe_device+0x8b/0xa0
     device_add+0x62e/0x810
     usb_set_configuration+0x65d/0x990
     usb_generic_driver_probe+0x4b/0x70
     usb_probe_device+0x36/0xd0
    
    The cause of this error is that the device has two interfaces, and the
    hub driver binds to interface 1 instead of interface 0, which is where
    usb_hub_to_struct_hub() looks.
    
    We can prevent the problem from occurring by refusing to accept hub
    devices that violate the USB spec by having more than one
    configuration or interface.
    
    Reported-and-tested-by: Robert Morris <rtm@csail.mit.edu>
    Cc: stable <stable@kernel.org>
    Closes: https://lore.kernel.org/linux-usb/95564.1737394039@localhost/
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Link: https://lore.kernel.org/r/c27f3bf4-63d8-4fb5-ac82-09e3cd19f61c@rowland.harvard.edu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8e86700c8a8cf415e300a0921acd6a8f9b494f8
Author: John Keeping <jkeeping@inmusicbrands.com>
Date:   Thu Jan 30 19:50:34 2025 +0000

    usb: gadget: f_midi: fix MIDI Streaming descriptor lengths
    
    commit da1668997052ed1cb00322e1f3b63702615c9429 upstream.
    
    While the MIDI jacks are configured correctly, and the MIDIStreaming
    endpoint descriptors are filled with the correct information,
    bNumEmbMIDIJack and bLength are set incorrectly in these descriptors.
    
    This does not matter when the numbers of in and out ports are equal, but
    when they differ the host will receive broken descriptors with
    uninitialized stack memory leaking into the descriptor for whichever
    value is smaller.
    
    The precise meaning of "in" and "out" in the port counts is not clearly
    defined and can be confusing.  But elsewhere the driver consistently
    uses this to match the USB meaning of IN and OUT viewed from the host,
    so that "in" ports send data to the host and "out" ports receive data
    from it.
    
    Cc: stable <stable@kernel.org>
    Fixes: c8933c3f79568 ("USB: gadget: f_midi: allow a dynamic number of input and output ports")
    Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
    Reviewed-by: Takashi Iwai <tiwai@suse.de>
    Link: https://lore.kernel.org/r/20250130195035.3883857-1-jkeeping@inmusicbrands.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aeda961736f3e96bcdbbf5d026ef1be6ba261a83
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Thu Feb 6 17:18:36 2025 +0200

    USB: Add USB_QUIRK_NO_LPM quirk for sony xperia xz1 smartphone
    
    commit 159daf1258227f44b26b5d38f4aa8f37b8cca663 upstream.
    
    The fastboot tool for communicating with Android bootloaders does not
    work reliably with this device if USB 2 Link Power Management (LPM)
    is enabled.
    
    Various fastboot commands are affected, including the
    following, which usually reproduces the problem within two tries:
    
      fastboot getvar kernel
      getvar:kernel  FAILED (remote: 'GetVar Variable Not found')
    
    This issue was hidden on many systems up until commit 63a1f8454962
    ("xhci: stored cached port capability values in one place") as the xhci
    driver failed to detect USB 2 LPM support if USB 3 ports were listed
    before USB 2 ports in the "supported protocol capabilities".
    
    Adding the quirk resolves the issue. No drawbacks are expected since
    the device uses different USB product IDs outside of fastboot mode, and
    since fastboot commands worked before, until LPM was enabled on the
    tested system by the aforementioned commit.
    
    Based on a patch from Forest <forestix@nom.one> from which most of the
    code and commit message is taken.
    
    Cc: stable <stable@kernel.org>
    Reported-by: Forest <forestix@nom.one>
    Closes: https://lore.kernel.org/hk8umj9lv4l4qguftdq1luqtdrpa1gks5l@sonic.net
    Tested-by: Forest <forestix@nom.one>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20250206151836.51742-1-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6afdad04f6c1af9a2422775f4dae436811b8e83c
Author: Lei Huang <huanglei@kylinos.cn>
Date:   Wed Feb 12 17:38:29 2025 +0800

    USB: quirks: add USB_QUIRK_NO_LPM quirk for Teclast dist
    
    commit e169d96eecd447ff7fd7542ca5fa0911f5622054 upstream.
    
    Teclast disk used on Huawei hisi platforms doesn't work well,
    losing connectivity intermittently if LPM is enabled.
    Add quirk disable LPM to resolve the issue.
    
    Signed-off-by: Lei Huang <huanglei@kylinos.cn>
    Cc: stable <stable@kernel.org>
    Link: https://lore.kernel.org/r/20250212093829.7379-1-huanglei814@163.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b605fd13b8329efc1d8f8072576c4b32e0e7923e
Author: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Date:   Mon Feb 3 11:58:24 2025 +0100

    usb: core: fix pipe creation for get_bMaxPacketSize0
    
    commit 4aac0db5a0ebc599d4ad9bf5ebab78afa1f33e10 upstream.
    
    When usb_control_msg is used in the get_bMaxPacketSize0 function, the
    USB pipe does not include the endpoint device number. This can cause
    failures when a usb hub port is reinitialized after encountering a bad
    cable connection. As a result, the system logs the following error
    messages:
    usb usb2-port1: cannot reset (err = -32)
    usb usb2-port1: Cannot enable. Maybe the USB cable is bad?
    usb usb2-port1: attempt power cycle
    usb 2-1: new high-speed USB device number 5 using ci_hdrc
    usb 2-1: device descriptor read/8, error -71
    
    The problem began after commit 85d07c556216 ("USB: core: Unite old
    scheme and new scheme descriptor reads"). There
    usb_get_device_descriptor was replaced with get_bMaxPacketSize0. Unlike
    usb_get_device_descriptor, the get_bMaxPacketSize0 function uses the
    macro usb_rcvaddr0pipe, which does not include the endpoint device
    number. usb_get_device_descriptor, on the other hand, used the macro
    usb_rcvctrlpipe, which includes the endpoint device number.
    
    By modifying the get_bMaxPacketSize0 function to use usb_rcvctrlpipe
    instead of usb_rcvaddr0pipe, the issue can be resolved. This change will
    ensure that the endpoint device number is included in the USB pipe,
    preventing reinitialization failures. If the endpoint has not set the
    device number yet, it will still work because the device number is 0 in
    udev.
    
    Cc: stable <stable@kernel.org>
    Fixes: 85d07c556216 ("USB: core: Unite old scheme and new scheme descriptor reads")
    Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
    Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
    Link: https://lore.kernel.org/r/20250203105840.17539-1-eichest@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1af4043ec5bc27b2a718345004b2b8d86ac405c6
Author: Huacai Chen <chenhuacai@kernel.org>
Date:   Sun Feb 2 20:49:35 2025 +0800

    USB: pci-quirks: Fix HCCPARAMS register error for LS7A EHCI
    
    commit e71f7f42e3c874ac3314b8f250e8416a706165af upstream.
    
    LS7A EHCI controller doesn't have extended capabilities, so the EECP
    (EHCI Extended Capabilities Pointer) field of HCCPARAMS register should
    be 0x0, but it reads as 0xa0 now. This is a hardware flaw and will be
    fixed in future, now just clear the EECP field to avoid error messages
    on boot:
    
    ......
    [    0.581675] pci 0000:00:04.1: EHCI: unrecognized capability ff
    [    0.581699] pci 0000:00:04.1: EHCI: unrecognized capability ff
    [    0.581716] pci 0000:00:04.1: EHCI: unrecognized capability ff
    [    0.581851] pci 0000:00:04.1: EHCI: unrecognized capability ff
    ......
    [    0.581916] pci 0000:00:05.1: EHCI: unrecognized capability ff
    [    0.581951] pci 0000:00:05.1: EHCI: unrecognized capability ff
    [    0.582704] pci 0000:00:05.1: EHCI: unrecognized capability ff
    [    0.582799] pci 0000:00:05.1: EHCI: unrecognized capability ff
    ......
    
    Cc: stable <stable@kernel.org>
    Signed-off-by: Baoqi Zhang <zhangbaoqi@loongson.cn>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Link: https://lore.kernel.org/r/20250202124935.480500-1-chenhuacai@loongson.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef5e915db375de1f0ce372ffcc85ae90c2c9865e
Author: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Date:   Fri Jan 24 18:33:25 2025 +0100

    usb: dwc2: gadget: remove of_node reference upon udc_stop
    
    commit 58cd423820d5b5610977e55e4acdd06628829ede upstream.
    
    In dwc2_hsotg_udc_start(), e.g. when binding composite driver, "of_node"
    is set to hsotg->dev->of_node.
    
    It causes errors when binding the gadget driver several times, on
    stm32mp157c-ev1 board. Below error is seen:
    "pin PA10 already requested by 49000000.usb-otg; cannot claim for gadget.0"
    
    The first time, no issue is seen as when registering the driver, of_node
    isn't NULL:
    -> gadget_dev_desc_UDC_store
      -> usb_gadget_register_driver_owner
        -> driver_register
        ...
          -> really_probe -> pinctrl_bind_pins (no effect)
    
    Then dwc2_hsotg_udc_start() sets of_node.
    
    The second time (stop the gadget, reconfigure it, then start it again),
    of_node has been set, so the probing code tries to acquire pins for the
    gadget. These pins are hold by the controller, hence the error.
    
    So clear gadget.dev.of_node in udc_stop() routine to avoid the issue.
    
    Fixes: 7d7b22928b90 ("usb: gadget: s3c-hsotg: Propagate devicetree to gadget drivers")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
    Link: https://lore.kernel.org/r/20250124173325.2747710-1-fabrice.gasnier@foss.st.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 626ab15ddc4b3fb6c4553972c1a44f40d67d61d0
Author: Guo Ren <guoren@kernel.org>
Date:   Wed Jan 22 03:12:31 2025 -0500

    usb: gadget: udc: renesas_usb3: Fix compiler warning
    
    commit 335a1fc1193481f8027f176649c72868172f6f8b upstream.
    
    drivers/usb/gadget/udc/renesas_usb3.c: In function 'renesas_usb3_probe':
    drivers/usb/gadget/udc/renesas_usb3.c:2638:73: warning: '%d'
    directive output may be truncated writing between 1 and 11 bytes into a
    region of size 6 [-Wformat-truncation=]
    2638 |   snprintf(usb3_ep->ep_name, sizeof(usb3_ep->ep_name), "ep%d", i);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~     ^~   ^
    
    Fixes: 746bfe63bba3 ("usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller")
    Cc: stable@vger.kernel.org
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501201409.BIQPtkeB-lkp@intel.com/
    Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
    Link: https://lore.kernel.org/r/20250122081231.47594-1-guoren@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a902573f2ca7e40fc8714724cf6f0aff0fbb57f
Author: Elson Roy Serrao <quic_eserrao@quicinc.com>
Date:   Thu Feb 6 11:39:50 2025 -0800

    usb: roles: set switch registered flag early on
    
    commit 634775a752a86784511018a108f3b530cc3399a7 upstream.
    
    The role switch registration and set_role() can happen in parallel as they
    are invoked independent of each other. There is a possibility that a driver
    might spend significant amount of time in usb_role_switch_register() API
    due to the presence of time intensive operations like component_add()
    which operate under common mutex. This leads to a time window after
    allocating the switch and before setting the registered flag where the set
    role notifications are dropped. Below timeline summarizes this behavior
    
    Thread1                         |       Thread2
    usb_role_switch_register()      |
            |                       |
            ---> allocate switch    |
            |                       |
            ---> component_add()    |       usb_role_switch_set_role()
            |                       |       |
            |                       |       --> Drop role notifications
            |                       |           since sw->registered
            |                       |           flag is not set.
            |                       |
            --->Set registered flag.|
    
    To avoid this, set the registered flag early on in the switch register
    API.
    
    Fixes: b787a3e78175 ("usb: roles: don't get/set_role() when usb_role_switch is unregistered")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Elson Roy Serrao <quic_eserrao@quicinc.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Link: https://lore.kernel.org/r/20250206193950.22421-1-quic_eserrao@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4ca0cf536b13f34b5c581ef85266879b30bf8ec
Author: Sean Christopherson <seanjc@google.com>
Date:   Thu Jan 30 17:07:21 2025 -0800

    perf/x86/intel: Ensure LBRs are disabled when a CPU is starting
    
    commit c631a2de7ae48d50434bdc205d901423f8577c65 upstream.
    
    Explicitly clear DEBUGCTL.LBR when a CPU is starting, prior to purging the
    LBR MSRs themselves, as at least one system has been found to transfer
    control to the kernel with LBRs enabled (it's unclear whether it's a BIOS
    flaw or a CPU goof).  Because the kernel preserves the original DEBUGCTL,
    even when toggling LBRs, leaving DEBUGCTL.LBR as is results in running
    with LBRs enabled at all times.
    
    Closes: https://lore.kernel.org/all/c9d8269bff69f6359731d758e3b1135dedd7cc61.camel@redhat.com
    Reported-by: Maxim Levitsky <mlevitsk@redhat.com>
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20250131010721.470503-1-seanjc@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45fa526b0f5a34492ed0536c3cdf88b78380e4de
Author: Sean Christopherson <seanjc@google.com>
Date:   Fri Jan 17 16:34:51 2025 -0800

    KVM: x86: Reject Hyper-V's SEND_IPI hypercalls if local APIC isn't in-kernel
    
    commit a8de7f100bb5989d9c3627d3a223ee1c863f3b69 upstream.
    
    Advertise support for Hyper-V's SEND_IPI and SEND_IPI_EX hypercalls if and
    only if the local API is emulated/virtualized by KVM, and explicitly reject
    said hypercalls if the local APIC is emulated in userspace, i.e. don't rely
    on userspace to opt-in to KVM_CAP_HYPERV_ENFORCE_CPUID.
    
    Rejecting SEND_IPI and SEND_IPI_EX fixes a NULL-pointer dereference if
    Hyper-V enlightenments are exposed to the guest without an in-kernel local
    APIC:
    
      dump_stack+0xbe/0xfd
      __kasan_report.cold+0x34/0x84
      kasan_report+0x3a/0x50
      __apic_accept_irq+0x3a/0x5c0
      kvm_hv_send_ipi.isra.0+0x34e/0x820
      kvm_hv_hypercall+0x8d9/0x9d0
      kvm_emulate_hypercall+0x506/0x7e0
      __vmx_handle_exit+0x283/0xb60
      vmx_handle_exit+0x1d/0xd0
      vcpu_enter_guest+0x16b0/0x24c0
      vcpu_run+0xc0/0x550
      kvm_arch_vcpu_ioctl_run+0x170/0x6d0
      kvm_vcpu_ioctl+0x413/0xb20
      __se_sys_ioctl+0x111/0x160
      do_syscal1_64+0x30/0x40
      entry_SYSCALL_64_after_hwframe+0x67/0xd1
    
    Note, checking the sending vCPU is sufficient, as the per-VM irqchip_mode
    can't be modified after vCPUs are created, i.e. if one vCPU has an
    in-kernel local APIC, then all vCPUs have an in-kernel local APIC.
    
    Reported-by: Dongjie Zou <zoudongjie@huawei.com>
    Fixes: 214ff83d4473 ("KVM: x86: hyperv: implement PV IPI send hypercalls")
    Fixes: 2bc39970e932 ("x86/kvm/hyper-v: Introduce KVM_GET_SUPPORTED_HV_CPUID")
    Cc: stable@vger.kernel.org
    Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Link: https://lore.kernel.org/r/20250118003454.2619573-2-seanjc@google.com
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e8f0f0e009757f9ddddec4af077630b0ea683b5
Author: Sven Eckelmann <sven@narfation.org>
Date:   Mon Jan 20 20:35:28 2025 +0100

    batman-adv: Ignore neighbor throughput metrics in error case
    
    commit e7e34ffc976aaae4f465b7898303241b81ceefc3 upstream.
    
    If a temporary error happened in the evaluation of the neighbor throughput
    information, then the invalid throughput result should not be stored in the
    throughtput EWMA.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0a16c6c79768180333f3e41ce63f32730e3c3af
Author: Andy Strohman <andrew@andrewstrohman.com>
Date:   Thu Jan 9 02:27:56 2025 +0000

    batman-adv: fix panic during interface removal
    
    commit ccb7276a6d26d6f8416e315b43b45e15ee7f29e2 upstream.
    
    Reference counting is used to ensure that
    batadv_hardif_neigh_node and batadv_hard_iface
    are not freed before/during
    batadv_v_elp_throughput_metric_update work is
    finished.
    
    But there isn't a guarantee that the hard if will
    remain associated with a soft interface up until
    the work is finished.
    
    This fixes a crash triggered by reboot that looks
    like this:
    
    Call trace:
     batadv_v_mesh_free+0xd0/0x4dc [batman_adv]
     batadv_v_elp_throughput_metric_update+0x1c/0xa4
     process_one_work+0x178/0x398
     worker_thread+0x2e8/0x4d0
     kthread+0xd8/0xdc
     ret_from_fork+0x10/0x20
    
    (the batadv_v_mesh_free call is misleading,
    and does not actually happen)
    
    I was able to make the issue happen more reliably
    by changing hardif_neigh->bat_v.metric_work work
    to be delayed work. This allowed me to track down
    and confirm the fix.
    
    Cc: stable@vger.kernel.org
    Fixes: c833484e5f38 ("batman-adv: ELP - compute the metric based on the estimated throughput")
    Signed-off-by: Andy Strohman <andrew@andrewstrohman.com>
    [sven@narfation.org: prevent entering batadv_v_elp_get_throughput without
     soft_iface]
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b7d69806c424042411d3846d3d79ed4ebf5cde5
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Thu Jan 23 14:25:07 2025 +0100

    ASoC: Intel: bytcr_rt5640: Add DMI quirk for Vexia Edu Atla 10 tablet 5V
    
    [ Upstream commit 6917192378c1ce17ba31df51c4e0d8b1c97a453b ]
    
    The Vexia EDU ATLA 10 tablet comes in 2 different versions with
    significantly different mainboards. The only outward difference is that
    the charging barrel on one is marked 5V and the other is marked 9V.
    
    The 5V version mostly works with the BYTCR defaults, except that it is
    missing a CHAN package in its ACPI tables and the default of using
    SSP0-AIF2 is wrong, instead SSP0-AIF1 must be used. That and its jack
    detect signal is not inverted as it usually is.
    
    Add a DMI quirk for the 5V version to fix sound not working.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://patch.msgid.link/20250123132507.18434-1-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8725882b0f691f8113b230aea9df0256030a63a6
Author: Mike Marshall <hubcap@omnibond.com>
Date:   Wed Jan 8 14:21:08 2025 -0500

    orangefs: fix a oob in orangefs_debug_write
    
    [ Upstream commit f7c848431632598ff9bce57a659db6af60d75b39 ]
    
    I got a syzbot report: slab-out-of-bounds Read in
    orangefs_debug_write... several people suggested fixes,
    I tested Al Viro's suggestion and made this patch.
    
    Signed-off-by: Mike Marshall <hubcap@omnibond.com>
    Reported-by: syzbot+fc519d7875f2d9186c1f@syzkaller.appspotmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 848b5815177582de0e1d0118725378e0fbadca20
Author: Rik van Riel <riel@fb.com>
Date:   Wed Dec 4 21:03:16 2024 -0500

    x86/mm/tlb: Only trim the mm_cpumask once a second
    
    [ Upstream commit 6db2526c1d694c91c6e05e2f186c085e9460f202 ]
    
    Setting and clearing CPU bits in the mm_cpumask is only ever done
    by the CPU itself, from the context switch code or the TLB flush
    code.
    
    Synchronization is handled by switch_mm_irqs_off() blocking interrupts.
    
    Sending TLB flush IPIs to CPUs that are in the mm_cpumask, but no
    longer running the program causes a regression in the will-it-scale
    tlbflush2 test. This test is contrived, but a large regression here
    might cause a small regression in some real world workload.
    
    Instead of always sending IPIs to CPUs that are in the mm_cpumask,
    but no longer running the program, send these IPIs only once a second.
    
    The rest of the time we can skip over CPUs where the loaded_mm is
    different from the target mm.
    
    Reported-by: kernel test roboto <oliver.sang@intel.com>
    Signed-off-by: Rik van Riel <riel@surriel.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: https://lore.kernel.org/r/20241204210316.612ee573@fangorn
    Closes: https://lore.kernel.org/oe-lkp/202411282207.6bd28eae-lkp@intel.com/
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cd8de1f521d5236be13490dbb2fa4dba5feea766
Author: Maksym Planeta <maksym@exostellar.io>
Date:   Wed Dec 4 11:35:15 2024 +0100

    Grab mm lock before grabbing pt lock
    
    [ Upstream commit 6d002348789bc16e9203e9818b7a3688787e3b29 ]
    
    Function xen_pin_page calls xen_pte_lock, which in turn grab page
    table lock (ptlock). When locking, xen_pte_lock expect mm->page_table_lock
    to be held before grabbing ptlock, but this does not happen when pinning
    is caused by xen_mm_pin_all.
    
    This commit addresses lockdep warning below, which shows up when
    suspending a Xen VM.
    
    [ 3680.658422] Freezing user space processes
    [ 3680.660156] Freezing user space processes completed (elapsed 0.001 seconds)
    [ 3680.660182] OOM killer disabled.
    [ 3680.660192] Freezing remaining freezable tasks
    [ 3680.661485] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
    [ 3680.685254]
    [ 3680.685265] ==================================
    [ 3680.685269] WARNING: Nested lock was not taken
    [ 3680.685274] 6.12.0+ #16 Tainted: G        W
    [ 3680.685279] ----------------------------------
    [ 3680.685283] migration/0/19 is trying to lock:
    [ 3680.685288] ffff88800bac33c0 (ptlock_ptr(ptdesc)#2){+.+.}-{3:3}, at: xen_pin_page+0x175/0x1d0
    [ 3680.685303]
    [ 3680.685303] but this task is not holding:
    [ 3680.685308] init_mm.page_table_lock
    [ 3680.685311]
    [ 3680.685311] stack backtrace:
    [ 3680.685316] CPU: 0 UID: 0 PID: 19 Comm: migration/0 Tainted: G        W          6.12.0+ #16
    [ 3680.685324] Tainted: [W]=WARN
    [ 3680.685328] Stopper: multi_cpu_stop+0x0/0x120 <- __stop_cpus.constprop.0+0x8c/0xd0
    [ 3680.685339] Call Trace:
    [ 3680.685344]  <TASK>
    [ 3680.685347]  dump_stack_lvl+0x77/0xb0
    [ 3680.685356]  __lock_acquire+0x917/0x2310
    [ 3680.685364]  lock_acquire+0xce/0x2c0
    [ 3680.685369]  ? xen_pin_page+0x175/0x1d0
    [ 3680.685373]  _raw_spin_lock_nest_lock+0x2f/0x70
    [ 3680.685381]  ? xen_pin_page+0x175/0x1d0
    [ 3680.685386]  xen_pin_page+0x175/0x1d0
    [ 3680.685390]  ? __pfx_xen_pin_page+0x10/0x10
    [ 3680.685394]  __xen_pgd_walk+0x233/0x2c0
    [ 3680.685401]  ? stop_one_cpu+0x91/0x100
    [ 3680.685405]  __xen_pgd_pin+0x5d/0x250
    [ 3680.685410]  xen_mm_pin_all+0x70/0xa0
    [ 3680.685415]  xen_pv_pre_suspend+0xf/0x280
    [ 3680.685420]  xen_suspend+0x57/0x1a0
    [ 3680.685428]  multi_cpu_stop+0x6b/0x120
    [ 3680.685432]  ? update_cpumasks_hier+0x7c/0xa60
    [ 3680.685439]  ? __pfx_multi_cpu_stop+0x10/0x10
    [ 3680.685443]  cpu_stopper_thread+0x8c/0x140
    [ 3680.685448]  ? smpboot_thread_fn+0x20/0x1f0
    [ 3680.685454]  ? __pfx_smpboot_thread_fn+0x10/0x10
    [ 3680.685458]  smpboot_thread_fn+0xed/0x1f0
    [ 3680.685462]  kthread+0xde/0x110
    [ 3680.685467]  ? __pfx_kthread+0x10/0x10
    [ 3680.685471]  ret_from_fork+0x2f/0x50
    [ 3680.685478]  ? __pfx_kthread+0x10/0x10
    [ 3680.685482]  ret_from_fork_asm+0x1a/0x30
    [ 3680.685489]  </TASK>
    [ 3680.685491]
    [ 3680.685491] other info that might help us debug this:
    [ 3680.685497] 1 lock held by migration/0/19:
    [ 3680.685500]  #0: ffffffff8284df38 (pgd_lock){+.+.}-{3:3}, at: xen_mm_pin_all+0x14/0xa0
    [ 3680.685512]
    [ 3680.685512] stack backtrace:
    [ 3680.685518] CPU: 0 UID: 0 PID: 19 Comm: migration/0 Tainted: G        W          6.12.0+ #16
    [ 3680.685528] Tainted: [W]=WARN
    [ 3680.685531] Stopper: multi_cpu_stop+0x0/0x120 <- __stop_cpus.constprop.0+0x8c/0xd0
    [ 3680.685538] Call Trace:
    [ 3680.685541]  <TASK>
    [ 3680.685544]  dump_stack_lvl+0x77/0xb0
    [ 3680.685549]  __lock_acquire+0x93c/0x2310
    [ 3680.685554]  lock_acquire+0xce/0x2c0
    [ 3680.685558]  ? xen_pin_page+0x175/0x1d0
    [ 3680.685562]  _raw_spin_lock_nest_lock+0x2f/0x70
    [ 3680.685568]  ? xen_pin_page+0x175/0x1d0
    [ 3680.685572]  xen_pin_page+0x175/0x1d0
    [ 3680.685578]  ? __pfx_xen_pin_page+0x10/0x10
    [ 3680.685582]  __xen_pgd_walk+0x233/0x2c0
    [ 3680.685588]  ? stop_one_cpu+0x91/0x100
    [ 3680.685592]  __xen_pgd_pin+0x5d/0x250
    [ 3680.685596]  xen_mm_pin_all+0x70/0xa0
    [ 3680.685600]  xen_pv_pre_suspend+0xf/0x280
    [ 3680.685607]  xen_suspend+0x57/0x1a0
    [ 3680.685611]  multi_cpu_stop+0x6b/0x120
    [ 3680.685615]  ? update_cpumasks_hier+0x7c/0xa60
    [ 3680.685620]  ? __pfx_multi_cpu_stop+0x10/0x10
    [ 3680.685625]  cpu_stopper_thread+0x8c/0x140
    [ 3680.685629]  ? smpboot_thread_fn+0x20/0x1f0
    [ 3680.685634]  ? __pfx_smpboot_thread_fn+0x10/0x10
    [ 3680.685638]  smpboot_thread_fn+0xed/0x1f0
    [ 3680.685642]  kthread+0xde/0x110
    [ 3680.685645]  ? __pfx_kthread+0x10/0x10
    [ 3680.685649]  ret_from_fork+0x2f/0x50
    [ 3680.685654]  ? __pfx_kthread+0x10/0x10
    [ 3680.685657]  ret_from_fork_asm+0x1a/0x30
    [ 3680.685662]  </TASK>
    [ 3680.685267] xen:grant_table: Grant tables using version 1 layout
    [ 3680.685921] OOM killer enabled.
    [ 3680.685934] Restarting tasks ... done.
    
    Signed-off-by: Maksym Planeta <maksym@exostellar.io>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Message-ID: <20241204103516.3309112-1-maksym@exostellar.io>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 69b812149b8b61994cfd204fe436a609e80e5a1d
Author: Ramesh Thomas <ramesh.thomas@intel.com>
Date:   Tue Dec 10 05:19:37 2024 -0800

    vfio/pci: Enable iowrite64 and ioread64 for vfio pci
    
    [ Upstream commit 2b938e3db335e3670475e31a722c2bee34748c5a ]
    
    Definitions of ioread64 and iowrite64 macros in asm/io.h called by vfio
    pci implementations are enclosed inside check for CONFIG_GENERIC_IOMAP.
    They don't get defined if CONFIG_GENERIC_IOMAP is defined. Include
    linux/io-64-nonatomic-lo-hi.h to define iowrite64 and ioread64 macros
    when they are not defined. io-64-nonatomic-lo-hi.h maps the macros to
    generic implementation in lib/iomap.c. The generic implementation does
    64 bit rw if readq/writeq is defined for the architecture, otherwise it
    would do 32 bit back to back rw.
    
    Note that there are two versions of the generic implementation that
    differs in the order the 32 bit words are written if 64 bit support is
    not present. This is not the little/big endian ordering, which is
    handled separately. This patch uses the lo followed by hi word ordering
    which is consistent with current back to back implementation in the
    vfio/pci code.
    
    Signed-off-by: Ramesh Thomas <ramesh.thomas@intel.com>
    Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
    Link: https://lore.kernel.org/r/20241210131938.303500-2-ramesh.thomas@intel.com
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20b7d9675437f3b932a6ccd7868c3b1023734d8b
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jan 2 17:43:13 2025 +0100

    PCI/DPC: Quirk PIO log size for Intel Raptor Lake-P
    
    [ Upstream commit b198499c7d2508a76243b98e7cca992f6fd2b7f7 ]
    
    Apparently the Raptor Lake-P reference firmware configures the PIO log size
    correctly, but some vendor BIOSes, including at least ASUSTeK COMPUTER INC.
    Zenbook UX3402VA_UX3402VA, do not.
    
    Apply the quirk for Raptor Lake-P.  This prevents kernel complaints like:
    
      DPC: RP PIO log size 0 is invalid
    
    and also enables the DPC driver to dump the RP PIO Log registers when DPC
    is triggered.
    
    Note that the bug report also mentions 8086:a76e, which has been already
    added by 627c6db20703 ("PCI/DPC: Quirk PIO log size for Intel Raptor Lake
    Root Ports").
    
    Link: https://lore.kernel.org/r/20250102164315.7562-1-tiwai@suse.de
    Link: https://bugzilla.suse.com/show_bug.cgi?id=1234623
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    [bhelgaas: commit log]
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 59a707ad952eb2ea8d59457d662b6f4138f17b08
Author: Edward Adam Davis <eadavis@qq.com>
Date:   Sun Dec 29 18:50:39 2024 +0800

    media: vidtv: Fix a null-ptr-deref in vidtv_mux_stop_thread
    
    [ Upstream commit 1221989555db711578a327a9367f1be46500cb48 ]
    
    syzbot report a null-ptr-deref in vidtv_mux_stop_thread. [1]
    
    If dvb->mux is not initialized successfully by vidtv_mux_init() in the
    vidtv_start_streaming(), it will trigger null pointer dereference about mux
    in vidtv_mux_stop_thread().
    
    Adjust the timing of streaming initialization and check it before
    stopping it.
    
    [1]
    KASAN: null-ptr-deref in range [0x0000000000000128-0x000000000000012f]
    CPU: 0 UID: 0 PID: 5842 Comm: syz-executor248 Not tainted 6.13.0-rc4-syzkaller-00012-g9b2ffa6148b1 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
    RIP: 0010:vidtv_mux_stop_thread+0x26/0x80 drivers/media/test-drivers/vidtv/vidtv_mux.c:471
    Code: 90 90 90 90 66 0f 1f 00 55 53 48 89 fb e8 82 2e c8 f9 48 8d bb 28 01 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 02 7e 3b 0f b6 ab 28 01 00 00 31 ff 89 ee e8
    RSP: 0018:ffffc90003f2faa8 EFLAGS: 00010202
    RAX: dffffc0000000000 RBX: 0000000000000000 RCX: ffffffff87cfb125
    RDX: 0000000000000025 RSI: ffffffff87d120ce RDI: 0000000000000128
    RBP: ffff888029b8d220 R08: 0000000000000005 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000003 R12: ffff888029b8d188
    R13: ffffffff8f590aa0 R14: ffffc9000581c5c8 R15: ffff888029a17710
    FS:  00007f7eef5156c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f7eef5e635c CR3: 0000000076ca6000 CR4: 00000000003526f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <TASK>
     vidtv_stop_streaming drivers/media/test-drivers/vidtv/vidtv_bridge.c:209 [inline]
     vidtv_stop_feed+0x151/0x250 drivers/media/test-drivers/vidtv/vidtv_bridge.c:252
     dmx_section_feed_stop_filtering+0x90/0x160 drivers/media/dvb-core/dvb_demux.c:1000
     dvb_dmxdev_feed_stop.isra.0+0x1ee/0x270 drivers/media/dvb-core/dmxdev.c:486
     dvb_dmxdev_filter_stop+0x22a/0x3a0 drivers/media/dvb-core/dmxdev.c:559
     dvb_dmxdev_filter_free drivers/media/dvb-core/dmxdev.c:840 [inline]
     dvb_demux_release+0x92/0x550 drivers/media/dvb-core/dmxdev.c:1246
     __fput+0x3f8/0xb60 fs/file_table.c:450
     task_work_run+0x14e/0x250 kernel/task_work.c:239
     get_signal+0x1d3/0x2610 kernel/signal.c:2790
     arch_do_signal_or_restart+0x90/0x7e0 arch/x86/kernel/signal.c:337
     exit_to_user_mode_loop kernel/entry/common.c:111 [inline]
     exit_to_user_mode_prepare include/linux/entry-common.h:329 [inline]
     __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
     syscall_exit_to_user_mode+0x150/0x2a0 kernel/entry/common.c:218
     do_syscall_64+0xda/0x250 arch/x86/entry/common.c:89
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Reported-by: syzbot+5e248227c80a3be8e96a@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=5e248227c80a3be8e96a
    Signed-off-by: Edward Adam Davis <eadavis@qq.com>
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d485a8b22794c67445f812ffd55127be7854e5fc
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Nov 11 11:41:42 2024 +0100

    media: cxd2841er: fix 64-bit division on gcc-9
    
    [ Upstream commit 8d46603eeeb4c6abff1d2e49f2a6ae289dac765e ]
    
    It appears that do_div() once more gets confused by a complex
    expression that ends up not quite being constant despite
    __builtin_constant_p() thinking it is:
    
    ERROR: modpost: "__aeabi_uldivmod" [drivers/media/dvb-frontends/cxd2841er.ko] undefined!
    
    Use div_u64() instead, forcing the expression to be evaluated
    first, and making it a bit more readable.
    
    Cc: Dan Carpenter <dan.carpenter@linaro.org>
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Closes: https://lore.kernel.org/linux-media/CA+G9fYvvNm-aYodLaAwwTjEGtX0YxR-1R14FOA5aHKt0sSVsYg@mail.gmail.com/
    Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Closes: https://lore.kernel.org/linux-media/CA+G9fYvvNm-aYodLaAwwTjEGtX0YxR-1R14FOA5aHKt0sSVsYg@mail.gmail.com/
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    [hverkuil: added Closes tags]
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ba842a609ff80fb128cd89676960282fbd591383
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Feb 11 11:16:28 2025 +0100

    x86/xen: allow larger contiguous memory regions in PV guests
    
    [ Upstream commit e93ec87286bd1fd30b7389e7a387cfb259f297e3 ]
    
    Today a PV guest (including dom0) can create 2MB contiguous memory
    regions for DMA buffers at max. This has led to problems at least
    with the megaraid_sas driver, which wants to allocate a 2.3MB DMA
    buffer.
    
    The limiting factor is the frame array used to do the hypercall for
    making the memory contiguous, which has 512 entries and is just a
    static array in mmu_pv.c.
    
    In order to not waste memory for non-PV guests, put the initial
    frame array into .init.data section and dynamically allocate an array
    from the .init_after_bootmem hook of PV guests.
    
    In case a contiguous memory area larger than the initially supported
    2MB is requested, allocate a larger buffer for the frame list. Note
    that such an allocation is tried only after memory management has been
    initialized properly, which is tested via a flag being set in the
    .init_after_bootmem hook.
    
    Fixes: 9f40ec84a797 ("xen/swiotlb: add alignment check for dma buffers")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Tested-by: Alan Robinson <Alan.Robinson@fujitsu.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5b750e76dfd548c5e5b8a856fef6ca16cb4c0b69
Author: Petr Tesarik <petr.tesarik.ext@huawei.com>
Date:   Wed Aug 2 18:31:51 2023 +0200

    xen: remove a confusing comment on auto-translated guest I/O
    
    [ Upstream commit d826c9e61c99120f8996f8fed6417167e32eb922 ]
    
    After removing the conditional return from xen_create_contiguous_region(),
    the accompanying comment was left in place, but it now precedes an
    unrelated conditional and confuses readers.
    
    Fixes: 989513a735f5 ("xen: cleanup pvh leftovers from pv-only sources")
    Signed-off-by: Petr Tesarik <petr.tesarik.ext@huawei.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Link: https://lore.kernel.org/r/20230802163151.1486-1-petrtesarik@huaweicloud.com
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Stable-dep-of: e93ec87286bd ("x86/xen: allow larger contiguous memory regions in PV guests")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d340047cf29b1b1ca6ee8b4c0a86d56640c2698f
Author: Artur Weber <aweber.kernel@gmail.com>
Date:   Thu Feb 6 18:46:02 2025 +0100

    gpio: bcm-kona: Add missing newline to dev_err format string
    
    [ Upstream commit 615279db222c3ac56d5c93716efd72b843295c1f ]
    
    Add a missing newline to the format string of the "Couldn't get IRQ
    for bank..." error message.
    
    Fixes: 757651e3d60e ("gpio: bcm281xx: Add GPIO driver")
    Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Reviewed-by: Markus Mayer <mmayer@broadcom.com>
    Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20250206-kona-gpio-fixes-v2-3-409135eab780@gmail.com
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f66a5da15f143c84090d12a1abe194de9de25197
Author: Artur Weber <aweber.kernel@gmail.com>
Date:   Thu Feb 6 18:46:01 2025 +0100

    gpio: bcm-kona: Make sure GPIO bits are unlocked when requesting IRQ
    
    [ Upstream commit 57f5db77a915cc29461a679a6bcae7097967be1a ]
    
    The settings for all GPIOs are locked by default in bcm_kona_gpio_reset.
    The settings for a GPIO are unlocked when requesting it as a GPIO, but
    not when requesting it as an interrupt, causing the IRQ settings to not
    get applied.
    
    Fix this by making sure to unlock the right bits when an IRQ is requested.
    To avoid a situation where an IRQ being released causes a lock despite
    the same GPIO being used by a GPIO request or vice versa, add an unlock
    counter and only lock if it reaches 0.
    
    Fixes: 757651e3d60e ("gpio: bcm281xx: Add GPIO driver")
    Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Reviewed-by: Markus Mayer <mmayer@broadcom.com>
    Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20250206-kona-gpio-fixes-v2-2-409135eab780@gmail.com
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54b0de7b6abef5b278ff8f945070e969b1495081
Author: Artur Weber <aweber.kernel@gmail.com>
Date:   Thu Feb 6 18:46:00 2025 +0100

    gpio: bcm-kona: Fix GPIO lock/unlock for banks above bank 0
    
    [ Upstream commit de1d0d160f64ee76df1d364d521b2faf465a091c ]
    
    The GPIO lock/unlock functions clear/write a bit to the relevant
    register for each bank. However, due to an oversight the bit that
    was being written was based on the total GPIO number, not the index
    of the GPIO within the relevant bank, causing it to fail for any
    GPIO above 32 (thus any GPIO for banks above bank 0).
    
    Fix lock/unlock for these banks by using the correct bit.
    
    Fixes: bdb93c03c550 ("gpio: bcm281xx: Centralize register locking")
    Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Reviewed-by: Markus Mayer <mmayer@broadcom.com>
    Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20250206-kona-gpio-fixes-v2-1-409135eab780@gmail.com
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 092dc83b9a3c6b5f2b63d686d19ba86fb6db012f
Author: Krzysztof Karas <krzysztof.karas@intel.com>
Date:   Thu Jan 30 09:19:31 2025 +0000

    drm/i915/selftests: avoid using uninitialized context
    
    [ Upstream commit 53139b3f9998ea07289e7b70b909fea2264a0de9 ]
    
    There is an error path in igt_ppgtt_alloc(), which leads
    to ww object being passed down to i915_gem_ww_ctx_fini() without
    initialization. Correct that by only putting ppgtt->vm and
    returning early.
    
    Fixes: 480ae79537b2 ("drm/i915/selftests: Prepare gtt tests for obj->mm.lock removal")
    Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
    Reviewed-by: Mikolaj Wasiak <mikolaj.wasiak@intel.com>
    Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
    Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/iuaonpjc3rywmvhna6umjlvzilocn2uqsrxfxfob24e2taocbi@lkaivvfp4777
    (cherry picked from commit 8d8334632ea62424233ac6529712868241d0f8df)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88a3e6afaf002250220793df99404977d343db14
Author: Radu Rendec <rrendec@redhat.com>
Date:   Thu Feb 6 12:44:20 2025 -0500

    arm64: cacheinfo: Avoid out-of-bounds write to cacheinfo array
    
    [ Upstream commit 875d742cf5327c93cba1f11e12b08d3cce7a88d2 ]
    
    The loop that detects/populates cache information already has a bounds
    check on the array size but does not account for cache levels with
    separate data/instructions cache. Fix this by incrementing the index
    for any populated leaf (instead of any populated level).
    
    Fixes: 5d425c186537 ("arm64: kernel: add support for cpu cache information")
    
    Signed-off-by: Radu Rendec <rrendec@redhat.com>
    Link: https://lore.kernel.org/r/20250206174420.2178724-1-rrendec@redhat.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f443687ad20c70320d1248f35f57bf46cac8df0a
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Feb 12 13:49:28 2025 +0000

    team: better TEAM_OPTION_TYPE_STRING validation
    
    [ Upstream commit 5bef3ac184b5626ea62385d6b82a1992b89d7940 ]
    
    syzbot reported following splat [1]
    
    Make sure user-provided data contains one nul byte.
    
    [1]
     BUG: KMSAN: uninit-value in string_nocheck lib/vsprintf.c:633 [inline]
     BUG: KMSAN: uninit-value in string+0x3ec/0x5f0 lib/vsprintf.c:714
      string_nocheck lib/vsprintf.c:633 [inline]
      string+0x3ec/0x5f0 lib/vsprintf.c:714
      vsnprintf+0xa5d/0x1960 lib/vsprintf.c:2843
      __request_module+0x252/0x9f0 kernel/module/kmod.c:149
      team_mode_get drivers/net/team/team_core.c:480 [inline]
      team_change_mode drivers/net/team/team_core.c:607 [inline]
      team_mode_option_set+0x437/0x970 drivers/net/team/team_core.c:1401
      team_option_set drivers/net/team/team_core.c:375 [inline]
      team_nl_options_set_doit+0x1339/0x1f90 drivers/net/team/team_core.c:2662
      genl_family_rcv_msg_doit net/netlink/genetlink.c:1115 [inline]
      genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
      genl_rcv_msg+0x1214/0x12c0 net/netlink/genetlink.c:1210
      netlink_rcv_skb+0x375/0x650 net/netlink/af_netlink.c:2543
      genl_rcv+0x40/0x60 net/netlink/genetlink.c:1219
      netlink_unicast_kernel net/netlink/af_netlink.c:1322 [inline]
      netlink_unicast+0xf52/0x1260 net/netlink/af_netlink.c:1348
      netlink_sendmsg+0x10da/0x11e0 net/netlink/af_netlink.c:1892
      sock_sendmsg_nosec net/socket.c:718 [inline]
      __sock_sendmsg+0x30f/0x380 net/socket.c:733
      ____sys_sendmsg+0x877/0xb60 net/socket.c:2573
      ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2627
      __sys_sendmsg net/socket.c:2659 [inline]
      __do_sys_sendmsg net/socket.c:2664 [inline]
      __se_sys_sendmsg net/socket.c:2662 [inline]
      __x64_sys_sendmsg+0x212/0x3c0 net/socket.c:2662
      x64_sys_call+0x2ed6/0x3c30 arch/x86/include/generated/asm/syscalls_64.h:47
      do_syscall_x64 arch/x86/entry/common.c:52 [inline]
      do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Fixes: 3d249d4ca7d0 ("net: introduce ethernet teaming device")
    Reported-by: syzbot+1fcd957a82e3a1baa94d@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=1fcd957a82e3a1baa94d
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Link: https://patch.msgid.link/20250212134928.1541609-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5bb4228c32261d06e4fbece37ec3828bcc005b6b
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Feb 7 13:58:38 2025 +0000

    vrf: use RCU protection in l3mdev_l3_out()
    
    [ Upstream commit 6d0ce46a93135d96b7fa075a94a88fe0da8e8773 ]
    
    l3mdev_l3_out() can be called without RCU being held:
    
    raw_sendmsg()
     ip_push_pending_frames()
      ip_send_skb()
       ip_local_out()
        __ip_local_out()
         l3mdev_ip_out()
    
    Add rcu_read_lock() / rcu_read_unlock() pair to avoid
    a potential UAF.
    
    Fixes: a8e3e1a9f020 ("net: l3mdev: Add hook to output path")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250207135841.1948589-7-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 80f70686857e509dc5fb06be3130a586f59516d2
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Feb 7 13:58:33 2025 +0000

    ndisc: ndisc_send_redirect() must use dev_get_by_index_rcu()
    
    [ Upstream commit 48145a57d4bbe3496e8e4880b23ea6b511e6e519 ]
    
    ndisc_send_redirect() is called under RCU protection, not RTNL.
    
    It must use dev_get_by_index_rcu() instead of __dev_get_by_index()
    
    Fixes: 2f17becfbea5 ("vrf: check the original netdevice for generating redirect")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Stephen Suryaputra <ssuryaextr@gmail.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://patch.msgid.link/20250207135841.1948589-2-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2052b44cd0a62b6fdbe3371e5ba6029c56c400ca
Author: Charles Han <hanchunchao@inspur.com>
Date:   Fri Nov 15 14:26:21 2024 +0800

    HID: multitouch: Add NULL check in mt_input_configured
    
    [ Upstream commit 9b8e2220d3a052a690b1d1b23019673e612494c5 ]
    
    devm_kasprintf() can return a NULL pointer on failure,but this
    returned value in mt_input_configured() is not checked.
    Add NULL check in mt_input_configured(), to handle kernel NULL
    pointer dereference error.
    
    Fixes: 479439463529 ("HID: multitouch: Correct devm device reference for hidinput input_dev name")
    Signed-off-by: Charles Han <hanchunchao@inspur.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit efa8a261c575f816c7e79a87aeb3ef8a0bd6b221
Author: Dai Ngo <dai.ngo@oracle.com>
Date:   Thu Jan 30 11:01:27 2025 -0800

    NFSD: fix hang in nfsd4_shutdown_callback
    
    commit 036ac2778f7b28885814c6fbc07e156ad1624d03 upstream.
    
    If nfs4_client is in courtesy state then there is no point to send
    the callback. This causes nfsd4_shutdown_callback to hang since
    cl_cb_inflight is not 0. This hang lasts about 15 minutes until TCP
    notifies NFSD that the connection was dropped.
    
    This patch modifies nfsd4_run_cb_work to skip the RPC call if
    nfs4_client is in courtesy state.
    
    Signed-off-by: Dai Ngo <dai.ngo@oracle.com>
    Fixes: 66af25799940 ("NFSD: add courteous server support for thread with only delegation")
    Cc: stable@vger.kernel.org
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f7cfee1a316891890c505563aa54f3476db52fd
Author: Li Lingfeng <lilingfeng3@huawei.com>
Date:   Sun Jan 26 17:47:22 2025 +0800

    nfsd: clear acl_access/acl_default after releasing them
    
    commit 7faf14a7b0366f153284db0ad3347c457ea70136 upstream.
    
    If getting acl_default fails, acl_access and acl_default will be released
    simultaneously. However, acl_access will still retain a pointer pointing
    to the released posix_acl, which will trigger a WARNING in
    nfs3svc_release_getacl like this:
    
    ------------[ cut here ]------------
    refcount_t: underflow; use-after-free.
    WARNING: CPU: 26 PID: 3199 at lib/refcount.c:28
    refcount_warn_saturate+0xb5/0x170
    Modules linked in:
    CPU: 26 UID: 0 PID: 3199 Comm: nfsd Not tainted
    6.12.0-rc6-00079-g04ae226af01f-dirty #8
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
    1.16.1-2.fc37 04/01/2014
    RIP: 0010:refcount_warn_saturate+0xb5/0x170
    Code: cc cc 0f b6 1d b3 20 a5 03 80 fb 01 0f 87 65 48 d8 00 83 e3 01 75
    e4 48 c7 c7 c0 3b 9b 85 c6 05 97 20 a5 03 01 e8 fb 3e 30 ff <0f> 0b eb
    cd 0f b6 1d 8a3
    RSP: 0018:ffffc90008637cd8 EFLAGS: 00010282
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff83904fde
    RDX: dffffc0000000000 RSI: 0000000000000008 RDI: ffff88871ed36380
    RBP: ffff888158beeb40 R08: 0000000000000001 R09: fffff520010c6f56
    R10: ffffc90008637ab7 R11: 0000000000000001 R12: 0000000000000001
    R13: ffff888140e77400 R14: ffff888140e77408 R15: ffffffff858b42c0
    FS:  0000000000000000(0000) GS:ffff88871ed00000(0000)
    knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000562384d32158 CR3: 000000055cc6a000 CR4: 00000000000006f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <TASK>
     ? refcount_warn_saturate+0xb5/0x170
     ? __warn+0xa5/0x140
     ? refcount_warn_saturate+0xb5/0x170
     ? report_bug+0x1b1/0x1e0
     ? handle_bug+0x53/0xa0
     ? exc_invalid_op+0x17/0x40
     ? asm_exc_invalid_op+0x1a/0x20
     ? tick_nohz_tick_stopped+0x1e/0x40
     ? refcount_warn_saturate+0xb5/0x170
     ? refcount_warn_saturate+0xb5/0x170
     nfs3svc_release_getacl+0xc9/0xe0
     svc_process_common+0x5db/0xb60
     ? __pfx_svc_process_common+0x10/0x10
     ? __rcu_read_unlock+0x69/0xa0
     ? __pfx_nfsd_dispatch+0x10/0x10
     ? svc_xprt_received+0xa1/0x120
     ? xdr_init_decode+0x11d/0x190
     svc_process+0x2a7/0x330
     svc_handle_xprt+0x69d/0x940
     svc_recv+0x180/0x2d0
     nfsd+0x168/0x200
     ? __pfx_nfsd+0x10/0x10
     kthread+0x1a2/0x1e0
     ? kthread+0xf4/0x1e0
     ? __pfx_kthread+0x10/0x10
     ret_from_fork+0x34/0x60
     ? __pfx_kthread+0x10/0x10
     ret_from_fork_asm+0x1a/0x30
     </TASK>
    Kernel panic - not syncing: kernel: panic_on_warn set ...
    
    Clear acl_access/acl_default after posix_acl_release is called to prevent
    UAF from being triggered.
    
    Fixes: a257cdd0e217 ("[PATCH] NFSD: Add server support for NFSv3 ACLs.")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/all/20241107014705.2509463-1-lilingfeng@huaweicloud.com/
    Signed-off-by: Li Lingfeng <lilingfeng3@huawei.com>
    Reviewed-by: Rick Macklem <rmacklem@uoguelph.ca>
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e22a97700901ba5e8bf8db68056a0d50f9440cae
Author: Sean Anderson <sean.anderson@linux.dev>
Date:   Fri Jan 10 16:38:22 2025 -0500

    tty: xilinx_uartps: split sysrq handling
    
    commit b06f388994500297bb91be60ffaf6825ecfd2afe upstream.
    
    lockdep detects the following circular locking dependency:
    
    CPU 0                      CPU 1
    ========================== ============================
    cdns_uart_isr()            printk()
      uart_port_lock(port)       console_lock()
                                 cdns_uart_console_write()
                                   if (!port->sysrq)
                                     uart_port_lock(port)
      uart_handle_break()
        port->sysrq = ...
      uart_handle_sysrq_char()
        printk()
          console_lock()
    
    The fixed commit attempts to avoid this situation by only taking the
    port lock in cdns_uart_console_write if port->sysrq unset. However, if
    (as shown above) cdns_uart_console_write runs before port->sysrq is set,
    then it will try to take the port lock anyway. This may result in a
    deadlock.
    
    Fix this by splitting sysrq handling into two parts. We use the prepare
    helper under the port lock and defer handling until we release the lock.
    
    Fixes: 74ea66d4ca06 ("tty: xuartps: Improve sysrq handling")
    Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
    Cc: stable@vger.kernel.org # c980248179d: serial: xilinx_uartps: Use port lock wrappers
    Acked-by: John Ogness <john.ogness@linutronix.de>
    Link: https://lore.kernel.org/r/20250110213822.2107462-1-sean.anderson@linux.dev
    Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59cf03ddf127def4fd7c98ea241bc15ec39485b3
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Mon Dec 30 19:12:32 2024 +0100

    mptcp: prevent excessive coalescing on receive
    
    commit 56b824eb49d6258aa0bad09a406ceac3f643cdae upstream.
    
    Currently the skb size after coalescing is only limited by the skb
    layout (the skb must not carry frag_list). A single coalesced skb
    covering several MSS can potentially fill completely the receive
    buffer. In such a case, the snd win will zero until the receive buffer
    will be empty again, affecting tput badly.
    
    Fixes: 8268ed4c9d19 ("mptcp: introduce and use mptcp_try_coalesce()")
    Cc: stable@vger.kernel.org # please delay 2 weeks after 6.13-final release
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Mat Martineau <martineau@kernel.org>
    Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
    Link: https://patch.msgid.link/20241230-net-mptcp-rbuf-fixes-v1-3-8608af434ceb@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03b605ac1e5bf3684cc7a64c0de646aaeb367ff1
Author: Su Yue <glass.su@suse.com>
Date:   Mon Jan 6 22:06:40 2025 +0800

    ocfs2: check dir i_size in ocfs2_find_entry
    
    commit b0fce54b8c0d8e5f2b4c243c803c5996e73baee8 upstream.
    
    syz reports an out of bounds read:
    
    ==================================================================
    BUG: KASAN: slab-out-of-bounds in ocfs2_match fs/ocfs2/dir.c:334
    [inline]
    BUG: KASAN: slab-out-of-bounds in ocfs2_search_dirblock+0x283/0x6e0
    fs/ocfs2/dir.c:367
    Read of size 1 at addr ffff88804d8b9982 by task syz-executor.2/14802
    
    CPU: 0 UID: 0 PID: 14802 Comm: syz-executor.2 Not tainted 6.13.0-rc4 #2
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1
    04/01/2014
    Sched_ext: serialise (enabled+all), task: runnable_at=-10ms
    Call Trace:
    <TASK>
    __dump_stack lib/dump_stack.c:94 [inline]
    dump_stack_lvl+0x229/0x350 lib/dump_stack.c:120
    print_address_description mm/kasan/report.c:378 [inline]
    print_report+0x164/0x530 mm/kasan/report.c:489
    kasan_report+0x147/0x180 mm/kasan/report.c:602
    ocfs2_match fs/ocfs2/dir.c:334 [inline]
    ocfs2_search_dirblock+0x283/0x6e0 fs/ocfs2/dir.c:367
    ocfs2_find_entry_id fs/ocfs2/dir.c:414 [inline]
    ocfs2_find_entry+0x1143/0x2db0 fs/ocfs2/dir.c:1078
    ocfs2_find_files_on_disk+0x18e/0x530 fs/ocfs2/dir.c:1981
    ocfs2_lookup_ino_from_name+0xb6/0x110 fs/ocfs2/dir.c:2003
    ocfs2_lookup+0x30a/0xd40 fs/ocfs2/namei.c:122
    lookup_open fs/namei.c:3627 [inline]
    open_last_lookups fs/namei.c:3748 [inline]
    path_openat+0x145a/0x3870 fs/namei.c:3984
    do_filp_open+0xe9/0x1c0 fs/namei.c:4014
    do_sys_openat2+0x135/0x1d0 fs/open.c:1402
    do_sys_open fs/open.c:1417 [inline]
    __do_sys_openat fs/open.c:1433 [inline]
    __se_sys_openat fs/open.c:1428 [inline]
    __x64_sys_openat+0x15d/0x1c0 fs/open.c:1428
    do_syscall_x64 arch/x86/entry/common.c:52 [inline]
    do_syscall_64+0xf6/0x210 arch/x86/entry/common.c:83
    entry_SYSCALL_64_after_hwframe+0x77/0x7f
    RIP: 0033:0x7f01076903ad
    Code: c3 e8 a7 2b 00 00 0f 1f 80 00 00 00 00 f3 0f 1e fa 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:00007f01084acfc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
    RAX: ffffffffffffffda RBX: 00007f01077cbf80 RCX: 00007f01076903ad
    RDX: 0000000000105042 RSI: 0000000020000080 RDI: ffffffffffffff9c
    RBP: 00007f01077cbf80 R08: 0000000000000000 R09: 0000000000000000
    R10: 00000000000001ff R11: 0000000000000246 R12: 0000000000000000
    R13: 00007f01077cbf80 R14: 00007f010764fc90 R15: 00007f010848d000
    </TASK>
    ==================================================================
    
    And a general protection fault in ocfs2_prepare_dir_for_insert:
    
    ==================================================================
    loop0: detected capacity change from 0 to 32768
    JBD2: Ignoring recovery information on journal
    ocfs2: Mounting device (7,0) on (node local, slot 0) with ordered data
    mode.
    Oops: general protection fault, probably for non-canonical address
    0xdffffc0000000001: 0000 [#1] PREEMPT SMP KASAN NOPTI
    KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
    CPU: 0 UID: 0 PID: 5096 Comm: syz-executor792 Not tainted
    6.11.0-rc4-syzkaller-00002-gb0da640826ba #0
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
    1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
    RIP: 0010:ocfs2_find_dir_space_id fs/ocfs2/dir.c:3406 [inline]
    RIP: 0010:ocfs2_prepare_dir_for_insert+0x3309/0x5c70 fs/ocfs2/dir.c:4280
    Code: 00 00 e8 2a 25 13 fe e9 ba 06 00 00 e8 20 25 13 fe e9 4f 01 00 00
    e8 16 25 13 fe 49 8d 7f 08 49 8d 5f 09 48 89 f8 48 c1 e8 03 <42> 0f b6
    04 20 84 c0 0f 85 bd 23 00 00 48 89 d8 48 c1 e8 03 42 0f
    RSP: 0018:ffffc9000af9f020 EFLAGS: 00010202
    RAX: 0000000000000001 RBX: 0000000000000009 RCX: ffff88801e27a440
    RDX: 0000000000000000 RSI: 0000000000000400 RDI: 0000000000000008
    RBP: ffffc9000af9f830 R08: ffffffff8380395b R09: ffffffff838090a7
    R10: 0000000000000002 R11: ffff88801e27a440 R12: dffffc0000000000
    R13: ffff88803c660878 R14: f700000000000088 R15: 0000000000000000
    FS:  000055555a677380(0000) GS:ffff888020800000(0000)
    knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000560bce569178 CR3: 000000001de5a000 CR4: 0000000000350ef0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
    <TASK>
    ocfs2_mknod+0xcaf/0x2b40 fs/ocfs2/namei.c:292
    vfs_mknod+0x36d/0x3b0 fs/namei.c:4088
    do_mknodat+0x3ec/0x5b0
    __do_sys_mknodat fs/namei.c:4166 [inline]
    __se_sys_mknodat fs/namei.c:4163 [inline]
    __x64_sys_mknodat+0xa7/0xc0 fs/namei.c:4163
    do_syscall_x64 arch/x86/entry/common.c:52 [inline]
    do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
    entry_SYSCALL_64_after_hwframe+0x77/0x7f
    RIP: 0033:0x7f2dafda3a99
    Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 f1 17 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 b8 ff ff ff f7 d8
    64 89 01 48
    RSP: 002b:00007ffe336a6658 EFLAGS: 00000246 ORIG_RAX:
    0000000000000103
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX:
    00007f2dafda3a99
    RDX: 00000000000021c0 RSI: 0000000020000040 RDI:
    00000000ffffff9c
    RBP: 00007f2dafe1b5f0 R08: 0000000000004480 R09:
    000055555a6784c0
    R10: 0000000000000103 R11: 0000000000000246 R12:
    00007ffe336a6680
    R13: 00007ffe336a68a8 R14: 431bde82d7b634db R15:
    00007f2dafdec03b
    </TASK>
    ==================================================================
    
    The two reports are all caused invalid negative i_size of dir inode.  For
    ocfs2, dir_inode can't be negative or zero.
    
    Here add a check in which is called by ocfs2_check_dir_for_entry().  It
    fixes the second report as ocfs2_check_dir_for_entry() must be called
    before ocfs2_prepare_dir_for_insert().  Also set a up limit for dir with
    OCFS2_INLINE_DATA_FL.  The i_size can't be great than blocksize.
    
    Link: https://lkml.kernel.org/r/20250106140640.92260-1-glass.su@suse.com
    Reported-by: Jiacheng Xu <stitch@zju.edu.cn>
    Link: https://lore.kernel.org/ocfs2-devel/17a04f01.1ae74.19436d003fc.Coremail.stitch@zju.edu.cn/T/#u
    Reported-by: syzbot+5a64828fcc4c2ad9b04f@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/all/0000000000005894f3062018caf1@google.com/T/
    Signed-off-by: Su Yue <glass.su@suse.com>
    Reviewed-by: Heming Zhao <heming.zhao@suse.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Jun Piao <piaojun@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad73b43e6908321433eec18c3bd3968a8008f662
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Wed Dec 22 07:32:15 2021 +0300

    memory: tegra20-emc: Correct memory device mask
    
    commit 9ff684342ee7d3ea2755c6e9b60bc43085baa3ad upstream.
    
    Memory chip select is swapped when we read mode register, correct it.
    We didn't have devices that use a single LPDDR chip and both chips are
    always identical, hence this change is just a minor improvement.
    
    Fixes: 131dd9a436d8 ("memory: tegra20-emc: Support matching timings by LPDDR2 configuration")
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Link: https://lore.kernel.org/r/20211222043215.28237-2-digetx@gmail.com
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 12a1cf9db1785f4d25b7852eaad612df917c885c
Author: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Date:   Fri Dec 15 10:09:43 2023 +0100

    gpio: xilinx: remove excess kernel doc
    
    commit 4c7fcbf5077532b80bc233c83d56e09a6bfa16b0 upstream.
    
    The irqchip field has been removed from struct xgpio_instance so remove
    the doc as well.
    
    Fixes: b4510f8fd5d0 ("gpio: xilinx: Convert to immutable irq_chip")
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202312150239.IyuTVvrL-lkp@intel.com/
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Reviewed-by: Michal Simek <michal.simek@amd.com>
    Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9772e2e15482b07ab87dbe51b764fb051dedf520
Author: Paul Fertser <fercerpav@gmail.com>
Date:   Mon Jan 20 16:35:36 2025 +0300

    net/ncsi: use dev_set_mac_address() for Get MC MAC Address handling
    
    commit 05d91cdb1f9108426b14975ef4eeddf15875ca05 upstream.
    
    Copy of the rationale from 790071347a0a1a89e618eedcd51c687ea783aeb3:
    
    Change ndo_set_mac_address to dev_set_mac_address because
    dev_set_mac_address provides a way to notify network layer about MAC
    change. In other case, services may not aware about MAC change and keep
    using old one which set from network adapter driver.
    
    As example, DHCP client from systemd do not update MAC address without
    notification from net subsystem which leads to the problem with acquiring
    the right address from DHCP server.
    
    Since dev_set_mac_address requires RTNL lock the operation can not be
    performed directly in the response handler, see
    9e2bbab94b88295dcc57c7580393c9ee08d7314d.
    
    The way of selecting the first suitable MAC address from the list is
    changed, instead of having the driver check it this patch just assumes
    any valid MAC should be good.
    
    Fixes: b8291cf3d118 ("net/ncsi: Add NC-SI 1.2 Get MC MAC Address command")
    Signed-off-by: Paul Fertser <fercerpav@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3fec5d194fc9101cf4b95b01f92cc1b06cf24273
Author: WangYuli <wangyuli@uniontech.com>
Date:   Sat Jan 4 22:47:08 2025 +0800

    MIPS: ftrace: Declare ftrace_get_parent_ra_addr() as static
    
    commit ddd068d81445b17ac0bed084dfeb9e58b4df3ddd upstream.
    
    Declare ftrace_get_parent_ra_addr() as static to suppress clang
    compiler warning that 'no previous prototype'. This function is
    not intended to be called from other parts.
    
    Fix follow error with clang-19:
    
    arch/mips/kernel/ftrace.c:251:15: error: no previous prototype for function 'ftrace_get_parent_ra_addr' [-Werror,-Wmissing-prototypes]
      251 | unsigned long ftrace_get_parent_ra_addr(unsigned long self_ra, unsigned long
          |               ^
    arch/mips/kernel/ftrace.c:251:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      251 | unsigned long ftrace_get_parent_ra_addr(unsigned long self_ra, unsigned long
          | ^
          | static
    1 error generated.
    
    Signed-off-by: WangYuli <wangyuli@uniontech.com>
    Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1334c64a5d1de6666e0c9f984db6745083df1eb4
Author: Thomas Weißschuh <linux@weissschuh.net>
Date:   Thu Jan 23 08:22:40 2025 +0100

    ptp: Ensure info->enable callback is always set
    
    commit fd53aa40e65f518453115b6f56183b0c201db26b upstream.
    
    The ioctl and sysfs handlers unconditionally call the ->enable callback.
    Not all drivers implement that callback, leading to NULL dereferences.
    Example of affected drivers: ptp_s390.c, ptp_vclock.c and ptp_mock.c.
    
    Instead use a dummy callback if no better was specified by the driver.
    
    Fixes: d94ba80ebbea ("ptp: Added a brand new class driver for ptp clocks.")
    Cc: stable@vger.kernel.org
    Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Link: https://patch.msgid.link/20250123-ptp-enable-v1-1-b015834d3a47@weissschuh.net
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0eda6b12a108c839fbff5b23345a0954b7e0b972
Author: Milos Reljin <milos_reljin@outlook.com>
Date:   Fri Jan 24 10:41:02 2025 +0000

    net: phy: c45-tjaxx: add delay between MDIO write and read in soft_reset
    
    commit bd1bbab717608757cccbbe08b0d46e6c3ed0ced5 upstream.
    
    In application note (AN13663) for TJA1120, on page 30, there's a figure
    with average PHY startup timing values following software reset.
    The time it takes for SMI to become operational after software reset
    ranges roughly from 500 us to 1500 us.
    
    This commit adds 2000 us delay after MDIO write which triggers software
    reset. Without this delay, soft_reset function returns an error and
    prevents successful PHY init.
    
    Cc: stable@vger.kernel.org
    Fixes: b050f2f15e04 ("phy: nxp-c45: add driver for tja1103")
    Signed-off-by: Milos Reljin <milos_reljin@outlook.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Link: https://patch.msgid.link/AM8P250MB0124D258E5A71041AF2CC322E1E32@AM8P250MB0124.EURP250.PROD.OUTLOOK.COM
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83db3d545d39a1d663ecfee340e7b1f46bd7b975
Author: Paul Fertser <fercerpav@gmail.com>
Date:   Thu Jan 16 18:29:00 2025 +0300

    net/ncsi: wait for the last response to Deselect Package before configuring channel
    
    commit 6bb194d036c6e1b329dcdff459338cdd9a54802a upstream.
    
    The NCSI state machine as it's currently implemented assumes that
    transition to the next logical state is performed either explicitly by
    calling `schedule_work(&ndp->work)` to re-queue itself or implicitly
    after processing the predefined (ndp->pending_req_num) number of
    replies. Thus to avoid the configuration FSM from advancing prematurely
    and getting out of sync with the process it's essential to not skip
    waiting for a reply.
    
    This patch makes the code wait for reception of the Deselect Package
    response for the last package probed before proceeding to channel
    configuration.
    
    Thanks go to Potin Lai and Cosmo Chou for the initial investigation and
    testing.
    
    Fixes: 8e13f70be05e ("net/ncsi: Probe single packages to avoid conflict")
    Cc: stable@vger.kernel.org
    Signed-off-by: Paul Fertser <fercerpav@gmail.com>
    Link: https://patch.msgid.link/20250116152900.8656-1-fercerpav@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ed6d46f80374a0f1975f2bd8a7b4d74e63f5019
Author: Ekansh Gupta <quic_ekangupt@quicinc.com>
Date:   Fri Jan 10 13:42:38 2025 +0000

    misc: fastrpc: Fix registered buffer page address
    
    commit 6ca4ea1f88a06a04ed7b2c9c6bf9f00833b68214 upstream.
    
    For registered  buffers, fastrpc driver sends the buffer information
    to remote subsystem. There is a problem with current implementation
    where the page address is being sent with an offset leading to
    improper buffer address on DSP. This is leads to functional failures
    as DSP expects base address in page information and extracts offset
    information from remote arguments. Mask the offset and pass the base
    page address to DSP.
    
    This issue is observed is a corner case when some buffer which is registered
    with fastrpc framework is passed with some offset by user and then the DSP
    implementation tried to read the data. As DSP expects base address and takes
    care of offsetting with remote arguments, passing an offsetted address will
    result in some unexpected data read in DSP.
    
    All generic usecases usually pass the buffer as it is hence is problem is
    not usually observed. If someone tries to pass offsetted buffer and then
    tries to compare data at HLOS and DSP end, then the ambiguity will be observed.
    
    Fixes: 80f3afd72bd4 ("misc: fastrpc: consider address offset before sending to DSP")
    Cc: stable@kernel.org
    Signed-off-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20250110134239.123603-3-srinivas.kandagatla@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 82060333500661fe92864fa2c9c63436627d504d
Author: Ivan Stepchenko <sid@itb.spb.ru>
Date:   Thu Nov 14 16:29:51 2024 +0300

    mtd: onenand: Fix uninitialized retlen in do_otp_read()
    
    commit 70a71f8151b9879b0950668ce3ad76263261fee0 upstream.
    
    The function do_otp_read() does not set the output parameter *retlen,
    which is expected to contain the number of bytes actually read.
    As a result, in onenand_otp_walk(), the tmp_retlen variable remains
    uninitialized after calling do_otp_walk() and used to change
    the values of the buf, len and retlen variables.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: 49dc08eeda70 ("[MTD] [OneNAND] fix numerous races")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ivan Stepchenko <sid@itb.spb.ru>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 10b3f947b609713e04022101f492d288a014ddfa
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Fri Jan 17 12:38:41 2025 +0300

    NFC: nci: Add bounds checking in nci_hci_create_pipe()
    
    commit 110b43ef05342d5a11284cc8b21582b698b4ef1c upstream.
    
    The "pipe" variable is a u8 which comes from the network.  If it's more
    than 127, then it results in memory corruption in the caller,
    nci_hci_connect_gate().
    
    Cc: stable@vger.kernel.org
    Fixes: a1b0b9415817 ("NFC: nci: Create pipe on specific gate in nci_hci_connect_gate")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://patch.msgid.link/bcf5453b-7204-4297-9c20-4d8c7dacf586@stanley.mountain
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f41df5fd4c11d26e929a85f7239799641f92da7
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Sat Jan 25 07:20:53 2025 +0900

    nilfs2: fix possible int overflows in nilfs_fiemap()
    
    commit 6438ef381c183444f7f9d1de18f22661cba1e946 upstream.
    
    Since nilfs_bmap_lookup_contig() in nilfs_fiemap() calculates its result
    by being prepared to go through potentially maxblocks == INT_MAX blocks,
    the value in n may experience an overflow caused by left shift of blkbits.
    
    While it is extremely unlikely to occur, play it safe and cast right hand
    expression to wider type to mitigate the issue.
    
    Found by Linux Verification Center (linuxtesting.org) with static analysis
    tool SVACE.
    
    Link: https://lkml.kernel.org/r/20250124222133.5323-1-konishi.ryusuke@gmail.com
    Fixes: 622daaff0a89 ("nilfs2: fiemap support")
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8aee4184c5b79e486598c15aa80687c77f6f6e6e
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Thu Dec 5 17:16:29 2024 +0000

    ocfs2: handle a symlink read error correctly
    
    commit 2b4c2094da6d84e69b843dd3317902e977bf64bd upstream.
    
    Patch series "Convert ocfs2 to use folios".
    
    Mark did a conversion of ocfs2 to use folios and sent it to me as a
    giant patch for review ;-)
    
    So I've redone it as individual patches, and credited Mark for the patches
    where his code is substantially the same.  It's not a bad way to do it;
    his patch had some bugs and my patches had some bugs.  Hopefully all our
    bugs were different from each other.  And hopefully Mark likes all the
    changes I made to his code!
    
    
    This patch (of 23):
    
    If we can't read the buffer, be sure to unlock the page before returning.
    
    Link: https://lkml.kernel.org/r/20241205171653.3179945-1-willy@infradead.org
    Link: https://lkml.kernel.org/r/20241205171653.3179945-2-willy@infradead.org
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: Mark Tinguely <mark.tinguely@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a1c86066f1b178edbe56b7c2434705dfb8606aa
Author: Heming Zhao <heming.zhao@suse.com>
Date:   Tue Jan 21 19:22:03 2025 +0800

    ocfs2: fix incorrect CPU endianness conversion causing mount failure
    
    commit f921da2c34692dfec5f72b5ae347b1bea22bb369 upstream.
    
    Commit 23aab037106d ("ocfs2: fix UBSAN warning in ocfs2_verify_volume()")
    introduced a regression bug.  The blksz_bits value is already converted to
    CPU endian in the previous code; therefore, the code shouldn't use
    le32_to_cpu() anymore.
    
    Link: https://lkml.kernel.org/r/20250121112204.12834-1-heming.zhao@suse.com
    Fixes: 23aab037106d ("ocfs2: fix UBSAN warning in ocfs2_verify_volume()")
    Signed-off-by: Heming Zhao <heming.zhao@suse.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c00e53672d7dda35c5a62dd6b0b21c95d1ca99b2
Author: Mike Snitzer <snitzer@kernel.org>
Date:   Thu Jan 16 20:05:39 2025 -0500

    pnfs/flexfiles: retry getting layout segment for reads
    
    commit eb3fabde15bccdf34f1c9b35a83aa4c0dacbb4ca upstream.
    
    If ff_layout_pg_get_read()'s attempt to get a layout segment results
    in -EAGAIN have ff_layout_pg_init_read() retry it after sleeping.
    
    If "softerr" mount is used, use 'io_maxretrans' to limit the number of
    attempts to get a layout segment.
    
    This fixes a long-standing issue of O_DIRECT reads failing with
    -EAGAIN (11) when using flexfiles Client Side Mirroring (CSM).
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f65ce06387f8c1fb54bd59e18a8428248ec68eaf
Author: Alex Williamson <alex.williamson@redhat.com>
Date:   Wed Jan 22 10:38:30 2025 -0700

    vfio/platform: check the bounds of read/write syscalls
    
    commit ce9ff21ea89d191e477a02ad7eabf4f996b80a69 upstream.
    
    count and offset are passed from user space and not checked, only
    offset is capped to 40 bits, which can be used to read/write out of
    bounds of the device.
    
    Fixes: 6e3f26456009 (“vfio/platform: read and write support for the device fd”)
    Cc: stable@vger.kernel.org
    Reported-by: Mostafa Saleh <smostafa@google.com>
    Reviewed-by: Eric Auger <eric.auger@redhat.com>
    Reviewed-by: Mostafa Saleh <smostafa@google.com>
    Tested-by: Mostafa Saleh <smostafa@google.com>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66325de7180152c15597c600711c7f6d5538e6aa
Author: Jennifer Berringer <jberring@redhat.com>
Date:   Mon Dec 30 14:19:01 2024 +0000

    nvmem: core: improve range check for nvmem_cell_write()
    
    commit 31507fc2ad36e0071751a710449db19c85d82a7f upstream.
    
    When __nvmem_cell_entry_write() is called for an nvmem cell that does
    not need bit shifting, it requires that the len parameter exactly
    matches the nvmem cell size. However, when the nvmem cell has a nonzero
    bit_offset, it was skipping this check.
    
    Accepting values of len larger than the cell size results in
    nvmem_cell_prepare_write_buffer() trying to write past the end of a heap
    buffer that it allocates. Add a check to avoid that problem and instead
    return -EINVAL when len doesn't match the number of bits expected by the
    nvmem cell when bit_offset is nonzero.
    
    This check uses cell->nbits in order to allow providing the smaller size
    to cells that are shifted into another byte by bit_offset. For example,
    a cell with nbits=8 and nonzero bit_offset would have bytes=2 but should
    accept a 1-byte write here, although no current callers depend on this.
    
    Fixes: 69aba7948cbe ("nvmem: Add a simple NVMEM framework for consumers")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jennifer Berringer <jberring@redhat.com>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20241230141901.263976-7-srinivas.kandagatla@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c897de3d1f4d319184a79f5473d96a34e3857bb9
Author: Luca Weiss <luca.weiss@fairphone.com>
Date:   Mon Dec 30 14:19:00 2024 +0000

    nvmem: qcom-spmi-sdam: Set size in struct nvmem_config
    
    commit e88f516ea417c71bb3702603ac6af9e95338cfa6 upstream.
    
    Let the nvmem core know what size the SDAM is, most notably this fixes
    the size of /sys/bus/nvmem/devices/spmi_sdam*/nvmem being '0' and makes
    user space work with that file.
    
      ~ # hexdump -C -s 64 /sys/bus/nvmem/devices/spmi_sdam2/nvmem
      00000040  02 01 00 00 04 00 00 00  00 00 00 00 00 00 00 00  |................|
      00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      *
      00000080
    
    Fixes: 40ce9798794f ("nvmem: add QTI SDAM driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
    Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20241230141901.263976-6-srinivas.kandagatla@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f52f00efd8c0088992ac07ef46af6096e4f0e52e
Author: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Date:   Tue Dec 3 10:19:30 2024 +0100

    crypto: qce - unregister previously registered algos in error path
    
    commit e80cf84b608725303113d6fe98bb727bf7b7a40d upstream.
    
    If we encounter an error when registering alorithms with the crypto
    framework, we just bail out and don't unregister the ones we
    successfully registered in prior iterations of the loop.
    
    Add code that goes back over the algos and unregisters them before
    returning an error from qce_register_algs().
    
    Cc: stable@vger.kernel.org
    Fixes: ec8f5d8f6f76 ("crypto: qce - Qualcomm crypto engine driver")
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit efae52c61150e68fac5533026fe288f01db28434
Author: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Date:   Tue Dec 3 10:19:29 2024 +0100

    crypto: qce - fix goto jump in error path
    
    commit 5278275c1758a38199b43530adfc50098f4b41c7 upstream.
    
    If qce_check_version() fails, we should jump to err_dma as we already
    called qce_dma_request() a couple lines before.
    
    Cc: stable@vger.kernel.org
    Fixes: ec8f5d8f6f76 ("crypto: qce - Qualcomm crypto engine driver")
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14810fb9909114dd9f9b1a3b1b93ca4780dd9341
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Tue Dec 3 21:20:09 2024 +0000

    media: uvcvideo: Remove redundant NULL assignment
    
    commit 04d3398f66d2d31c4b8caea88f051a4257b7a161 upstream.
    
    ctrl->handle will only be different than NULL for controls that have
    mappings. This is because that assignment is only done inside
    uvc_ctrl_set() for mapped controls.
    
    Cc: stable@vger.kernel.org
    Fixes: e5225c820c05 ("media: uvcvideo: Send a control event when a Control Change interrupt arrives")
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-2-26c867231118@chromium.org
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 74512c02152562de62ea52144e00fb39932f6453
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Thu Nov 14 19:10:30 2024 +0000

    media: uvcvideo: Fix event flags in uvc_ctrl_send_events
    
    commit c31cffd5ae2c3d7ef21d9008977a9d117ce7a64e upstream.
    
    If there is an event that needs the V4L2_EVENT_CTRL_CH_FLAGS flag, all
    the following events will have that flag, regardless if they need it or
    not.
    
    This is because we keep using the same variable all the time and we do
    not reset its original value.
    
    Cc: stable@vger.kernel.org
    Fixes: 805e9b4a06bf ("[media] uvcvideo: Send control change events for slave ctrls when the master changes")
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Link: https://lore.kernel.org/r/20241114-uvc-roi-v15-1-64cfeb56b6f8@chromium.org
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1662c5812b84368359b7b796639c9170a2bb672a
Author: Mehdi Djait <mehdi.djait@linux.intel.com>
Date:   Wed Dec 11 14:30:45 2024 +0100

    media: ccs: Fix cleanup order in ccs_probe()
    
    commit 6fdbff0f54786e94f0f630ff200ec1d666b1633e upstream.
    
    ccs_limits is allocated in ccs_read_all_limits() after the allocation of
    mdata.backing. Ensure that resources are freed in the reverse order of
    their allocation by moving out_free_ccs_limits up.
    
    Fixes: a11d3d6891f0 ("media: ccs: Read CCS static data from firmware binaries")
    Cc: stable@vger.kernel.org
    Signed-off-by: Mehdi Djait <mehdi.djait@linux.intel.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66a2c461703ea34e8ccb3071f31fcb9b28f31736
Author: Sakari Ailus <sakari.ailus@linux.intel.com>
Date:   Tue Dec 3 10:10:23 2024 +0200

    media: ccs: Fix CCS static data parsing for large block sizes
    
    commit 82b696750f0b60e7513082a10ad42786854f59f8 upstream.
    
    The length field of the CCS static data blocks was mishandled, leading to
    wrong interpretation of the length header for blocks that are 16 kiB in
    size. Such large blocks are very, very rare and so this wasn't found
    earlier.
    
    As the length is used as part of input validation, the issue has no
    security implications.
    
    Fixes: a6b396f410b1 ("media: ccs: Add CCS static data parser library")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6fae50f5eb701f836196b7b1a66913abad9e9f3
Author: Sam Bobrowicz <sam@elite-embedded.com>
Date:   Fri Nov 22 09:28:01 2024 +0100

    media: ov5640: fix get_light_freq on auto
    
    commit 001d3753538d26ddcbef011f5643cfff58a7f672 upstream.
    
    Light frequency was not properly returned when in auto
    mode and the detected frequency was 60Hz.
    
    Fixes: 19a81c1426c1 ("[media] add Omnivision OV5640 sensor driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sam Bobrowicz <sam@elite-embedded.com>
    Signed-off-by: Michal Simek <michal.simek@amd.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a6c627f3fe4624aba1e3d81e1fa95e70568d3ae
Author: Cosmin Tanislav <demonsingur@gmail.com>
Date:   Fri Nov 22 16:55:24 2024 +0200

    media: mc: fix endpoint iteration
    
    commit fb2bd86270cd0ad004f4c614ba4f8c63a5720e25 upstream.
    
    When creating links from a subdev to a sink, the current logic tries to
    iterate over the endpoints of dev's fwnode.
    
    This might not be correct when the subdev uses a different fwnode
    compared to the dev's fwnode.
    
    If, when registering, the subdev's fwnode is not set, the code inside
    v4l2_async_register_subdev will set it to the dev's fwnode.
    
    To fix this, just use the subdev's fwnode.
    
    Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com>
    Fixes: 0d3c81e82da9 ("media: v4l2-mc: add v4l2_create_fwnode_links helpers")
    Cc: stable@vger.kernel.org
    Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e6cd5f99496f840cd7cc24bb47876e17d150d1f
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Thu Aug 22 18:48:51 2024 +0200

    soc: qcom: smem_state: fix missing of_node_put in error path
    
    commit 70096b4990848229d0784c5e51dc3c7c072f1111 upstream.
    
    If of_parse_phandle_with_args() succeeds, the OF node reference should
    be dropped, regardless of number of phandle arguments.
    
    Cc: stable@vger.kernel.org
    Fixes: 9460ae2ff308 ("soc: qcom: Introduce common SMEM state machine code")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20240822164853.231087-2-krzysztof.kozlowski@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1880c45ebe149a72c44d459b15d091b71c7f9bf1
Author: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Date:   Sat Dec 14 23:55:50 2024 +0100

    iio: light: as73211: fix channel handling in only-color triggered buffer
    
    commit ab09c6cfe01b317f515bcd944668697241a54b9d upstream.
    
    The channel index is off by one unit if AS73211_SCAN_MASK_ALL is not
    set (optimized path for color channel readings), and it must be shifted
    instead of leaving an empty channel for the temperature when it is off.
    
    Once the channel index is fixed, the uninitialized channel must be set
    to zero to avoid pushing uninitialized data.
    
    Add available_scan_masks for all channels and only-color channels to let
    the IIO core demux and repack the enabled channels.
    
    Cc: stable@vger.kernel.org
    Fixes: 403e5586b52e ("iio: light: as73211: New driver")
    Tested-by: Christian Eggers <ceggers@arri.de>
    Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
    Link: https://patch.msgid.link/20241214-iio_memset_scan_holes-v4-1-260b395b8ed5@gmail.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22d1dcd0b053430d5fb4b52ee85379ecd042e300
Author: Sakari Ailus <sakari.ailus@linux.intel.com>
Date:   Tue Dec 3 12:23:01 2024 +0200

    media: ccs: Clean up parsed CCS static data on parse failure
    
    commit da73efa8e675a2b58f1c7ae61201acfe57714bf7 upstream.
    
    ccs_data_parse() releases the allocated in-memory data structure when the
    parser fails, but it does not clean up parsed metadata that is there to
    help access the actual data. Do that, in order to return the data
    structure in a sane state.
    
    Fixes: a6b396f410b1 ("media: ccs: Add CCS static data parser library")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Reviewed-by: Mehdi Djait <mehdi.djait@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6bdbb75ffc6cf58513d6785da8885252aac235e0
Author: Wentao Liang <vulab@iscas.ac.cn>
Date:   Fri Jan 24 11:45:09 2025 +0800

    xfs: Add error handling for xfs_reflink_cancel_cow_range
    
    commit 26b63bee2f6e711c5a169997fd126fddcfb90848 upstream.
    
    In xfs_inactive(), xfs_reflink_cancel_cow_range() is called
    without error handling, risking unnoticed failures and
    inconsistent behavior compared to other parts of the code.
    
    Fix this issue by adding an error handling for the
    xfs_reflink_cancel_cow_range(), improving code robustness.
    
    Fixes: 6231848c3aa5 ("xfs: check for cow blocks before trying to clear them")
    Cc: stable@vger.kernel.org # v4.17
    Reviewed-by: Darrick J. Wong <djwong@kernel.org>
    Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
    Signed-off-by: Carlos Maiolino <cem@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e9af1ddbc98ea6fbecb075678c071d34269dc18
Author: Eric Biggers <ebiggers@google.com>
Date:   Tue Dec 3 10:05:53 2024 -0800

    crypto: qce - fix priority to be less than ARMv8 CE
    
    commit 49b9258b05b97c6464e1964b6a2fddb3ddb65d17 upstream.
    
    As QCE is an order of magnitude slower than the ARMv8 Crypto Extensions
    on the CPU, and is also less well tested, give it a lower priority.
    Previously the QCE SHA algorithms had higher priority than the ARMv8 CE
    equivalents, and the ciphers such as AES-XTS had the same priority which
    meant the QCE versions were chosen if they happened to be loaded later.
    
    Fixes: ec8f5d8f6f76 ("crypto: qce - Qualcomm crypto engine driver")
    Cc: stable@vger.kernel.org
    Cc: Bartosz Golaszewski <brgl@bgdev.pl>
    Cc: Neil Armstrong <neil.armstrong@linaro.org>
    Cc: Thara Gopinath <thara.gopinath@gmail.com>
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 231dfd6bb61e551f7cc938993df83d2bb27ba221
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Fri Dec 13 15:53:52 2024 +0100

    arm64: dts: qcom: sm8350: Fix MPSS memory length
    
    commit da1937dec9cd986e685b6a429b528a4cbc7b1603 upstream.
    
    The address space in MPSS/Modem PAS (Peripheral Authentication Service)
    remoteproc node should point to the QDSP PUB address space
    (QDSP6...SS_PUB) which has a length of 0x10000.  Value of 0x4040 was
    copied from older DTS, but it grew since then.
    
    This should have no functional impact on Linux users, because PAS loader
    does not use this address space at all.
    
    Fixes: 177fcf0aeda2 ("arm64: dts: qcom: sm8350: Add remoteprocs")
    Cc: stable@vger.kernel.org
    Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20241213-dts-qcom-cdsp-mpss-base-address-v3-3-2e0036fccd8d@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7e06872144ea17029a0464940455511530925b4
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Tue Jan 21 18:11:33 2025 -0700

    x86/boot: Use '-std=gnu11' to fix build with GCC 15
    
    commit ee2ab467bddfb2d7f68d996dbab94d7b88f8eaf7 upstream.
    
    GCC 15 changed the default C standard version to C23, which should not
    have impacted the kernel because it requests the gnu11 standard via
    '-std=' in the main Makefile. However, the x86 compressed boot Makefile
    uses its own set of KBUILD_CFLAGS without a '-std=' value (i.e., using
    the default), resulting in errors from the kernel's definitions of bool,
    true, and false in stddef.h, which are reserved keywords under C23.
    
      ./include/linux/stddef.h:11:9: error: expected identifier before ‘false’
         11 |         false   = 0,
      ./include/linux/types.h:35:33: error: two or more data types in declaration specifiers
         35 | typedef _Bool                   bool;
    
    Set '-std=gnu11' in the x86 compressed boot Makefile to resolve the
    error and consistently use the same C standard version for the entire
    kernel.
    
    Closes: https://lore.kernel.org/4OAhbllK7x4QJGpZjkYjtBYNLd_2whHx9oFiuZcGwtVR4hIzvduultkgfAIRZI3vQpZylu7Gl929HaYFRGeMEalWCpeMzCIIhLxxRhq4U-Y=@protonmail.com/
    Closes: https://lore.kernel.org/Z4467umXR2PZ0M1H@tucnak/
    Reported-by: Kostadin Shishmanov <kostadinshishmanov@protonmail.com>
    Reported-by: Jakub Jelinek <jakub@redhat.com>
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
    Cc:stable@vger.kernel.org
    Link: https://lore.kernel.org/all/20250121-x86-use-std-consistently-gcc-15-v1-1-8ab0acf645cb%40kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81a3a0c1a68f7823592c77040219554b151f7952
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Thu Oct 17 10:09:22 2024 -0700

    kbuild: Move -Wenum-enum-conversion to W=2
    
    commit 8f6629c004b193d23612641c3607e785819e97ab upstream.
    
    -Wenum-enum-conversion was strengthened in clang-19 to warn for C, which
    caused the kernel to move it to W=1 in commit 75b5ab134bb5 ("kbuild:
    Move -Wenum-{compare-conditional,enum-conversion} into W=1") because
    there were numerous instances that would break builds with -Werror.
    Unfortunately, this is not a full solution, as more and more developers,
    subsystems, and distributors are building with W=1 as well, so they
    continue to see the numerous instances of this warning.
    
    Since the move to W=1, there have not been many new instances that have
    appeared through various build reports and the ones that have appeared
    seem to be following similar existing patterns, suggesting that most
    instances of this warning will not be real issues. The only alternatives
    for silencing this warning are adding casts (which is generally seen as
    an ugly practice) or refactoring the enums to macro defines or a unified
    enum (which may be undesirable because of type safety in other parts of
    the code).
    
    Move the warning to W=2, where warnings that occur frequently but may be
    relevant should reside.
    
    Cc: stable@vger.kernel.org
    Fixes: 75b5ab134bb5 ("kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1")
    Link: https://lore.kernel.org/ZwRA9SOcOjjLJcpi@google.com/
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2bce0a6a44335bc2f8ad79ff849615e26d680609
Author: Long Li <longli@microsoft.com>
Date:   Wed Jan 22 19:07:22 2025 -0800

    scsi: storvsc: Set correct data length for sending SCSI command without payload
    
    commit 87c4b5e8a6b65189abd9ea5010ab308941f964a4 upstream.
    
    In StorVSC, payload->range.len is used to indicate if this SCSI command
    carries payload. This data is allocated as part of the private driver data
    by the upper layer and may get passed to lower driver uninitialized.
    
    For example, the SCSI error handling mid layer may send TEST_UNIT_READY or
    REQUEST_SENSE while reusing the buffer from a failed command. The private
    data section may have stale data from the previous command.
    
    If the SCSI command doesn't carry payload, the driver may use this value as
    is for communicating with host, resulting in possible corruption.
    
    Fix this by always initializing this value.
    
    Fixes: be0cf6ca301c ("scsi: storvsc: Set the tablesize based on the information given by the host")
    Cc: stable@kernel.org
    Tested-by: Roman Kisel <romank@linux.microsoft.com>
    Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
    Reviewed-by: Michael Kelley <mhklinux@outlook.com>
    Signed-off-by: Long Li <longli@microsoft.com>
    Link: https://lore.kernel.org/r/1737601642-7759-1-git-send-email-longli@linuxonhyperv.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73d3d3c66f108bc47922490f8500842530139975
Author: Quinn Tran <qutran@marvell.com>
Date:   Fri Nov 15 18:33:09 2024 +0530

    scsi: qla2xxx: Move FCE Trace buffer allocation to user control
    
    commit 841df27d619ee1f5ca6473e15227b39d6136562d upstream.
    
    Currently FCE Tracing is enabled to log additional ELS events. Instead,
    user will enable or disable this feature through debugfs.
    
    Modify existing DFS knob to allow user to enable or disable this
    feature.
    
    echo [1 | 0] > /sys/kernel/debug/qla2xxx/qla2xxx_??/fce
    cat  /sys/kernel/debug/qla2xxx/qla2xxx_??/fce
    
    Cc: stable@vger.kernel.org
    Fixes: df613b96077c ("[SCSI] qla2xxx: Add Fibre Channel Event (FCE) tracing support.")
    Signed-off-by: Quinn Tran <qutran@marvell.com>
    Signed-off-by: Nilesh Javali <njavali@marvell.com>
    Link: https://lore.kernel.org/r/20241115130313.46826-4-njavali@marvell.com
    Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad88fd9ee93a27d1d6b78b2c4470351585d0cc76
Author: Georg Gottleuber <ggo@tuxedocomputers.com>
Date:   Mon Dec 16 23:28:04 2024 +0100

    nvme-pci: Add TUXEDO IBP Gen9 to Samsung sleep quirk
    
    commit 11cb3529d18514f7d28ad2190533192aedefd761 upstream.
    
    On the TUXEDO InfinityBook Pro Gen9 Intel, a Samsung 990 Evo NVMe leads to
    a high power consumption in s2idle sleep (4 watts).
    
    This patch applies 'Force No Simple Suspend' quirk to achieve a sleep with
    a lower power consumption, typically around 1.2 watts.
    
    Signed-off-by: Georg Gottleuber <ggo@tuxedocomputers.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 662964484f8a570219d46bf46eb0165393ad42c4
Author: Georg Gottleuber <ggo@tuxedocomputers.com>
Date:   Mon Dec 16 23:28:03 2024 +0100

    nvme-pci: Add TUXEDO InfinityFlex to Samsung sleep quirk
    
    commit dbf2bb1a1319b7c7d8828905378a6696cca6b0f2 upstream.
    
    On the TUXEDO InfinityFlex, a Samsung 990 Evo NVMe leads to a high power
    consumption in s2idle sleep (4 watts).
    
    This patch applies 'Force No Simple Suspend' quirk to achieve a sleep with
    a lower power consumption, typically around 1.4 watts.
    
    Signed-off-by: Georg Gottleuber <ggo@tuxedocomputers.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d88422ccb97f1782ac67133e8e567c7ce07bfaba
Author: Zijun Hu <quic_zijuhu@quicinc.com>
Date:   Tue Dec 10 22:00:20 2024 +0800

    PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf()
    
    commit 3b9f942eb21c92041905e3943a8d5177c9a9d89d upstream.
    
    When removing a virtual Endpoint, pci_epf_remove_vepf() failed to clear
    epf_vf->epf_pf, which caused a subsequent pci_epf_add_vepf() to incorrectly
    return -EBUSY:
    
      pci_epf_add_vepf(epf_pf, epf_vf)      // add
      pci_epf_remove_vepf(epf_pf, epf_vf)   // remove
      pci_epf_add_vepf(epf_pf, epf_vf)      // add again, -EBUSY error
    
    Fix by clearing epf_vf->epf_pf in pci_epf_remove_vepf().
    
    Link: https://lore.kernel.org/r/20241210-pci-epc-core_fix-v3-3-4d86dd573e4b@quicinc.com
    Fixes: 1cf362e907f3 ("PCI: endpoint: Add support to add virtual function in endpoint core")
    Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Frank Li <Frank.Li@nxp.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit abe03cd5d5b78d16a24e64309e4474c5986e6862
Author: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
Date:   Tue Jan 14 14:06:19 2025 -0300

    ALSA: hda/realtek: Enable headset mic on Positivo C6400
    
    commit 1aec3ed2e3e1512aba15e7e790196a44efd5f0a7 upstream.
    
    Positivo C6400 is equipped with ALC269VB, and it needs
    ALC269VB_FIXUP_ASUS_ZENBOOK quirk to make its headset mic work.
    Also must to limits the microphone boost.
    
    Signed-off-by: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://patch.msgid.link/20250114170619.11510-1-edson.drosdeck@gmail.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94e418935e1df88cd180adcfcd7d33e29573a0af
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Tue Jan 14 17:00:45 2025 -0300

    Revert "media: uvcvideo: Require entities to have a non-zero unique ID"
    
    commit 8004d635f27bbccaa5c083c50d4d5302a6ffa00e upstream.
    
    This reverts commit 3dd075fe8ebbc6fcbf998f81a75b8c4b159a6195.
    
    Tomasz has reported that his device, Generalplus Technology Inc. 808 Camera,
    with ID 1b3f:2002, stopped being detected:
    
    $ ls -l /dev/video*
    zsh: no matches found: /dev/video*
    [    7.230599] usb 3-2: Found multiple Units with ID 5
    
    This particular device is non-compliant, having both the Output Terminal
    and Processing Unit with ID 5. uvc_scan_fallback, though, is able to build
    a chain. However, when media elements are added and uvc_mc_create_links
    call uvc_entity_by_id, it will get the incorrect entity,
    media_create_pad_link will WARN, and it will fail to register the entities.
    
    In order to reinstate support for such devices in a timely fashion,
    reverting the fix for these warnings is appropriate. A proper fix that
    considers the existence of such non-compliant devices will be submitted in
    a later development cycle.
    
    Reported-by: Tomasz Sikora <sikora.tomus@gmail.com>
    Fixes: 3dd075fe8ebb ("media: uvcvideo: Require entities to have a non-zero unique ID")
    Cc: stable@vger.kernel.org
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Ricardo Ribalda <ribalda@chromium.org>
    Link: https://lore.kernel.org/r/20250114200045.1401644-1-cascardo@igalia.com
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d24476777e8b91d52f37110ef92099cf0faa7b5c
Author: Mateusz Jończyk <mat.jonczyk@o2.pl>
Date:   Sun Jan 5 22:18:06 2025 +0100

    mips/math-emu: fix emulation of the prefx instruction
    
    commit 42a39e4aa59a10aa4afdc14194f3ee63d2db94e1 upstream.
    
    Currently, installation of Debian 12.8 for mipsel fails on machines
    without an FPU [1]. This is caused by the fact that zstd (which is used
    for initramfs compression) executes the prefx instruction, which is not
    emulated properly by the kernel.
    
    The prefx (Prefetch Indexed) instruction fetches data from memory into
    the cache without any side effects. Though functionally unrelated, it
    requires an FPU [2].
    
    Bytecode format of this instruction ends on "001111" binary:
    
            (prefx instruction format) & 0x0000003f = 0x0000000f
    
    The code in fpux_emu() runs like so:
    
            #define MIPSInst(x) x
            #define MIPSInst_FMA_FFMT(x) (MIPSInst(x) & 0x00000007)
            #define MIPSInst_FUNC(x) (MIPSInst(x) & 0x0000003f)
            enum cop1x_func { ..., pfetch_op = 0x0f, ... };
    
            ...
    
            switch (MIPSInst_FMA_FFMT(ir)) {
            ...
    
            case 0x3:
                    if (MIPSInst_FUNC(ir) != pfetch_op)
                            return SIGILL;
    
                    /* ignore prefx operation */
                    break;
    
            default:
                    return SIGILL;
            }
    
    That snippet above contains a logic error and the
            if (MIPSInst_FUNC(ir) != pfetch_op)
    comparison always fires.
    
    When MIPSInst_FUNC(ir) is equal to pfetch_op, ir must end on 001111
    binary. In this case, MIPSInst_FMA_FFMT(ir) must be equal to 0x7, which
    does not match that case label.
    
    This causes emulation failure for the prefx instruction. Fix it.
    
    This has been broken by
    commit 919af8b96c89 ("MIPS: Make definitions of MIPSInst_FMA_{FUNC,FMTM} consistent with MIPS64 manual")
    which modified the MIPSInst_FMA_FFMT macro without updating the users.
    
    Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
    Cc: stable@vger.kernel.org # after 3 weeks
    Cc: Dengcheng Zhu <dzhu@wavecomp.com>
    Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: Ming Wang <wangming01@loongson.cn>
    Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
    Fixes: 919af8b96c89 ("MIPS: Make definitions of MIPSInst_FMA_{FUNC,FMTM} consistent with MIPS64 manual")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1091858
    [2] MIPS Architecture For Programmers Volume II-A: The MIPS32 Instruction Set
    
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

commit 63b759c9680e3b8fbdb34f29dfbd30ab9069308a
Author: Hou Tao <houtao1@huawei.com>
Date:   Mon Jan 20 16:29:51 2025 +0800

    dm-crypt: track tag_offset in convert_context
    
    commit 8b8f8037765757861f899ed3a2bfb34525b5c065 upstream.
    
    dm-crypt uses tag_offset to index the integrity metadata for each crypt
    sector. When the initial crypt_convert() returns BLK_STS_DEV_RESOURCE,
    dm-crypt will try to continue the crypt/decrypt procedure in a kworker.
    However, it resets tag_offset as zero instead of using the tag_offset
    related with current sector. It may return unexpected data when using
    random IV or return unexpected integrity related error.
    
    Fix the problem by tracking tag_offset in per-IO convert_context.
    Therefore, when the crypt/decrypt procedure continues in a kworker, it
    could use the next tag_offset saved in convert_context.
    
    Fixes: 8abec36d1274 ("dm crypt: do not wait for backlogged crypto request completion in softirq")
    Cc: stable@vger.kernel.org
    Signed-off-by: Hou Tao <houtao1@huawei.com>
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84d6db1a7327b808220308dd866ffd94efd13420
Author: Hou Tao <houtao1@huawei.com>
Date:   Mon Jan 20 16:29:49 2025 +0800

    dm-crypt: don't update io->sector after kcryptd_crypt_write_io_submit()
    
    commit 9fdbbdbbc92b1474a87b89f8b964892a63734492 upstream.
    
    The updates of io->sector are the leftovers when dm-crypt allocated
    pages for partial write request. However, since commit cf2f1abfbd0db
    ("dm crypt: don't allocate pages for a partial request"), there is no
    partial request anymore.
    
    After the introduction of write request rb-tree, the updates of
    io->sectors may interfere the insertion procedure, because ->sectors of
    these write requests which have already been added in the rb-tree may be
    changed during the insertion of new write request.
    
    Fix it by removing these buggy updates of io->sectors. Considering these
    updates only effect the write request rb-tree, the commit which
    introduces the write request rb-tree is used as the fix tag.
    
    Fixes: b3c5fd305249 ("dm crypt: sort writes")
    Cc: stable@vger.kernel.org
    Signed-off-by: Hou Tao <houtao1@huawei.com>
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 453a0a22ceb858a1eacc047e293cffd2789c9c48
Author: Narayana Murty N <nnmlinux@linux.ibm.com>
Date:   Thu Jan 16 04:39:54 2025 -0600

    powerpc/pseries/eeh: Fix get PE state translation
    
    commit 11b93559000c686ad7e5ab0547e76f21cc143844 upstream.
    
    The PE Reset State "0" returned by RTAS calls
    "ibm_read_slot_reset_[state|state2]" indicates that the reset is
    deactivated and the PE is in a state where MMIO and DMA are allowed.
    However, the current implementation of "pseries_eeh_get_state()" does
    not reflect this, causing drivers to incorrectly assume that MMIO and
    DMA operations cannot be resumed.
    
    The userspace drivers as a part of EEH recovery using VFIO ioctls fail
    to detect when the recovery process is complete. The VFIO_EEH_PE_GET_STATE
    ioctl does not report the expected EEH_PE_STATE_NORMAL state, preventing
    userspace drivers from functioning properly on pseries systems.
    
    The patch addresses this issue by updating 'pseries_eeh_get_state()'
    to include "EEH_STATE_MMIO_ENABLED" and "EEH_STATE_DMA_ENABLED" in
    the result mask for PE Reset State "0". This ensures correct state
    reporting to the callers, aligning the behavior with the PAPR specification
    and fixing the bug in EEH recovery for VFIO user workflows.
    
    Fixes: 00ba05a12b3c ("powerpc/pseries: Cleanup on pseries_eeh_get_state()")
    Cc: stable@vger.kernel.org
    Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
    Signed-off-by: Narayana Murty N <nnmlinux@linux.ibm.com>
    Link: https://lore.kernel.org/stable/20241212075044.10563-1-nnmlinux%40linux.ibm.com
    Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
    Link: https://patch.msgid.link/20250116103954.17324-1-nnmlinux@linux.ibm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3d92e7af72a5c7843ed2000e647c09515ae8fe0
Author: Kexy Biscuit <kexybiscuit@aosc.io>
Date:   Sat Jan 11 01:22:08 2025 +0800

    MIPS: Loongson64: remove ROM Size unit in boardinfo
    
    commit bd2212d658d7659b9d83c7e2f3a06789d4db1e90 upstream.
    
    Per Appendix A.7 in Q/LS 0013-2014 (龙芯CPU开发系统固件与内核接口规范 V2.2,
    lit. Loongson DevSys Firmware Kernel Interface Specification V2.2),
    interface_info.size is size of this interface, not size of the LEFI BIOS
    ROM.
    
    In any case, the BIOS ROM Size just cannot be several kilobytes (KB) on
    Loongson64 LEFI platforms.
    
    Reported-by: Mingcong Bai <jeffbai@aosc.io>
    Suggested-by: Icenowy Zheng <uwu@icenowy.me>
    Fixes: 6c1bfbd9df8c ("MIPS: Loongson64: Add /sys/firmware/lefi/boardinfo")
    Cc: stable@vger.kernel.org
    Signed-off-by: Kexy Biscuit <kexybiscuit@aosc.io>
    Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48a6a4dfa5c8b115c79671d73ac2518397197a45
Author: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Date:   Thu Jan 16 20:22:47 2025 +0200

    serial: sh-sci: Do not probe the serial port if its slot in sci_ports[] is in use
    
    commit 9f7dea875cc7f9c1a56a5c688290634a59cd1420 upstream.
    
    In the sh-sci driver, sci_ports[0] is used by earlycon. If the earlycon is
    still active when sci_probe() is called and the new serial port is supposed
    to map to sci_ports[0], return -EBUSY to prevent breaking the earlycon.
    
    This situation should occurs in debug scenarios, and users should be
    aware of the potential conflict.
    
    Fixes: 0b0cced19ab1 ("serial: sh-sci: Add CONFIG_SERIAL_EARLYCON support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    Link: https://lore.kernel.org/r/20250116182249.3828577-4-claudiu.beznea.uj@bp.renesas.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b7947990681d42f6e35ab35ec9fa64eb64e5410
Author: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Date:   Thu Jan 16 20:22:45 2025 +0200

    serial: sh-sci: Drop __initdata macro for port_cfg
    
    commit eaeee4225dba30bef4d424bdf134a07b7f423e8b upstream.
    
    The port_cfg object is used by serial_console_write(), which serves as
    the write function for the earlycon device. Marking port_cfg as __initdata
    causes it to be freed after kernel initialization, resulting in earlycon
    becoming unavailable thereafter. Remove the __initdata macro from port_cfg
    to resolve this issue.
    
    Fixes: 0b0cced19ab1 ("serial: sh-sci: Add CONFIG_SERIAL_EARLYCON support")
    Cc: stable@vger.kernel.org
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    Fixes: 0b0cced19ab15c9e ("serial: sh-sci: Add CONFIG_SERIAL_EARLYCON support")
    Link: https://lore.kernel.org/r/20250116182249.3828577-2-claudiu.beznea.uj@bp.renesas.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d09d3c9afa2fc422ac3df7c9b8534f350ee19dd
Author: Stephan Gerhold <stephan.gerhold@linaro.org>
Date:   Mon Dec 30 20:59:35 2024 +0100

    soc: qcom: socinfo: Avoid out of bounds read of serial number
    
    commit 22cf4fae6660b6e1a583a41cbf84e3046ca9ccd0 upstream.
    
    On MSM8916 devices, the serial number exposed in sysfs is constant and does
    not change across individual devices. It's always:
    
      db410c:/sys/devices/soc0$ cat serial_number
      2644893864
    
    The firmware used on MSM8916 exposes SOCINFO_VERSION(0, 8), which does not
    have support for the serial_num field in the socinfo struct. There is an
    existing check to avoid exposing the serial number in that case, but it's
    not correct: When checking the item_size returned by SMEM, we need to make
    sure the *end* of the serial_num is within bounds, instead of comparing
    with the *start* offset. The serial_number currently exposed on MSM8916
    devices is just an out of bounds read of whatever comes after the socinfo
    struct in SMEM.
    
    Fix this by changing offsetof() to offsetofend(), so that the size of the
    field is also taken into account.
    
    Cc: stable@vger.kernel.org
    Fixes: efb448d0a3fc ("soc: qcom: Add socinfo driver")
    Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20241230-qcom-socinfo-serialno-oob-v1-1-9b7a890da3da@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5fa25ae6484b15fb167049918d01836dfa39dffc
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Wed Dec 11 00:32:07 2024 +0000

    usb: gadget: f_tcm: Don't prepare BOT write request twice
    
    commit 94d9bf671ae314cacc2d7bf96bd233b4abc7cede upstream.
    
    The duplicate kmalloc here is causing memory leak. The request
    preparation in bot_send_write_request is also done in
    usbg_prepare_w_request. Remove the duplicate work.
    
    Fixes: c52661d60f63 ("usb-gadget: Initial merge of target module for UASP + BOT")
    Cc: stable@vger.kernel.org
    Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/f4f26c3d586cde0d46f8c3bcb4e8ae32311b650d.1733876548.git.Thinh.Nguyen@synopsys.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d5e48551866e09d26dc1d8c85e94543fda1f8911
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Wed Dec 11 00:32:01 2024 +0000

    usb: gadget: f_tcm: ep_autoconfig with fullspeed endpoint
    
    commit 25224c1f07d31c261d04dfbc705a7a0f314a825d upstream.
    
    Match usb endpoint using fullspeed endpoint descriptor to make sure the
    wMaxPacketSize for fullspeed descriptors is automatically configured.
    
    Fixes: c52661d60f63 ("usb-gadget: Initial merge of target module for UASP + BOT")
    Cc: stable@vger.kernel.org
    Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/e4507bc824aed6e7c7f5a718392ab6a7c1480a7f.1733876548.git.Thinh.Nguyen@synopsys.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45956a34f9a80475fc872127244fbb2a0255b3e3
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Wed Dec 11 00:31:48 2024 +0000

    usb: gadget: f_tcm: Decrement command ref count on cleanup
    
    commit 3b2a52e88ab0c9469eaadd4d4c8f57d072477820 upstream.
    
    We submitted the command with TARGET_SCF_ACK_KREF, which requires
    acknowledgment of command completion. If the command fails, make sure to
    decrement the ref count.
    
    Fixes: cff834c16d23 ("usb-gadget/tcm: Convert to TARGET_SCF_ACK_KREF I/O krefs")
    Cc: stable@vger.kernel.org
    Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/3c667b4d9c8b0b580346a69ff53616b6a74cfea2.1733876548.git.Thinh.Nguyen@synopsys.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93facdc47dc6e5d692b0444a00e7a178a51a6366
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Wed Dec 11 00:31:43 2024 +0000

    usb: gadget: f_tcm: Translate error to sense
    
    commit 98fa00fd3ae43b857b4976984a135483d89d9281 upstream.
    
    When respond with check_condition error status, clear from_transport
    input so the target layer can translate the sense reason reported by
    f_tcm.
    
    Fixes: c52661d60f63 ("usb-gadget: Initial merge of target module for UASP + BOT")
    Cc: stable@vger.kernel.org
    Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/b2a5577efe7abd0af0051229622cf7d3be5cdcd0.1733876548.git.Thinh.Nguyen@synopsys.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61541d9b5a23df33934fcc620a3a81f246b1b240
Author: Marcel Hamer <marcel.hamer@windriver.com>
Date:   Thu Jan 16 14:22:40 2025 +0100

    wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize()
    
    commit 68abd0c4ebf24cd499841a488b97a6873d5efabb upstream.
    
    On removal of the device or unloading of the kernel module a potential NULL
    pointer dereference occurs.
    
    The following sequence deletes the interface:
    
      brcmf_detach()
        brcmf_remove_interface()
          brcmf_del_if()
    
    Inside the brcmf_del_if() function the drvr->if2bss[ifidx] is updated to
    BRCMF_BSSIDX_INVALID (-1) if the bsscfgidx matches.
    
    After brcmf_remove_interface() call the brcmf_proto_detach() function is
    called providing the following sequence:
    
      brcmf_detach()
        brcmf_proto_detach()
          brcmf_proto_msgbuf_detach()
            brcmf_flowring_detach()
              brcmf_msgbuf_delete_flowring()
                brcmf_msgbuf_remove_flowring()
                  brcmf_flowring_delete()
                    brcmf_get_ifp()
                    brcmf_txfinalize()
    
    Since brcmf_get_ip() can and actually will return NULL in this case the
    call to brcmf_txfinalize() will result in a NULL pointer dereference inside
    brcmf_txfinalize() when trying to update ifp->ndev->stats.tx_errors.
    
    This will only happen if a flowring still has an skb.
    
    Although the NULL pointer dereference has only been seen when trying to
    update the tx statistic, all other uses of the ifp pointer have been
    guarded as well with an early return if ifp is NULL.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Marcel Hamer <marcel.hamer@windriver.com>
    Link: https://lore.kernel.org/all/b519e746-ddfd-421f-d897-7620d229e4b2@gmail.com/
    Acked-by: Arend van Spriel  <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://patch.msgid.link/20250116132240.731039-1-marcel.hamer@windriver.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f44aa9d39608cd57c00ed0fd56a81f06b062c03
Author: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Date:   Wed Dec 18 00:53:11 2024 +0200

    wifi: rtlwifi: rtl8821ae: Fix media status report
    
    commit 66ef0289ac99e155d206ddaa0fdfad09ae3cd007 upstream.
    
    RTL8821AE is stuck transmitting at the lowest rate allowed by the rate
    mask. This is because the firmware doesn't know the device is connected
    to a network.
    
    Fix the macros SET_H2CCMD_MSRRPT_PARM_OPMODE and
    SET_H2CCMD_MSRRPT_PARM_MACID_IND to work on the first byte of __cmd,
    not the second. Now the firmware is correctly notified when the device
    is connected to a network and it activates the rate control.
    
    Before (MCS3):
    
    [  5]   0.00-1.00   sec  12.5 MBytes   105 Mbits/sec    0    339 KBytes
    [  5]   1.00-2.00   sec  10.6 MBytes  89.1 Mbits/sec    0    339 KBytes
    [  5]   2.00-3.00   sec  10.6 MBytes  89.1 Mbits/sec    0    386 KBytes
    [  5]   3.00-4.00   sec  10.6 MBytes  89.1 Mbits/sec    0    386 KBytes
    [  5]   4.00-5.00   sec  10.2 MBytes  86.0 Mbits/sec    0    427 KBytes
    
    After (MCS9):
    
    [  5]   0.00-1.00   sec  33.9 MBytes   284 Mbits/sec    0    771 KBytes
    [  5]   1.00-2.00   sec  31.6 MBytes   265 Mbits/sec    0    865 KBytes
    [  5]   2.00-3.00   sec  29.9 MBytes   251 Mbits/sec    0    963 KBytes
    [  5]   3.00-4.00   sec  28.2 MBytes   237 Mbits/sec    0    963 KBytes
    [  5]   4.00-5.00   sec  26.8 MBytes   224 Mbits/sec    0    963 KBytes
    
    Fixes: 39f40710d0b5 ("rtlwifi: rtl88821ae: Remove usage of private bit manipulation macros")
    Cc: stable@vger.kernel.org
    Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
    Acked-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/754785b3-8a78-4554-b80d-de5f603b410b@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e27d77db198a6b39a8bbdb904e3d9e334c982eb4
Author: Heiko Stuebner <heiko@sntech.de>
Date:   Thu Nov 7 12:47:04 2024 +0100

    HID: hid-sensor-hub: don't use stale platform-data on remove
    
    commit 8a5b38c3fd709e8acd2bfdedf66c25e6af759576 upstream.
    
    The hid-sensor-hub creates the individual device structs and transfers them
    to the created mfd platform-devices via the platform_data in the mfd_cell.
    
    Before e651a1da442a ("HID: hid-sensor-hub: Allow parallel synchronous reads")
    the sensor-hub was managing access centrally, with one "completion" in the
    hub's data structure, which needed to be finished on removal at the latest.
    
    The mentioned commit then moved this central management to each hid sensor
    device, resulting on a completion in each struct hid_sensor_hub_device.
    The remove procedure was adapted to go through all sensor devices and
    finish any pending "completion".
    
    What this didn't take into account was, platform_device_add_data() that is
    used by mfd_add{_hotplug}_devices() does a kmemdup on the submitted
    platform-data. So the data the platform-device gets is a copy of the
    original data, meaning that the device worked on a different completion
    than what sensor_hub_remove() currently wants to access.
    
    To fix that, use device_for_each_child() to go through each child-device
    similar to how mfd_remove_devices() unregisters the devices later and
    with that get the live platform_data to finalize the correct completion.
    
    Fixes: e651a1da442a ("HID: hid-sensor-hub: Allow parallel synchronous reads")
    Cc: stable@vger.kernel.org
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Acked-by: Benjamin Tissoires <bentiss@kernel.org>
    Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Acked-by: Jiri Kosina <jkosina@suse.com>
    Link: https://lore.kernel.org/r/20241107114712.538976-2-heiko@sntech.de
    Signed-off-by: Lee Jones <lee@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0a158e7634a7cabe9a0789bfd571afa72a6bb1a
Author: Zijun Hu <quic_zijuhu@quicinc.com>
Date:   Thu Jan 9 21:27:00 2025 +0800

    of: reserved-memory: Fix using wrong number of cells to get property 'alignment'
    
    commit 267b21d0bef8e67dbe6c591c9991444e58237ec9 upstream.
    
    According to DT spec, size of property 'alignment' is based on parent
    node’s #size-cells property.
    
    But __reserved_mem_alloc_size() wrongly uses @dt_root_addr_cells to get
    the property obviously.
    
    Fix by using @dt_root_size_cells instead of @dt_root_addr_cells.
    
    Fixes: 3f0c82066448 ("drivers: of: add initialization code for dynamic reserved memory")
    Cc: stable@vger.kernel.org
    Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
    Link: https://lore.kernel.org/r/20250109-of_core_fix-v4-9-db8a72415b8c@quicinc.com
    Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f7c0deea1b3349ce17026f3710e77540ff73655
Author: Zijun Hu <quic_zijuhu@quicinc.com>
Date:   Mon Dec 16 08:40:40 2024 +0800

    of: Fix of_find_node_opts_by_path() handling of alias+path+options
    
    commit b9e58c934c56aa35b0fb436d9afd86ef326bae0e upstream.
    
    of_find_node_opts_by_path() fails to find OF device node when its
    @path parameter have pattern below:
    
    "alias-name/node-name-1/.../node-name-N:options".
    
    The reason is that alias name length calculated by the API is wrong, as
    explained by example below:
    
    "testcase-alias/phandle-tests/consumer-a:testaliasoption".
     ^             ^                        ^
     0             14                       39
    
    The right length of alias 'testcase-alias' is 14, but the result worked
    out by the API is 39 which is obvious wrong.
    
    Fix by using index of either '/' or ':' as the length who comes earlier.
    
    Fixes: 75c28c09af99 ("of: add optional options parameter to of_find_node_by_path()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
    Link: https://lore.kernel.org/r/20241216-of_core_fix-v2-1-e69b8f60da63@quicinc.com
    Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 87141db6d1485c4f90a3aa45be09684843030eac
Author: Zijun Hu <quic_zijuhu@quicinc.com>
Date:   Thu Jan 9 21:26:52 2025 +0800

    of: Correct child specifier used as input of the 2nd nexus node
    
    commit e4c00c9b1f70cd11792ff5b825899a6ee0234a62 upstream.
    
    API of_parse_phandle_with_args_map() will use wrong input for nexus node
    Nexus_2 as shown below:
    
        Node_1              Nexus_1                              Nexus_2
    &Nexus_1,arg_1 -> arg_1,&Nexus_2,arg_2' -> &Nexus_2,arg_2 -> arg_2,...
                      map-pass-thru=<...>
    
    Nexus_1's output arg_2 should be used as input of Nexus_2, but the API
    wrongly uses arg_2' instead which != arg_2 due to Nexus_1's map-pass-thru.
    
    Fix by always making @match_array point to @initial_match_array into
    which to store nexus output.
    
    Fixes: bd6f2fd5a1d5 ("of: Support parsing phandle argument lists through a nexus node")
    Cc: stable@vger.kernel.org
    Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
    Link: https://lore.kernel.org/r/20250109-of_core_fix-v4-1-db8a72415b8c@quicinc.com
    Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a0d751d2d8ecd500e303f2d9fe7b35ad2c892221
Author: Kuan-Wei Chiu <visitorckw@gmail.com>
Date:   Thu Jan 16 19:08:42 2025 +0800

    perf bench: Fix undefined behavior in cmpworker()
    
    commit 62892e77b8a64b9dc0e1da75980aa145347b6820 upstream.
    
    The comparison function cmpworker() violates the C standard's
    requirements for qsort() comparison functions, which mandate symmetry
    and transitivity:
    
    Symmetry: If x < y, then y > x.
    Transitivity: If x < y and y < z, then x < z.
    
    In its current implementation, cmpworker() incorrectly returns 0 when
    w1->tid < w2->tid, which breaks both symmetry and transitivity. This
    violation causes undefined behavior, potentially leading to issues such
    as memory corruption in glibc [1].
    
    Fix the issue by returning -1 when w1->tid < w2->tid, ensuring
    compliance with the C standard and preventing undefined behavior.
    
    Link: https://www.qualys.com/2024/01/30/qsort.txt [1]
    Fixes: 121dd9ea0116 ("perf bench: Add epoll parallel epoll_wait benchmark")
    Cc: stable@vger.kernel.org
    Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
    Reviewed-by: James Clark <james.clark@linaro.org>
    Link: https://lore.kernel.org/r/20250116110842.4087530-1-visitorckw@gmail.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be042a185cc566f29dac65cc77f602deb1bce90a
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Tue Jan 21 18:11:34 2025 -0700

    efi: libstub: Use '-std=gnu11' to fix build with GCC 15
    
    commit 8ba14d9f490aef9fd535c04e9e62e1169eb7a055 upstream.
    
    GCC 15 changed the default C standard version to C23, which should not
    have impacted the kernel because it requests the gnu11 standard via
    '-std=' in the main Makefile. However, the EFI libstub Makefile uses its
    own set of KBUILD_CFLAGS for x86 without a '-std=' value (i.e., using
    the default), resulting in errors from the kernel's definitions of bool,
    true, and false in stddef.h, which are reserved keywords under C23.
    
      ./include/linux/stddef.h:11:9: error: expected identifier before ‘false’
         11 |         false   = 0,
      ./include/linux/types.h:35:33: error: two or more data types in declaration specifiers
         35 | typedef _Bool                   bool;
    
    Set '-std=gnu11' in the x86 cflags to resolve the error and consistently
    use the same C standard version for the entire kernel. All other
    architectures reuse KBUILD_CFLAGS from the rest of the kernel, so this
    issue is not visible for them.
    
    Cc: stable@vger.kernel.org
    Reported-by: Kostadin Shishmanov <kostadinshishmanov@protonmail.com>
    Closes: https://lore.kernel.org/4OAhbllK7x4QJGpZjkYjtBYNLd_2whHx9oFiuZcGwtVR4hIzvduultkgfAIRZI3vQpZylu7Gl929HaYFRGeMEalWCpeMzCIIhLxxRhq4U-Y=@protonmail.com/
    Reported-by: Jakub Jelinek <jakub@redhat.com>
    Closes: https://lore.kernel.org/Z4467umXR2PZ0M1H@tucnak/
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 38287f779b34dfe959b4b681e909f2d3d52b88be
Author: Zijun Hu <quic_zijuhu@quicinc.com>
Date:   Sun Jan 5 16:34:03 2025 +0800

    blk-cgroup: Fix class @block_class's subsystem refcount leakage
    
    commit d1248436cbef1f924c04255367ff4845ccd9025e upstream.
    
    blkcg_fill_root_iostats() iterates over @block_class's devices by
    class_dev_iter_(init|next)(), but does not end iterating with
    class_dev_iter_exit(), so causes the class's subsystem refcount leakage.
    
    Fix by ending the iterating with class_dev_iter_exit().
    
    Fixes: ef45fe470e1e ("blk-cgroup: show global disk stats in root cgroup io.stat")
    Reviewed-by: Michal Koutný <mkoutny@suse.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: stable@vger.kernel.org
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
    Link: https://lore.kernel.org/r/20250105-class_fix-v6-2-3a2f1768d4d4@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44bd016cbaa3770514b10988382ec03abd16fba8
Author: Anastasia Belova <abelova@astralinux.ru>
Date:   Tue Dec 3 11:42:31 2024 +0300

    clk: qcom: clk-rpmh: prevent integer overflow in recalc_rate
    
    commit 89aa5925d201b90a48416784831916ca203658f9 upstream.
    
    aggr_state and unit fields are u32. The result of their
    multiplication may not fit in this type.
    
    Add explicit casting to prevent overflow.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: 04053f4d23a4 ("clk: qcom: clk-rpmh: Add IPA clock support")
    Cc: stable@vger.kernel.org # 5.4+
    Signed-off-by: Anastasia Belova <abelova@astralinux.ru>
    Link: https://lore.kernel.org/r/20241203084231.6001-1-abelova@astralinux.ru
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e29965266796c3a15ec302199fa7bdcc8e5958b
Author: Satya Priya Kakitapalli <quic_skakitap@quicinc.com>
Date:   Fri Dec 20 15:20:48 2024 +0530

    clk: qcom: gcc-mdm9607: Fix cmd_rcgr offset for blsp1_uart6 rcg
    
    commit 88d9dca36aac9659446be1e569d8fbe3462b5741 upstream.
    
    Fix cmd_rcgr offset for blsp1_uart6_apps_clk_src on mdm9607 platform.
    
    Fixes: 48b7253264ea ("clk: qcom: Add MDM9607 GCC driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Satya Priya Kakitapalli <quic_skakitap@quicinc.com>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
    Link: https://lore.kernel.org/r/20241220095048.248425-1-quic_skakitap@quicinc.com
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 175af15551ed5aa6af16ff97aff75cfffb42da21
Author: Luca Weiss <luca.weiss@fairphone.com>
Date:   Fri Dec 20 10:03:30 2024 +0100

    clk: qcom: gcc-sm6350: Add missing parent_map for two clocks
    
    commit 96fe1a7ee477d701cfc98ab9d3c730c35d966861 upstream.
    
    If a clk_rcg2 has a parent, it should also have parent_map defined,
    otherwise we'll get a NULL pointer dereference when calling clk_set_rate
    like the following:
    
      [    3.388105] Call trace:
      [    3.390664]  qcom_find_src_index+0x3c/0x70 (P)
      [    3.395301]  qcom_find_src_index+0x1c/0x70 (L)
      [    3.399934]  _freq_tbl_determine_rate+0x48/0x100
      [    3.404753]  clk_rcg2_determine_rate+0x1c/0x28
      [    3.409387]  clk_core_determine_round_nolock+0x58/0xe4
      [    3.421414]  clk_core_round_rate_nolock+0x48/0xfc
      [    3.432974]  clk_core_round_rate_nolock+0xd0/0xfc
      [    3.444483]  clk_core_set_rate_nolock+0x8c/0x300
      [    3.455886]  clk_set_rate+0x38/0x14c
    
    Add the parent_map property for two clocks where it's missing and also
    un-inline the parent_data as well to keep the matching parent_map and
    parent_data together.
    
    Fixes: 131abae905df ("clk: qcom: Add SM6350 GCC driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
    Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
    Link: https://lore.kernel.org/r/20241220-sm6350-parent_map-v1-1-64f3d04cb2eb@fairphone.com
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d8d1f443a6cee60941e83025fbb0d3c50b50031
Author: Gabor Juhos <j4g8y7@gmail.com>
Date:   Mon Oct 21 19:32:48 2024 +0200

    clk: qcom: clk-alpha-pll: fix alpha mode configuration
    
    commit 33f1722eb86e45320a3dd7b3d42f6593a1d595c2 upstream.
    
    Commit c45ae598fc16 ("clk: qcom: support for alpha mode configuration")
    added support for configuring alpha mode, but it seems that the feature
    was never working in practice.
    
    The value of the alpha_{en,mode}_mask members of the configuration gets
    added to the value parameter passed to the regmap_update_bits() function,
    however the same values are not getting applied to the bitmask. As the
    result, the respective bits in the USER_CTL register are never modifed
    which leads to improper configuration of several PLLs.
    
    The following table shows the PLL configurations where the 'alpha_en_mask'
    member is set and which are passed as a parameter for the
    clk_alpha_pll_configure() function. In the table the 'expected rate' column
    shows the rate the PLL should run at with the given configuration, and
    the 'real rate' column shows the rate the PLL runs at actually. The real
    rates has been verified on hardwareOn IPQ* platforms, on other platforms,
    those are computed values only.
    
          file                 pll         expected rate   real rate
      dispcc-qcm2290.c     disp_cc_pll0      768.0 MHz     768.0 MHz
      dispcc-sm6115.c      disp_cc_pll0      768.0 MHz     768.0 MHz
      gcc-ipq5018.c        ubi32_pll        1000.0 MHz !=  984.0 MHz
      gcc-ipq6018.c        nss_crypto_pll   1200.0 MHz    1200.0 MHz
      gcc-ipq6018.c        ubi32_pll        1497.6 MHz != 1488.0 MHz
      gcc-ipq8074.c        nss_crypto_pll   1200.0 MHz != 1190.4 MHz
      gcc-qcm2290.c        gpll11            532.0 MHz !=  518.4 MHz
      gcc-qcm2290.c        gpll8             533.2 MHz !=  518.4 MHz
      gcc-qcs404.c         gpll3             921.6 MHz     921.6 MHz
      gcc-sm6115.c         gpll11            600.0 MHz !=  595.2 MHz
      gcc-sm6115.c         gpll8             800.0 MHz !=  787.2 MHz
      gpucc-sdm660.c       gpu_cc_pll0       800.0 MHz !=  787.2 MHz
      gpucc-sdm660.c       gpu_cc_pll1       740.0 MHz !=  729.6 MHz
      gpucc-sm6115.c       gpu_cc_pll0      1200.0 MHz != 1190.4 MHz
      gpucc-sm6115.c       gpu_cc_pll1       640.0 MHz !=  633.6 MHz
      gpucc-sm6125.c       gpu_pll0         1020.0 MHz != 1017.6 MHz
      gpucc-sm6125.c       gpu_pll1          930.0 MHz !=  921.6 MHz
      mmcc-sdm660.c        mmpll8            930.0 MHz !=  921.6 MHz
      mmcc-sdm660.c        mmpll5            825.0 MHz !=  806.4 MHz
    
    As it can be seen from the above, there are several PLLs which are
    configured incorrectly.
    
    Change the code to apply both 'alpha_en_mask' and 'alpha_mode_mask'
    values to the bitmask in order to configure the alpha mode correctly.
    
    Applying the 'alpha_en_mask' fixes the initial rate of the PLLs showed
    in the table above. Since the 'alpha_mode_mask' is not used by any driver
    currently, that part of the change causes no functional changes.
    
    Cc: stable@vger.kernel.org
    Fixes: c45ae598fc16 ("clk: qcom: support for alpha mode configuration")
    Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Tested-by: Gabor Juhos <j4g8y7@gmail.com>
    Link: https://lore.kernel.org/r/20241021-fix-alpha-mode-config-v1-1-f32c254e02bc@gmail.com
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45d563356db645f33ff94f4a76d5e62b076bcbe4
Author: Cody Eksal <masterr3c0rd@epochal.quest>
Date:   Fri Nov 8 20:37:37 2024 -0400

    clk: sunxi-ng: a100: enable MMC clock reparenting
    
    commit 16414720045de30945b8d14b7907e0cbf81a4b49 upstream.
    
    While testing the MMC nodes proposed in [1], it was noted that mmc0/1
    would fail to initialize, with "mmc: fatal err update clk timeout" in
    the kernel logs. A closer look at the clock definitions showed that the MMC
    MPs had the "CLK_SET_RATE_NO_REPARENT" flag set. No reason was given for
    adding this flag in the first place, and its original purpose is unknown,
    but it doesn't seem to make sense and results in severe limitations to MMC
    speeds. Thus, remove this flag from the 3 MMC MPs.
    
    [1] https://msgid.link/20241024170540.2721307-10-masterr3c0rd@epochal.quest
    
    Fixes: fb038ce4db55 ("clk: sunxi-ng: add support for the Allwinner A100 CCU")
    Cc: stable@vger.kernel.org
    Signed-off-by: Cody Eksal <masterr3c0rd@epochal.quest>
    Reviewed-by: Andre Przywara <andre.przywara@arm.com>
    Link: https://patch.msgid.link/20241109003739.3440904-1-masterr3c0rd@epochal.quest
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f26831839566613ad1e359a1b9550122c93d81bd
Author: Fedor Pchelkin <pchelkin@ispras.ru>
Date:   Wed Jan 29 00:08:14 2025 +0300

    Bluetooth: L2CAP: accept zero as a special value for MTU auto-selection
    
    commit 5c61419e02033eaf01733d66e2fcd4044808f482 upstream.
    
    One of the possible ways to enable the input MTU auto-selection for L2CAP
    connections is supposed to be through passing a special "0" value for it
    as a socket option. Commit [1] added one of those into avdtp. However, it
    simply wouldn't work because the kernel still treats the specified value
    as invalid and denies the setting attempt. Recorded BlueZ logs include the
    following:
    
      bluetoothd[496]: profiles/audio/avdtp.c:l2cap_connect() setsockopt(L2CAP_OPTIONS): Invalid argument (22)
    
    [1]: https://github.com/bluez/bluez/commit/ae5be371a9f53fed33d2b34748a95a5498fd4b77
    
    Found by Linux Verification Center (linuxtesting.org).
    
    Fixes: 4b6e228e297b ("Bluetooth: Auto tune if input MTU is set to 0")
    Cc: stable@vger.kernel.org
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf601a24120c674cd7c907ea695f92617af6abd0
Author: Fedor Pchelkin <pchelkin@ispras.ru>
Date:   Wed Dec 18 00:19:59 2024 +0300

    Bluetooth: L2CAP: handle NULL sock pointer in l2cap_sock_alloc
    
    commit 5f397409f8ee5bc82901eeaf799e1cbc4f8edcf1 upstream.
    
    A NULL sock pointer is passed into l2cap_sock_alloc() when it is called
    from l2cap_sock_new_connection_cb() and the error handling paths should
    also be aware of it.
    
    Seemingly a more elegant solution would be to swap bt_sock_alloc() and
    l2cap_chan_create() calls since they are not interdependent to that moment
    but then l2cap_chan_create() adds the soon to be deallocated and still
    dummy-initialized channel to the global list accessible by many L2CAP
    paths. The channel would be removed from the list in short period of time
    but be a bit more straight-forward here and just check for NULL instead of
    changing the order of function calls.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE static
    analysis tool.
    
    Fixes: 7c4f78cdb8e7 ("Bluetooth: L2CAP: do not leave dangling sk pointer on error in l2cap_sock_create()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 250164081da09645b39357e2f2084f28ed255ea8
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Wed Dec 18 19:36:47 2024 +0200

    drm/i915: Drop 64bpp YUV formats from ICL+ SDR planes
    
    commit c7b49506b3ba7a62335e6f666a43f67d5cd9fd1e upstream.
    
    I'm seeing underruns with these 64bpp YUV formats on TGL.
    
    The weird details:
    - only happens on pipe B/C/D SDR planes, pipe A SDR planes
      seem fine, as do all HDR planes
    - somehow CDCLK related, higher CDCLK allows for bigger plane
      with these formats without underruns. With 300MHz CDCLK I
      can only go up to 1200 pixels wide or so, with 650MHz even
      a 3840 pixel wide plane was OK
    - ICL and ADL so far appear unaffected
    
    So not really sure what's the deal with this, but bspec does
    state "64-bit formats supported only on the HDR planes" so
    let's just drop these formats from the SDR planes. We already
    disallow 64bpp RGB formats.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20241218173650.19782-2-ville.syrjala@linux.intel.com
    Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
    (cherry picked from commit 35e1aacfe536d6e8d8d440cd7155366da2541ad4)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5098970ecc1d00c77568ae9cad06f6678226d4eb
Author: Haoxiang Li <haoxiang_li2024@163.com>
Date:   Thu Dec 19 17:02:56 2024 +0800

    drm/komeda: Add check for komeda_get_layer_fourcc_list()
    
    commit 79fc672a092d93a7eac24fe20a571d4efd8fa5a4 upstream.
    
    Add check for the return value of komeda_get_layer_fourcc_list()
    to catch the potential exception.
    
    Fixes: 5d51f6c0da1b ("drm/komeda: Add writeback support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
    Acked-by: Liviu Dudau <liviu.dudau@arm.com>
    Link: https://lore.kernel.org/r/20241219090256.146424-1-haoxiang_li2024@163.com
    Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e89f74ef6bee132e4300af8f236cf38185df4406
Author: Lijo Lazar <lijo.lazar@amd.com>
Date:   Wed Jan 22 09:12:41 2025 +0530

    drm/amd/pm: Mark MM activity as unsupported
    
    commit 819bf6662b93a5a8b0c396d2c7e7fab6264c9808 upstream.
    
    Aldebaran doesn't support querying MM activity percentage. Keep the
    field as 0xFFs to mark it as unsupported.
    
    Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 224fa21f00fc15c968278296c293737c86a61377
Author: David Hildenbrand <david@redhat.com>
Date:   Tue Jan 7 16:43:41 2025 +0100

    KVM: s390: vsie: fix some corner-cases when grabbing vsie pages
    
    commit 5f230f41fdd9e799f43a699348dc572bca7159aa upstream.
    
    We try to reuse the same vsie page when re-executing the vsie with a
    given SCB address. The result is that we use the same shadow SCB --
    residing in the vsie page -- and can avoid flushing the TLB when
    re-running the vsie on a CPU.
    
    So, when we allocate a fresh vsie page, or when we reuse a vsie page for
    a different SCB address -- reusing the shadow SCB in different context --
    we set ihcpu=0xffff to trigger the flush.
    
    However, after we looked up the SCB address in the radix tree, but before
    we grabbed the vsie page by raising the refcount to 2, someone could reuse
    the vsie page for a different SCB address, adjusting page->index and the
    radix tree. In that case, we would be reusing the vsie page with a
    wrong page->index.
    
    Another corner case is that we might set the SCB address for a vsie
    page, but fail the insertion into the radix tree. Whoever would reuse
    that page would remove the corresponding radix tree entry -- which might
    now be a valid entry pointing at another page, resulting in the wrong
    vsie page getting removed from the radix tree.
    
    Let's handle such races better, by validating that the SCB address of a
    vsie page didn't change after we grabbed it (not reuse for a different
    SCB; the alternative would be performing another tree lookup), and by
    setting the SCB address to invalid until the insertion in the tree
    succeeded (SCB addresses are aligned to 512, so ULONG_MAX is invalid).
    
    These scenarios are rare, the effects a bit unclear, and these issues were
    only found by code inspection. Let's CC stable to be safe.
    
    Fixes: a3508fbe9dc6 ("KVM: s390: vsie: initial support for nested virtualization")
    Cc: stable@vger.kernel.org
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Tested-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
    Message-ID: <20250107154344.1003072-2-david@redhat.com>
    Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c4899239d0f70f88ac42665b3da51678d122480
Author: Sean Christopherson <seanjc@google.com>
Date:   Wed Oct 9 08:04:50 2024 -0700

    KVM: Explicitly verify target vCPU is online in kvm_get_vcpu()
    
    commit 1e7381f3617d14b3c11da80ff5f8a93ab14cfc46 upstream.
    
    Explicitly verify the target vCPU is fully online _prior_ to clamping the
    index in kvm_get_vcpu().  If the index is "bad", the nospec clamping will
    generate '0', i.e. KVM will return vCPU0 instead of NULL.
    
    In practice, the bug is unlikely to cause problems, as it will only come
    into play if userspace or the guest is buggy or misbehaving, e.g. KVM may
    send interrupts to vCPU0 instead of dropping them on the floor.
    
    However, returning vCPU0 when it shouldn't exist per online_vcpus is
    problematic now that KVM uses an xarray for the vCPUs array, as KVM needs
    to insert into the xarray before publishing the vCPU to userspace (see
    commit c5b077549136 ("KVM: Convert the kvm->vcpus array to a xarray")),
    i.e. before vCPU creation is guaranteed to succeed.
    
    As a result, incorrectly providing access to vCPU0 will trigger a
    use-after-free if vCPU0 is dereferenced and kvm_vm_ioctl_create_vcpu()
    bails out of vCPU creation due to an error and frees vCPU0.  Commit
    afb2acb2e3a3 ("KVM: Fix vcpu_array[0] races") papered over that issue, but
    in doing so introduced an unsolvable teardown conundrum.  Preventing
    accesses to vCPU0 before it's fully online will allow reverting commit
    afb2acb2e3a3, without re-introducing the vcpu_array[0] UAF race.
    
    Fixes: 1d487e9bf8ba ("KVM: fix spectrev1 gadgets")
    Cc: stable@vger.kernel.org
    Cc: Will Deacon <will@kernel.org>
    Cc: Michal Luczaj <mhal@rbox.co>
    Reviewed-by: Pankaj Gupta <pankaj.gupta@amd.com>
    Acked-by: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20241009150455.1057573-2-seanjc@google.com
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0e8b635a331af8f3bf6e1a821dc287dd7f80f45
Author: Jakob Unterwurzacher <jakobunt@gmail.com>
Date:   Fri Dec 13 10:54:58 2024 +0100

    arm64: dts: rockchip: increase gmac rx_delay on rk3399-puma
    
    commit 9d241b06802c6c2176ae7aa4f9f17f8a577ed337 upstream.
    
    During mass manufacturing, we noticed the mmc_rx_crc_error counter,
    as reported by "ethtool -S eth0 | grep mmc_rx_crc_error", to increase
    above zero during nuttcp speedtests. Most of the time, this did not
    affect the achieved speed, but it prompted this investigation.
    
    Cycling through the rx_delay range on six boards (see table below) of
    various ages shows that there is a large good region from 0x12 to 0x35
    where we see zero crc errors on all tested boards.
    
    The old rx_delay value (0x10) seems to have always been on the edge for
    the KSZ9031RNX that is usually placed on Puma.
    
    Choose "rx_delay = 0x23" to put us smack in the middle of the good
    region. This works fine as well with the KSZ9131RNX PHY that was used
    for a small number of boards during the COVID chip shortages.
    
            Board S/N        PHY        rx_delay good region
            ---------        ---        --------------------
            Puma TT0069903   KSZ9031RNX 0x11 0x35
            Puma TT0157733   KSZ9031RNX 0x11 0x35
            Puma TT0681551   KSZ9031RNX 0x12 0x37
            Puma TT0681156   KSZ9031RNX 0x10 0x38
            Puma 17496030079 KSZ9031RNX 0x10 0x37 (Puma v1.2 from 2017)
            Puma TT0681720   KSZ9131RNX 0x02 0x39 (alternative PHY used in very few boards)
    
            Intersection of good regions = 0x12 0x35
            Middle of good region = 0x23
    
    Fixes: 2c66fc34e945 ("arm64: dts: rockchip: add RK3399-Q7 (Puma) SoM")
    Cc: stable@vger.kernel.org
    Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
    Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # Puma v2.1 and v2.3 with KSZ9031
    Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@cherry.de>
    Link: https://lore.kernel.org/r/20241213-puma_rx_delay-v4-1-8e8e11cc6ed7@cherry.de
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc8ca18b8ef4648532c001bd6c8151143b569275
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Wed Dec 4 15:07:15 2024 +0300

    binfmt_flat: Fix integer overflow bug on 32 bit systems
    
    commit 55cf2f4b945f6a6416cc2524ba740b83cc9af25a upstream.
    
    Most of these sizes and counts are capped at 256MB so the math doesn't
    result in an integer overflow.  The "relocs" count needs to be checked
    as well.  Otherwise on 32bit systems the calculation of "full_data"
    could be wrong.
    
            full_data = data_len + relocs * sizeof(unsigned long);
    
    Fixes: c995ee28d29d ("binfmt_flat: prevent kernel dammage from corrupted executable headers")
    Cc: stable@vger.kernel.org
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Acked-by: Nicolas Pitre <npitre@baylibre.com>
    Link: https://lore.kernel.org/r/5be17f6c-5338-43be-91ef-650153b975cb@stanley.mountain
    Signed-off-by: Kees Cook <kees@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20ecbadad51a79db3ff8c3f2bfe21bb7267ee0f0
Author: Thomas Zimmermann <tzimmermann@suse.de>
Date:   Tue Jan 7 10:58:56 2025 +0100

    m68k: vga: Fix I/O defines
    
    commit 53036937a101b5faeaf98e7438555fa854a1a844 upstream.
    
    Including m68k's <asm/raw_io.h> in vga.h on nommu platforms results
    in conflicting defines with io_no.h for various I/O macros from the
    __raw_read and __raw_write families. An example error is
    
       In file included from arch/m68k/include/asm/vga.h:12,
                     from include/video/vga.h:22,
                     from include/linux/vgaarb.h:34,
                     from drivers/video/aperture.c:12:
    >> arch/m68k/include/asm/raw_io.h:39: warning: "__raw_readb" redefined
          39 | #define __raw_readb in_8
             |
       In file included from arch/m68k/include/asm/io.h:6,
                        from include/linux/io.h:13,
                        from include/linux/irq.h:20,
                        from include/asm-generic/hardirq.h:17,
                        from ./arch/m68k/include/generated/asm/hardirq.h:1,
                        from include/linux/hardirq.h:11,
                        from include/linux/interrupt.h:11,
                        from include/linux/trace_recursion.h:5,
                        from include/linux/ftrace.h:10,
                        from include/linux/kprobes.h:28,
                        from include/linux/kgdb.h:19,
                        from include/linux/fb.h:6,
                        from drivers/video/aperture.c:5:
       arch/m68k/include/asm/io_no.h:16: note: this is the location of the previous definition
          16 | #define __raw_readb(addr) \
             |
    
    Include <asm/io.h>, which avoids raw_io.h on nommu platforms.
    Also change the defined values of some of the read/write symbols in
    vga.h to __raw_read/__raw_write as the raw_in/raw_out symbols are not
    generally available.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501071629.DNEswlm8-lkp@intel.com/
    Fixes: 5c3f968712ce ("m68k/video: Create <asm/vga.h>")
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: linux-fbdev@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Cc: Helge Deller <deller@gmx.de>
    Cc: stable@vger.kernel.org # v3.5+
    Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Link: https://lore.kernel.org/20250107095912.130530-1-tzimmermann@suse.de
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 592ffb238132f491786cad6d9ba7baf101ed6416
Author: Heiko Carstens <hca@linux.ibm.com>
Date:   Tue Jan 7 11:28:58 2025 +0100

    s390/futex: Fix FUTEX_OP_ANDN implementation
    
    commit 26701574cee6777f867f89b4a5c667817e1ee0dd upstream.
    
    The futex operation FUTEX_OP_ANDN is supposed to implement
    
    *(int *)UADDR2 &= ~OPARG;
    
    The s390 implementation just implements an AND instead of ANDN.
    Add the missing bitwise not operation to oparg to fix this.
    
    This is broken since nearly 19 years, so it looks like user space is
    not making use of this operation.
    
    Fixes: 3363fbdd6fb4 ("[PATCH] s390: futex atomic operations")
    Cc: stable@vger.kernel.org
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
    Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61b4e072b7e8b3f6c8456d9e76e23287509d780e
Author: Maarten Lankhorst <dev@lankhorst.se>
Date:   Thu Jan 16 15:28:24 2025 +0100

    drm/modeset: Handle tiled displays in pan_display_atomic.
    
    commit f4a9dd57e549a17a7dac1c1defec26abd7e5c2d4 upstream.
    
    Tiled displays have a different x/y offset to begin with. Instead of
    attempting to remember this, just apply a delta instead.
    
    This fixes the first tile being duplicated on other tiles when vt
    switching.
    
    Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20250116142825.3933-1-dev@lankhorst.se
    Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e2de62318b95fbfa8f18b86484a7734890f77ac
Author: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Date:   Thu Nov 14 11:13:59 2024 +0100

    leds: lp8860: Write full EEPROM, not only half of it
    
    commit 0d2e820a86793595e2a776855d04701109e46663 upstream.
    
    I struggle to explain dividing an ARRAY_SIZE() by the size of an element
    once again. As the latter equals to 2, only the half of EEPROM was ever
    written. Drop the unexplainable division and write full ARRAY_SIZE().
    
    Cc: stable@vger.kernel.org
    Fixes: 7a8685accb95 ("leds: lp8860: Introduce TI lp8860 4 channel LED driver")
    Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
    Link: https://lore.kernel.org/r/20241114101402.2562878-1-alexander.sverdlin@siemens.com
    Signed-off-by: Lee Jones <lee@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fc7da1095247a642b2298b4ba82199ead74df5aa
Author: Viresh Kumar <viresh.kumar@linaro.org>
Date:   Wed Jan 22 11:36:16 2025 +0530

    cpufreq: s3c64xx: Fix compilation warning
    
    commit 43855ac61483cb914f060851535ea753c094b3e0 upstream.
    
    The driver generates following warning when regulator support isn't
    enabled in the kernel. Fix it.
    
       drivers/cpufreq/s3c64xx-cpufreq.c: In function 's3c64xx_cpufreq_set_target':
    >> drivers/cpufreq/s3c64xx-cpufreq.c:55:22: warning: variable 'old_freq' set but not used [-Wunused-but-set-variable]
          55 |         unsigned int old_freq, new_freq;
             |                      ^~~~~~~~
    >> drivers/cpufreq/s3c64xx-cpufreq.c:54:30: warning: variable 'dvfs' set but not used [-Wunused-but-set-variable]
          54 |         struct s3c64xx_dvfs *dvfs;
             |                              ^~~~
    
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501191803.CtfT7b2o-lkp@intel.com/
    Cc: 5.4+ <stable@vger.kernel.org> # v5.4+
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Link: https://patch.msgid.link/236b227e929e5adc04d1e9e7af6845a46c8e9432.1737525916.git.viresh.kumar@linaro.org
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4defa9ebef14d09b946b3394f2f7cf170ddaff12
Author: Willem de Bruijn <willemb@google.com>
Date:   Tue Feb 4 11:10:06 2025 -0500

    tun: revert fix group permission check
    
    [ Upstream commit a70c7b3cbc0688016810bb2e0b9b8a0d6a530045 ]
    
    This reverts commit 3ca459eaba1bf96a8c7878de84fa8872259a01e3.
    
    The blamed commit caused a regression when neither tun->owner nor
    tun->group is set. This is intended to be allowed, but now requires
    CAP_NET_ADMIN.
    
    Discussion in the referenced thread pointed out that the original
    issue that prompted this patch can be resolved in userspace.
    
    The relaxed access control may also make a device accessible when it
    previously wasn't, while existing users may depend on it to not be.
    
    This is a clean pure git revert, except for fixing the indentation on
    the gid_valid line that checkpatch correctly flagged.
    
    Fixes: 3ca459eaba1b ("tun: fix group permission check")
    Link: https://lore.kernel.org/netdev/CAFqZXNtkCBT4f+PwyVRmQGoT3p1eVa01fCG_aNtpt6dakXncUg@mail.gmail.com/
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Cc: Ondrej Mosnacek <omosnace@redhat.com>
    Cc: Stas Sergeev <stsp2@yandex.ru>
    Link: https://patch.msgid.link/20250204161015.739430-1-willemdebruijn.kernel@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 98a2c685293aae122f688cde11d9334dddc5d207
Author: Cong Wang <cong.wang@bytedance.com>
Date:   Mon Feb 3 16:58:40 2025 -0800

    netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()
    
    [ Upstream commit 638ba5089324796c2ee49af10427459c2de35f71 ]
    
    qdisc_tree_reduce_backlog() notifies parent qdisc only if child
    qdisc becomes empty, therefore we need to reduce the backlog of the
    child qdisc before calling it. Otherwise it would miss the opportunity
    to call cops->qlen_notify(), in the case of DRR, it resulted in UAF
    since DRR uses ->qlen_notify() to maintain its active list.
    
    Fixes: f8d4bc455047 ("net/sched: netem: account for backlog updates from child qdisc")
    Cc: Martin Ottens <martin.ottens@fau.de>
    Reported-by: Mingi Cho <mincho@theori.io>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Link: https://patch.msgid.link/20250204005841.223511-4-xiyou.wangcong@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d85d721f32251c48eed3a1d9bb63db7b32550464
Author: Juergen Gross <jgross@suse.com>
Date:   Wed Feb 5 10:07:56 2025 +0100

    x86/xen: add FRAME_END to xen_hypercall_hvm()
    
    [ Upstream commit 0bd797b801bd8ee06c822844e20d73aaea0878dd ]
    
    xen_hypercall_hvm() is missing a FRAME_END at the end, add it.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202502030848.HTNTTuo9-lkp@intel.com/
    Fixes: b4845bb63838 ("x86/xen: add central hypercall functions")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aaa15fc4291b0c0c6259ca72a95420feea2f0649
Author: Juergen Gross <jgross@suse.com>
Date:   Wed Feb 5 09:43:31 2025 +0100

    x86/xen: fix xen_hypercall_hvm() to not clobber %rbx
    
    [ Upstream commit 98a5cfd2320966f40fe049a9855f8787f0126825 ]
    
    xen_hypercall_hvm(), which is used when running as a Xen PVH guest at
    most only once during early boot, is clobbering %rbx. Depending on
    whether the caller relies on %rbx to be preserved across the call or
    not, this clobbering might result in an early crash of the system.
    
    This can be avoided by using an already saved register instead of %rbx.
    
    Fixes: b4845bb63838 ("x86/xen: add central hypercall functions")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d308661a0f4e7c8e86dfc7074a55ee5894c61538
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Feb 3 17:08:38 2025 +0000

    net: rose: lock the socket in rose_bind()
    
    [ Upstream commit a1300691aed9ee852b0a9192e29e2bdc2411a7e6 ]
    
    syzbot reported a soft lockup in rose_loopback_timer(),
    with a repro calling bind() from multiple threads.
    
    rose_bind() must lock the socket to avoid this issue.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot+7ff41b5215f0c534534e@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/netdev/67a0f78d.050a0220.d7c5a.00a0.GAE@google.com/T/#u
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Paolo Abeni <pabeni@redhat.com>
    Link: https://patch.msgid.link/20250203170838.3521361-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5bb48702e946e78f588a8b9c3c5fd7d8d2577062
Author: Jacob Moroni <mail@jakemoroni.com>
Date:   Mon Feb 3 09:36:05 2025 -0500

    net: atlantic: fix warning during hot unplug
    
    [ Upstream commit 028676bb189ed6d1b550a0fc570a9d695b6acfd3 ]
    
    Firmware deinitialization performs MMIO accesses which are not
    necessary if the device has already been removed. In some cases,
    these accesses happen via readx_poll_timeout_atomic which ends up
    timing out, resulting in a warning at hw_atl2_utils_fw.c:112:
    
    [  104.595913] Call Trace:
    [  104.595915]  <TASK>
    [  104.595918]  ? show_regs+0x6c/0x80
    [  104.595923]  ? __warn+0x8d/0x150
    [  104.595925]  ? aq_a2_fw_deinit+0xcf/0xe0 [atlantic]
    [  104.595934]  ? report_bug+0x182/0x1b0
    [  104.595938]  ? handle_bug+0x6e/0xb0
    [  104.595940]  ? exc_invalid_op+0x18/0x80
    [  104.595942]  ? asm_exc_invalid_op+0x1b/0x20
    [  104.595944]  ? aq_a2_fw_deinit+0xcf/0xe0 [atlantic]
    [  104.595952]  ? aq_a2_fw_deinit+0xcf/0xe0 [atlantic]
    [  104.595959]  aq_nic_deinit.part.0+0xbd/0xf0 [atlantic]
    [  104.595964]  aq_nic_deinit+0x17/0x30 [atlantic]
    [  104.595970]  aq_ndev_close+0x2b/0x40 [atlantic]
    [  104.595975]  __dev_close_many+0xad/0x160
    [  104.595978]  dev_close_many+0x99/0x170
    [  104.595979]  unregister_netdevice_many_notify+0x18b/0xb20
    [  104.595981]  ? __call_rcu_common+0xcd/0x700
    [  104.595984]  unregister_netdevice_queue+0xc6/0x110
    [  104.595986]  unregister_netdev+0x1c/0x30
    [  104.595988]  aq_pci_remove+0xb1/0xc0 [atlantic]
    
    Fix this by skipping firmware deinitialization altogether if the
    PCI device is no longer present.
    
    Tested with an AQC113 attached via Thunderbolt by performing
    repeated unplug cycles while traffic was running via iperf.
    
    Fixes: 97bde5c4f909 ("net: ethernet: aquantia: Support for NIC-specific code")
    Signed-off-by: Jacob Moroni <mail@jakemoroni.com>
    Reviewed-by: Igor Russkikh <irusskikh@marvell.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250203143604.24930-3-mail@jakemoroni.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a6f3981d04d1152017f2e8f00eb5c02726817d69
Author: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Date:   Thu Jun 6 15:31:02 2024 +1200

    gpio: pca953x: Improve interrupt support
    
    [ Upstream commit d6179f6c6204f9932aed3a7a2100b4a295dfed9d ]
    
    The GPIO drivers with latch interrupt support (typically types starting
    with PCAL) have interrupt status registers to determine which particular
    inputs have caused an interrupt. Unfortunately there is no atomic
    operation to read these registers and clear the interrupt. Clearing the
    interrupt is done by reading the input registers.
    
    The code was reading the interrupt status registers, and then reading
    the input registers. If an input changed between these two events it was
    lost.
    
    The solution in this patch is to revert to the non-latch version of
    code, i.e. remembering the previous input status, and looking for the
    changes. This system results in no more I2C transfers, so is no slower.
    The latch property of the device still means interrupts will still be
    noticed if the input changes back to its initial state.
    
    Fixes: 44896beae605 ("gpio: pca953x: add PCAL9535 interrupt support for Galileo Gen2")
    Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20240606033102.2271916-1-mark.tomlinson@alliedtelesis.co.nz
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 61e7e18fa64c8e3959e013671fab6708f6b2c7b3
Author: Yan Zhai <yan@cloudflare.com>
Date:   Fri Jan 31 00:31:39 2025 -0800

    udp: gso: do not drop small packets when PMTU reduces
    
    [ Upstream commit 235174b2bed88501fda689c113c55737f99332d8 ]
    
    Commit 4094871db1d6 ("udp: only do GSO if # of segs > 1") avoided GSO
    for small packets. But the kernel currently dismisses GSO requests only
    after checking MTU/PMTU on gso_size. This means any packets, regardless
    of their payload sizes, could be dropped when PMTU becomes smaller than
    requested gso_size. We encountered this issue in production and it
    caused a reliability problem that new QUIC connection cannot be
    established before PMTU cache expired, while non GSO sockets still
    worked fine at the same time.
    
    Ideally, do not check any GSO related constraints when payload size is
    smaller than requested gso_size, and return EMSGSIZE instead of EINVAL
    on MTU/PMTU check failure to be more specific on the error cause.
    
    Fixes: 4094871db1d6 ("udp: only do GSO if # of segs > 1")
    Signed-off-by: Yan Zhai <yan@cloudflare.com>
    Suggested-by: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 540ffff7925bc89fa43e025949dd0f10d6c1ad30
Author: Lenny Szubowicz <lszubowi@redhat.com>
Date:   Thu Jan 30 16:57:54 2025 -0500

    tg3: Disable tg3 PCIe AER on system reboot
    
    [ Upstream commit e0efe83ed325277bb70f9435d4d9fc70bebdcca8 ]
    
    Disable PCIe AER on the tg3 device on system reboot on a limited
    list of Dell PowerEdge systems. This prevents a fatal PCIe AER event
    on the tg3 device during the ACPI _PTS (prepare to sleep) method for
    S5 on those systems. The _PTS is invoked by acpi_enter_sleep_state_prep()
    as part of the kernel's reboot sequence as a result of commit
    38f34dba806a ("PM: ACPI: reboot: Reinstate S5 for reboot").
    
    There was an earlier fix for this problem by commit 2ca1c94ce0b6
    ("tg3: Disable tg3 device on system reboot to avoid triggering AER").
    But it was discovered that this earlier fix caused a reboot hang
    when some Dell PowerEdge servers were booted via ipxe. To address
    this reboot hang, the earlier fix was essentially reverted by commit
    9fc3bc764334 ("tg3: power down device only on SYSTEM_POWER_OFF").
    This re-exposed the tg3 PCIe AER on reboot problem.
    
    This fix is not an ideal solution because the root cause of the AER
    is in system firmware. Instead, it's a targeted work-around in the
    tg3 driver.
    
    Note also that the PCIe AER must be disabled on the tg3 device even
    if the system is configured to use "firmware first" error handling.
    
    V3:
       - Fix sparse warning on improper comparison of pdev->current_state
       - Adhere to netdev comment style
    
    Fixes: 9fc3bc764334 ("tg3: power down device only on SYSTEM_POWER_OFF")
    Signed-off-by: Lenny Szubowicz <lszubowi@redhat.com>
    Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 712e6ed39e5c00eecd340f3f960985f5d0b56b9e
Author: Hans Verkuil <hverkuil@xs4all.nl>
Date:   Wed Jan 29 10:51:48 2025 +0100

    gpu: drm_dp_cec: fix broken CEC adapter properties check
    
    [ Upstream commit 6daaae5ff7f3b23a2dacc9c387ff3d4f95b67cad ]
    
    If the hotplug detect of a display is low for longer than one second
    (configurable through drm_dp_cec_unregister_delay), then the CEC adapter
    is unregistered since we assume the display was disconnected. If the
    HPD went low for less than one second, then we check if the properties
    of the CEC adapter have changed, since that indicates that we actually
    switch to new hardware and we have to unregister the old CEC device and
    register a new one.
    
    Unfortunately, the test for changed properties was written poorly, and
    after a new CEC capability was added to the CEC core code the test always
    returned true (i.e. the properties had changed).
    
    As a result the CEC device was unregistered and re-registered for every
    HPD toggle. If the CEC remote controller integration was also enabled
    (CONFIG_MEDIA_CEC_RC was set), then the corresponding input device was
    also unregistered and re-registered. As a result the input device in
    /sys would keep incrementing its number, e.g.:
    
    /sys/devices/pci0000:00/0000:00:08.1/0000:e7:00.0/rc/rc0/input20
    
    Since short HPD toggles are common, the number could over time get into
    the thousands.
    
    While not a serious issue (i.e. nothing crashes), it is not intended
    to work that way.
    
    This patch changes the test so that it only checks for the single CEC
    capability that can actually change, and it ignores any other
    capabilities, so this is now safe as well if new caps are added in
    the future.
    
    With the changed test the bit under #ifndef CONFIG_MEDIA_CEC_RC can be
    dropped as well, so that's a nice cleanup.
    
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    Reported-by: Farblos <farblos@vodafonemail.de>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Fixes: 2c6d1fffa1d9 ("drm: add support for DisplayPort CEC-Tunneling-over-AUX")
    Tested-by: Farblos <farblos@vodafonemail.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/361bb03d-1691-4e23-84da-0861ead5dbdc@xs4all.nl
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 256768b17e6265f0b0bbe23af3c67b96a2075dc6
Author: Prasad Pandit <pjp@fedoraproject.org>
Date:   Mon Mar 11 16:21:22 2024 +0530

    firmware: iscsi_ibft: fix ISCSI_IBFT Kconfig entry
    
    [ Upstream commit e1e17a1715982201034024863efbf238bee2bdf9 ]
    
    Fix ISCSI_IBFT Kconfig entry, replace tab with a space character.
    
    Fixes: 138fe4e0697 ("Firmware: add iSCSI iBFT Support")
    Signed-off-by: Prasad Pandit <pjp@fedoraproject.org>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 51df156e04e56a029406111508785dd52aa7e239
Author: Daniel Wagner <wagi@kernel.org>
Date:   Thu Jan 9 14:30:48 2025 +0100

    nvme: handle connectivity loss in nvme_set_queue_count
    
    [ Upstream commit 294b2b7516fd06a8dd82e4a6118f318ec521e706 ]
    
    When the set feature attempts fails with any NVME status code set in
    nvme_set_queue_count, the function still report success. Though the
    numbers of queues set to 0. This is done to support controllers in
    degraded state (the admin queue is still up and running but no IO
    queues).
    
    Though there is an exception. When nvme_set_features reports an host
    path error, nvme_set_queue_count should propagate this error as the
    connectivity is lost, which means also the admin queue is not working
    anymore.
    
    Fixes: 9a0be7abb62f ("nvme: refactor set_queue_count")
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Daniel Wagner <wagi@kernel.org>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf30300a216a4f8dce94e11781a866a09d4b50d4
Author: Michal Pecio <michal.pecio@gmail.com>
Date:   Fri Dec 27 14:01:40 2024 +0200

    usb: xhci: Fix NULL pointer dereference on certain command aborts
    
    [ Upstream commit 1e0a19912adb68a4b2b74fd77001c96cd83eb073 ]
    
    If a command is queued to the final usable TRB of a ring segment, the
    enqueue pointer is advanced to the subsequent link TRB and no further.
    If the command is later aborted, when the abort completion is handled
    the dequeue pointer is advanced to the first TRB of the next segment.
    
    If no further commands are queued, xhci_handle_stopped_cmd_ring() sees
    the ring pointers unequal and assumes that there is a pending command,
    so it calls xhci_mod_cmd_timer() which crashes if cur_cmd was NULL.
    
    Don't attempt timer setup if cur_cmd is NULL. The subsequent doorbell
    ring likely is unnecessary too, but it's harmless. Leave it alone.
    
    This is probably Bug 219532, but no confirmation has been received.
    
    The issue has been independently reproduced and confirmed fixed using
    a USB MCU programmed to NAK the Status stage of SET_ADDRESS forever.
    Everything continued working normally after several prevented crashes.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=219532
    Fixes: c311e391a7ef ("xhci: rework command timeout and cancellation,")
    CC: stable@vger.kernel.org
    Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20241227120142.1035206-4-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b27f10764d800d6875fef8649099bacaba15b0bf
Author: Hardik Gajjar <hgajjar@de.adit-jv.com>
Date:   Fri Oct 27 17:20:28 2023 +0200

    usb: xhci: Add timeout argument in address_device USB HCD callback
    
    [ Upstream commit a769154c7cac037914ba375ae88aae55b2c853e0 ]
    
    - The HCD address_device callback now accepts a user-defined timeout value
      in milliseconds, providing better control over command execution times.
    - The default timeout value for the address_device command has been set
      to 5000 ms, aligning with the USB 3.2 specification. However, this
      timeout can be adjusted as needed.
    - The xhci_setup_device function has been updated to accept the timeout
      value, allowing it to specify the maximum wait time for the command
      operation to complete.
    - The hub driver has also been updated to accommodate the newly added
      timeout parameter during the SET_ADDRESS request.
    
    Signed-off-by: Hardik Gajjar <hgajjar@de.adit-jv.com>
    Reviewed-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20231027152029.104363-1-hgajjar@de.adit-jv.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: 1e0a19912adb ("usb: xhci: Fix NULL pointer dereference on certain command aborts")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d31d3dc9277576df53065071397e7231e92eb8c7
Author: Darrick J. Wong <djwong@kernel.org>
Date:   Thu Dec 12 14:37:56 2024 -0800

    xfs: don't over-report free space or inodes in statvfs
    
    [ Upstream commit 4b8d867ca6e2fc6d152f629fdaf027053b81765a ]
    
    Emmanual Florac reports a strange occurrence when project quota limits
    are enabled, free space is lower than the remaining quota, and someone
    runs statvfs:
    
      # mkfs.xfs -f /dev/sda
      # mount /dev/sda /mnt -o prjquota
      # xfs_quota  -x -c 'limit -p bhard=2G 55' /mnt
      # mkdir /mnt/dir
      # xfs_io -c 'chproj 55' -c 'chattr +P' -c 'stat -vvvv' /mnt/dir
      # fallocate -l 19g /mnt/a
      # df /mnt /mnt/dir
      Filesystem      Size  Used Avail Use% Mounted on
      /dev/sda         20G   20G  345M  99% /mnt
      /dev/sda        2.0G     0  2.0G   0% /mnt
    
    I think the bug here is that xfs_fill_statvfs_from_dquot unconditionally
    assigns to f_bfree without checking that the filesystem has enough free
    space to fill the remaining project quota.  However, this is a
    longstanding behavior of xfs so it's unclear what to do here.
    
    Cc: <stable@vger.kernel.org> # v2.6.18
    Fixes: 932f2c323196c2 ("[XFS] statvfs component of directory/project quota support, code originally by Glen.")
    Reported-by: Emmanuel Florac <eflorac@intellique.com>
    Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd015e2e7f269bdea7694e24717e631e6c219a1c
Author: Darrick J. Wong <djwong@kernel.org>
Date:   Sun Nov 3 20:19:40 2024 -0800

    xfs: report realtime block quota limits on realtime directories
    
    [ Upstream commit 9a17ebfea9d0c7e0bb7409dcf655bf982a5d6e52 ]
    
    On the data device, calling statvfs on a projinherit directory results
    in the block and avail counts being curtailed to the project quota block
    limits, if any are set.  Do the same for realtime files or directories,
    only use the project quota rt block limits.
    
    Signed-off-by: Darrick J. Wong <djwong@kernel.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Stable-dep-of: 4b8d867ca6e2 ("xfs: don't over-report free space or inodes in statvfs")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d25041d4a3b2af64c888cf762362b2528ba59294
Author: Sean Anderson <sean.anderson@linux.dev>
Date:   Fri Jan 10 11:33:54 2025 -0500

    gpio: xilinx: Convert gpio_lock to raw spinlock
    
    [ Upstream commit 9860370c2172704b6b4f0075a0c2a29fd84af96a ]
    
    irq_chip functions may be called in raw spinlock context. Therefore, we
    must also use a raw spinlock for our own internal locking.
    
    This fixes the following lockdep splat:
    
    [    5.349336] =============================
    [    5.353349] [ BUG: Invalid wait context ]
    [    5.357361] 6.13.0-rc5+ #69 Tainted: G        W
    [    5.363031] -----------------------------
    [    5.367045] kworker/u17:1/44 is trying to lock:
    [    5.371587] ffffff88018b02c0 (&chip->gpio_lock){....}-{3:3}, at: xgpio_irq_unmask (drivers/gpio/gpio-xilinx.c:433 (discriminator 8))
    [    5.380079] other info that might help us debug this:
    [    5.385138] context-{5:5}
    [    5.387762] 5 locks held by kworker/u17:1/44:
    [    5.392123] #0: ffffff8800014958 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work (kernel/workqueue.c:3204)
    [    5.402260] #1: ffffffc082fcbdd8 (deferred_probe_work){+.+.}-{0:0}, at: process_one_work (kernel/workqueue.c:3205)
    [    5.411528] #2: ffffff880172c900 (&dev->mutex){....}-{4:4}, at: __device_attach (drivers/base/dd.c:1006)
    [    5.419929] #3: ffffff88039c8268 (request_class#2){+.+.}-{4:4}, at: __setup_irq (kernel/irq/internals.h:156 kernel/irq/manage.c:1596)
    [    5.428331] #4: ffffff88039c80c8 (lock_class#2){....}-{2:2}, at: __setup_irq (kernel/irq/manage.c:1614)
    [    5.436472] stack backtrace:
    [    5.439359] CPU: 2 UID: 0 PID: 44 Comm: kworker/u17:1 Tainted: G        W          6.13.0-rc5+ #69
    [    5.448690] Tainted: [W]=WARN
    [    5.451656] Hardware name: xlnx,zynqmp (DT)
    [    5.455845] Workqueue: events_unbound deferred_probe_work_func
    [    5.461699] Call trace:
    [    5.464147] show_stack+0x18/0x24 C
    [    5.467821] dump_stack_lvl (lib/dump_stack.c:123)
    [    5.471501] dump_stack (lib/dump_stack.c:130)
    [    5.474824] __lock_acquire (kernel/locking/lockdep.c:4828 kernel/locking/lockdep.c:4898 kernel/locking/lockdep.c:5176)
    [    5.478758] lock_acquire (arch/arm64/include/asm/percpu.h:40 kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5851 kernel/locking/lockdep.c:5814)
    [    5.482429] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:111 kernel/locking/spinlock.c:162)
    [    5.486797] xgpio_irq_unmask (drivers/gpio/gpio-xilinx.c:433 (discriminator 8))
    [    5.490737] irq_enable (kernel/irq/internals.h:236 kernel/irq/chip.c:170 kernel/irq/chip.c:439 kernel/irq/chip.c:432 kernel/irq/chip.c:345)
    [    5.494060] __irq_startup (kernel/irq/internals.h:241 kernel/irq/chip.c:180 kernel/irq/chip.c:250)
    [    5.497645] irq_startup (kernel/irq/chip.c:270)
    [    5.501143] __setup_irq (kernel/irq/manage.c:1807)
    [    5.504728] request_threaded_irq (kernel/irq/manage.c:2208)
    
    Fixes: a32c7caea292 ("gpio: gpio-xilinx: Add interrupt support")
    Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20250110163354.2012654-1-sean.anderson@linux.dev
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4489cce8e4e717077cfba4a297478580ed8aadfb
Author: Paul Fertser <fercerpav@gmail.com>
Date:   Thu Jan 9 17:50:54 2025 +0300

    net/ncsi: fix locking in Get MAC Address handling
    
    [ Upstream commit 9e2bbab94b88295dcc57c7580393c9ee08d7314d ]
    
    Obtaining RTNL lock in a response handler is not allowed since it runs
    in an atomic softirq context. Postpone setting the MAC address by adding
    a dedicated step to the configuration FSM.
    
    Fixes: 790071347a0a ("net/ncsi: change from ndo_set_mac_address to dev_set_mac_address")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/20241129-potin-revert-ncsi-set-mac-addr-v1-1-94ea2cb596af@gmail.com
    Signed-off-by: Paul Fertser <fercerpav@gmail.com>
    Tested-by: Potin Lai <potin.lai.pt@gmail.com>
    Link: https://patch.msgid.link/20250109145054.30925-1-fercerpav@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8930834d1525ce0b493da2d627839b2b8dcb897d
Author: Peter Delevoryas <peter@pjd.dev>
Date:   Tue Nov 14 10:07:35 2023 -0600

    net/ncsi: Add NC-SI 1.2 Get MC MAC Address command
    
    [ Upstream commit b8291cf3d1180b5b61299922f17c9441616a805a ]
    
    This change adds support for the NC-SI 1.2 Get MC MAC Address command,
    specified here:
    
    https://www.dmtf.org/sites/default/files/standards/documents/DSP0222_1.2.0.pdf
    
    It serves the exact same function as the existing OEM Get MAC Address
    commands, so if a channel reports that it supports NC-SI 1.2, we prefer
    to use the standard command rather than the OEM command.
    
    Verified with an invalid MAC address and 2 valid ones:
    
    [   55.137072] ftgmac100 1e690000.ftgmac eth0: NCSI: Received 3 provisioned MAC addresses
    [   55.137614] ftgmac100 1e690000.ftgmac eth0: NCSI: MAC address 0: 00:00:00:00:00:00
    [   55.138026] ftgmac100 1e690000.ftgmac eth0: NCSI: MAC address 1: fa:ce:b0:0c:20:22
    [   55.138528] ftgmac100 1e690000.ftgmac eth0: NCSI: MAC address 2: fa:ce:b0:0c:20:23
    [   55.139241] ftgmac100 1e690000.ftgmac eth0: NCSI: Unable to assign 00:00:00:00:00:00 to device
    [   55.140098] ftgmac100 1e690000.ftgmac eth0: NCSI: Set MAC address to fa:ce:b0:0c:20:22
    
    Signed-off-by: Peter Delevoryas <peter@pjd.dev>
    Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: 9e2bbab94b88 ("net/ncsi: fix locking in Get MAC Address handling")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3f46fefab962fc5dcfe4d53a7c2cdccd51ebdc6d
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Mon Dec 16 10:55:39 2024 +0900

    usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove() and in the error path of .probe()
    
    [ Upstream commit 74adad500346fb07d69af2c79acbff4adb061134 ]
    
    Current implementation of ci_hdrc_imx_driver does not decrement the
    refcount of the device obtained in usbmisc_get_init_data(). Add a
    put_device() call in .remove() and in .probe() before returning an
    error.
    
    This bug was found by an experimental static analysis tool that I am
    developing.
    
    Cc: stable <stable@kernel.org>
    Fixes: f40017e0f332 ("chipidea: usbmisc_imx: Add USB support for VF610 SoCs")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Acked-by: Peter Chen <peter.chen@kernel.org>
    Link: https://lore.kernel.org/r/20241216015539.352579-1-joe@pf.is.s.u-tokyo.ac.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 998b1fa6c2181106cce72dec7f8fe779192a8ebd
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Thu May 18 01:01:07 2023 +0200

    usb: chipidea/ci_hdrc_imx: Convert to platform remove callback returning void
    
    [ Upstream commit ad593ed671feb49e93a77653886c042f68b6cdfd ]
    
    The .remove() callback for a platform driver returns an int which makes
    many driver authors wrongly assume it's possible to do error handling by
    returning an error code. However the value returned is ignored (apart from
    emitting a warning) and this typically results in resource leaks. To improve
    here there is a quest to make the remove callback return void. In the first
    step of this quest all drivers are converted to .remove_new() which already
    returns void. Eventually after all drivers are converted, .remove_new() is
    renamed to .remove().
    
    Trivially convert this driver from always returning zero in the remove
    callback to the void returning variant.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Link: https://lore.kernel.org/r/20230517230239.187727-6-u.kleine-koenig@pengutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: 74adad500346 ("usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove() and in the error path of .probe()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9794ea40979b4188da9b526dfb2d450a8257fbae
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Tue Jun 14 14:05:22 2022 +0200

    usb: chipidea: ci_hdrc_imx: use dev_err_probe()
    
    [ Upstream commit 18171cfc3c236a1587dcad9adc27c6e781af4438 ]
    
    Use dev_err_probe() to simplify handling errors in ci_hdrc_imx_probe()
    
    Acked-by: Peter Chen <peter.chen@kernel.org>
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Link: https://lore.kernel.org/r/20220614120522.1469957-1-alexander.stein@ew.tq-group.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: 74adad500346 ("usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove() and in the error path of .probe()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af431197516a76057d922617838ede16c3a71fdf
Author: Xi Ruoyao <xry111@xry111.site>
Date:   Wed May 22 10:06:24 2024 +0800

    x86/mm: Don't disable PCID when INVLPG has been fixed by microcode
    
    commit f24f669d03f884a6ef95cca84317d0f329e93961 upstream.
    
    Per the "Processor Specification Update" documentations referred by
    the intel-microcode-20240312 release note, this microcode release has
    fixed the issue for all affected models.
    
    So don't disable PCID if the microcode is new enough.  The precise
    minimum microcode revision fixing the issue was provided by Pawan
    Intel.
    
    [ dhansen: comment and changelog tweaks ]
    
    Signed-off-by: Xi Ruoyao <xry111@xry111.site>
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Acked-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Link: https://lore.kernel.org/all/168436059559.404.13934972543631851306.tip-bot2@tip-bot2/
    Link: https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20240312
    Link: https://cdrdv2.intel.com/v1/dl/getContent/740518 # RPL042, rev. 13
    Link: https://cdrdv2.intel.com/v1/dl/getContent/682436 # ADL063, rev. 24
    Link: https://lore.kernel.org/all/20240325231300.qrltbzf6twm43ftb@desk/
    Link: https://lore.kernel.org/all/20240522020625.69418-1-xry111%40xry111.site
    Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c56ea30db33dd59bf52325f2be6e3baa5568a467
Author: Armin Wolf <W_Armin@gmx.de>
Date:   Sun Jan 19 21:17:22 2025 +0100

    platform/x86: acer-wmi: Ignore AC events
    
    [ Upstream commit f6bfa25c6665f8721421ea94fe506cc22f1d4b43 ]
    
    On the Acer Swift SFG14-41, the events 8 - 1 and 8 - 0 are printed on
    AC connect/disconnect. Ignore those events to avoid spamming the
    kernel log with error messages.
    
    Reported-by: Farhan Anwar <farhan.anwar8@gmail.com>
    Closes: https://lore.kernel.org/platform-driver-x86/2ffb529d-e7c8-4026-a3b8-120c8e7afec8@gmail.com
    Tested-by: Rayan Margham <rayanmargham4@gmail.com>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Armin Wolf <W_Armin@gmx.de>
    Link: https://lore.kernel.org/r/20250119201723.11102-2-W_Armin@gmx.de
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 78a88a1690bcaa862403441b456ea9585b4bc90a
Author: Illia Ostapyshyn <illia@yshyn.com>
Date:   Thu Nov 14 18:39:29 2024 +0100

    Input: allocate keycode for phone linking
    
    [ Upstream commit 1bebc7869c99d466f819dd2cffaef0edf7d7a035 ]
    
    The F11 key on the new Lenovo Thinkpad T14 Gen 5, T16 Gen 3, and P14s
    Gen 5 laptops includes a symbol showing a smartphone and a laptop
    chained together.  According to the user manual, it starts the Microsoft
    Phone Link software used to connect to Android/iOS devices and relay
    messages/calls or sync data.
    
    As there are no suitable keycodes for this action, introduce a new one.
    
    Signed-off-by: Illia Ostapyshyn <illia@yshyn.com>
    Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Link: https://lore.kernel.org/r/20241114173930.44983-2-illia@yshyn.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>

commit b191b2b3b5adeaaed2ecec2c34a47828b36e891b
Author: Liu Ye <liuye@kylinos.cn>
Date:   Thu Jan 16 09:30:37 2025 +0800

    selftests/net/ipsec: Fix Null pointer dereference in rtattr_pack()
    
    [ Upstream commit 3a0b7fa095212b51ed63892540c4f249991a2d74 ]
    
    Address Null pointer dereference / undefined behavior in rtattr_pack
    (note that size is 0 in the bad case).
    
    Flagged by cppcheck as:
        tools/testing/selftests/net/ipsec.c:230:25: warning: Possible null pointer
        dereference: payload [nullPointer]
        memcpy(RTA_DATA(attr), payload, size);
                               ^
        tools/testing/selftests/net/ipsec.c:1618:54: note: Calling function 'rtattr_pack',
        4th argument 'NULL' value is 0
        if (rtattr_pack(&req.nh, sizeof(req), XFRMA_IF_ID, NULL, 0)) {
                                                           ^
        tools/testing/selftests/net/ipsec.c:230:25: note: Null pointer dereference
        memcpy(RTA_DATA(attr), payload, size);
                               ^
    Signed-off-by: Liu Ye <liuye@kylinos.cn>
    
    Link: https://patch.msgid.link/20250116013037.29470-1-liuye@kylinos.cn
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f213bb330fc64eac5e66d3986b107f3612305f8f
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Fri Jan 17 12:36:14 2025 +0300

    tipc: re-order conditions in tipc_crypto_key_rcv()
    
    [ Upstream commit 5fe71fda89745fc3cd95f70d06e9162b595c3702 ]
    
    On a 32bit system the "keylen + sizeof(struct tipc_aead_key)" math could
    have an integer wrapping issue.  It doesn't matter because the "keylen"
    is checked on the next line, but just to make life easier for static
    analysis tools, let's re-order these conditions and avoid the integer
    overflow.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c9b80829b001850f4f48497b0f2b2842c6a32c3a
Author: Yuanjie Yang <quic_yuanjiey@quicinc.com>
Date:   Tue Jan 14 16:35:14 2025 +0800

    mmc: sdhci-msm: Correctly set the load for the regulator
    
    [ Upstream commit 20a0c37e44063997391430c4ae09973e9cbc3911 ]
    
    Qualcomm regulator supports two power supply modes: HPM and LPM.
    Currently, the sdhci-msm.c driver does not set the load to adjust
    the current for eMMC and SD. If the regulator dont't set correct
    load in LPM state, it will lead to the inability to properly
    initialize eMMC and SD.
    
    Set the correct regulator current for eMMC and SD to ensure that the
    device can work normally even when the regulator is in LPM.
    
    Signed-off-by: Yuanjie Yang <quic_yuanjiey@quicinc.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20250114083514.258379-1-quic_yuanjiey@quicinc.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4dddb00d03979f7328f65b15a9df0a4d0d412168
Author: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Date:   Thu Jan 9 00:33:50 2025 +0100

    net: wwan: iosm: Fix hibernation by re-binding the driver around it
    
    [ Upstream commit 0b6f6593aa8c3a05f155c12fd0e7ad33a5149c31 ]
    
    Currently, the driver is seriously broken with respect to the
    hibernation (S4): after image restore the device is back into
    IPC_MEM_EXEC_STAGE_BOOT (which AFAIK means bootloader stage) and needs
    full re-launch of the rest of its firmware, but the driver restore
    handler treats the device as merely sleeping and just sends it a
    wake-up command.
    
    This wake-up command times out but device nodes (/dev/wwan*) remain
    accessible.
    However attempting to use them causes the bootloader to crash and
    enter IPC_MEM_EXEC_STAGE_CD_READY stage (which apparently means "a crash
    dump is ready").
    
    It seems that the device cannot be re-initialized from this crashed
    stage without toggling some reset pin (on my test platform that's
    apparently what the device _RST ACPI method does).
    
    While it would theoretically be possible to rewrite the driver to tear
    down the whole MUX / IPC layers on hibernation (so the bootloader does
    not crash from improper access) and then re-launch the device on
    restore this would require significant refactoring of the driver
    (believe me, I've tried), since there are quite a few assumptions
    hard-coded in the driver about the device never being partially
    de-initialized (like channels other than devlink cannot be closed,
    for example).
    Probably this would also need some programming guide for this hardware.
    
    Considering that the driver seems orphaned [1] and other people are
    hitting this issue too [2] fix it by simply unbinding the PCI driver
    before hibernation and re-binding it after restore, much like
    USB_QUIRK_RESET_RESUME does for USB devices that exhibit a similar
    problem.
    
    Tested on XMM7360 in HP EliteBook 855 G7 both with s2idle (which uses
    the existing suspend / resume handlers) and S4 (which uses the new code).
    
    [1]: https://lore.kernel.org/all/c248f0b4-2114-4c61-905f-466a786bdebb@leemhuis.info/
    [2]:
    https://github.com/xmm7360/xmm7360-pci/issues/211#issuecomment-1804139413
    
    Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
    Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
    Link: https://patch.msgid.link/e60287ebdb0ab54c4075071b72568a40a75d0205.1736372610.git.mail@maciej.szmigiero.name
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c60cdcff1023a1a8992e09410eb496f59377a87
Author: Borislav Petkov <bp@alien8.de>
Date:   Mon Jan 13 13:52:24 2025 +0100

    APEI: GHES: Have GHES honor the panic= setting
    
    [ Upstream commit 5c0e00a391dd0099fe95991bb2f962848d851916 ]
    
    The GHES driver overrides the panic= setting by force-rebooting the
    system after a fatal hw error has been reported. The intent being that
    such an error would be reported earlier.
    
    However, this is not optimal when a hard-to-debug issue requires long
    time to reproduce and when that happens, the box will get rebooted after
    30 seconds and thus destroy the whole hw context of when the error
    happened.
    
    So rip out the default GHES panic timeout and honor the global one.
    
    In the panic disabled (panic=0) case, the error will still be logged to
    dmesg for later inspection and if panic after a hw error is really
    required, then that can be controlled the usual way - use panic= on the
    cmdline or set it in the kernel .config's CONFIG_PANIC_TIMEOUT.
    
    Reported-by: Feng Tang <feng.tang@linux.alibaba.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Reviewed-by: Feng Tang <feng.tang@linux.alibaba.com>
    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Link: https://patch.msgid.link/20250113125224.GFZ4UMiNtWIJvgpveU@fat_crate.local
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3fa04850ddacc572553f4088378dec8317bc28c5
Author: Randolph Ha <rha051117@gmail.com>
Date:   Mon Jan 13 14:52:37 2025 -0500

    i2c: Force ELAN06FA touchpad I2C bus freq to 100KHz
    
    [ Upstream commit bfd74cd1fbc026f04446e67d6915c7e199c2bffd ]
    
    When a 400KHz freq is used on this model of ELAN touchpad in Linux,
    excessive smoothing (similar to when the touchpad's firmware detects
    a noisy signal) is sometimes applied. As some devices' (e.g, Lenovo
    V15 G4) ACPI tables specify a 400KHz frequency for this device and
    some I2C busses (e.g, Designware I2C) default to a 400KHz freq,
    force the speed to 100KHz as a workaround.
    
    For future investigation: This problem may be related to the default
    HCNT/LCNT values given by some busses' drivers, because they are not
    specified in the aforementioned devices' ACPI tables, and because
    the device works without issues on Windows at what is expected to be
    a 400KHz frequency. The root cause of the issue is not known.
    
    Signed-off-by: Randolph Ha <rha051117@gmail.com>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0bae6625cabc57a89b675973112af5cdba704a28
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Sat Dec 28 22:34:15 2024 +0200

    wifi: iwlwifi: avoid memory leak
    
    [ Upstream commit 80e96206a3ef348fbd658d98f2f43149c36df8bc ]
    
    A caller of iwl_acpi_get_dsm_object must free the returned object.
    iwl_acpi_get_dsm_integer returns immediately without freeing
    it if the expected size is more than 8 bytes. Fix that.
    
    Note that with the current code this will never happen, since the caller
    of iwl_acpi_get_dsm_integer already checks that the expected size if
    either 1 or 4 bytes, so it can't exceed 8 bytes.
    
    While at it, print the DSM value instead of the return value, as this
    was the intention in the first place.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://patch.msgid.link/20241228223206.bf61eaab99f8.Ibdc5df02f885208c222456d42c889c43b7e3b2f7@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 578845229c4e91b1ab6dd6d6fe45e2b83688e32a
Author: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Date:   Tue Jan 7 02:48:12 2025 -0800

    net/mlx5: use do_aux_work for PHC overflow checks
    
    [ Upstream commit e61e6c415ba9ff2b32bb6780ce1b17d1d76238f1 ]
    
    The overflow_work is using system wq to do overflow checks and updates
    for PHC device timecounter, which might be overhelmed by other tasks.
    But there is dedicated kthread in PTP subsystem designed for such
    things. This patch changes the work queue to proper align with PTP
    subsystem and to avoid overloading system work queue.
    The adjfine() function acts the same way as overflow check worker,
    we can postpone ptp aux worker till the next overflow period after
    adjfine() was called.
    
    Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
    Signed-off-by: Vadim Fedorenko <vadfed@meta.com>
    Acked-by: Tariq Toukan <tariqt@nvidia.com>
    Link: https://patch.msgid.link/20250107104812.380225-1-vadfed@meta.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 463f5f6402b9a4b871f800f66f1872a4237e4cda
Author: Even Xu <even.xu@intel.com>
Date:   Thu Dec 26 09:35:27 2024 +0800

    HID: Wacom: Add PCI Wacom device support
    
    [ Upstream commit c4c123504a65583e3689b3de04a61dc5272e453a ]
    
    Add PCI device ID of wacom device into driver support list.
    
    Signed-off-by: Even Xu <even.xu@intel.com>
    Tested-by: Tatsunosuke Tobita <tatsunosuke.tobita@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c16b96035c48bf57e668b2b9c42eebdff0cbf2d0
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Thu Nov 14 20:38:08 2024 +0100

    mfd: lpc_ich: Add another Gemini Lake ISA bridge PCI device-id
    
    [ Upstream commit 1e89d21f8189d286f80b900e1b7cf57cb1f3037e ]
    
    On N4100 / N4120 Gemini Lake SoCs the ISA bridge PCI device-id is 31e8
    rather the 3197 found on e.g. the N4000 / N4020.
    
    While at fix the existing GLK PCI-id table entry breaking the table
    being sorted by device-id.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Andy Shevchenko <andy@kernel.org>
    Link: https://lore.kernel.org/r/20241114193808.110132-1-hdegoede@redhat.com
    Signed-off-by: Lee Jones <lee@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b2bd5857a0d6973ebbcb4d9831ddcaebbd257be1
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Mon Dec 16 19:38:40 2024 +0900

    tomoyo: don't emit warning in tomoyo_write_control()
    
    [ Upstream commit 3df7546fc03b8f004eee0b9e3256369f7d096685 ]
    
    syzbot is reporting too large allocation warning at tomoyo_write_control(),
    for one can write a very very long line without new line character. To fix
    this warning, I use __GFP_NOWARN rather than checking for KMALLOC_MAX_SIZE,
    for practically a valid line should be always shorter than 32KB where the
    "too small to fail" memory-allocation rule applies.
    
    One might try to write a valid line that is longer than 32KB, but such
    request will likely fail with -ENOMEM. Therefore, I feel that separately
    returning -EINVAL when a line is longer than KMALLOC_MAX_SIZE is redundant.
    There is no need to distinguish over-32KB and over-KMALLOC_MAX_SIZE.
    
    Reported-by: syzbot+7536f77535e5210a5c76@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=7536f77535e5210a5c76
    Reported-by: Leo Stone <leocstone@gmail.com>
    Closes: https://lkml.kernel.org/r/20241216021459.178759-2-leocstone@gmail.com
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d280a12e9b87819a8a209639d600b48a2d6d65dc
Author: Dmitry Antipov <dmantipov@yandex.ru>
Date:   Tue Dec 10 10:04:41 2024 +0300

    wifi: brcmsmac: add gain range check to wlc_phy_iqcal_gainparams_nphy()
    
    [ Upstream commit 3f4a0948c3524ae50f166dbc6572a3296b014e62 ]
    
    In 'wlc_phy_iqcal_gainparams_nphy()', add gain range check to WARN()
    instead of possible out-of-bounds 'tbl_iqcal_gainparams_nphy' access.
    Compile tested only.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
    Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://patch.msgid.link/20241210070441.836362-1-dmantipov@yandex.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bafaee99fc23834fc666782c5e55f396de44e869
Author: Shawn Lin <shawn.lin@rock-chips.com>
Date:   Fri Nov 22 17:37:22 2024 +0800

    mmc: core: Respect quirk_max_rate for non-UHS SDIO card
    
    [ Upstream commit a2a44f8da29352f76c99c6904ee652911b8dc7dd ]
    
    The card-quirk was added to limit the clock-rate for a card with UHS-mode
    support, although let's respect the quirk for non-UHS mode too, to make the
    behaviour consistent.
    
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Message-ID: <1732268242-72799-1-git-send-email-shawn.lin@rock-chips.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b560350aa7bfaa1cc812d069cd6cff322c534f9
Author: Stas Sergeev <stsp2@yandex.ru>
Date:   Thu Dec 5 10:36:14 2024 +0300

    tun: fix group permission check
    
    [ Upstream commit 3ca459eaba1bf96a8c7878de84fa8872259a01e3 ]
    
    Currently tun checks the group permission even if the user have matched.
    Besides going against the usual permission semantic, this has a
    very interesting implication: if the tun group is not among the
    supplementary groups of the tun user, then effectively no one can
    access the tun device. CAP_SYS_ADMIN still can, but its the same as
    not setting the tun ownership.
    
    This patch relaxes the group checking so that either the user match
    or the group match is enough. This avoids the situation when no one
    can access the device even though the ownership is properly set.
    
    Also I simplified the logic by removing the redundant inversions:
    tun_not_capable() --> !tun_capable()
    
    Signed-off-by: Stas Sergeev <stsp2@yandex.ru>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Link: https://patch.msgid.link/20241205073614.294773-1-stsp2@yandex.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ecf6a4a558097920447a6fb84dfdb279e2ac749a
Author: Leo Stone <leocstone@gmail.com>
Date:   Tue Dec 17 10:26:57 2024 -0800

    safesetid: check size of policy writes
    
    [ Upstream commit f09ff307c7299392f1c88f763299e24bc99811c7 ]
    
    syzbot attempts to write a buffer with a large size to a sysfs entry
    with writes handled by handle_policy_update(), triggering a warning
    in kmalloc.
    
    Check the size specified for write buffers before allocating.
    
    Reported-by: syzbot+4eb7a741b3216020043a@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=4eb7a741b3216020043a
    Signed-off-by: Leo Stone <leocstone@gmail.com>
    [PM: subject tweak]
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb8ff054e19fe27f4e5eaac1b05e462894cfe9b1
Author: Kuan-Wei Chiu <visitorckw@gmail.com>
Date:   Sat Sep 28 19:36:08 2024 +0800

    printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX
    
    [ Upstream commit 3d6f83df8ff2d5de84b50377e4f0d45e25311c7a ]
    
    Shifting 1 << 31 on a 32-bit int causes signed integer overflow, which
    leads to undefined behavior. To prevent this, cast 1 to u32 before
    performing the shift, ensuring well-defined behavior.
    
    This change explicitly avoids any potential overflow by ensuring that
    the shift occurs on an unsigned 32-bit integer.
    
    Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
    Acked-by: Petr Mladek <pmladek@suse.com>
    Link: https://lore.kernel.org/r/20240928113608.1438087-1-visitorckw@gmail.com
    Signed-off-by: Petr Mladek <pmladek@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 99795e62e7a57d8dd82b82f226359c8a38fae030
Author: Yazen Ghannam <yazen.ghannam@amd.com>
Date:   Fri Dec 6 16:11:55 2024 +0000

    x86/amd_nb: Restrict init function to AMD-based systems
    
    [ Upstream commit bee9e840609cc67d0a7d82f22a2130fb7a0a766d ]
    
    The code implicitly operates on AMD-based systems by matching on PCI
    IDs. However, the use of these IDs is going away.
    
    Add an explicit CPU vendor check instead of relying on PCI IDs.
    
    Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Link: https://lore.kernel.org/r/20241206161210.163701-3-yazen.ghannam@amd.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23434fcf90b999ae5c7c17ce9123f580eaa5063c
Author: Carlos Llamas <cmllamas@google.com>
Date:   Thu Oct 24 18:36:26 2024 +0000

    lockdep: Fix upper limit for LOCKDEP_*_BITS configs
    
    [ Upstream commit e638072e61726cae363d48812815197a2a0e097f ]
    
    Lockdep has a set of configs used to determine the size of the static
    arrays that it uses. However, the upper limit that was initially setup
    for these configs is too high (30 bit shift). This equates to several
    GiB of static memory for individual symbols. Using such high values
    leads to linker errors:
    
      $ make defconfig
      $ ./scripts/config -e PROVE_LOCKING --set-val LOCKDEP_BITS 30
      $ make olddefconfig all
      [...]
      ld: kernel image bigger than KERNEL_IMAGE_SIZE
      ld: section .bss VMA wraps around address space
    
    Adjust the upper limits to the maximum values that avoid these issues.
    The need for anything more, likely points to a problem elsewhere. Note
    that LOCKDEP_CHAINS_BITS was intentionally left out as its upper limit
    had a different symptom and has already been fixed [1].
    
    Reported-by: J. R. Okajima <hooanon05g@gmail.com>
    Closes: https://lore.kernel.org/all/30795.1620913191@jrobl/ [1]
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Boqun Feng <boqun.feng@gmail.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Waiman Long <longman@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Acked-by: Waiman Long <longman@redhat.com>
    Signed-off-by: Carlos Llamas <cmllamas@google.com>
    Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
    Link: https://lore.kernel.org/r/20241024183631.643450-2-cmllamas@google.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 56135262c1f95adbf4ee923b31249261b4f75cd2
Author: Suleiman Souhlal <suleiman@google.com>
Date:   Mon Nov 18 13:37:45 2024 +0900

    sched: Don't try to catch up excess steal time.
    
    [ Upstream commit 108ad0999085df2366dd9ef437573955cb3f5586 ]
    
    When steal time exceeds the measured delta when updating clock_task, we
    currently try to catch up the excess in future updates.
    However, this results in inaccurate run times for the future things using
    clock_task, in some situations, as they end up getting additional steal
    time that did not actually happen.
    This is because there is a window between reading the elapsed time in
    update_rq_clock() and sampling the steal time in update_rq_clock_task().
    If the VCPU gets preempted between those two points, any additional
    steal time is accounted to the outgoing task even though the calculated
    delta did not actually contain any of that "stolen" time.
    When this race happens, we can end up with steal time that exceeds the
    calculated delta, and the previous code would try to catch up that excess
    steal time in future clock updates, which is given to the next,
    incoming task, even though it did not actually have any time stolen.
    
    This behavior is particularly bad when steal time can be very long,
    which we've seen when trying to extend steal time to contain the duration
    that the host was suspended [0]. When this happens, clock_task stays
    frozen, during which the running task stays running for the whole
    duration, since its run time doesn't increase.
    However the race can happen even under normal operation.
    
    Ideally we would read the elapsed cpu time and the steal time atomically,
    to prevent this race from happening in the first place, but doing so
    is non-trivial.
    
    Since the time between those two points isn't otherwise accounted anywhere,
    neither to the outgoing task nor the incoming task (because the "end of
    outgoing task" and "start of incoming task" timestamps are the same),
    I would argue that the right thing to do is to simply drop any excess steal
    time, in order to prevent these issues.
    
    [0] https://lore.kernel.org/kvm/20240820043543.837914-1-suleiman@google.com/
    
    Signed-off-by: Suleiman Souhlal <suleiman@google.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20241118043745.1857272-1-suleiman@google.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13dae4fa17be27a80830cc165a18738e72764abc
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Thu Oct 3 11:43:03 2024 -0400

    btrfs: convert BUG_ON in btrfs_reloc_cow_block() to proper error handling
    
    [ Upstream commit 6a4730b325aaa48f7a5d5ba97aff0a955e2d9cec ]
    
    This BUG_ON is meant to catch backref cache problems, but these can
    arise from either bugs in the backref cache or corruption in the extent
    tree.  Fix it to be a proper error.
    
    Reviewed-by: Boris Burkov <boris@bur.io>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 367b72fa18b0e7e0be7e23f23efcf571805439de
Author: Hao-ran Zheng <zhenghaoran154@gmail.com>
Date:   Tue Dec 3 15:56:51 2024 +0800

    btrfs: fix data race when accessing the inode's disk_i_size at btrfs_drop_extents()
    
    [ Upstream commit 5324c4e10e9c2ce307a037e904c0d9671d7137d9 ]
    
    A data race occurs when the function `insert_ordered_extent_file_extent()`
    and the function `btrfs_inode_safe_disk_i_size_write()` are executed
    concurrently. The function `insert_ordered_extent_file_extent()` is not
    locked when reading inode->disk_i_size, causing
    `btrfs_inode_safe_disk_i_size_write()` to cause data competition when
    writing inode->disk_i_size, thus affecting the value of `modify_tree`.
    
    The specific call stack that appears during testing is as follows:
    
      ============DATA_RACE============
       btrfs_drop_extents+0x89a/0xa060 [btrfs]
       insert_reserved_file_extent+0xb54/0x2960 [btrfs]
       insert_ordered_extent_file_extent+0xff5/0x1760 [btrfs]
       btrfs_finish_one_ordered+0x1b85/0x36a0 [btrfs]
       btrfs_finish_ordered_io+0x37/0x60 [btrfs]
       finish_ordered_fn+0x3e/0x50 [btrfs]
       btrfs_work_helper+0x9c9/0x27a0 [btrfs]
       process_scheduled_works+0x716/0xf10
       worker_thread+0xb6a/0x1190
       kthread+0x292/0x330
       ret_from_fork+0x4d/0x80
       ret_from_fork_asm+0x1a/0x30
      ============OTHER_INFO============
       btrfs_inode_safe_disk_i_size_write+0x4ec/0x600 [btrfs]
       btrfs_finish_one_ordered+0x24c7/0x36a0 [btrfs]
       btrfs_finish_ordered_io+0x37/0x60 [btrfs]
       finish_ordered_fn+0x3e/0x50 [btrfs]
       btrfs_work_helper+0x9c9/0x27a0 [btrfs]
       process_scheduled_works+0x716/0xf10
       worker_thread+0xb6a/0x1190
       kthread+0x292/0x330
       ret_from_fork+0x4d/0x80
       ret_from_fork_asm+0x1a/0x30
      =================================
    
    The main purpose of the check of the inode's disk_i_size is to avoid
    taking write locks on a btree path when we have a write at or beyond
    EOF, since in these cases we don't expect to find extent items in the
    root to drop. However if we end up taking write locks due to a data
    race on disk_i_size, everything is still correct, we only add extra
    lock contention on the tree in case there's concurrency from other tasks.
    If the race causes us to not take write locks when we actually need them,
    then everything is functionally correct as well, since if we find out we
    have extent items to drop and we took read locks (modify_tree set to 0),
    we release the path and retry again with write locks.
    
    Since this data race does not affect the correctness of the function,
    it is a harmless data race, use data_race() to check inode->disk_i_size.
    
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Hao-ran Zheng <zhenghaoran154@gmail.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7e954b6bb95d67ae4d1a20e9cfd83c182cf929bc
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon Jan 20 17:26:10 2025 +0000

    btrfs: fix use-after-free when attempting to join an aborted transaction
    
    [ Upstream commit e2f0943cf37305dbdeaf9846e3c941451bcdef63 ]
    
    When we are trying to join the current transaction and if it's aborted,
    we read its 'aborted' field after unlocking fs_info->trans_lock and
    without holding any extra reference count on it. This means that a
    concurrent task that is aborting the transaction may free the transaction
    before we read its 'aborted' field, leading to a use-after-free.
    
    Fix this by reading the 'aborted' field while holding fs_info->trans_lock
    since any freeing task must first acquire that lock and set
    fs_info->running_transaction to NULL before freeing the transaction.
    
    This was reported by syzbot and Dmitry with the following stack traces
    from KASAN:
    
       ==================================================================
       BUG: KASAN: slab-use-after-free in join_transaction+0xd9b/0xda0 fs/btrfs/transaction.c:278
       Read of size 4 at addr ffff888011839024 by task kworker/u4:9/1128
    
       CPU: 0 UID: 0 PID: 1128 Comm: kworker/u4:9 Not tainted 6.13.0-rc7-syzkaller-00019-gc45323b7560e #0
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
       Workqueue: events_unbound btrfs_async_reclaim_data_space
       Call Trace:
        <TASK>
        __dump_stack lib/dump_stack.c:94 [inline]
        dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
        print_address_description mm/kasan/report.c:378 [inline]
        print_report+0x169/0x550 mm/kasan/report.c:489
        kasan_report+0x143/0x180 mm/kasan/report.c:602
        join_transaction+0xd9b/0xda0 fs/btrfs/transaction.c:278
        start_transaction+0xaf8/0x1670 fs/btrfs/transaction.c:697
        flush_space+0x448/0xcf0 fs/btrfs/space-info.c:803
        btrfs_async_reclaim_data_space+0x159/0x510 fs/btrfs/space-info.c:1321
        process_one_work kernel/workqueue.c:3236 [inline]
        process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3317
        worker_thread+0x870/0xd30 kernel/workqueue.c:3398
        kthread+0x2f0/0x390 kernel/kthread.c:389
        ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
        ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
        </TASK>
    
       Allocated by task 5315:
        kasan_save_stack mm/kasan/common.c:47 [inline]
        kasan_save_track+0x3f/0x80 mm/kasan/common.c:68
        poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
        __kasan_kmalloc+0x98/0xb0 mm/kasan/common.c:394
        kasan_kmalloc include/linux/kasan.h:260 [inline]
        __kmalloc_cache_noprof+0x243/0x390 mm/slub.c:4329
        kmalloc_noprof include/linux/slab.h:901 [inline]
        join_transaction+0x144/0xda0 fs/btrfs/transaction.c:308
        start_transaction+0xaf8/0x1670 fs/btrfs/transaction.c:697
        btrfs_create_common+0x1b2/0x2e0 fs/btrfs/inode.c:6572
        lookup_open fs/namei.c:3649 [inline]
        open_last_lookups fs/namei.c:3748 [inline]
        path_openat+0x1c03/0x3590 fs/namei.c:3984
        do_filp_open+0x27f/0x4e0 fs/namei.c:4014
        do_sys_openat2+0x13e/0x1d0 fs/open.c:1402
        do_sys_open fs/open.c:1417 [inline]
        __do_sys_creat fs/open.c:1495 [inline]
        __se_sys_creat fs/open.c:1489 [inline]
        __x64_sys_creat+0x123/0x170 fs/open.c:1489
        do_syscall_x64 arch/x86/entry/common.c:52 [inline]
        do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
        entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
       Freed by task 5336:
        kasan_save_stack mm/kasan/common.c:47 [inline]
        kasan_save_track+0x3f/0x80 mm/kasan/common.c:68
        kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:582
        poison_slab_object mm/kasan/common.c:247 [inline]
        __kasan_slab_free+0x59/0x70 mm/kasan/common.c:264
        kasan_slab_free include/linux/kasan.h:233 [inline]
        slab_free_hook mm/slub.c:2353 [inline]
        slab_free mm/slub.c:4613 [inline]
        kfree+0x196/0x430 mm/slub.c:4761
        cleanup_transaction fs/btrfs/transaction.c:2063 [inline]
        btrfs_commit_transaction+0x2c97/0x3720 fs/btrfs/transaction.c:2598
        insert_balance_item+0x1284/0x20b0 fs/btrfs/volumes.c:3757
        btrfs_balance+0x992/0x10c0 fs/btrfs/volumes.c:4633
        btrfs_ioctl_balance+0x493/0x7c0 fs/btrfs/ioctl.c:3670
        vfs_ioctl fs/ioctl.c:51 [inline]
        __do_sys_ioctl fs/ioctl.c:906 [inline]
        __se_sys_ioctl+0xf5/0x170 fs/ioctl.c:892
        do_syscall_x64 arch/x86/entry/common.c:52 [inline]
        do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
        entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
       The buggy address belongs to the object at ffff888011839000
        which belongs to the cache kmalloc-2k of size 2048
       The buggy address is located 36 bytes inside of
        freed 2048-byte region [ffff888011839000, ffff888011839800)
    
       The buggy address belongs to the physical page:
       page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x11838
       head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
       flags: 0xfff00000000040(head|node=0|zone=1|lastcpupid=0x7ff)
       page_type: f5(slab)
       raw: 00fff00000000040 ffff88801ac42000 ffffea0000493400 dead000000000002
       raw: 0000000000000000 0000000000080008 00000001f5000000 0000000000000000
       head: 00fff00000000040 ffff88801ac42000 ffffea0000493400 dead000000000002
       head: 0000000000000000 0000000000080008 00000001f5000000 0000000000000000
       head: 00fff00000000003 ffffea0000460e01 ffffffffffffffff 0000000000000000
       head: 0000000000000008 0000000000000000 00000000ffffffff 0000000000000000
       page dumped because: kasan: bad access detected
       page_owner tracks the page as allocated
       page last allocated via order 3, migratetype Unmovable, gfp_mask 0xd20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 57, tgid 57 (kworker/0:2), ts 67248182943, free_ts 67229742023
        set_page_owner include/linux/page_owner.h:32 [inline]
        post_alloc_hook+0x1f3/0x230 mm/page_alloc.c:1558
        prep_new_page mm/page_alloc.c:1566 [inline]
        get_page_from_freelist+0x365c/0x37a0 mm/page_alloc.c:3476
        __alloc_pages_noprof+0x292/0x710 mm/page_alloc.c:4753
        alloc_pages_mpol_noprof+0x3e1/0x780 mm/mempolicy.c:2269
        alloc_slab_page+0x6a/0x110 mm/slub.c:2423
        allocate_slab+0x5a/0x2b0 mm/slub.c:2589
        new_slab mm/slub.c:2642 [inline]
        ___slab_alloc+0xc27/0x14a0 mm/slub.c:3830
        __slab_alloc+0x58/0xa0 mm/slub.c:3920
        __slab_alloc_node mm/slub.c:3995 [inline]
        slab_alloc_node mm/slub.c:4156 [inline]
        __do_kmalloc_node mm/slub.c:4297 [inline]
        __kmalloc_node_track_caller_noprof+0x2e9/0x4c0 mm/slub.c:4317
        kmalloc_reserve+0x111/0x2a0 net/core/skbuff.c:609
        __alloc_skb+0x1f3/0x440 net/core/skbuff.c:678
        alloc_skb include/linux/skbuff.h:1323 [inline]
        alloc_skb_with_frags+0xc3/0x820 net/core/skbuff.c:6612
        sock_alloc_send_pskb+0x91a/0xa60 net/core/sock.c:2884
        sock_alloc_send_skb include/net/sock.h:1803 [inline]
        mld_newpack+0x1c3/0xaf0 net/ipv6/mcast.c:1747
        add_grhead net/ipv6/mcast.c:1850 [inline]
        add_grec+0x1492/0x19a0 net/ipv6/mcast.c:1988
        mld_send_cr net/ipv6/mcast.c:2114 [inline]
        mld_ifc_work+0x691/0xd90 net/ipv6/mcast.c:2651
       page last free pid 5300 tgid 5300 stack trace:
        reset_page_owner include/linux/page_owner.h:25 [inline]
        free_pages_prepare mm/page_alloc.c:1127 [inline]
        free_unref_page+0xd3f/0x1010 mm/page_alloc.c:2659
        __slab_free+0x2c2/0x380 mm/slub.c:4524
        qlink_free mm/kasan/quarantine.c:163 [inline]
        qlist_free_all+0x9a/0x140 mm/kasan/quarantine.c:179
        kasan_quarantine_reduce+0x14f/0x170 mm/kasan/quarantine.c:286
        __kasan_slab_alloc+0x23/0x80 mm/kasan/common.c:329
        kasan_slab_alloc include/linux/kasan.h:250 [inline]
        slab_post_alloc_hook mm/slub.c:4119 [inline]
        slab_alloc_node mm/slub.c:4168 [inline]
        __do_kmalloc_node mm/slub.c:4297 [inline]
        __kmalloc_noprof+0x236/0x4c0 mm/slub.c:4310
        kmalloc_noprof include/linux/slab.h:905 [inline]
        kzalloc_noprof include/linux/slab.h:1037 [inline]
        fib_create_info+0xc14/0x25b0 net/ipv4/fib_semantics.c:1435
        fib_table_insert+0x1f6/0x1f20 net/ipv4/fib_trie.c:1231
        fib_magic+0x3d8/0x620 net/ipv4/fib_frontend.c:1112
        fib_add_ifaddr+0x40c/0x5e0 net/ipv4/fib_frontend.c:1156
        fib_netdev_event+0x375/0x490 net/ipv4/fib_frontend.c:1494
        notifier_call_chain+0x1a5/0x3f0 kernel/notifier.c:85
        __dev_notify_flags+0x207/0x400
        dev_change_flags+0xf0/0x1a0 net/core/dev.c:9045
        do_setlink+0xc90/0x4210 net/core/rtnetlink.c:3109
        rtnl_changelink net/core/rtnetlink.c:3723 [inline]
        __rtnl_newlink net/core/rtnetlink.c:3875 [inline]
        rtnl_newlink+0x1bb6/0x2210 net/core/rtnetlink.c:4012
    
       Memory state around the buggy address:
        ffff888011838f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
        ffff888011838f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
       >ffff888011839000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                      ^
        ffff888011839080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
        ffff888011839100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
       ==================================================================
    
    Reported-by: syzbot+45212e9d87a98c3f5b42@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/linux-btrfs/678e7da5.050a0220.303755.007c.GAE@google.com/
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Link: https://lore.kernel.org/linux-btrfs/CACT4Y+ZFBdo7pT8L2AzM=vegZwjp-wNkVJZQf0Ta3vZqtExaSw@mail.gmail.com/
    Fixes: 871383be592b ("btrfs: add missing unlocks to transaction abort paths")
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 51bcf530c6dc8699fafadc0255e6dae2156e0f5e
Author: Qu Wenruo <wqu@suse.com>
Date:   Tue Dec 10 15:23:06 2024 +1030

    btrfs: output the reason for open_ctree() failure
    
    commit d0f038104fa37380e2a725e669508e43d0c503e9 upstream.
    
    There is a recent ML report that mounting a large fs backed by hardware
    RAID56 controller (with one device missing) took too much time, and
    systemd seems to kill the mount attempt.
    
    In that case, the only error message is:
    
      BTRFS error (device sdj): open_ctree failed
    
    There is no reason on why the failure happened, making it very hard to
    understand the reason.
    
    At least output the error number (in the particular case it should be
    -EINTR) to provide some clue.
    
    Link: https://lore.kernel.org/linux-btrfs/9b9c4d2810abcca2f9f76e32220ed9a90febb235.camel@scientia.org/
    Reported-by: Christoph Anton Mitterer <calestyo@scientia.org>
    Cc: stable@vger.kernel.org
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bbb7f49839b57d66ccaf7b5752d9b63d3031dd0a
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Wed Dec 11 00:31:36 2024 +0000

    usb: gadget: f_tcm: Don't free command immediately
    
    commit c225d006a31949d673e646d585d9569bc28feeb9 upstream.
    
    Don't prematurely free the command. Wait for the status completion of
    the sense status. It can be freed then. Otherwise we will double-free
    the command.
    
    Fixes: cff834c16d23 ("usb-gadget/tcm: Convert to TARGET_SCF_ACK_KREF I/O krefs")
    Cc: stable@vger.kernel.org
    Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/ae919ac431f16275e05ec819bdffb3ac5f44cbe1.1733876548.git.Thinh.Nguyen@synopsys.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ba8884a56a3eb97c22f0ce0e4dd410d4ca4c277
Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date:   Fri Nov 8 01:51:30 2024 +0200

    media: uvcvideo: Fix double free in error path
    
    commit c6ef3a7fa97ec823a1e1af9085cf13db9f7b3bac upstream.
    
    If the uvc_status_init() function fails to allocate the int_urb, it will
    free the dev->status pointer but doesn't reset the pointer to NULL. This
    results in the kfree() call in uvc_status_cleanup() trying to
    double-free the memory. Fix it by resetting the dev->status pointer to
    NULL after freeing it.
    
    Fixes: a31a4055473b ("V4L/DVB:usbvideo:don't use part of buffer for USB transfer #4")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20241107235130.31372-1-laurent.pinchart@ideasonboard.com
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Reviewed by: Ricardo Ribalda <ribalda@chromium.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a7fda57b0f91f7ea34476b165f91a92feb17c96
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Thu Jan 23 19:05:54 2025 +0100

    mptcp: consolidate suboption status
    
    commit c86b000782daba926c627d2fa00c3f60a75e7472 upstream.
    
    MPTCP maintains the received sub-options status is the bitmask carrying
    the received suboptions and in several bitfields carrying per suboption
    additional info.
    
    Zeroing the bitmask before parsing is not enough to ensure a consistent
    status, and the MPTCP code has to additionally clear some bitfiled
    depending on the actually parsed suboption.
    
    The above schema is fragile, and syzbot managed to trigger a path where
    a relevant bitfield is not cleared/initialized:
    
      BUG: KMSAN: uninit-value in __mptcp_expand_seq net/mptcp/options.c:1030 [inline]
      BUG: KMSAN: uninit-value in mptcp_expand_seq net/mptcp/protocol.h:864 [inline]
      BUG: KMSAN: uninit-value in ack_update_msk net/mptcp/options.c:1060 [inline]
      BUG: KMSAN: uninit-value in mptcp_incoming_options+0x2036/0x3d30 net/mptcp/options.c:1209
       __mptcp_expand_seq net/mptcp/options.c:1030 [inline]
       mptcp_expand_seq net/mptcp/protocol.h:864 [inline]
       ack_update_msk net/mptcp/options.c:1060 [inline]
       mptcp_incoming_options+0x2036/0x3d30 net/mptcp/options.c:1209
       tcp_data_queue+0xb4/0x7be0 net/ipv4/tcp_input.c:5233
       tcp_rcv_established+0x1061/0x2510 net/ipv4/tcp_input.c:6264
       tcp_v4_do_rcv+0x7f3/0x11a0 net/ipv4/tcp_ipv4.c:1916
       tcp_v4_rcv+0x51df/0x5750 net/ipv4/tcp_ipv4.c:2351
       ip_protocol_deliver_rcu+0x2a3/0x13d0 net/ipv4/ip_input.c:205
       ip_local_deliver_finish+0x336/0x500 net/ipv4/ip_input.c:233
       NF_HOOK include/linux/netfilter.h:314 [inline]
       ip_local_deliver+0x21f/0x490 net/ipv4/ip_input.c:254
       dst_input include/net/dst.h:460 [inline]
       ip_rcv_finish+0x4a2/0x520 net/ipv4/ip_input.c:447
       NF_HOOK include/linux/netfilter.h:314 [inline]
       ip_rcv+0xcd/0x380 net/ipv4/ip_input.c:567
       __netif_receive_skb_one_core net/core/dev.c:5704 [inline]
       __netif_receive_skb+0x319/0xa00 net/core/dev.c:5817
       process_backlog+0x4ad/0xa50 net/core/dev.c:6149
       __napi_poll+0xe7/0x980 net/core/dev.c:6902
       napi_poll net/core/dev.c:6971 [inline]
       net_rx_action+0xa5a/0x19b0 net/core/dev.c:7093
       handle_softirqs+0x1a0/0x7c0 kernel/softirq.c:561
       __do_softirq+0x14/0x1a kernel/softirq.c:595
       do_softirq+0x9a/0x100 kernel/softirq.c:462
       __local_bh_enable_ip+0x9f/0xb0 kernel/softirq.c:389
       local_bh_enable include/linux/bottom_half.h:33 [inline]
       rcu_read_unlock_bh include/linux/rcupdate.h:919 [inline]
       __dev_queue_xmit+0x2758/0x57d0 net/core/dev.c:4493
       dev_queue_xmit include/linux/netdevice.h:3168 [inline]
       neigh_hh_output include/net/neighbour.h:523 [inline]
       neigh_output include/net/neighbour.h:537 [inline]
       ip_finish_output2+0x187c/0x1b70 net/ipv4/ip_output.c:236
       __ip_finish_output+0x287/0x810
       ip_finish_output+0x4b/0x600 net/ipv4/ip_output.c:324
       NF_HOOK_COND include/linux/netfilter.h:303 [inline]
       ip_output+0x15f/0x3f0 net/ipv4/ip_output.c:434
       dst_output include/net/dst.h:450 [inline]
       ip_local_out net/ipv4/ip_output.c:130 [inline]
       __ip_queue_xmit+0x1f2a/0x20d0 net/ipv4/ip_output.c:536
       ip_queue_xmit+0x60/0x80 net/ipv4/ip_output.c:550
       __tcp_transmit_skb+0x3cea/0x4900 net/ipv4/tcp_output.c:1468
       tcp_transmit_skb net/ipv4/tcp_output.c:1486 [inline]
       tcp_write_xmit+0x3b90/0x9070 net/ipv4/tcp_output.c:2829
       __tcp_push_pending_frames+0xc4/0x380 net/ipv4/tcp_output.c:3012
       tcp_send_fin+0x9f6/0xf50 net/ipv4/tcp_output.c:3618
       __tcp_close+0x140c/0x1550 net/ipv4/tcp.c:3130
       __mptcp_close_ssk+0x74e/0x16f0 net/mptcp/protocol.c:2496
       mptcp_close_ssk+0x26b/0x2c0 net/mptcp/protocol.c:2550
       mptcp_pm_nl_rm_addr_or_subflow+0x635/0xd10 net/mptcp/pm_netlink.c:889
       mptcp_pm_nl_rm_subflow_received net/mptcp/pm_netlink.c:924 [inline]
       mptcp_pm_flush_addrs_and_subflows net/mptcp/pm_netlink.c:1688 [inline]
       mptcp_nl_flush_addrs_list net/mptcp/pm_netlink.c:1709 [inline]
       mptcp_pm_nl_flush_addrs_doit+0xe10/0x1630 net/mptcp/pm_netlink.c:1750
       genl_family_rcv_msg_doit net/netlink/genetlink.c:1115 [inline]
       genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
       genl_rcv_msg+0x1214/0x12c0 net/netlink/genetlink.c:1210
       netlink_rcv_skb+0x375/0x650 net/netlink/af_netlink.c:2542
       genl_rcv+0x40/0x60 net/netlink/genetlink.c:1219
       netlink_unicast_kernel net/netlink/af_netlink.c:1321 [inline]
       netlink_unicast+0xf52/0x1260 net/netlink/af_netlink.c:1347
       netlink_sendmsg+0x10da/0x11e0 net/netlink/af_netlink.c:1891
       sock_sendmsg_nosec net/socket.c:711 [inline]
       __sock_sendmsg+0x30f/0x380 net/socket.c:726
       ____sys_sendmsg+0x877/0xb60 net/socket.c:2583
       ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2637
       __sys_sendmsg net/socket.c:2669 [inline]
       __do_sys_sendmsg net/socket.c:2674 [inline]
       __se_sys_sendmsg net/socket.c:2672 [inline]
       __x64_sys_sendmsg+0x212/0x3c0 net/socket.c:2672
       x64_sys_call+0x2ed6/0x3c30 arch/x86/include/generated/asm/syscalls_64.h:47
       do_syscall_x64 arch/x86/entry/common.c:52 [inline]
       do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
      Uninit was stored to memory at:
       mptcp_get_options+0x2c0f/0x2f20 net/mptcp/options.c:397
       mptcp_incoming_options+0x19a/0x3d30 net/mptcp/options.c:1150
       tcp_data_queue+0xb4/0x7be0 net/ipv4/tcp_input.c:5233
       tcp_rcv_established+0x1061/0x2510 net/ipv4/tcp_input.c:6264
       tcp_v4_do_rcv+0x7f3/0x11a0 net/ipv4/tcp_ipv4.c:1916
       tcp_v4_rcv+0x51df/0x5750 net/ipv4/tcp_ipv4.c:2351
       ip_protocol_deliver_rcu+0x2a3/0x13d0 net/ipv4/ip_input.c:205
       ip_local_deliver_finish+0x336/0x500 net/ipv4/ip_input.c:233
       NF_HOOK include/linux/netfilter.h:314 [inline]
       ip_local_deliver+0x21f/0x490 net/ipv4/ip_input.c:254
       dst_input include/net/dst.h:460 [inline]
       ip_rcv_finish+0x4a2/0x520 net/ipv4/ip_input.c:447
       NF_HOOK include/linux/netfilter.h:314 [inline]
       ip_rcv+0xcd/0x380 net/ipv4/ip_input.c:567
       __netif_receive_skb_one_core net/core/dev.c:5704 [inline]
       __netif_receive_skb+0x319/0xa00 net/core/dev.c:5817
       process_backlog+0x4ad/0xa50 net/core/dev.c:6149
       __napi_poll+0xe7/0x980 net/core/dev.c:6902
       napi_poll net/core/dev.c:6971 [inline]
       net_rx_action+0xa5a/0x19b0 net/core/dev.c:7093
       handle_softirqs+0x1a0/0x7c0 kernel/softirq.c:561
       __do_softirq+0x14/0x1a kernel/softirq.c:595
    
      Uninit was stored to memory at:
       put_unaligned_be32 include/linux/unaligned.h:68 [inline]
       mptcp_write_options+0x17f9/0x3100 net/mptcp/options.c:1417
       mptcp_options_write net/ipv4/tcp_output.c:465 [inline]
       tcp_options_write+0x6d9/0xe90 net/ipv4/tcp_output.c:759
       __tcp_transmit_skb+0x294b/0x4900 net/ipv4/tcp_output.c:1414
       tcp_transmit_skb net/ipv4/tcp_output.c:1486 [inline]
       tcp_write_xmit+0x3b90/0x9070 net/ipv4/tcp_output.c:2829
       __tcp_push_pending_frames+0xc4/0x380 net/ipv4/tcp_output.c:3012
       tcp_send_fin+0x9f6/0xf50 net/ipv4/tcp_output.c:3618
       __tcp_close+0x140c/0x1550 net/ipv4/tcp.c:3130
       __mptcp_close_ssk+0x74e/0x16f0 net/mptcp/protocol.c:2496
       mptcp_close_ssk+0x26b/0x2c0 net/mptcp/protocol.c:2550
       mptcp_pm_nl_rm_addr_or_subflow+0x635/0xd10 net/mptcp/pm_netlink.c:889
       mptcp_pm_nl_rm_subflow_received net/mptcp/pm_netlink.c:924 [inline]
       mptcp_pm_flush_addrs_and_subflows net/mptcp/pm_netlink.c:1688 [inline]
       mptcp_nl_flush_addrs_list net/mptcp/pm_netlink.c:1709 [inline]
       mptcp_pm_nl_flush_addrs_doit+0xe10/0x1630 net/mptcp/pm_netlink.c:1750
       genl_family_rcv_msg_doit net/netlink/genetlink.c:1115 [inline]
       genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
       genl_rcv_msg+0x1214/0x12c0 net/netlink/genetlink.c:1210
       netlink_rcv_skb+0x375/0x650 net/netlink/af_netlink.c:2542
       genl_rcv+0x40/0x60 net/netlink/genetlink.c:1219
       netlink_unicast_kernel net/netlink/af_netlink.c:1321 [inline]
       netlink_unicast+0xf52/0x1260 net/netlink/af_netlink.c:1347
       netlink_sendmsg+0x10da/0x11e0 net/netlink/af_netlink.c:1891
       sock_sendmsg_nosec net/socket.c:711 [inline]
       __sock_sendmsg+0x30f/0x380 net/socket.c:726
       ____sys_sendmsg+0x877/0xb60 net/socket.c:2583
       ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2637
       __sys_sendmsg net/socket.c:2669 [inline]
       __do_sys_sendmsg net/socket.c:2674 [inline]
       __se_sys_sendmsg net/socket.c:2672 [inline]
       __x64_sys_sendmsg+0x212/0x3c0 net/socket.c:2672
       x64_sys_call+0x2ed6/0x3c30 arch/x86/include/generated/asm/syscalls_64.h:47
       do_syscall_x64 arch/x86/entry/common.c:52 [inline]
       do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
      Uninit was stored to memory at:
       mptcp_pm_add_addr_signal+0x3d7/0x4c0
       mptcp_established_options_add_addr net/mptcp/options.c:666 [inline]
       mptcp_established_options+0x1b9b/0x3a00 net/mptcp/options.c:884
       tcp_established_options+0x2c4/0x7d0 net/ipv4/tcp_output.c:1012
       __tcp_transmit_skb+0x5b7/0x4900 net/ipv4/tcp_output.c:1333
       tcp_transmit_skb net/ipv4/tcp_output.c:1486 [inline]
       tcp_write_xmit+0x3b90/0x9070 net/ipv4/tcp_output.c:2829
       __tcp_push_pending_frames+0xc4/0x380 net/ipv4/tcp_output.c:3012
       tcp_send_fin+0x9f6/0xf50 net/ipv4/tcp_output.c:3618
       __tcp_close+0x140c/0x1550 net/ipv4/tcp.c:3130
       __mptcp_close_ssk+0x74e/0x16f0 net/mptcp/protocol.c:2496
       mptcp_close_ssk+0x26b/0x2c0 net/mptcp/protocol.c:2550
       mptcp_pm_nl_rm_addr_or_subflow+0x635/0xd10 net/mptcp/pm_netlink.c:889
       mptcp_pm_nl_rm_subflow_received net/mptcp/pm_netlink.c:924 [inline]
       mptcp_pm_flush_addrs_and_subflows net/mptcp/pm_netlink.c:1688 [inline]
       mptcp_nl_flush_addrs_list net/mptcp/pm_netlink.c:1709 [inline]
       mptcp_pm_nl_flush_addrs_doit+0xe10/0x1630 net/mptcp/pm_netlink.c:1750
       genl_family_rcv_msg_doit net/netlink/genetlink.c:1115 [inline]
       genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
       genl_rcv_msg+0x1214/0x12c0 net/netlink/genetlink.c:1210
       netlink_rcv_skb+0x375/0x650 net/netlink/af_netlink.c:2542
       genl_rcv+0x40/0x60 net/netlink/genetlink.c:1219
       netlink_unicast_kernel net/netlink/af_netlink.c:1321 [inline]
       netlink_unicast+0xf52/0x1260 net/netlink/af_netlink.c:1347
       netlink_sendmsg+0x10da/0x11e0 net/netlink/af_netlink.c:1891
       sock_sendmsg_nosec net/socket.c:711 [inline]
       __sock_sendmsg+0x30f/0x380 net/socket.c:726
       ____sys_sendmsg+0x877/0xb60 net/socket.c:2583
       ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2637
       __sys_sendmsg net/socket.c:2669 [inline]
       __do_sys_sendmsg net/socket.c:2674 [inline]
       __se_sys_sendmsg net/socket.c:2672 [inline]
       __x64_sys_sendmsg+0x212/0x3c0 net/socket.c:2672
       x64_sys_call+0x2ed6/0x3c30 arch/x86/include/generated/asm/syscalls_64.h:47
       do_syscall_x64 arch/x86/entry/common.c:52 [inline]
       do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
      Uninit was stored to memory at:
       mptcp_pm_add_addr_received+0x95f/0xdd0 net/mptcp/pm.c:235
       mptcp_incoming_options+0x2983/0x3d30 net/mptcp/options.c:1169
       tcp_data_queue+0xb4/0x7be0 net/ipv4/tcp_input.c:5233
       tcp_rcv_state_process+0x2a38/0x49d0 net/ipv4/tcp_input.c:6972
       tcp_v4_do_rcv+0xbf9/0x11a0 net/ipv4/tcp_ipv4.c:1939
       tcp_v4_rcv+0x51df/0x5750 net/ipv4/tcp_ipv4.c:2351
       ip_protocol_deliver_rcu+0x2a3/0x13d0 net/ipv4/ip_input.c:205
       ip_local_deliver_finish+0x336/0x500 net/ipv4/ip_input.c:233
       NF_HOOK include/linux/netfilter.h:314 [inline]
       ip_local_deliver+0x21f/0x490 net/ipv4/ip_input.c:254
       dst_input include/net/dst.h:460 [inline]
       ip_rcv_finish+0x4a2/0x520 net/ipv4/ip_input.c:447
       NF_HOOK include/linux/netfilter.h:314 [inline]
       ip_rcv+0xcd/0x380 net/ipv4/ip_input.c:567
       __netif_receive_skb_one_core net/core/dev.c:5704 [inline]
       __netif_receive_skb+0x319/0xa00 net/core/dev.c:5817
       process_backlog+0x4ad/0xa50 net/core/dev.c:6149
       __napi_poll+0xe7/0x980 net/core/dev.c:6902
       napi_poll net/core/dev.c:6971 [inline]
       net_rx_action+0xa5a/0x19b0 net/core/dev.c:7093
       handle_softirqs+0x1a0/0x7c0 kernel/softirq.c:561
       __do_softirq+0x14/0x1a kernel/softirq.c:595
    
      Local variable mp_opt created at:
       mptcp_incoming_options+0x119/0x3d30 net/mptcp/options.c:1127
       tcp_data_queue+0xb4/0x7be0 net/ipv4/tcp_input.c:5233
    
    The current schema is too fragile; address the issue grouping all the
    state-related data together and clearing the whole group instead of
    just the bitmask. This also cleans-up the code a bit, as there is no
    need to individually clear "random" bitfield in a couple of places
    any more.
    
    Fixes: 84dfe3677a6f ("mptcp: send out dedicated ADD_ADDR packet")
    Cc: stable@vger.kernel.org
    Reported-by: syzbot+23728c2df58b3bd175ad@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/6786ac51.050a0220.216c54.00a7.GAE@google.com
    Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/541
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
    Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
    Link: https://patch.msgid.link/20250123-net-mptcp-syzbot-issues-v1-1-af73258a726f@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83a3a5aeb1b1df5379a53189412ceecbc8e3cb0b
Author: Kyle Tso <kyletso@google.com>
Date:   Tue Jan 14 22:24:35 2025 +0800

    usb: typec: tcpci: Prevent Sink disconnection before vPpsShutdown in SPR PPS
    
    commit 4d27afbf256028a1f54363367f30efc8854433c3 upstream.
    
    The Source can drop its output voltage to the minimum of the requested
    PPS APDO voltage range when it is in Current Limit Mode. If this voltage
    falls within the range of vPpsShutdown, the Source initiates a Hard
    Reset and discharges Vbus. However, currently the Sink may disconnect
    before the voltage reaches vPpsShutdown, leading to unexpected behavior.
    
    Prevent premature disconnection by setting the Sink's disconnect
    threshold to the minimum vPpsShutdown value. Additionally, consider the
    voltage drop due to IR drop when calculating the appropriate threshold.
    This ensures a robust and reliable interaction between the Source and
    Sink during SPR PPS Current Limit Mode operation.
    
    Fixes: 4288debeaa4e ("usb: typec: tcpci: Fix up sink disconnect thresholds for PD")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Kyle Tso <kyletso@google.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Reviewed-by: Badhri Jagan Sridharan <badhri@google.com>
    Link: https://lore.kernel.org/r/20250114142435.2093857-1-kyletso@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb52bce4c91c821f172913905a39035060493809
Author: Jos Wang <joswang@lenovo.com>
Date:   Sun Jan 5 21:52:45 2025 +0800

    usb: typec: tcpm: set SRC_SEND_CAPABILITIES timeout to PD_T_SENDER_RESPONSE
    
    commit 2eb3da037c2c20fa30bc502bc092479b2a1aaae2 upstream.
    
    As PD2.0 spec ("8.3.3.2.3 PE_SRC_Send_Capabilities state"), after the
    Source receives the GoodCRC Message from the Sink in response to the
    Source_Capabilities message, it should start the SenderResponseTimer,
    after the timer times out, the state machine transitions to the
    HARD_RESET state.
    
    Fixes: f0690a25a140 ("staging: typec: USB Type-C Port Manager (tcpm)")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jos Wang <joswang@lenovo.com>
    Reviewed-by: Badhri Jagan Sridharan <badhri@google.com>
    Link: https://lore.kernel.org/r/20250105135245.7493-1-joswang1221@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16d5669ff07fb7db7fbe5b2e5a90031137693558
Author: Kyle Tso <kyletso@google.com>
Date:   Wed Jan 15 12:45:48 2025 +0800

    usb: dwc3: core: Defer the probe until USB power supply ready
    
    commit 66e0ea341a2a78d14336117f19763bd9be26d45d upstream.
    
    Currently, DWC3 driver attempts to acquire the USB power supply only
    once during the probe. If the USB power supply is not ready at that
    time, the driver simply ignores the failure and continues the probe,
    leading to permanent non-functioning of the gadget vbus_draw callback.
    
    Address this problem by delaying the dwc3 driver initialization until
    the USB power supply is registered.
    
    Fixes: 6f0764b5adea ("usb: dwc3: add a power supply for current control")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Kyle Tso <kyletso@google.com>
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/20250115044548.2701138-1-kyletso@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2cfbf53baeaf2320e6ea64c53457892d0d0203a0
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Wed Dec 11 00:31:55 2024 +0000

    usb: gadget: f_tcm: Fix Get/SetInterface return value
    
    commit 3b997089903b909684114aca6f79d683e5c64a0e upstream.
    
    Check to make sure that the GetInterface and SetInterface are for valid
    interface. Return proper alternate setting number on GetInterface.
    
    Fixes: 0b8b1a1fede0 ("usb: gadget: f_tcm: Provide support to get alternate setting in tcm function")
    Cc: stable@vger.kernel.org
    Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/ffd91b4640945ea4d3b4f4091cf1abbdbd9cf4fc.1733876548.git.Thinh.Nguyen@synopsys.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3c1f8dfa01b3ca363925017a72f459bf15471737
Author: Sean Rhodes <sean@starlabs.systems>
Date:   Tue Nov 19 08:58:15 2024 +0000

    drivers/card_reader/rtsx_usb: Restore interrupt based detection
    
    commit 235b630eda072d7e7b102ab346d6b8a2c028a772 upstream.
    
    This commit reintroduces interrupt-based card detection previously
    used in the rts5139 driver. This functionality was removed in commit
    00d8521dcd23 ("staging: remove rts5139 driver code").
    
    Reintroducing this mechanism fixes presence detection for certain card
    readers, which with the current driver, will taken approximately 20
    seconds to enter S3 as `mmc_rescan` has to be frozen.
    
    Fixes: 00d8521dcd23 ("staging: remove rts5139 driver code")
    Cc: stable@vger.kernel.org
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sean Rhodes <sean@starlabs.systems>
    Link: https://lore.kernel.org/r/20241119085815.11769-1-sean@starlabs.systems
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d42168f109f96b5d18812a789086015a435ee667
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Fri Jan 24 01:30:20 2025 -0800

    net: usb: rtl8150: enable basic endpoint checking
    
    commit 90b7f2961798793275b4844348619b622f983907 upstream.
    
    Syzkaller reports [1] encountering a common issue of utilizing a wrong
    usb endpoint type during URB submitting stage. This, in turn, triggers
    a warning shown below.
    
    For now, enable simple endpoint checking (specifically, bulk and
    interrupt eps, testing control one is not essential) to mitigate
    the issue with a view to do other related cosmetic changes later,
    if they are necessary.
    
    [1] Syzkaller report:
    usb 1-1: BOGUS urb xfer, pipe 3 != type 1
    WARNING: CPU: 1 PID: 2586 at drivers/usb/core/urb.c:503 usb_submit_urb+0xe4b/0x1730 driv>
    Modules linked in:
    CPU: 1 UID: 0 PID: 2586 Comm: dhcpcd Not tainted 6.11.0-rc4-syzkaller-00069-gfc88bb11617>
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/06/2024
    RIP: 0010:usb_submit_urb+0xe4b/0x1730 drivers/usb/core/urb.c:503
    Code: 84 3c 02 00 00 e8 05 e4 fc fc 4c 89 ef e8 fd 25 d7 fe 45 89 e0 89 e9 4c 89 f2 48 8>
    RSP: 0018:ffffc9000441f740 EFLAGS: 00010282
    RAX: 0000000000000000 RBX: ffff888112487a00 RCX: ffffffff811a99a9
    RDX: ffff88810df6ba80 RSI: ffffffff811a99b6 RDI: 0000000000000001
    RBP: 0000000000000003 R08: 0000000000000001 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000001
    R13: ffff8881023bf0a8 R14: ffff888112452a20 R15: ffff888112487a7c
    FS:  00007fc04eea5740(0000) GS:ffff8881f6300000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f0a1de9f870 CR3: 000000010dbd0000 CR4: 00000000003506f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <TASK>
     rtl8150_open+0x300/0xe30 drivers/net/usb/rtl8150.c:733
     __dev_open+0x2d4/0x4e0 net/core/dev.c:1474
     __dev_change_flags+0x561/0x720 net/core/dev.c:8838
     dev_change_flags+0x8f/0x160 net/core/dev.c:8910
     devinet_ioctl+0x127a/0x1f10 net/ipv4/devinet.c:1177
     inet_ioctl+0x3aa/0x3f0 net/ipv4/af_inet.c:1003
     sock_do_ioctl+0x116/0x280 net/socket.c:1222
     sock_ioctl+0x22e/0x6c0 net/socket.c:1341
     vfs_ioctl fs/ioctl.c:51 [inline]
     __do_sys_ioctl fs/ioctl.c:907 [inline]
     __se_sys_ioctl fs/ioctl.c:893 [inline]
     __x64_sys_ioctl+0x193/0x220 fs/ioctl.c:893
     do_syscall_x64 arch/x86/entry/common.c:52 [inline]
     do_syscall_64+0xcd/0x250 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    RIP: 0033:0x7fc04ef73d49
    ...
    
    This change has not been tested on real hardware.
    
    Reported-and-tested-by: syzbot+d7e968426f644b567e31@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=d7e968426f644b567e31
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable@vger.kernel.org
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Link: https://patch.msgid.link/20250124093020.234642-1-n.zhandarovich@fintech.ru
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 10eff770fd16aca0a5f9cb158e28a3975ff09138
Author: Lianqin Hu <hulianqin@vivo.com>
Date:   Sun Jan 26 03:51:11 2025 +0000

    ALSA: usb-audio: Add delay quirk for iBasso DC07 Pro
    
    commit d85fc52cbb9a719c8335d93a28d6a79d7acd419f upstream.
    
    Audio control requests that sets sampling frequency sometimes fail on
    this card. Adding delay between control messages eliminates that problem.
    
    usb 1-1: New USB device found, idVendor=2fc6, idProduct=f0b7
    usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    usb 1-1: Product: iBasso DC07 Pro
    usb 1-1: Manufacturer: iBasso
    usb 1-1: SerialNumber: CTUA171130B
    
    Signed-off-by: Lianqin Hu <hulianqin@vivo.com>
    Cc: <stable@vger.kernel.org>
    Link: https://patch.msgid.link/TYUPR06MB62174A48D04E09A37996DF84D2ED2@TYUPR06MB6217.apcprd06.prod.outlook.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit deec230cb83556f96dd027a4698aa45b9cc533ab
Author: Ricardo B. Marliere <rbm@suse.com>
Date:   Thu Dec 5 17:50:35 2024 -0300

    ktest.pl: Check kernelrelease return in get_version
    
    commit a4e17a8f239a545c463f8ec27db4ed6e74b31841 upstream.
    
    In the case of a test that uses the special option ${KERNEL_VERSION} in one
    of its settings but has no configuration available in ${OUTPUT_DIR}, for
    example if it's a new empty directory, then the `make kernelrelease` call
    will fail and the subroutine will chomp an empty string, silently. Fix that
    by adding an empty configuration and retrying.
    
    Cc: stable@vger.kernel.org
    Cc: John Hawley <warthog9@eaglescrag.net>
    Fixes: 5f9b6ced04a4e ("ktest: Bisecting, install modules, add logging")
    Link: https://lore.kernel.org/20241205-ktest_kver_fallback-v2-1-869dae4c7777@suse.com
    Signed-off-by: Ricardo B. Marliere <rbm@suse.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5083a7ae45003456c253e981b30a43f71230b4a3
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Tue Jan 28 12:26:33 2025 +0100

    netfilter: nf_tables: reject mismatching sum of field_len with set key length
    
    commit 1b9335a8000fb70742f7db10af314104b6ace220 upstream.
    
    The field length description provides the length of each separated key
    field in the concatenation, each field gets rounded up to 32-bits to
    calculate the pipapo rule width from pipapo_init(). The set key length
    provides the total size of the key aligned to 32-bits.
    
    Register-based arithmetics still allows for combining mismatching set
    key length and field length description, eg. set key length 10 and field
    description [ 5, 4 ] leading to pipapo width of 12.
    
    Cc: stable@vger.kernel.org
    Fixes: 3ce67e3793f4 ("netfilter: nf_tables: do not allow mismatch field size and set key length")
    Reported-by: Noam Rathaus <noamr@ssd-disclosure.com>
    Reviewed-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d712ca4807cead46f8852ecf786bf4e9f6c4fb76
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Fri Jan 26 12:45:17 2024 -0500

    NFSD: Reset cb_seq_status after NFS4ERR_DELAY
    
    commit 961b4b5e86bf56a2e4b567f81682defa5cba957e upstream.
    
    I noticed that once an NFSv4.1 callback operation gets a
    NFS4ERR_DELAY status on CB_SEQUENCE and then the connection is lost,
    the callback client loops, resending it indefinitely.
    
    The switch arm in nfsd4_cb_sequence_done() that handles
    NFS4ERR_DELAY uses rpc_restart_call() to rearm the RPC state machine
    for the retransmit, but that path does not call the rpc_prepare_call
    callback again. Thus cb_seq_status is set to -10008 by the first
    NFS4ERR_DELAY result, but is never set back to 1 for the retransmits.
    
    nfsd4_cb_sequence_done() thinks it's getting nothing but a
    long series of CB_SEQUENCE NFS4ERR_DELAY replies.
    
    Fixes: 7ba6cad6c88f ("nfsd: New helper nfsd4_cb_sequence_done() for processing more cb errors")
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0938ffd39aedfe96f889105a0dc704f48d6b2f7
Author: Daniel Lee <chullee@google.com>
Date:   Fri Dec 20 15:41:31 2024 -0800

    f2fs: Introduce linear search for dentries
    
    commit 91b587ba79e1b68bb718d12b0758dbcdab4e9cb7 upstream.
    
    This patch addresses an issue where some files in case-insensitive
    directories become inaccessible due to changes in how the kernel function,
    utf8_casefold(), generates case-folded strings from the commit 5c26d2f1d3f5
    ("unicode: Don't special case ignorable code points").
    
    F2FS uses these case-folded names to calculate hash values for locating
    dentries and stores them on disk. Since utf8_casefold() can produce
    different output across kernel versions, stored hash values and newly
    calculated hash values may differ. This results in affected files no
    longer being found via the hash-based lookup.
    
    To resolve this, the patch introduces a linear search fallback.
    If the initial hash-based search fails, F2FS will sequentially scan the
    directory entries.
    
    Fixes: 5c26d2f1d3f5 ("unicode: Don't special case ignorable code points")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=219586
    Signed-off-by: Daniel Lee <chullee@google.com>
    Reviewed-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Cc: Daniel Rosenberg <drosen@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 679bb865c8818a0dc5c361ad021ab9e810a64bec
Author: Lin Yujun <linyujun809@huawei.com>
Date:   Mon May 22 02:56:08 2023 +0000

    hexagon: Fix unbalanced spinlock in die()
    
    [ Upstream commit 03410e87563a122075c3721acc7d5510e41d8332 ]
    
    die executes holding the spinlock of &die.lock and unlock
    it after printing the oops message.
    However in the code if the notify_die() returns NOTIFY_STOP
    , die() exit with returning 1 but never unlocked the spinlock.
    
    Fix this by adding spin_unlock_irq(&die.lock) before returning.
    
    Fixes: cf9750bae262 ("Hexagon: Provide basic debugging and system trap support.")
    Signed-off-by: Lin Yujun <linyujun809@huawei.com>
    Link: https://lore.kernel.org/r/20230522025608.2515558-1-linyujun809@huawei.com
    Signed-off-by: Brian Cain <bcain@quicinc.com>
    Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8e83dbe9ff32061610347c2a26df2a7b6ba5c146
Author: Willem de Bruijn <willemb@google.com>
Date:   Tue Dec 3 17:17:34 2024 -0500

    hexagon: fix using plain integer as NULL pointer warning in cmpxchg
    
    [ Upstream commit 8a20030038742b9915c6d811a4e6c14b126cafb4 ]
    
    Sparse reports
    
        net/ipv4/inet_diag.c:1511:17: sparse: sparse: Using plain integer as NULL pointer
    
    Due to this code calling cmpxchg on a non-integer type
    struct inet_diag_handler *
    
        return !cmpxchg((const struct inet_diag_handler**)&inet_diag_table[type],
                        NULL, h) ? 0 : -EEXIST;
    
    While hexagon's cmpxchg assigns an integer value to a variable of this
    type.
    
        __typeof__(*(ptr)) __oldval = 0;
    
    Update this assignment to cast 0 to the correct type.
    
    The original issue is easily reproduced at head with the below block,
    and is absent after this change.
    
        make LLVM=1 ARCH=hexagon defconfig
        make C=1 LLVM=1 ARCH=hexagon net/ipv4/inet_diag.o
    
    Fixes: 99a70aa051d2 ("Hexagon: Add processor and system headers")
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202411091538.PGSTqUBi-lkp@intel.com/
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Tested-by: Christian Gmeiner <cgmeiner@igalia.com>
    Link: https://lore.kernel.org/r/20241203221736.282020-1-willemdebruijn.kernel@gmail.com
    Signed-off-by: Brian Cain <bcain@quicinc.com>
    Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4bd72d9fe11df45098f247353374bb4b7a891bb3
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Mon Jan 20 17:10:31 2025 +0900

    kconfig: fix memory leak in sym_warn_unmet_dep()
    
    [ Upstream commit a409fc1463d664002ea9bf700ae4674df03de111 ]
    
    The string allocated in sym_warn_unmet_dep() is never freed, leading
    to a memory leak when an unmet dependency is detected.
    
    Fixes: f8f69dc0b4e0 ("kconfig: make unmet dependency warnings readable")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Reviewed-by: Petr Vorel <pvorel@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f45a419bdd1163f523739bd0f3e6755425a4280
Author: Sergey Senozhatsky <senozhatsky@chromium.org>
Date:   Wed Nov 22 12:47:45 2023 +0900

    kconfig: WERROR unmet symbol dependency
    
    [ Upstream commit 15d3f7664d2776c086f813f1efbfe2ae20a85e89 ]
    
    When KCONFIG_WERROR env variable is set treat unmet direct
    symbol dependency as a terminal condition (error).
    
    Suggested-by: Stefan Reinauer <reinauer@google.com>
    Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Stable-dep-of: a409fc1463d6 ("kconfig: fix memory leak in sym_warn_unmet_dep()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ccc1287a02eaaf592faf4d0bce46b1f70cae63cf
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Sat Nov 18 16:59:09 2023 +0900

    kconfig: deduplicate code in conf_read_simple()
    
    [ Upstream commit d854b4b21de684a16a7d6163c7b0e9c5ff8a09d3 ]
    
    Kconfig accepts both "# CONFIG_FOO is not set" and "CONFIG_FOO=n" as
    a valid input, but conf_read_simple() duplicates similar code to handle
    them. Factor out the common code.
    
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Stable-dep-of: a409fc1463d6 ("kconfig: fix memory leak in sym_warn_unmet_dep()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e31777acf2da12de46a4e5894893992744fc159
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Sat Nov 18 16:59:08 2023 +0900

    kconfig: remove unused code for S_DEF_AUTO in conf_read_simple()
    
    [ Upstream commit 92d4fe0a48f1ab6cf20143dd0b376f4fe842854b ]
    
    The 'else' arm here is unreachable in practical use cases.
    
    include/config/auto.conf does not include "# CONFIG_... is not set"
    line unless it is manually hacked.
    
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Stable-dep-of: a409fc1463d6 ("kconfig: fix memory leak in sym_warn_unmet_dep()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 131f1604fa6b1631ececf10f7cfb9cc42907f2c6
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Sat Nov 18 16:59:07 2023 +0900

    kconfig: require a space after '#' for valid input
    
    [ Upstream commit 4d137ab0107ead0f2590fc0314e627431e3b9e3f ]
    
    Currently, when an input line starts with '#', (line + 2) is passed to
    memcmp() without checking line[1].
    
    It means that line[1] can be any arbitrary character. For example,
    "#KCONFIG_FOO is not set" is accepted as valid input, functioning the
    same as "# CONFIG_FOO is not set".
    
    More importantly, this can potentially lead to a buffer overrun if
    line[1] == '\0'. It occurs if the input only contains '#', as
    (line + 2) points to an uninitialized buffer.
    
    Check line[1], and skip the line if it is not a space.
    
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Stable-dep-of: a409fc1463d6 ("kconfig: fix memory leak in sym_warn_unmet_dep()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6bdf078908c3113315ec85ec2f30698aac86c4b8
Author: Sergey Senozhatsky <senozhatsky@chromium.org>
Date:   Wed Aug 30 09:49:36 2023 +0900

    kconfig: add warn-unknown-symbols sanity check
    
    [ Upstream commit 7cd343008b967423b06af8f6d3236749c67d12e8 ]
    
    Introduce KCONFIG_WARN_UNKNOWN_SYMBOLS environment variable,
    which makes Kconfig warn about unknown config symbols.
    
    This is especially useful for continuous kernel uprevs when
    some symbols can be either removed or renamed between kernel
    releases (which can go unnoticed otherwise).
    
    By default KCONFIG_WARN_UNKNOWN_SYMBOLS generates warnings,
    which are non-terminal. There is an additional environment
    variable KCONFIG_WERROR that overrides this behaviour and
    turns warnings into errors.
    
    Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Stable-dep-of: a409fc1463d6 ("kconfig: fix memory leak in sym_warn_unmet_dep()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4780a614f013fa8c059ed3838ea3c7ddf9a1b42e
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Mon Jan 20 16:59:14 2025 +0900

    kconfig: fix file name in warnings when loading KCONFIG_DEFCONFIG_LIST
    
    [ Upstream commit a314f52a0210730d0d556de76bb7388e76d4597d ]
    
    Most 'make *config' commands use .config as the base configuration file.
    
    When .config does not exist, Kconfig tries to load a file listed in
    KCONFIG_DEFCONFIG_LIST instead.
    
    However, since commit b75b0a819af9 ("kconfig: change defconfig_list
    option to environment variable"), warning messages have displayed an
    incorrect file name in such cases.
    
    Below is a demonstration using Debian Trixie. While loading
    /boot/config-6.12.9-amd64, the warning messages incorrectly show .config
    as the file name.
    
    With this commit, the correct file name is displayed in warnings.
    
    [Before]
    
      $ rm -f .config
      $ make config
      #
      # using defaults found in /boot/config-6.12.9-amd64
      #
      .config:6804:warning: symbol value 'm' invalid for FB_BACKLIGHT
      .config:9895:warning: symbol value 'm' invalid for ANDROID_BINDER_IPC
    
    [After]
    
      $ rm -f .config
      $ make config
      #
      # using defaults found in /boot/config-6.12.9-amd64
      #
      /boot/config-6.12.9-amd64:6804:warning: symbol value 'm' invalid for FB_BACKLIGHT
      /boot/config-6.12.9-amd64:9895:warning: symbol value 'm' invalid for ANDROID_BINDER_IPC
    
    Fixes: b75b0a819af9 ("kconfig: change defconfig_list option to environment variable")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c48b8fc7f0a869e686eacd87088ff23f9b61b172
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Fri Jan 3 16:30:39 2025 +0900

    genksyms: fix memory leak when the same symbol is read from *.symref file
    
    [ Upstream commit be2fa44b5180a1f021efb40c55fdf63c249c3209 ]
    
    When a symbol that is already registered is read again from *.symref
    file, __add_symbol() removes the previous one from the hash table without
    freeing it.
    
    [Test Case]
    
      $ cat foo.c
      #include <linux/export.h>
      void foo(void);
      void foo(void) {}
      EXPORT_SYMBOL(foo);
    
      $ cat foo.symref
      foo void foo ( void )
      foo void foo ( void )
    
    When a symbol is removed from the hash table, it must be freed along
    with its ->name and ->defn members. However, sym->name cannot be freed
    because it is sometimes shared with node->string, but not always. If
    sym->name and node->string share the same memory, free(sym->name) could
    lead to a double-free bug.
    
    To resolve this issue, always assign a strdup'ed string to sym->name.
    
    Fixes: 64e6c1e12372 ("genksyms: track symbol checksum changes")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb28d02726ab2aeb246c76586d7a5b9c7898ca83
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Fri Jan 3 16:30:38 2025 +0900

    genksyms: fix memory leak when the same symbol is added from source
    
    [ Upstream commit 45c9c4101d3d2fdfa00852274bbebba65fcc3cf2 ]
    
    When a symbol that is already registered is added again, __add_symbol()
    returns without freeing the symbol definition, making it unreachable.
    
    The following test cases demonstrate different memory leak points.
    
    [Test Case 1]
    
    Forward declaration with exactly the same definition
    
      $ cat foo.c
      #include <linux/export.h>
      void foo(void);
      void foo(void) {}
      EXPORT_SYMBOL(foo);
    
    [Test Case 2]
    
    Forward declaration with a different definition (e.g. attribute)
    
      $ cat foo.c
      #include <linux/export.h>
      void foo(void);
      __attribute__((__section__(".ref.text"))) void foo(void) {}
      EXPORT_SYMBOL(foo);
    
    [Test Case 3]
    
    Preserving an overridden symbol (compile with KBUILD_PRESERVE=1)
    
      $ cat foo.c
      #include <linux/export.h>
      void foo(void);
      void foo(void) { }
      EXPORT_SYMBOL(foo);
    
      $ cat foo.symref
      override foo void foo ( int )
    
    The memory leaks in Test Case 1 and 2 have existed since the introduction
    of genksyms into the kernel tree. [1]
    
    The memory leak in Test Case 3 was introduced by commit 5dae9a550a74
    ("genksyms: allow to ignore symbol checksum changes").
    
    When multiple init_declarators are reduced to an init_declarator_list,
    the decl_spec must be duplicated. Otherwise, the following Test Case 4
    would result in a double-free bug.
    
    [Test Case 4]
    
      $ cat foo.c
      #include <linux/export.h>
    
      extern int foo, bar;
    
      int foo, bar;
      EXPORT_SYMBOL(foo);
    
    In this case, 'foo' and 'bar' share the same decl_spec, 'int'. It must
    be unshared before being passed to add_symbol().
    
    [1]: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=46bd1da672d66ccd8a639d3c1f8a166048cca608
    
    Fixes: 5dae9a550a74 ("genksyms: allow to ignore symbol checksum changes")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13310513f549c11327d6bfc98fa289a384b9cae8
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 29 13:00:07 2025 +0000

    net: hsr: fix fill_frame_info() regression vs VLAN packets
    
    [ Upstream commit 0f5697f1a3f99bc2b674b8aa3c5da822c5673c11 ]
    
    Stephan Wurm reported that my recent patch broke VLAN support.
    
    Apparently skb->mac_len is not correct for VLAN traffic as
    shown by debug traces [1].
    
    Use instead pskb_may_pull() to make sure the expected header
    is present in skb->head.
    
    Many thanks to Stephan for his help.
    
    [1]
    kernel: skb len=170 headroom=2 headlen=170 tailroom=20
            mac=(2,14) mac_len=14 net=(16,-1) trans=-1
            shinfo(txflags=0 nr_frags=0 gso(size=0 type=0 segs=0))
            csum(0x0 start=0 offset=0 ip_summed=0 complete_sw=0 valid=0 level=0)
            hash(0x0 sw=0 l4=0) proto=0x0000 pkttype=0 iif=0
            priority=0x0 mark=0x0 alloc_cpu=0 vlan_all=0x0
            encapsulation=0 inner(proto=0x0000, mac=0, net=0, trans=0)
    kernel: dev name=prp0 feat=0x0000000000007000
    kernel: sk family=17 type=3 proto=0
    kernel: skb headroom: 00000000: 74 00
    kernel: skb linear:   00000000: 01 0c cd 01 00 01 00 d0 93 53 9c cb 81 00 80 00
    kernel: skb linear:   00000010: 88 b8 00 01 00 98 00 00 00 00 61 81 8d 80 16 52
    kernel: skb linear:   00000020: 45 47 44 4e 43 54 52 4c 2f 4c 4c 4e 30 24 47 4f
    kernel: skb linear:   00000030: 24 47 6f 43 62 81 01 14 82 16 52 45 47 44 4e 43
    kernel: skb linear:   00000040: 54 52 4c 2f 4c 4c 4e 30 24 44 73 47 6f 6f 73 65
    kernel: skb linear:   00000050: 83 07 47 6f 49 64 65 6e 74 84 08 67 8d f5 93 7e
    kernel: skb linear:   00000060: 76 c8 00 85 01 01 86 01 00 87 01 00 88 01 01 89
    kernel: skb linear:   00000070: 01 00 8a 01 02 ab 33 a2 15 83 01 00 84 03 03 00
    kernel: skb linear:   00000080: 00 91 08 67 8d f5 92 77 4b c6 1f 83 01 00 a2 1a
    kernel: skb linear:   00000090: a2 06 85 01 00 83 01 00 84 03 03 00 00 91 08 67
    kernel: skb linear:   000000a0: 8d f5 92 77 4b c6 1f 83 01 00
    kernel: skb tailroom: 00000000: 80 18 02 00 fe 4e 00 00 01 01 08 0a 4f fd 5e d1
    kernel: skb tailroom: 00000010: 4f fd 5e cd
    
    Fixes: b9653d19e556 ("net: hsr: avoid potential out-of-bound access in fill_frame_info()")
    Reported-by: Stephan Wurm <stephan.wurm@a-eberle.de>
    Tested-by: Stephan Wurm <stephan.wurm@a-eberle.de>
    Closes: https://lore.kernel.org/netdev/Z4o_UC0HweBHJ_cw@PC-LX-SteWu/
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250129130007.644084-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit df3398504b975cfe82fcd082269f469b44f854b9
Author: Kory Maincent <kory.maincent@bootlin.com>
Date:   Wed Jan 29 10:50:47 2025 +0100

    net: sh_eth: Fix missing rtnl lock in suspend/resume path
    
    [ Upstream commit b95102215a8d0987789715ce11c0d4ec031cbfbe ]
    
    Fix the suspend/resume path by ensuring the rtnl lock is held where
    required. Calls to sh_eth_close, sh_eth_open and wol operations must be
    performed under the rtnl lock to prevent conflicts with ongoing ndo
    operations.
    
    Fixes: b71af04676e9 ("sh_eth: add more PM methods")
    Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
    Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
    Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ce32a9fb1d210f1e8384ebbfc336b64d3c131bd
Author: Rafał Miłecki <rafal@milecki.pl>
Date:   Mon Jan 27 09:51:59 2025 -0800

    bgmac: reduce max frame size to support just MTU 1500
    
    [ Upstream commit 752e5fcc2e77358936d36ef8e522d6439372e201 ]
    
    bgmac allocates new replacement buffer before handling each received
    frame. Allocating & DMA-preparing 9724 B each time consumes a lot of CPU
    time. Ideally bgmac should just respect currently set MTU but it isn't
    the case right now. For now just revert back to the old limited frame
    size.
    
    This change bumps NAT masquerade speed by ~95%.
    
    Since commit 8218f62c9c9b ("mm: page_frag: use initial zero offset for
    page_frag_alloc_align()"), the bgmac driver fails to open its network
    interface successfully and runs out of memory in the following call
    stack:
    
    bgmac_open
      -> bgmac_dma_init
        -> bgmac_dma_rx_skb_for_slot
          -> netdev_alloc_frag
    
    BGMAC_RX_ALLOC_SIZE = 10048 and PAGE_FRAG_CACHE_MAX_SIZE = 32768.
    
    Eventually we land into __page_frag_alloc_align() with the following
    parameters across multiple successive calls:
    
    __page_frag_alloc_align: fragsz=10048, align_mask=-1, size=32768, offset=0
    __page_frag_alloc_align: fragsz=10048, align_mask=-1, size=32768, offset=10048
    __page_frag_alloc_align: fragsz=10048, align_mask=-1, size=32768, offset=20096
    __page_frag_alloc_align: fragsz=10048, align_mask=-1, size=32768, offset=30144
    
    So in that case we do indeed have offset + fragsz (40192) > size (32768)
    and so we would eventually return NULL. Reverting to the older 1500
    bytes MTU allows the network driver to be usable again.
    
    Fixes: 8c7da63978f1 ("bgmac: configure MTU and add support for frames beyond 8192 byte size")
    Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
    [florian: expand commit message about recent commits]
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Link: https://patch.msgid.link/20250127175159.1788246-1-florian.fainelli@broadcom.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ab2df791b1d427687a01f9324a8da93dbec55bb1
Author: Michal Luczaj <mhal@rbox.co>
Date:   Tue Jan 28 14:15:28 2025 +0100

    vsock: Allow retrying on connect() failure
    
    [ Upstream commit aa388c72113b7458127b709bdd7d3628af26e9b4 ]
    
    sk_err is set when a (connectible) connect() fails. Effectively, this makes
    an otherwise still healthy SS_UNCONNECTED socket impossible to use for any
    subsequent connection attempts.
    
    Clear sk_err upon trying to establish a connection.
    
    Fixes: d021c344051a ("VSOCK: Introduce VM Sockets")
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Reviewed-by: Luigi Leonardi <leonardi@redhat.com>
    Signed-off-by: Michal Luczaj <mhal@rbox.co>
    Link: https://patch.msgid.link/20250128-vsock-transport-vs-autobind-v3-2-1cf57065b770@rbox.co
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a48ebcd853a4e973566e3ed313655a8d96789e78
Author: Howard Chu <howardchu95@gmail.com>
Date:   Tue Jan 21 18:55:19 2025 -0800

    perf trace: Fix runtime error of index out of bounds
    
    [ Upstream commit c7b87ce0dd10b64b68a0b22cb83bbd556e28fe81 ]
    
    libtraceevent parses and returns an array of argument fields, sometimes
    larger than RAW_SYSCALL_ARGS_NUM (6) because it includes "__syscall_nr",
    idx will traverse to index 6 (7th element) whereas sc->fmt->arg holds 6
    elements max, creating an out-of-bounds access. This runtime error is
    found by UBsan. The error message:
    
      $ sudo UBSAN_OPTIONS=print_stacktrace=1 ./perf trace -a --max-events=1
      builtin-trace.c:1966:35: runtime error: index 6 out of bounds for type 'syscall_arg_fmt [6]'
        #0 0x5c04956be5fe in syscall__alloc_arg_fmts /home/howard/hw/linux-perf/tools/perf/builtin-trace.c:1966
        #1 0x5c04956c0510 in trace__read_syscall_info /home/howard/hw/linux-perf/tools/perf/builtin-trace.c:2110
        #2 0x5c04956c372b in trace__syscall_info /home/howard/hw/linux-perf/tools/perf/builtin-trace.c:2436
        #3 0x5c04956d2f39 in trace__init_syscalls_bpf_prog_array_maps /home/howard/hw/linux-perf/tools/perf/builtin-trace.c:3897
        #4 0x5c04956d6d25 in trace__run /home/howard/hw/linux-perf/tools/perf/builtin-trace.c:4335
        #5 0x5c04956e112e in cmd_trace /home/howard/hw/linux-perf/tools/perf/builtin-trace.c:5502
        #6 0x5c04956eda7d in run_builtin /home/howard/hw/linux-perf/tools/perf/perf.c:351
        #7 0x5c04956ee0a8 in handle_internal_command /home/howard/hw/linux-perf/tools/perf/perf.c:404
        #8 0x5c04956ee37f in run_argv /home/howard/hw/linux-perf/tools/perf/perf.c:448
        #9 0x5c04956ee8e9 in main /home/howard/hw/linux-perf/tools/perf/perf.c:556
        #10 0x79eb3622a3b7 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
        #11 0x79eb3622a47a in __libc_start_main_impl ../csu/libc-start.c:360
        #12 0x5c04955422d4 in _start (/home/howard/hw/linux-perf/tools/perf/perf+0x4e02d4) (BuildId: 5b6cab2d59e96a4341741765ad6914a4d784dbc6)
    
         0.000 ( 0.014 ms): Chrome_ChildIO/117244 write(fd: 238, buf: !, count: 1)                                      = 1
    
    Fixes: 5e58fcfaf4c6 ("perf trace: Allow allocating sc->arg_fmt even without the syscall tracepoint")
    Signed-off-by: Howard Chu <howardchu95@gmail.com>
    Link: https://lore.kernel.org/r/20250122025519.361873-1-howardchu95@gmail.com
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0dd6c67f6cfed123326908330f7c501a9b82acf0
Author: Thomas Weißschuh <linux@weissschuh.net>
Date:   Sat Jan 25 10:28:38 2025 +0100

    ptp: Properly handle compat ioctls
    
    [ Upstream commit 19ae40f572a9ce1ade9954990af709a03fd37010 ]
    
    Pointer arguments passed to ioctls need to pass through compat_ptr() to
    work correctly on s390; as explained in Documentation/driver-api/ioctl.rst.
    Detect compat mode at runtime and call compat_ptr() for those commands
    which do take pointer arguments.
    
    Suggested-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/lkml/1ba5d3a4-7931-455b-a3ce-85a968a7cb10@app.fastmail.com/
    Fixes: d94ba80ebbea ("ptp: Added a brand new class driver for ptp clocks.")
    Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
    Reviewed-by: Cyrill Gorcunov <gorcunov@gmail.com>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Link: https://patch.msgid.link/20250125-posix-clock-compat_ioctl-v2-1-11c865c500eb@weissschuh.net
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d7d201eb3b766abe590ac0dda7a508b7db3e357
Author: Chenyuan Yang <chenyuan0y@gmail.com>
Date:   Thu Jan 23 15:42:13 2025 -0600

    net: davicom: fix UAF in dm9000_drv_remove
    
    [ Upstream commit 19e65c45a1507a1a2926649d2db3583ed9d55fd9 ]
    
    dm is netdev private data and it cannot be
    used after free_netdev() call. Using dm after free_netdev()
    can cause UAF bug. Fix it by moving free_netdev() at the end of the
    function.
    
    This is similar to the issue fixed in commit
    ad297cd2db89 ("net: qcom/emac: fix UAF in emac_remove").
    
    This bug is detected by our static analysis tool.
    
    Fixes: cf9e60aa69ae ("net: davicom: Fix regulator not turned off on driver removal")
    Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com>
    CC: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
    Link: https://patch.msgid.link/20250123214213.623518-1-chenyuan0y@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cfb17f637562e15066480e7eaa23b3a8854f29e5
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Wed Jan 22 14:45:03 2025 -0800

    net: netdevsim: try to close UDP port harness races
    
    [ Upstream commit 50bf398e1ceacb9a7f85bd3bdca065ebe5cb6159 ]
    
    syzbot discovered that we remove the debugfs files after we free
    the netdev. Try to clean up the relevant dir while the device
    is still around.
    
    Reported-by: syzbot+2e5de9e3ab986b71d2bf@syzkaller.appspotmail.com
    Fixes: 424be63ad831 ("netdevsim: add UDP tunnel port offload support")
    Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Link: https://patch.msgid.link/20250122224503.762705-1-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1409b45d4690308c502c6caf22f01c3c205b4717
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 22 18:02:44 2025 +0000

    net: rose: fix timer races against user threads
    
    [ Upstream commit 5de7665e0a0746b5ad7943554b34db8f8614a196 ]
    
    Rose timers only acquire the socket spinlock, without
    checking if the socket is owned by one user thread.
    
    Add a check and rearm the timers if needed.
    
    BUG: KASAN: slab-use-after-free in rose_timer_expiry+0x31d/0x360 net/rose/rose_timer.c:174
    Read of size 2 at addr ffff88802f09b82a by task swapper/0/0
    
    CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.13.0-rc5-syzkaller-00172-gd1bf27c4e176 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
    Call Trace:
     <IRQ>
      __dump_stack lib/dump_stack.c:94 [inline]
      dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
      print_address_description mm/kasan/report.c:378 [inline]
      print_report+0x169/0x550 mm/kasan/report.c:489
      kasan_report+0x143/0x180 mm/kasan/report.c:602
      rose_timer_expiry+0x31d/0x360 net/rose/rose_timer.c:174
      call_timer_fn+0x187/0x650 kernel/time/timer.c:1793
      expire_timers kernel/time/timer.c:1844 [inline]
      __run_timers kernel/time/timer.c:2418 [inline]
      __run_timer_base+0x66a/0x8e0 kernel/time/timer.c:2430
      run_timer_base kernel/time/timer.c:2439 [inline]
      run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2449
      handle_softirqs+0x2d4/0x9b0 kernel/softirq.c:561
      __do_softirq kernel/softirq.c:595 [inline]
      invoke_softirq kernel/softirq.c:435 [inline]
      __irq_exit_rcu+0xf7/0x220 kernel/softirq.c:662
      irq_exit_rcu+0x9/0x30 kernel/softirq.c:678
      instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1049 [inline]
      sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1049
     </IRQ>
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Link: https://patch.msgid.link/20250122180244.1861468-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c499bd77ca2ae73f7140bb29c2557731903b0e9a
Author: Wentao Liang <vulab@iscas.ac.cn>
Date:   Sun Jan 19 22:32:05 2025 +0800

    PM: hibernate: Add error handling for syscore_suspend()
    
    [ Upstream commit e20a70c572539a486dbd91b225fa6a194a5e2122 ]
    
    In hibernation_platform_enter(), the code did not check the
    return value of syscore_suspend(), potentially leading to a
    situation where syscore_resume() would be called even if
    syscore_suspend() failed. This could cause unpredictable
    behavior or system instability.
    
    Modify the code sequence in question to properly handle errors returned
    by syscore_suspend(). If an error occurs in the suspend path, the code
    now jumps to label 'Enable_irqs' skipping the syscore_resume() call and
    only enabling interrupts after setting the system state to SYSTEM_RUNNING.
    
    Fixes: 40dc166cb5dd ("PM / Core: Introduce struct syscore_ops for core subsystems PM")
    Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
    Link: https://patch.msgid.link/20250119143205.2103-1-vulab@iscas.ac.cn
    [ rjw: Changelog edits ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 547ef7e8cbb98f966c8719a3e15d4e078aaa9b47
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Jan 21 18:12:41 2025 +0000

    ipmr: do not call mr_mfc_uses_dev() for unres entries
    
    [ Upstream commit 15a901361ec3fb1c393f91880e1cbf24ec0a88bd ]
    
    syzbot found that calling mr_mfc_uses_dev() for unres entries
    would crash [1], because c->mfc_un.res.minvif / c->mfc_un.res.maxvif
    alias to "struct sk_buff_head unresolved", which contain two pointers.
    
    This code never worked, lets remove it.
    
    [1]
    Unable to handle kernel paging request at virtual address ffff5fff2d536613
    KASAN: maybe wild-memory-access in range [0xfffefff96a9b3098-0xfffefff96a9b309f]
    Modules linked in:
    CPU: 1 UID: 0 PID: 7321 Comm: syz.0.16 Not tainted 6.13.0-rc7-syzkaller-g1950a0af2d55 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
    pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
     pc : mr_mfc_uses_dev net/ipv4/ipmr_base.c:290 [inline]
     pc : mr_table_dump+0x5a4/0x8b0 net/ipv4/ipmr_base.c:334
     lr : mr_mfc_uses_dev net/ipv4/ipmr_base.c:289 [inline]
     lr : mr_table_dump+0x694/0x8b0 net/ipv4/ipmr_base.c:334
    Call trace:
      mr_mfc_uses_dev net/ipv4/ipmr_base.c:290 [inline] (P)
      mr_table_dump+0x5a4/0x8b0 net/ipv4/ipmr_base.c:334 (P)
      mr_rtm_dumproute+0x254/0x454 net/ipv4/ipmr_base.c:382
      ipmr_rtm_dumproute+0x248/0x4b4 net/ipv4/ipmr.c:2648
      rtnl_dump_all+0x2e4/0x4e8 net/core/rtnetlink.c:4327
      rtnl_dumpit+0x98/0x1d0 net/core/rtnetlink.c:6791
      netlink_dump+0x4f0/0xbc0 net/netlink/af_netlink.c:2317
      netlink_recvmsg+0x56c/0xe64 net/netlink/af_netlink.c:1973
      sock_recvmsg_nosec net/socket.c:1033 [inline]
      sock_recvmsg net/socket.c:1055 [inline]
      sock_read_iter+0x2d8/0x40c net/socket.c:1125
      new_sync_read fs/read_write.c:484 [inline]
      vfs_read+0x740/0x970 fs/read_write.c:565
      ksys_read+0x15c/0x26c fs/read_write.c:708
    
    Fixes: cb167893f41e ("net: Plumb support for filtering ipv4 and ipv6 multicast route dumps")
    Reported-by: syzbot+5cfae50c0e5f2c500013@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/netdev/678fe2d1.050a0220.15cac.00b3.GAE@google.com/T/#u
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://patch.msgid.link/20250121181241.841212-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6468f3a9842f6c4a8f8e457e88db74b1f2944700
Author: Dheeraj Reddy Jonnalagadda <dheeraj.linuxdev@gmail.com>
Date:   Mon Jan 20 14:24:30 2025 +0530

    net: fec: implement TSO descriptor cleanup
    
    [ Upstream commit 61dc1fd9205bc9d9918aa933a847b08e80b4dc20 ]
    
    Implement cleanup of descriptors in the TSO error path of
    fec_enet_txq_submit_tso(). The cleanup
    
    - Unmaps DMA buffers for data descriptors skipping TSO header
    - Clears all buffer descriptors
    - Handles extended descriptors by clearing cbd_esc when enabled
    
    Fixes: 79f339125ea3 ("net: fec: Add software TSO support")
    Signed-off-by: Dheeraj Reddy Jonnalagadda <dheeraj.linuxdev@gmail.com>
    Reviewed-by: Wei Fang <wei.fang@nxp.com>
    Link: https://patch.msgid.link/20250120085430.99318-1-dheeraj.linuxdev@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5934bfaeaffe72864dc03de99adc48693a98cdf5
Author: Ahmad Fatoum <a.fatoum@pengutronix.de>
Date:   Mon Jan 13 23:19:11 2025 +0100

    gpio: mxc: remove dead code after switch to DT-only
    
    [ Upstream commit b049e7abe9001a780d58e78e3833dcceee22f396 ]
    
    struct platform_device::id was only set by board code, but since i.MX
    became a devicetree-only platform, this will always be -1
    (PLATFORM_DEVID_NONE).
    
    Note: of_alias_get_id() returns a negative number on error and base
    treats all negative errors the same, so we need not add any additional
    error handling.
    
    Fixes: 0f2c7af45d7e ("gpio: mxc: Convert the driver to DT-only")
    Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
    Reviewed-by: Andy Shevchenko <andy@kernel.org>
    Link: https://lore.kernel.org/r/20250113-b4-imx-gpio-base-warning-v1-3-0a28731a5cf6@pengutronix.de
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c640dd3d900cc8988a39c007591f1deee776df4
Author: Jian Shen <shenjian15@huawei.com>
Date:   Sat Jan 18 17:47:41 2025 +0800

    net: hns3: fix oops when unload drivers paralleling
    
    [ Upstream commit 92e5995773774a3e70257e9c95ea03518268bea5 ]
    
    When unload hclge driver, it tries to disable sriov first for each
    ae_dev node from hnae3_ae_dev_list. If user unloads hns3 driver at
    the time, because it removes all the ae_dev nodes, and it may cause
    oops.
    
    But we can't simply use hnae3_common_lock for this. Because in the
    process flow of pci_disable_sriov(), it will trigger the remove flow
    of VF, which will also take hnae3_common_lock.
    
    To fixes it, introduce a new mutex to protect the unload process.
    
    Fixes: 0dd8a25f355b ("net: hns3: disable sriov before unload hclge layer")
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Jijie Shao <shaojijie@huawei.com>
    Link: https://patch.msgid.link/20250118094741.3046663-1-shaojijie@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1787cd67bb94b106555ffe64f887f6aa24b47010
Author: pangliyuan <pangliyuan1@huawei.com>
Date:   Tue Dec 24 16:18:23 2024 +0800

    ubifs: skip dumping tnc tree when zroot is null
    
    [ Upstream commit bdb0ca39e0acccf6771db49c3f94ed787d05f2d7 ]
    
    Clearing slab cache will free all znode in memory and make
    c->zroot.znode = NULL, then dumping tnc tree will access
    c->zroot.znode which cause null pointer dereference.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=219624#c0
    Fixes: 1e51764a3c2a ("UBIFS: add new flash file system")
    Signed-off-by: pangliyuan <pangliyuan1@huawei.com>
    Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e5536677da803ed54a29a446515c28dce7d3d574
Author: Oleksij Rempel <o.rempel@pengutronix.de>
Date:   Wed Dec 18 20:34:58 2024 +0100

    rtc: pcf85063: fix potential OOB write in PCF85063 NVMEM read
    
    [ Upstream commit 3ab8c5ed4f84fa20cd16794fe8dc31f633fbc70c ]
    
    The nvmem interface supports variable buffer sizes, while the regmap
    interface operates with fixed-size storage. If an nvmem client uses a
    buffer size less than 4 bytes, regmap_read will write out of bounds
    as it expects the buffer to point at an unsigned int.
    
    Fix this by using an intermediary unsigned int to hold the value.
    
    Fixes: fadfd092ee91 ("rtc: pcf85063: add nvram support")
    Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
    Link: https://lore.kernel.org/r/20241218-rtc-pcf85063-stack-corruption-v1-1-12fd0ee0f046@pengutronix.de
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2943af7d72d76add59732267f720d4155d38cffc
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Thu Dec 19 11:05:07 2024 +0900

    dmaengine: ti: edma: fix OF node reference leaks in edma_driver
    
    [ Upstream commit e883c64778e5a9905fce955681f8ee38c7197e0f ]
    
    The .probe() of edma_driver calls of_parse_phandle_with_fixed_args() but
    does not release the obtained OF nodes. Thus add a of_node_put() call.
    
    This bug was found by an experimental verification tool that I am
    developing.
    
    Fixes: 1be5336bc7ba ("dmaengine: edma: New device tree binding")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
    Link: https://lore.kernel.org/r/20241219020507.1983124-3-joe@pf.is.s.u-tokyo.ac.jp
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c9cc70bca1589414a9d23d1019c4e1e9240a16e0
Author: Jianbo Liu <jianbol@nvidia.com>
Date:   Tue Nov 12 14:10:31 2024 +0200

    xfrm: replay: Fix the update of replay_esn->oseq_hi for GSO
    
    [ Upstream commit c05c5e5aa163f4682ca97a2f0536575fc7dbdecb ]
    
    When skb needs GSO and wrap around happens, if xo->seq.low (seqno of
    the first skb segment) is before the last seq number but oseq (seqno
    of the last segment) is after it, xo->seq.low is still bigger than
    replay_esn->oseq while oseq is smaller than it, so the update of
    replay_esn->oseq_hi is missed for this case wrap around because of
    the change in the cited commit.
    
    For example, if sending a packet with gso_segs=3 while old
    replay_esn->oseq=0xfffffffe, we calculate:
        xo->seq.low = 0xfffffffe + 1 = 0x0xffffffff
        oseq = 0xfffffffe + 3 = 0x1
    (oseq < replay_esn->oseq) is true, but (xo->seq.low <
    replay_esn->oseq) is false, so replay_esn->oseq_hi is not incremented.
    
    To fix this issue, change the outer checking back for the update of
    replay_esn->oseq_hi. And add new checking inside for the update of
    packet's oseq_hi.
    
    Fixes: 4b549ccce941 ("xfrm: replay: Fix ESN wrap around for GSO")
    Signed-off-by: Jianbo Liu <jianbol@nvidia.com>
    Reviewed-by: Patrisious Haddad <phaddad@nvidia.com>
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6be3ea508111f3b6e30e829307f044d846157570
Author: Luo Yifan <luoyifan@cmss.chinamobile.com>
Date:   Tue Jan 28 23:27:01 2025 +0900

    tools/bootconfig: Fix the wrong format specifier
    
    [ Upstream commit f6ab7384d554ba80ff4793259d75535874b366f5 ]
    
    Use '%u' instead of '%d' for unsigned int.
    
    Link: https://lore.kernel.org/all/20241105011048.201629-1-luoyifan@cmss.chinamobile.com/
    
    Fixes: 973780011106 ("tools/bootconfig: Suppress non-error messages")
    Signed-off-by: Luo Yifan <luoyifan@cmss.chinamobile.com>
    Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 26e5c3c8d78008ff85acb420505a96a4a9a3e6f9
Author: Olga Kornievskaia <okorniev@redhat.com>
Date:   Fri Dec 13 11:52:01 2024 -0500

    NFSv4.2: mark OFFLOAD_CANCEL MOVEABLE
    
    [ Upstream commit 668135b9348c53fd205f5e07d11e82b10f31b55b ]
    
    OFFLOAD_CANCEL should be marked MOVEABLE for when we need to move
    tasks off a non-functional transport.
    
    Fixes: c975c2092657 ("NFS send OFFLOAD_CANCEL when COPY killed")
    Signed-off-by: Olga Kornievskaia <okorniev@redhat.com>
    Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit edcaf4156cede6e1f72abef669c2ed9b699c16b0
Author: Olga Kornievskaia <okorniev@redhat.com>
Date:   Fri Dec 13 11:52:00 2024 -0500

    NFSv4.2: fix COPY_NOTIFY xdr buf size calculation
    
    [ Upstream commit e8380c2d06055665b3df6c03964911375d7f9290 ]
    
    We need to include sequence size in the compound.
    
    Fixes: 0491567b51ef ("NFS: add COPY_NOTIFY operation")
    Signed-off-by: Olga Kornievskaia <okorniev@redhat.com>
    Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f6bae8cc42ab05968ab072c038b1f7078d317fee
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Wed Jan 8 10:04:30 2025 +0100

    module: Extend the preempt disabled section in dereference_symbol_descriptor().
    
    [ Upstream commit a145c848d69f9c6f32008d8319edaa133360dd74 ]
    
    dereference_symbol_descriptor() needs to obtain the module pointer
    belonging to pointer in order to resolve that pointer.
    The returned mod pointer is obtained under RCU-sched/ preempt_disable()
    guarantees and needs to be used within this section to ensure that the
    module is not removed in the meantime.
    
    Extend the preempt_disable() section to also cover
    dereference_module_function_descriptor().
    
    Fixes: 04b8eb7a4ccd9 ("symbol lookup: introduce dereference_symbol_descriptor()")
    Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Helge Deller <deller@gmx.de>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Naveen N Rao <naveen@kernel.org>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
    Cc: linux-parisc@vger.kernel.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Link: https://lore.kernel.org/r/20250108090457.512198-2-bigeasy@linutronix.de
    Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2e2bb52b8e58c873090c15071b87a32f39aab442
Author: Su Yue <glass.su@suse.com>
Date:   Mon Jan 6 22:06:53 2025 +0800

    ocfs2: mark dquot as inactive if failed to start trans while releasing dquot
    
    [ Upstream commit 276c61385f6bc3223a5ecd307cf4aba2dfbb9a31 ]
    
    While running fstests generic/329, the kernel workqueue
    quota_release_workfn is dead looping in calling ocfs2_release_dquot().
    The ocfs2 state is already readonly but ocfs2_release_dquot wants to
    start a transaction but fails and returns.
    
    =====================================================================
    [ 2918.123602 ][  T275 ] On-disk corruption discovered. Please run
    fsck.ocfs2 once the filesystem is unmounted.
    [ 2918.124034 ][  T275 ] (kworker/u135:1,275,11):ocfs2_release_dquot:765
    ERROR: status = -30
    [ 2918.124452 ][  T275 ] (kworker/u135:1,275,11):ocfs2_release_dquot:795
    ERROR: status = -30
    [ 2918.124883 ][  T275 ] (kworker/u135:1,275,11):ocfs2_start_trans:357
    ERROR: status = -30
    [ 2918.125276 ][  T275 ] OCFS2: abort (device dm-0): ocfs2_start_trans:
    Detected aborted journal
    [ 2918.125710 ][  T275 ] On-disk corruption discovered. Please run
    fsck.ocfs2 once the filesystem is unmounted.
    =====================================================================
    
    ocfs2_release_dquot() is much like dquot_release(), which is called by
    ext4 to handle similar situation.  So here fix it by marking the dquot as
    inactive like what dquot_release() does.
    
    Link: https://lkml.kernel.org/r/20250106140653.92292-1-glass.su@suse.com
    Fixes: 9e33d69f553a ("ocfs2: Implementation of local and global quota file handling")
    Signed-off-by: Su Yue <glass.su@suse.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Jun Piao <piaojun@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fe761befd84571774278ba71ba6ab6e62f73412e
Author: Guixin Liu <kanie@linux.alibaba.com>
Date:   Wed Dec 18 09:42:13 2024 +0800

    scsi: ufs: bsg: Delete bsg_dev when setting up bsg fails
    
    [ Upstream commit fcf247deb3c3e1c6be5774e3fa03bbd018eff1a9 ]
    
    We should remove the bsg device when bsg_setup_queue() fails to release the
    resources.
    
    Fixes: df032bf27a41 ("scsi: ufs: Add a bsg endpoint that supports UPIUs")
    Signed-off-by: Guixin Liu <kanie@linux.alibaba.com>
    Link: https://lore.kernel.org/r/20241218014214.64533-2-kanie@linux.alibaba.com
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13186db840b954e81472e516c7d2e83a34859d3d
Author: Paul Menzel <pmenzel@molgen.mpg.de>
Date:   Thu Dec 12 23:18:12 2024 +0100

    scsi: mpt3sas: Set ioc->manu_pg11.EEDPTagMode directly to 1
    
    [ Upstream commit ad7c3c0cb8f61d6d5a48b83e62ca4a9fd2f26153 ]
    
    Currently, the code does:
    
        if (x == 0) {
            x &= ~0x3;
            x |= 0x1;
        }
    
    Zeroing bits 0 and 1 of a variable that is 0 is not necessary. So directly
    set the variable to 1.
    
    Cc: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
    Fixes: f92363d12359 ("[SCSI] mpt3sas: add new driver supporting 12GB SAS")
    Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Link: https://lore.kernel.org/r/20241212221817.78940-2-pmenzel@molgen.mpg.de
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6987e021b64cbb49981d140bb72d9d1466f191c4
Author: King Dix <kingdix10@qq.com>
Date:   Thu Jan 9 08:50:18 2025 +0800

    PCI: rcar-ep: Fix incorrect variable used when calling devm_request_mem_region()
    
    [ Upstream commit 2d2da5a4c1b4509f6f7e5a8db015cd420144beb4 ]
    
    The rcar_pcie_parse_outbound_ranges() uses the devm_request_mem_region()
    macro to request a needed resource. A string variable that lives on the
    stack is then used to store a dynamically computed resource name, which
    is then passed on as one of the macro arguments. This can lead to
    undefined behavior.
    
    Depending on the current contents of the memory, the manifestations of
    errors may vary. One possible output may be as follows:
    
      $ cat /proc/iomem
      30000000-37ffffff :
      38000000-3fffffff :
    
    Sometimes, garbage may appear after the colon.
    
    In very rare cases, if no NULL-terminator is found in memory, the system
    might crash because the string iterator will overrun which can lead to
    access of unmapped memory above the stack.
    
    Thus, fix this by replacing outbound_name with the name of the previously
    requested resource. With the changes applied, the output will be as
    follows:
    
      $ cat /proc/iomem
      30000000-37ffffff : memory2
      38000000-3fffffff : memory3
    
    Fixes: 2a6d0d63d999 ("PCI: rcar: Add endpoint mode support")
    Link: https://lore.kernel.org/r/tencent_DBDCC19D60F361119E76919ADAB25EC13C06@qq.com
    Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
    Signed-off-by: King Dix <kingdix10@qq.com>
    [kwilczynski: commit log]
    Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
    Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
    Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 68ee578e6e31e88fd02681ca1e45ddf86784367c
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Tue Dec 24 12:54:11 2024 +0900

    staging: media: imx: fix OF node leak in imx_media_add_of_subdevs()
    
    [ Upstream commit 094f5c315f756b19198e6c401aa821ac0e868750 ]
    
    imx_media_add_of_subdevs() calls of_parse_phandle() and passes the
    obtained node to imx_media_of_add_csi(). The passed node is used in
    v4l2_async_nf_add_fwnode(), which increments the refcount of the node.
    Therefore, while the current implementation only releases the node when
    imx_media_of_add_csi() fails, but should always release it. Call
    of_node_put() right after imx_media_of_add_csi().
    
    Fixes: dee747f88167 ("media: imx: Don't register IPU subdevs/links if CSI port missing")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
    Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6f3c167de05763dee0eb225ab47cf112a44cce8d
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Fri Dec 6 22:38:09 2024 +0900

    mtd: hyperbus: hbmc-am654: fix an OF node reference leak
    
    [ Upstream commit bf5821909eb9c7f5d07d5c6e852ead2c373c94a0 ]
    
    In am654_hbmc_platform_driver, .remove() and the error path of .probe()
    do not decrement the refcount of an OF node obtained by
      of_get_next_child(). Fix this by adding of_node_put() calls.
    
    Fixes: aca31ce96814 ("mtd: hyperbus: hbmc-am654: Fix direct mapping setup flash access")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 784a7f4a9efb7c1eacef541d168f28e2e58ff303
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Sun Oct 8 22:01:32 2023 +0200

    mtd: hyperbus: hbmc-am654: Convert to platform remove callback returning void
    
    [ Upstream commit 59bd56760df17506bc2f828f19b40a2243edd0d0 ]
    
    The .remove() callback for a platform driver returns an int which makes
    many driver authors wrongly assume it's possible to do error handling by
    returning an error code. However the value returned is ignored (apart
    from emitting a warning) and this typically results in resource leaks.
    
    To improve here there is a quest to make the remove callback return
    void. In the first step of this quest all drivers are converted to
    .remove_new(), which already returns void. Eventually after all drivers
    are converted, .remove_new() will be renamed to .remove().
    
    Trivially convert this driver from always returning zero in the remove
    callback to the void returning variant.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Acked-by: Tudor Ambarus <tudor.ambarus@linaro.org>
    Link: https://lore.kernel.org/linux-mtd/20231008200143.196369-10-u.kleine-koenig@pengutronix.de
    Stable-dep-of: bf5821909eb9 ("mtd: hyperbus: hbmc-am654: fix an OF node reference leak")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c1aea4faa984955e460ed79851ed72bd6ccf84ec
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Fri Jun 3 23:07:45 2022 +0200

    mtd: hyperbus: Make hyperbus_unregister_device() return void
    
    [ Upstream commit 0c90466a7985d39355f743e9cd2139da3e86c4d8 ]
    
    The only thing that could theoretically fail in that function is
    mtd_device_unregister(). However it's not supposed to fail and when
    used correctly it doesn't. So wail loudly if it does anyhow.
    
    This matches how other drivers (e.g. nand/raw/nandsim.c) use
    mtd_device_unregister().
    
    This is a preparation for making platform remove callbacks return void.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20220603210758.148493-2-u.kleine-koenig@pengutronix.de
    Stable-dep-of: bf5821909eb9 ("mtd: hyperbus: hbmc-am654: fix an OF node reference leak")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b86841430a6f057b6c8f55befa49e6a060f683f
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Wed Dec 18 21:39:08 2024 +0000

    media: uvcvideo: Propagate buf->error to userspace
    
    [ Upstream commit 87ce177654e388451850905a1d376658aebe8699 ]
    
    Now we return VB2_BUF_STATE_DONE for valid and invalid frames. Propagate
    the correct value, so the user can know if the frame is valid or not via
    struct v4l2_buffer->flags.
    
    Reported-by: Hans de Goede <hdegoede@redhat.com>
    Closes: https://lore.kernel.org/linux-media/84b0f212-cd88-46bb-8e6f-b94ec3eccba6@redhat.com
    Fixes: 6998b6fb4b1c ("[media] uvcvideo: Use videobuf2-vmalloc")
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20241218-uvc-deprecate-v2-1-ab814139e983@chromium.org
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 235ab2be35727a77b9c4b00a10671d6312def013
Author: Jiasheng Jiang <jiashengjiangcool@gmail.com>
Date:   Mon Nov 25 19:18:17 2024 +0000

    media: camif-core: Add check for clk_enable()
    
    [ Upstream commit 77ed2470ac09c2b0a33cf3f98cc51d18ba9ed976 ]
    
    Add check for the return value of clk_enable() to gurantee the success.
    
    Fixes: babde1c243b2 ("[media] V4L: Add driver for S3C24XX/S3C64XX SoC series camera interface")
    Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cc0d04ae127d87ec7eb980d6e6d4ef1722bce48b
Author: Jiasheng Jiang <jiashengjiangcool@gmail.com>
Date:   Mon Nov 25 19:18:18 2024 +0000

    media: mipi-csis: Add check for clk_enable()
    
    [ Upstream commit 125ad1aeec77eb55273b420be6894b284a01e4b6 ]
    
    Add check for the return value of clk_enable() to gurantee the success.
    
    Fixes: b5f1220d587d ("[media] v4l: Add v4l2 subdev driver for S5P/EXYNOS4 MIPI-CSI receivers")
    Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5bdd8b64153d694284e72e414b04032838bf6685
Author: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date:   Mon Dec 9 14:55:45 2024 +0000

    media: i2c: ov9282: Correct the exposure offset
    
    [ Upstream commit feaf4154d69657af2bf96e6e66cca794f88b1a61 ]
    
    The datasheet lists that "Maximum exposure time is frame
    length -25 row periods, where frame length is set by
    registers {0x380E, 0x380F}".
    However this driver had OV9282_EXPOSURE_OFFSET set to 12
    which allowed that restriction to be violated, and would
    result in very under-exposed images.
    
    Correct the offset.
    
    Fixes: 14ea315bbeb7 ("media: i2c: Add ov9282 camera sensor driver")
    Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
    Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ab5c3af140601665afc2c4ca60e22dcdfc74f55
Author: Luca Weiss <luca.weiss@fairphone.com>
Date:   Mon Nov 18 22:45:46 2024 +0100

    media: i2c: imx412: Add missing newline to prints
    
    [ Upstream commit 33f4a7fba7229232e294f4794503283e44cd03f2 ]
    
    Add trailing \n to dev_dbg and dev_err prints where missing.
    
    Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
    Fixes: 9214e86c0cc1 ("media: i2c: Add imx412 camera sensor driver")
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 333f8f9b666743870af63b914625b98f291b4a31
Author: Jiasheng Jiang <jiashengjiangcool@gmail.com>
Date:   Tue Dec 3 21:29:02 2024 +0000

    media: marvell: Add check for clk_enable()
    
    [ Upstream commit 11f68d2ba2e1521a608af773bf788e8cfa260f68 ]
    
    Add check for the return value of clk_enable() to guarantee the success.
    
    Fixes: 81a409bfd551 ("media: marvell-ccic: provide a clock for the sensor")
    Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
    [Sakari Ailus: Fix spelling in commit message.]
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a61cd3df84b323df7e98f2a478801c452d85e3a6
Author: Zijun Hu <quic_zijuhu@quicinc.com>
Date:   Tue Dec 10 22:00:18 2024 +0800

    PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy()
    
    [ Upstream commit d4929755e4d02bd3de3ae5569dab69cb9502c54f ]
    
    The devm_pci_epc_destroy() comment says destroys the EPC device, but it
    does not actually do that since devres_destroy() does not call
    devm_pci_epc_release(), and it also can not fully undo what the API
    devm_pci_epc_create() does, so it is faulty.
    
    Fortunately, the faulty API has not been used by current kernel tree.  Use
    devres_release() instead of devres_destroy() so the EPC device will be
    released.
    
    Link: https://lore.kernel.org/r/20241210-pci-epc-core_fix-v3-1-4d86dd573e4b@quicinc.com
    Fixes: 5e8cb4033807 ("PCI: endpoint: Add EP core layer to enable EP controller and EP functions")
    Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 55c326068f6b7f1f6552f64a3cd7efd0200be33f
Author: Chen Ni <nichen@iscas.ac.cn>
Date:   Tue May 21 17:10:42 2024 +0800

    media: lmedm04: Handle errors for lme2510_int_read
    
    [ Upstream commit a2836d3fe220220ff8c495ca9722f89cea8a67e7 ]
    
    Add check for the return value of usb_pipe_endpoint() and
    usb_submit_urb() in order to catch the errors.
    
    Fixes: 15e1ce33182d ("[media] lmedm04: Fix usb_submit_urb BOGUS urb xfer, pipe 1 != type 3 in interrupt urb")
    Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
    Link: https://lore.kernel.org/r/20240521091042.1769684-1-nichen@iscas.ac.cn
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8bea20f4d6305c3c08b5001ed66a87eefbbcd8ad
Author: Oliver Neukum <oneukum@suse.com>
Date:   Tue Nov 26 14:17:22 2024 +0100

    media: rc: iguanair: handle timeouts
    
    [ Upstream commit b98d5000c50544f14bacb248c34e5219fbe81287 ]
    
    In case of a timeout the IO must be cancelled or
    the next IO using the URB will fail and/or overwrite
    an operational URB.
    
    The automatic bisection fails because it arrives
    at a commit that correctly lets the test case run
    without an error.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Fixes: e99a7cfe93fd ("[media] iguanair: reuse existing urb callback for command responses")
    Reported-by: syzbot+ffba8e636870dac0e0c0@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/all/66f5cc9a.050a0220.46d20.0004.GAE@google.com/
    Tested-by: syzbot+ffba8e636870dac0e0c0@syzkaller.appspotmail.com
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0486d65804cc23b6c251baaa2fad12e45ea5002e
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Tue Jan 7 15:53:09 2025 -0800

    efi: sysfb_efi: fix W=1 warnings when EFI is not set
    
    [ Upstream commit 19fdc68aa7b90b1d3d600e873a3e050a39e7663d ]
    
    A build with W=1 fails because there are code and data that are not
    needed or used when CONFIG_EFI is not set. Move the "#ifdef CONFIG_EFI"
    block to earlier in the source file so that the unused code/data are
    not built.
    
    drivers/firmware/efi/sysfb_efi.c:345:39: warning: ‘efifb_fwnode_ops’ defined but not used [-Wunused-const-variable=]
      345 | static const struct fwnode_operations efifb_fwnode_ops = {
          |                                       ^~~~~~~~~~~~~~~~
    drivers/firmware/efi/sysfb_efi.c:238:35: warning: ‘efifb_dmi_swap_width_height’ defined but not used [-Wunused-const-variable=]
      238 | static const struct dmi_system_id efifb_dmi_swap_width_height[] __initconst = {
          |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/firmware/efi/sysfb_efi.c:188:35: warning: ‘efifb_dmi_system_table’ defined but not used [-Wunused-const-variable=]
      188 | static const struct dmi_system_id efifb_dmi_system_table[] __initconst = {
          |                                   ^~~~~~~~~~~~~~~~~~~~~~
    
    Fixes: 15d27b15de96 ("efi: sysfb_efi: fix build when EFI is not set")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202501071933.20nlmJJt-lkp@intel.com/
    Cc: David Rheinsberg <david@readahead.eu>
    Cc: Hans de Goede <hdegoede@redhat.com>
    Cc: Javier Martinez Canillas <javierm@redhat.com>
    Cc: Peter Jones <pjones@redhat.com>
    Cc: Simona Vetter <simona@ffwll.ch>
    Cc: linux-fbdev@vger.kernel.org
    Cc: Ard Biesheuvel <ardb@kernel.org>
    Cc: linux-efi@vger.kernel.org
    Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8049a0845bfc87c96af8b44a9436f3d91079e602
Author: Zijun Hu <quic_zijuhu@quicinc.com>
Date:   Thu Jan 9 21:27:01 2025 +0800

    of: reserved-memory: Do not make kmemleak ignore freed address
    
    [ Upstream commit 29091a52562bca4d6e678dd8f0085dac119d6a21 ]
    
    early_init_dt_alloc_reserved_memory_arch() will free address @base when
    suffers memblock_mark_nomap() error, but it still makes kmemleak ignore
    the freed address @base via kmemleak_ignore_phys().
    
    That is unnecessary, besides, also causes unnecessary warning messages:
    
    kmemleak_ignore_phys()
     -> make_black_object()
        -> paint_ptr()
           -> kmemleak_warn() // warning message here.
    
    Fix by avoiding kmemleak_ignore_phys() when suffer the error.
    
    Fixes: 658aafc8139c ("memblock: exclude MEMBLOCK_NOMAP regions from kmemleak")
    Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
    Link: https://lore.kernel.org/r/20250109-of_core_fix-v4-10-db8a72415b8c@quicinc.com
    Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ca36f0848eb8c1bdc307c4921f3ec459b2011cc4
Author: Mike Rapoport <rppt@kernel.org>
Date:   Fri Nov 5 13:43:13 2021 -0700

    memblock: drop memblock_free_early_nid() and memblock_free_early()
    
    [ Upstream commit fa27717110ae51b9b9013ced0b5143888257bb79 ]
    
    memblock_free_early_nid() is unused and memblock_free_early() is an
    alias for memblock_free().
    
    Replace calls to memblock_free_early() with calls to memblock_free() and
    remove memblock_free_early() and memblock_free_early_nid().
    
    Link: https://lkml.kernel.org/r/20210930185031.18648-4-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Shahab Vahedi <Shahab.Vahedi@synopsys.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Stable-dep-of: 29091a52562b ("of: reserved-memory: Do not make kmemleak ignore freed address")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d26e179d2cac186632bb3b297d19ecf94066ab1f
Author: Mike Rapoport <rppt@kernel.org>
Date:   Fri Nov 5 13:43:10 2021 -0700

    xen/x86: free_p2m_page: use memblock_free_ptr() to free a virtual pointer
    
    [ Upstream commit c486514dd40980b2dbb0e15fabddfe1324ed0197 ]
    
    free_p2m_page() wrongly passes a virtual pointer to memblock_free() that
    treats it as a physical address.
    
    Call memblock_free_ptr() instead that gets a virtual address to free the
    memory.
    
    Link: https://lkml.kernel.org/r/20210930185031.18648-3-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Shahab Vahedi <Shahab.Vahedi@synopsys.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Stable-dep-of: 29091a52562b ("of: reserved-memory: Do not make kmemleak ignore freed address")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 708ce479ff3c04327403217ba49cce84845c5d40
Author: Michael Guralnik <michaelgur@nvidia.com>
Date:   Mon Jan 6 20:27:10 2025 +0200

    RDMA/mlx5: Fix indirect mkey ODP page count
    
    [ Upstream commit 235f238402194a78ac5fb882a46717eac817e5d1 ]
    
    Restrict the check for the number of pages handled during an ODP page
    fault to direct mkeys.
    Perform the check right after handling the page fault and don't
    propagate the number of handled pages to callers.
    
    Indirect mkeys and their associated direct mkeys can have different
    start addresses. As a result, the calculation of the number of pages to
    handle for an indirect mkey may not match the actual page fault
    handling done on the direct mkey.
    
    For example:
    A 4K sized page fault on a KSM mkey that has a start address that is not
    aligned to a page will result a calculation that assumes the number of
    pages required to handle are 2.
    While the underlying MTT might be aligned will require fetching only a
    single page.
    Thus, do the calculation and compare number of pages handled only per
    direct mkey.
    
    Fixes: db570d7deafb ("IB/mlx5: Add ODP support to MW")
    Signed-off-by: Michael Guralnik <michaelgur@nvidia.com>
    Reviewed-by: Artemy Kovalyov <artemyko@nvidia.com>
    Link: https://patch.msgid.link/86c483d9e75ce8fe14e9ff85b62df72b779f8ab1.1736187990.git.leon@kernel.org
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95b4474c93a0c3ce555eef591ae408326b76d20b
Author: Michael Guralnik <michaelgur@nvidia.com>
Date:   Mon Sep 9 13:05:00 2024 +0300

    RDMA/mlx5: Enforce umem boundaries for explicit ODP page faults
    
    [ Upstream commit 8c6d097d830f779fc1725fbaa1314f20a7a07b4b ]
    
    The new memory scheme page faults are requesting the driver to fetch
    additinal pages to the faulted memory access.
    This is done in order to prefetch pages before and after the area that
    got the page fault, assuming this will reduce the total amount of page
    faults.
    
    The driver should ensure it handles only the pages that are within the
    umem range.
    
    Signed-off-by: Michael Guralnik <michaelgur@nvidia.com>
    Link: https://patch.msgid.link/20240909100504.29797-5-michaelgur@nvidia.com
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Stable-dep-of: 235f23840219 ("RDMA/mlx5: Fix indirect mkey ODP page count")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fe090e183d263be2ac7785aa27f376bff2657c98
Author: Aharon Landau <aharonl@nvidia.com>
Date:   Tue Oct 12 13:26:30 2021 +0300

    RDMA/mlx5: Remove iova from struct mlx5_core_mkey
    
    [ Upstream commit cf6a8b1b24d675afc35a01cccd081160014a0125 ]
    
    iova is already stored in ibmr->iova, no need to store it here.
    
    Signed-off-by: Aharon Landau <aharonl@nvidia.com>
    Reviewed-by: Shay Drory <shayd@nvidia.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Stable-dep-of: 235f23840219 ("RDMA/mlx5: Fix indirect mkey ODP page count")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9c5f50926e3f3c494f4af434c17769b561c2637
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Wed Jan 8 10:15:37 2025 +0900

    fbdev: omapfb: Fix an OF node leak in dss_of_port_get_parent_device()
    
    [ Upstream commit de124b61e179e690277116e6be512e4f422b5dd8 ]
    
    dss_of_port_get_parent_device() leaks an OF node reference when i >= 2
    and struct device_node *np is present. Since of_get_next_parent()
    obtains a reference of the returned OF node, call of_node_put() before
    returning NULL.
    
    This was found by an experimental verifier that I am developing, and no
    runtime test was able to be performed due to that lack of actual
    devices.
    
    Fixes: f76ee892a99e ("omapfb: copy omapdss & displays for omapfb")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 96cd8661f22587acb5437e245fc232fdb5eb257f
Author: Rafał Miłecki <rafal@milecki.pl>
Date:   Mon Jun 17 11:46:33 2024 +0200

    ARM: dts: mediatek: mt7623: fix IR nodename
    
    [ Upstream commit 90234cf9b37c57201a24b78c217a91a8af774109 ]
    
    Fix following validation error:
    arch/arm/boot/dts/mediatek/mt7623a-rfb-emmc.dtb: cir@10013000: $nodename:0: 'cir@10013000' does not match '^ir(-receiver)?(@[a-f0-9]+)?$'
            from schema $id: http://devicetree.org/schemas/media/mediatek,mt7622-cir.yaml#
    
    Fixes: 91044f38dae7 ("arm: dts: mt7623: add ir nodes to the mt7623.dtsi file")
    Cc: linux-media@vger.kernel.org
    Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
    Link: https://lore.kernel.org/r/20240617094634.23173-1-zajec5@gmail.com
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 311afb2be16785275bf2e491abafb946e47a6708
Author: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Date:   Wed Nov 27 14:29:49 2024 +0200

    arm64: dts: qcom: sdm845: Fix interrupt types of camss interrupts
    
    [ Upstream commit cb96722b728e81ad97f5b5b20dea64cd294a5452 ]
    
    Qualcomm IP catalog says that all CAMSS interrupts is edge rising,
    fix it in the CAMSS device tree node for sdm845 SoC.
    
    Fixes: d48a6698a6b7 ("arm64: dts: qcom: sdm845: Add CAMSS ISP node")
    Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
    Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
    Link: https://lore.kernel.org/r/20241127122950.885982-6-vladimir.zapolskiy@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eb3e76baaf1bd2a0ad9b6e156c71692e84e1079d
Author: Neil Armstrong <neil.armstrong@linaro.org>
Date:   Mon Dec 30 13:44:49 2024 +0100

    arm64: dts: qcom: sm8150-microsoft-surface-duo: fix typos in da7280 properties
    
    [ Upstream commit 9875adffb87da5c40f4013e55104f5e2fc071c2a ]
    
    The dlg,const-op-mode & dlg,periodic-op-mode were mis-names with twice
    the "dlg," prefix, drop one to match the bindings.
    
    This fixes:
    sm8150-microsoft-surface-duo.dtb: da7280@4a: 'dlg,const-op-mode' is a required property
            from schema $id: http://devicetree.org/schemas/input/dlg,da7280.yaml#
    m8150-microsoft-surface-duo.dtb: da7280@4a: 'dlg,periodic-op-mode' is a required property
            from schema $id: http://devicetree.org/schemas/input/dlg,da7280.yaml#
    sm8150-microsoft-surface-duo.dtb: da7280@4a: 'dlg,dlg,const-op-mode', 'dlg,dlg,periodic-op-mode' do not match any of the regexes: 'pinctrl-[0-9]+'
            from schema $id: http://devicetree.org/schemas/input/dlg,da7280.yaml#
    
    With the dlg,da7280.yaml converted from dlg,da7280.txt at [1].
    
    [1] https://lore.kernel.org/all/20241206-topic-misc-da7280-convert-v2-1-1c3539f75604@linaro.org/
    
    Fixes: d1f781db47a8 ("arm64: dts: qcom: add initial device-tree for Microsoft Surface Duo")
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://lore.kernel.org/r/20241230-topic-misc-dt-fixes-v4-6-1e6880e9dda3@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 312e11fc50603444fdb855b1c563b45b2a05b9b7
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Tue Dec 24 12:17:13 2024 +0200

    arm64: dts: qcom: sm8350: correct sleep clock frequency
    
    [ Upstream commit f4cc8c75cfc5d06084a31da2ff67e477565f0cae ]
    
    The SM8350 platform uses PMK8350 to provide sleep clock. According to the
    documentation, that clock has 32.7645 kHz frequency. Correct the sleep
    clock definition.
    
    Fixes: b7e8f433a673 ("arm64: dts: qcom: Add basic devicetree support for SM8350 SoC")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20241224-fix-board-clocks-v3-14-e9b08fbeadd3@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8fbb052b3bd3e69e9b3b289cf26b81165d79d08d
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Tue Dec 24 12:17:12 2024 +0200

    arm64: dts: qcom: sm8250: correct sleep clock frequency
    
    [ Upstream commit 75420e437eed69fa95d1d7c339dad86dea35319a ]
    
    The SM8250 platform uses PM8150 to provide sleep clock. According to the
    documentation, that clock has 32.7645 kHz frequency. Correct the sleep
    clock definition.
    
    Fixes: 9ff8b0591fcf ("arm64: dts: qcom: sm8250: use the right clock-freqency for sleep-clk")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20241224-fix-board-clocks-v3-13-e9b08fbeadd3@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c990f5e0b2cbdcac313afc3b113594e1003ca34a
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Tue Dec 24 12:17:10 2024 +0200

    arm64: dts: qcom: sm6125: correct sleep clock frequency
    
    [ Upstream commit b3c547e1507862f0e4d46432b665c5c6e61e14d6 ]
    
    The SM6125 platform uses PM6125 to provide sleep clock. According to the
    documentation, that clock has 32.7645 kHz frequency. Correct the sleep
    clock definition.
    
    Fixes: cff4bbaf2a2d ("arm64: dts: qcom: Add support for SM6125")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20241224-fix-board-clocks-v3-11-e9b08fbeadd3@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88c84e743d4ced3ef45355252c27761c72acd9b4
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Tue Dec 24 12:17:07 2024 +0200

    arm64: dts: qcom: sc7280: correct sleep clock frequency
    
    [ Upstream commit f6ccdca14eac545320ab03d6ca91ca343e7372e5 ]
    
    The SC7280 platform uses PMK8350 to provide sleep clock. According to the
    documentation, that clock has 32.7645 kHz frequency. Correct the sleep
    clock definition.
    
    Fixes: 7a1f4e7f740d ("arm64: dts: qcom: sc7280: Add basic dts/dtsi files for sc7280 soc")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20241224-fix-board-clocks-v3-8-e9b08fbeadd3@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit afc66a233ad9be314cf461c3a663771f1c40364d
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Tue Dec 24 12:17:02 2024 +0200

    arm64: dts: qcom: msm8994: correct sleep clock frequency
    
    [ Upstream commit a4148d869d47d8c86da0291dd95d411a5ebe90c8 ]
    
    The MSM8994 platform uses PM8994/6 to provide sleep clock. According to the
    documentation, that clock has 32.7645 kHz frequency. Correct the sleep
    clock definition.
    
    Fixes: feeaf56ac78d ("arm64: dts: msm8994 SoC and Huawei Angler (Nexus 6P) support")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20241224-fix-board-clocks-v3-3-e9b08fbeadd3@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9cc46ab94b619dd33585e1fc494ebe0773ec3363
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Tue Dec 24 12:17:00 2024 +0200

    arm64: dts: qcom: msm8916: correct sleep clock frequency
    
    [ Upstream commit f088b921890cef28862913e5627bb2e2b5f82125 ]
    
    The MSM8916 platform uses PM8916 to provide sleep clock. According to the
    documentation, that clock has 32.7645 kHz frequency. Correct the sleep
    clock definition.
    
    Fixes: f4fb6aeafaaa ("arm64: dts: qcom: msm8916: Add fixed rate on-board oscillators")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20241224-fix-board-clocks-v3-1-e9b08fbeadd3@linaro.org
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 09153a482e90c7496daad87d2aaaefdaeec4b30b
Author: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Date:   Fri Nov 29 23:12:48 2024 +0100

    arm64: dts: qcom: msm8994: Describe USB interrupts
    
    [ Upstream commit c910544d2234709660d60f80345c285616e73b1c ]
    
    Previously the interrupt lanes were not described, fix that.
    
    Fixes: d9be0bc95f25 ("arm64: dts: qcom: msm8994: Add USB support")
    Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
    Tested-by: Petr Vorel <petr.vorel@gmail.com>
    Link: https://lore.kernel.org/r/20241129-topic-qcom_usb_dtb_fixup-v1-4-cba24120c058@oss.qualcomm.com
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 31952ff5833c5754169f22015807c90133472c34
Author: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Date:   Fri Nov 29 23:12:47 2024 +0100

    arm64: dts: qcom: msm8996: Fix up USB3 interrupts
    
    [ Upstream commit 9cb9c9f4e1380da317a056afd26d66a835c5796c ]
    
    Add the missing interrupt lines and fix qusb2_phy being an impostor
    of hs_phy_irq.
    
    This happens to also fix warnings such as:
    
    usb@6af8800: interrupt-names: ['hs_phy_irq', 'ss_phy_irq'] is too short
    
    Fixes: 4753492de9df ("arm64: dts: qcom: msm8996: Add usb3 interrupts")
    Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
    Link: https://lore.kernel.org/r/20241129-topic-qcom_usb_dtb_fixup-v1-3-cba24120c058@oss.qualcomm.com
    Signed-off-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ea7232a05e10a49edc725a7119632dd313285514
Author: Chen-Yu Tsai <wenst@chromium.org>
Date:   Wed Oct 30 15:02:20 2024 +0800

    arm64: dts: mediatek: mt8183-kukui-jacuzzi: Drop pp3300_panel voltage settings
    
    [ Upstream commit 0b5b1c881a909f17c05ef4b1ccb421e077f6e466 ]
    
    The pp3300_panel fixed regulator is just a load switch. It does not have
    any regulating capabilities. Thus having voltage constraints on it is
    wrong.
    
    Remove the voltage constraints.
    
    Fixes: cabc71b08eb5 ("arm64: dts: mt8183: Add kukui-jacuzzi-damu board")
    Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
    Link: https://lore.kernel.org/r/20241030070224.1006331-2-wenst@chromium.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c3def10c610ae046aaa61d00528e7bd15e4ad8d3
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Tue Dec 17 18:14:34 2024 +0900

    memory: tegra20-emc: fix an OF node reference bug in tegra_emc_find_node_by_ram_code()
    
    [ Upstream commit b9784e5cde1f9fb83661a70e580e381ae1264d12 ]
    
    As of_find_node_by_name() release the reference of the argument device
    node, tegra_emc_find_node_by_ram_code() releases some device nodes while
    still in use, resulting in possible UAFs. According to the bindings and
    the in-tree DTS files, the "emc-tables" node is always device's child
    node with the property "nvidia,use-ram-code", and the "lpddr2" node is a
    child of the "emc-tables" node. Thus utilize the
    for_each_child_of_node() macro and of_get_child_by_name() instead of
    of_find_node_by_name() to simplify the code.
    
    This bug was found by an experimental verification tool that I am
    developing.
    
    Fixes: 96e5da7c8424 ("memory: tegra: Introduce Tegra20 EMC driver")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Link: https://lore.kernel.org/r/20241217091434.1993597-1-joe@pf.is.s.u-tokyo.ac.jp
    Link: https://lore.kernel.org/r/20241218024415.2494267-3-joe@pf.is.s.u-tokyo.ac.jp
    [krzysztof: applied v1, adjust the commit msg to incorporate v2 parts]
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d9f36f957bb22d94fa6be46caad98e1cce6022d5
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Thu Oct 7 01:46:59 2021 +0300

    memory: tegra20-emc: Support matching timings by LPDDR2 configuration
    
    [ Upstream commit 131dd9a436d8f6dbaf3d9597803765d271b2fc19 ]
    
    ASUS Transformer TF101 doesn't provide RAM code and in this case memory
    timings should be selected based on identity information read out from
    SDRAM chip. Support matching timings by LPDDR2 configuration.
    
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Link: https://lore.kernel.org/r/20211006224659.21434-10-digetx@gmail.com
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Stable-dep-of: b9784e5cde1f ("memory: tegra20-emc: fix an OF node reference bug in tegra_emc_find_node_by_ram_code()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0f3c0d94c815401c062cd610b6a5d709d4ba3dc8
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Thu Oct 7 01:46:58 2021 +0300

    memory: Add LPDDR2-info helpers
    
    [ Upstream commit 38322cf423f69b89b6e0eaad4017ab41cfe45b45 ]
    
    Add common helpers for reading and parsing standard LPDDR2 configuration
    properties.
    
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Link: https://lore.kernel.org/r/20211006224659.21434-9-digetx@gmail.com
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Stable-dep-of: b9784e5cde1f ("memory: tegra20-emc: fix an OF node reference bug in tegra_emc_find_node_by_ram_code()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4274acb5b996121943239423f4997d8c14ca1535
Author: Hsin-Te Yuan <yuanhsinte@chromium.org>
Date:   Fri Dec 13 05:27:48 2024 +0000

    arm64: dts: mediatek: mt8183: willow: Support second source touchscreen
    
    [ Upstream commit 9594935260d76bffe200bea6cfab6ba0752e70d9 ]
    
    Some willow devices use second source touchscreen.
    
    Fixes: f006bcf1c972 ("arm64: dts: mt8183: Add kukui-jacuzzi-willow board")
    Signed-off-by: Hsin-Te Yuan <yuanhsinte@chromium.org>
    Link: https://lore.kernel.org/r/20241213-touchscreen-v3-2-7c1f670913f9@chromium.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cba8c5daa9d8cb1ab34bb6324d0febc6d06743e8
Author: Hsin-Te Yuan <yuanhsinte@chromium.org>
Date:   Fri Dec 13 05:27:47 2024 +0000

    arm64: dts: mediatek: mt8183: kenzo: Support second source touchscreen
    
    [ Upstream commit 5ec5dc73c5ac0c6e06803dc3b5aea4493e856568 ]
    
    Some kenzo devices use second source touchscreen.
    
    Fixes: 0a9cefe21aec ("arm64: dts: mt8183: Add kukui-jacuzzi-kenzo board")
    Signed-off-by: Hsin-Te Yuan <yuanhsinte@chromium.org>
    Link: https://lore.kernel.org/r/20241213-touchscreen-v3-1-7c1f670913f9@chromium.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d098183961e07d2ee3e52d0095f3aa1d571cc213
Author: Chen-Yu Tsai <wenst@chromium.org>
Date:   Tue Dec 10 17:26:13 2024 +0800

    arm64: dts: mediatek: mt8173-evb: Fix MT6397 PMIC sub-node names
    
    [ Upstream commit 9545ba142865b9099d43c972b9ebcf463606499a ]
    
    The MT6397 PMIC bindings specify exact names for its sub-nodes. The
    names used in the current dts don't match, causing a validation error.
    
    Fix up the names. Also drop the label for the regulators node, since
    any reference should be against the individual regulator sub-nodes.
    
    Fixes: 16ea61fc5614 ("arm64: dts: mt8173-evb: Add PMIC support")
    Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
    Link: https://lore.kernel.org/r/20241210092614.3951748-2-wenst@chromium.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9a5544dbad56ee89f0a095ec2f243d7717bd629
Author: Chen-Yu Tsai <wenst@chromium.org>
Date:   Tue Dec 10 17:26:12 2024 +0800

    arm64: dts: mediatek: mt8173-elm: Fix MT6397 PMIC sub-node names
    
    [ Upstream commit beb06b727194f68b0a4b5183e50c88265ce185af ]
    
    The MT6397 PMIC bindings specify exact names for its sub-nodes. The
    names used in the current dts don't match, causing a validation error.
    
    Fix up the names. Also drop the label for the regulators node, since
    any reference should be against the individual regulator sub-nodes.
    
    Fixes: 689b937bedde ("arm64: dts: mediatek: add mt8173 elm and hana board")
    Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
    Link: https://lore.kernel.org/r/20241210092614.3951748-1-wenst@chromium.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 032c92e01aaaf47b9592be5cbcc53f8886bd7225
Author: Chen-Yu Tsai <wenst@chromium.org>
Date:   Wed Dec 11 13:24:21 2024 +0800

    arm64: dts: mediatek: mt8173-elm: Drop regulator-compatible property
    
    [ Upstream commit 4b907b3ea5fba240808136cc5599d14b52230b39 ]
    
    The "regulator-compatible" property has been deprecated since 2012 in
    commit 13511def87b9 ("regulator: deprecate regulator-compatible DT
    property"), which is so old it's not even mentioned in the converted
    regulator bindings YAML file. It is also not listed in the MT6397
    regulator bindings. Having them present produces a whole bunch of
    validation errors:
    
        Unevaluated properties are not allowed ('regulator-compatible' was unexpected)
    
    Drop the "regulator-compatible" property from the board dts. The
    property values are the same as the node name, so everything should
    continue to work.
    
    Fixes: 689b937bedde ("arm64: dts: mediatek: add mt8173 elm and hana board")
    Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20241211052427.4178367-4-wenst@chromium.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2a28a21a925fe47a3615eefe5ec58c941a443a29
Author: Chen-Yu Tsai <wenst@chromium.org>
Date:   Wed Dec 11 13:24:20 2024 +0800

    arm64: dts: mediatek: mt8173-evb: Drop regulator-compatible property
    
    [ Upstream commit a6d5983e40f5d5b219337569cdd269727f5a3e2e ]
    
    The "regulator-compatible" property has been deprecated since 2012 in
    commit 13511def87b9 ("regulator: deprecate regulator-compatible DT
    property"), which is so old it's not even mentioned in the converted
    regulator bindings YAML file. It is also not listed in the MT6397
    regulator bindings. Having them present produces a whole bunch of
    validation errors:
    
        Unevaluated properties are not allowed ('regulator-compatible' was unexpected)
    
    Drop the "regulator-compatible" property from the board dts. The
    property values are the same as the node name, so everything should
    continue to work.
    
    Fixes: 16ea61fc5614 ("arm64: dts: mt8173-evb: Add PMIC support")
    Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20241211052427.4178367-3-wenst@chromium.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e53ca458f543aa352d09b484550de173cb9085c2
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Sat Nov 30 13:01:37 2024 +0300

    rdma/cxgb4: Prevent potential integer overflow on 32bit
    
    [ Upstream commit bd96a3935e89486304461a21752f824fc25e0f0b ]
    
    The "gl->tot_len" variable is controlled by the user.  It comes from
    process_responses().  On 32bit systems, the "gl->tot_len + sizeof(struct
    cpl_pass_accept_req) + sizeof(struct rss_header)" addition could have an
    integer wrapping bug.  Use size_add() to prevent this.
    
    Fixes: 1cab775c3e75 ("RDMA/cxgb4: Fix LE hash collision bug for passive open connection")
    Link: https://patch.msgid.link/r/86b404e1-4a75-4a35-a34e-e3054fa554c7@stanley.mountain
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 160450e4908bc4ebe89e9f8d8452c766a2808093
Author: Leon Romanovsky <leon@kernel.org>
Date:   Tue Dec 3 15:44:25 2024 +0200

    RDMA/mlx4: Avoid false error about access to uninitialized gids array
    
    [ Upstream commit 1f53d88cbb0dcc7df235bf6611ae632b254fccd8 ]
    
    Smatch generates the following false error report:
    drivers/infiniband/hw/mlx4/main.c:393 mlx4_ib_del_gid() error: uninitialized symbol 'gids'.
    
    Traditionally, we are not changing kernel code and asking people to fix
    the tools. However in this case, the fix can be done by simply rearranging
    the code to be more clear.
    
    Fixes: e26be1bfef81 ("IB/mlx4: Implement ib_device callbacks")
    Link: https://patch.msgid.link/6a3a1577463da16962463fcf62883a87506e9b62.1733233426.git.leonro@nvidia.com
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f92f10cdb7fafdbd42e464e2b04649d71905a11b
Author: Val Packett <val@packett.cool>
Date:   Wed Dec 4 16:05:07 2024 -0300

    arm64: dts: mediatek: mt8516: reserve 192 KiB for TF-A
    
    [ Upstream commit 2561c7d5d497b988deccc36fe5eac7fd50b937f8 ]
    
    The Android DTB for the related MT8167 reserves 0x30000. This is likely
    correct for MT8516 Android devices as well, and there's never any harm
    in reserving 64KiB more.
    
    Fixes: 5236347bde42 ("arm64: dts: mediatek: add dtsi for MT8516")
    Signed-off-by: Val Packett <val@packett.cool>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20241204190524.21862-5-val@packett.cool
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 52a976a83ddae8ffcb29caf66c331054dd7ca3b4
Author: Val Packett <val@packett.cool>
Date:   Wed Dec 4 16:05:06 2024 -0300

    arm64: dts: mediatek: mt8516: add i2c clock-div property
    
    [ Upstream commit eb72341fd92b7af510d236e5a8554d855ed38d3c ]
    
    Move the clock-div property from the pumpkin board dtsi to the SoC's
    since it belongs to the SoC itself and is required on other devices.
    
    Fixes: 5236347bde42 ("arm64: dts: mediatek: add dtsi for MT8516")
    Signed-off-by: Val Packett <val@packett.cool>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20241204190524.21862-4-val@packett.cool
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6047c27de667ff4fc03e59705a020b4c96c2b10a
Author: Fabien Parent <fparent@baylibre.com>
Date:   Wed Nov 10 20:35:20 2021 +0100

    arm64: dts: mediatek: mt8516: remove 2 invalid i2c clocks
    
    [ Upstream commit 9cf6a26ae352a6a150662c0c4ddff87664cc6e3c ]
    
    The two clocks "main-source" and "main-sel" are not present in the
    driver and not defined in the binding documentation. Remove them
    as they are not used and not described in the documentation.
    
    Signed-off-by: Fabien Parent <fparent@baylibre.com>
    Link: https://lore.kernel.org/r/20211110193520.488-1-fparent@baylibre.com
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Stable-dep-of: eb72341fd92b ("arm64: dts: mediatek: mt8516: add i2c clock-div property")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bcc6c817e2adc6eddac9b7ead984ca8c0cff6b76
Author: Val Packett <val@packett.cool>
Date:   Wed Dec 4 16:05:05 2024 -0300

    arm64: dts: mediatek: mt8516: fix wdt irq type
    
    [ Upstream commit 03a80442030e7147391738fb6cbe5fa0b3b91bb1 ]
    
    The GICv2 does not support EDGE_FALLING interrupts, so the watchdog
    would refuse to attach due to a failing check coming from the GIC driver.
    
    Fixes: 5236347bde42 ("arm64: dts: mediatek: add dtsi for MT8516")
    Signed-off-by: Val Packett <val@packett.cool>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20241204190524.21862-3-val@packett.cool
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ad0e4e155819e1b5446d3e6b3875b74fce6010a
Author: Val Packett <val@packett.cool>
Date:   Wed Dec 4 16:05:04 2024 -0300

    arm64: dts: mediatek: mt8516: fix GICv2 range
    
    [ Upstream commit e3ee31e4409f051c021a30122f3c470f093a7386 ]
    
    On the MT8167 which is based on the MT8516 DTS, the following error
    was appearing on boot, breaking interrupt operation:
    
    GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
    
    Similar to what's been proposed for MT7622 which has the same issue,
    fix by using the range reported by force_probe.
    
    Link: https://lore.kernel.org/all/YmhNSLgp%2Fyg8Vr1F@makrotopia.org/
    Fixes: 5236347bde42 ("arm64: dts: mediatek: add dtsi for MT8516")
    Signed-off-by: Val Packett <val@packett.cool>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://lore.kernel.org/r/20241204190524.21862-2-val@packett.cool
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9792f0c9880ab15b650353090f7c7992bbb6ecf6
Author: Hsin-Yi Wang <hsinyi@chromium.org>
Date:   Wed Nov 13 16:16:53 2024 +0800

    arm64: dts: mt8183: set DMIC one-wire mode on Damu
    
    [ Upstream commit 6c379e8b984815fc8f876e4bc78c4d563f13ddae ]
    
    Sets DMIC one-wire mode on Damu.
    
    Fixes: cabc71b08eb5 ("arm64: dts: mt8183: Add kukui-jacuzzi-damu board")
    Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Hsin-Te Yuan <yuanhsinte@chromium.org>
    Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
    Link: https://lore.kernel.org/r/20241113-damu-v4-1-6911b69610dd@chromium.org
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit abbb15f54a35f30f6006a33f3d5d3035a0170a4a
Author: Nicolas Ferre <nicolas.ferre@microchip.com>
Date:   Mon Nov 25 17:56:48 2024 +0100

    ARM: at91: pm: change BU Power Switch to automatic mode
    
    [ Upstream commit 6fc5bdfa872b7da51b5507a1327a17c3db2fcf95 ]
    
    Change how the Backup Unit Power is configured and force the
    automatic/hardware mode.
    This change eliminates the need for software management of the power
    switch, ensuring it transitions to the backup power source before
    entering low power modes.
    
    This is done in the only location where this switch was configured. It's
    usually done in the bootloader.
    
    Previously, the loss of the VDDANA (or VDDIN33) power source was not
    automatically compensated by an alternative power source. This resulted
    in the loss of Backup Unit content, including Backup Self-refresh low
    power mode information, OTP emulation configuration, and boot
    configuration, for instance.
    
    Fixes: ac809e7879b1 ("ARM: at91: pm: switch backup area to vbat in backup mode")
    Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20241125165648.509162-1-nicolas.ferre@microchip.com
    Signed-off-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c6209efea2208597dbd3e52dc87a0d1a8f2dbe1
Author: Chen Ridong <chenridong@huawei.com>
Date:   Fri Jan 10 06:16:39 2025 +0000

    padata: avoid UAF for reorder_work
    
    [ Upstream commit dd7d37ccf6b11f3d95e797ebe4e9e886d0332600 ]
    
    Although the previous patch can avoid ps and ps UAF for _do_serial, it
    can not avoid potential UAF issue for reorder_work. This issue can
    happen just as below:
    
    crypto_request                  crypto_request          crypto_del_alg
    padata_do_serial
      ...
      padata_reorder
        // processes all remaining
        // requests then breaks
        while (1) {
          if (!padata)
            break;
          ...
        }
    
                                    padata_do_serial
                                      // new request added
                                      list_add
        // sees the new request
        queue_work(reorder_work)
                                      padata_reorder
                                        queue_work_on(squeue->work)
    ...
    
                                    <kworker context>
                                    padata_serial_worker
                                    // completes new request,
                                    // no more outstanding
                                    // requests
    
                                                            crypto_del_alg
                                                              // free pd
    
    <kworker context>
    invoke_padata_reorder
      // UAF of pd
    
    To avoid UAF for 'reorder_work', get 'pd' ref before put 'reorder_work'
    into the 'serial_wq' and put 'pd' ref until the 'serial_wq' finish.
    
    Fixes: bbefa1dd6a6d ("crypto: pcrypt - Avoid deadlock by using per-instance padata queues")
    Signed-off-by: Chen Ridong <chenridong@huawei.com>
    Acked-by: Daniel Jordan <daniel.m.jordan@oracle.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 035ed9577b48a300d1ec7a581a28afee2b41b4b7
Author: Chen Ridong <chenridong@huawei.com>
Date:   Fri Jan 10 06:16:37 2025 +0000

    padata: add pd get/put refcnt helper
    
    [ Upstream commit ae154202cc6a189b035359f3c4e143d5c24d5352 ]
    
    Add helpers for pd to get/put refcnt to make code consice.
    
    Signed-off-by: Chen Ridong <chenridong@huawei.com>
    Acked-by: Daniel Jordan <daniel.m.jordan@oracle.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Stable-dep-of: dd7d37ccf6b1 ("padata: avoid UAF for reorder_work")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f3e0b9f790f8e8065d59e67b565a83154d9f3079
Author: Chen Ridong <chenridong@huawei.com>
Date:   Fri Jan 10 06:16:38 2025 +0000

    padata: fix UAF in padata_reorder
    
    [ Upstream commit e01780ea4661172734118d2a5f41bc9720765668 ]
    
    A bug was found when run ltp test:
    
    BUG: KASAN: slab-use-after-free in padata_find_next+0x29/0x1a0
    Read of size 4 at addr ffff88bbfe003524 by task kworker/u113:2/3039206
    
    CPU: 0 PID: 3039206 Comm: kworker/u113:2 Kdump: loaded Not tainted 6.6.0+
    Workqueue: pdecrypt_parallel padata_parallel_worker
    Call Trace:
    <TASK>
    dump_stack_lvl+0x32/0x50
    print_address_description.constprop.0+0x6b/0x3d0
    print_report+0xdd/0x2c0
    kasan_report+0xa5/0xd0
    padata_find_next+0x29/0x1a0
    padata_reorder+0x131/0x220
    padata_parallel_worker+0x3d/0xc0
    process_one_work+0x2ec/0x5a0
    
    If 'mdelay(10)' is added before calling 'padata_find_next' in the
    'padata_reorder' function, this issue could be reproduced easily with
    ltp test (pcrypt_aead01).
    
    This can be explained as bellow:
    
    pcrypt_aead_encrypt
    ...
    padata_do_parallel
    refcount_inc(&pd->refcnt); // add refcnt
    ...
    padata_do_serial
    padata_reorder // pd
    while (1) {
    padata_find_next(pd, true); // using pd
    queue_work_on
    ...
    padata_serial_worker                            crypto_del_alg
    padata_put_pd_cnt // sub refcnt
                                                    padata_free_shell
                                                    padata_put_pd(ps->pd);
                                                    // pd is freed
    // loop again, but pd is freed
    // call padata_find_next, UAF
    }
    
    In the padata_reorder function, when it loops in 'while', if the alg is
    deleted, the refcnt may be decreased to 0 before entering
    'padata_find_next', which leads to UAF.
    
    As mentioned in [1], do_serial is supposed to be called with BHs disabled
    and always happen under RCU protection, to address this issue, add
    synchronize_rcu() in 'padata_free_shell' wait for all _do_serial calls
    to finish.
    
    [1] https://lore.kernel.org/all/20221028160401.cccypv4euxikusiq@parnassus.localdomain/
    [2] https://lore.kernel.org/linux-kernel/jfjz5d7zwbytztackem7ibzalm5lnxldi2eofeiczqmqs2m7o6@fq426cwnjtkm/
    Fixes: b128a3040935 ("padata: allocate workqueue internally")
    Signed-off-by: Chen Ridong <chenridong@huawei.com>
    Signed-off-by: Qu Zicheng <quzicheng@huawei.com>
    Acked-by: Daniel Jordan <daniel.m.jordan@oracle.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e306eaaa3d78b462db5f5b11e0171f9d2b6ca3f4
Author: Puranjay Mohan <puranjay@kernel.org>
Date:   Wed Jan 15 10:36:47 2025 +0000

    bpf: Send signals asynchronously if !preemptible
    
    [ Upstream commit 87c544108b612512b254c8f79aa5c0a8546e2cc4 ]
    
    BPF programs can execute in all kinds of contexts and when a program
    running in a non-preemptible context uses the bpf_send_signal() kfunc,
    it will cause issues because this kfunc can sleep.
    Change `irqs_disabled()` to `!preemptible()`.
    
    Reported-by: syzbot+97da3d7e0112d59971de@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/all/67486b09.050a0220.253251.0084.GAE@google.com/
    Fixes: 1bc7896e9ef4 ("bpf: Fix deadlock with rq_lock in bpf_send_signal()")
    Signed-off-by: Puranjay Mohan <puranjay@kernel.org>
    Acked-by: Yonghong Song <yonghong.song@linux.dev>
    Link: https://lore.kernel.org/r/20250115103647.38487-1-puranjay@kernel.org
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d6becd34dc6587441b3c72088c60cb25552569cb
Author: Jiachen Zhang <me@jcix.top>
Date:   Thu Jan 9 23:22:19 2025 +0800

    perf report: Fix misleading help message about --demangle
    
    [ Upstream commit ac0ac75189a4d6a29a2765a7adbb62bc6cc650c7 ]
    
    The wrong help message may mislead users. This commit fixes it.
    
    Fixes: 328ccdace8855289 ("perf report: Add --no-demangle option")
    Reviewed-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Jiachen Zhang <me@jcix.top>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung.kim@lge.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20250109152220.1869581-1-me@jcix.top
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54b587874a7c614fa1340be645194e83c920170a
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Thu Jan 2 16:50:39 2025 -0300

    perf top: Don't complain about lack of vmlinux when not resolving some kernel samples
    
    [ Upstream commit 058b38ccd2af9e5c95590b018e8425fa148d7aca ]
    
    Recently we got a case where a kernel sample wasn't being resolved due
    to a bug that was not setting the end address on kernel functions
    implemented in assembly (see Link: tag), and then those were not being
    found by machine__resolve() -> map__find_symbol().
    
    So we ended up with:
    
      # perf top --stdio
      PerfTop: 0 irqs/s  kernel: 0%  exact: 0% lost: 0/0 drop: 0/0 [cycles/P]
      -----------------------------------------------------------------------
    
      Warning:
      A vmlinux file was not found.
      Kernel samples will not be resolved.
      ^Z
      [1]+  Stopped                 perf top --stdio
      #
    
    But then resolving all other kernel symbols.
    
    So just fixup the logic to only print that warning when there are no
    symbols in the kernel map.
    
    Fixes: d88205db9caa0e9d ("perf dso: Add dso__has_symbols() method")
    Reviewed-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: James Clark <james.clark@linaro.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Link: https://lore.kernel.org/lkml/Z3buKhcCsZi3_aGb@x1
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ca0b62b2dc9a5d744d1886e9badc6becd47062b6
Author: Thomas Weißschuh <linux@weissschuh.net>
Date:   Fri Dec 27 23:32:01 2024 +0100

    padata: fix sysfs store callback check
    
    [ Upstream commit 9ff6e943bce67d125781fe4780a5d6f072dc44c0 ]
    
    padata_sysfs_store() was copied from padata_sysfs_show() but this check
    was not adapted. Today there is no attribute which can fail this
    check, but if there is one it may as well be correct.
    
    Fixes: 5e017dc3f8bc ("padata: Added sysfs primitives to padata subsystem")
    Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b467ed29b58624add3c211fe89818240278e8275
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Sun Dec 15 16:27:20 2024 +0900

    crypto: ixp4xx - fix OF node reference leaks in init_ixp_crypto()
    
    [ Upstream commit 472a989029aac2b78ef2f0b18b27c568bf76d104 ]
    
    init_ixp_crypto() calls of_parse_phandle_with_fixed_args() multiple
    times, but does not release all the obtained refcounts. Fix it by adding
    of_node_put() calls.
    
    This bug was found by an experimental static analysis tool that I am
    developing.
    
    Fixes: 76f24b4f46b8 ("crypto: ixp4xx - Add device tree support")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 778a73f8d38dee4151ed72fcc83ef339dabf3934
Author: Wenkai Lin <linwenkai6@hisilicon.com>
Date:   Fri Dec 13 17:13:35 2024 +0800

    crypto: hisilicon/sec2 - fix for aead invalid authsize
    
    [ Upstream commit a5a9d959936499a3106a1bf3b9070875d0d3dec4 ]
    
    When the digest alg is HMAC-SHAx or another, the authsize may be less
    than 4 bytes and mac_len of the BD is set to zero, the hardware considers
    it a BD configuration error and reports a ras error, so the sec driver
    needs to switch to software calculation in this case, this patch add a
    check for it and remove unnecessary check that has been done by crypto.
    
    Fixes: 2f072d75d1ab ("crypto: hisilicon - Add aead support on SEC2")
    Signed-off-by: Wenkai Lin <linwenkai6@hisilicon.com>
    Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 37e032978e55e37156c2dc35c15efdeefc784097
Author: Wenkai Lin <linwenkai6@hisilicon.com>
Date:   Fri Dec 13 17:13:34 2024 +0800

    crypto: hisilicon/sec2 - fix for aead icv error
    
    [ Upstream commit fd337f852b2677b53d0859a47b58e6e6bd189f30 ]
    
    When the AEAD algorithm is used for encryption or decryption,
    the input authentication length varies, the hardware needs to
    obtain the input length to pass the integrity check verification.
    Currently, the driver uses a fixed authentication length,which
    causes decryption failure, so the length configuration is modified.
    In addition, the step of setting the auth length is unnecessary,
    so it was deleted from the setkey function.
    
    Fixes: 2f072d75d1ab ("crypto: hisilicon - Add aead support on SEC2")
    Signed-off-by: Wenkai Lin <linwenkai6@hisilicon.com>
    Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 017b2680816b9dea3122c74f5d9a0f7f22238d3a
Author: Chenghai Huang <huangchenghai2@huawei.com>
Date:   Sat Dec 9 15:01:35 2023 +0800

    crypto: hisilicon/sec2 - optimize the error return process
    
    [ Upstream commit 1bed82257b1881b689ee41f14ecb4c20a273cac0 ]
    
    Add the printf of an error message and optimized the handling
    process of ret.
    
    Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Stable-dep-of: fd337f852b26 ("crypto: hisilicon/sec2 - fix for aead icv error")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8f268c476c83d124d811401f2b6ee769782f8f35
Author: Kai Ye <yekai13@huawei.com>
Date:   Fri Sep 9 06:28:11 2022 +0000

    crypto: hisilicon/sec - delete redundant blank lines
    
    [ Upstream commit 0413623c27a380d0da7240717f9435d24776b985 ]
    
    Some coding style fixes in sec crypto file.
    
    Signed-off-by: Kai Ye <yekai13@huawei.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Stable-dep-of: fd337f852b26 ("crypto: hisilicon/sec2 - fix for aead icv error")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0db426905cb47ac7bb96b3cd85824726630b3a12
Author: Kai Ye <yekai13@huawei.com>
Date:   Sat Jan 22 16:13:09 2022 +0800

    crypto: hisilicon/sec - add some comments for soft fallback
    
    [ Upstream commit e764d81d58070e66e61fb1b972c81eb9d2ea971e ]
    
    Modify the print of information that might lead to user misunderstanding.
    Currently only XTS mode need the fallback tfm when using 192bit key.
    Others algs not need soft fallback tfm. So others algs can return
    directly.
    
    Signed-off-by: Kai Ye <yekai13@huawei.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Stable-dep-of: fd337f852b26 ("crypto: hisilicon/sec2 - fix for aead icv error")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4086792b88832c1a3e57438d8abf6aafa991903f
Author: Ba Jing <bajing@cmss.chinamobile.com>
Date:   Mon Sep 2 21:07:35 2024 +0800

    ktest.pl: Remove unused declarations in run_bisect_test function
    
    [ Upstream commit 776735b954f49f85fd19e1198efa421fae2ad77c ]
    
    Since $output and $ret are not used in the subsequent code, the declarations
    should be removed.
    
    Fixes: a75fececff3c ("ktest: Added sample.conf, new %default option format")
    Link: https://lore.kernel.org/20240902130735.6034-1-bajing@cmss.chinamobile.com
    Signed-off-by: Ba Jing <bajing@cmss.chinamobile.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c45f82e101a0419adca2cfacf10939478c43d71
Author: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Date:   Tue Dec 10 19:09:34 2024 +0200

    ASoC: renesas: rz-ssi: Use only the proper amount of dividers
    
    [ Upstream commit 55c209cd4318c701e6e88e0b2512a0f12dd02a7d ]
    
    There is no need to populate the ckdv[] with invalid dividers as that
    part will not be indexed anyway. The ssi->audio_mck/bclk_rate should
    always be >= 0. While at it, change the ckdv type as u8, as the divider
    128 was previously using the s8 sign bit.
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    Fixes: 03e786bd43410fa9 ("ASoC: sh: Add RZ/G2L SSIF-2 driver")
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://patch.msgid.link/20241210170953.2936724-6-claudiu.beznea.uj@bp.renesas.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 49c5d851a2bf3e609fd9a8412307ff9d77cc4dc5
Author: Zhongqiu Han <quic_zhonhan@quicinc.com>
Date:   Thu Dec 5 16:45:00 2024 +0800

    perf bpf: Fix two memory leakages when calling perf_env__insert_bpf_prog_info()
    
    [ Upstream commit 03edb7020bb920f1935c3f30acad0bb27fdb99af ]
    
    If perf_env__insert_bpf_prog_info() returns false due to a duplicate bpf
    prog info node insertion, the temporary info_node and info_linear memory
    will leak. Add a check to ensure the memory is freed if the function
    returns false.
    
    Fixes: d56354dc49091e33 ("perf tools: Save bpf_prog_info and BTF of new BPF programs")
    Reviewed-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Zhongqiu Han <quic_zhonhan@quicinc.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@linaro.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Song Liu <song@kernel.org>
    Cc: Yicong Yang <yangyicong@hisilicon.com>
    Link: https://lore.kernel.org/r/20241205084500.823660-4-quic_zhonhan@quicinc.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ac026a0ba4862974a3e4f8db9765ab1e51eb0d4c
Author: Zhongqiu Han <quic_zhonhan@quicinc.com>
Date:   Thu Dec 5 16:44:59 2024 +0800

    perf header: Fix one memory leakage in process_bpf_prog_info()
    
    [ Upstream commit a7da6c7030e1aec32f0a41c7b4fa70ec96042019 ]
    
    Function __perf_env__insert_bpf_prog_info() will return without inserting
    bpf prog info node into perf env again due to a duplicate bpf prog info
    node insertion, causing the temporary info_linear and info_node memory to
    leak. Modify the return type of this function to bool and add a check to
    ensure the memory is freed if the function returns false.
    
    Fixes: 606f972b1361f477 ("perf bpf: Save bpf_prog_info information as headers to perf.data")
    Reviewed-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Zhongqiu Han <quic_zhonhan@quicinc.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@linaro.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Song Liu <song@kernel.org>
    Cc: Yicong Yang <yangyicong@hisilicon.com>
    Link: https://lore.kernel.org/r/20241205084500.823660-3-quic_zhonhan@quicinc.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11491bb26fd956bb4c6c49574b6e7dc2e9f3fe18
Author: Zhongqiu Han <quic_zhonhan@quicinc.com>
Date:   Thu Dec 5 16:44:58 2024 +0800

    perf header: Fix one memory leakage in process_bpf_btf()
    
    [ Upstream commit 875d22980a062521beed7b5df71fb13a1af15d83 ]
    
    If __perf_env__insert_btf() returns false due to a duplicate btf node
    insertion, the temporary node will leak. Add a check to ensure the memory
    is freed if the function returns false.
    
    Fixes: a70a1123174ab592 ("perf bpf: Save BTF information as headers to perf.data")
    Reviewed-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Zhongqiu Han <quic_zhonhan@quicinc.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@linaro.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Song Liu <song@kernel.org>
    Cc: Yicong Yang <yangyicong@hisilicon.com>
    Link: https://lore.kernel.org/r/20241205084500.823660-2-quic_zhonhan@quicinc.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d79fc69eda732bc3aafe7c24fce89e6cfe4b3bb5
Author: George Lander <lander@jagmn.com>
Date:   Mon Nov 11 17:55:29 2024 +0100

    ASoC: sun4i-spdif: Add clock multiplier settings
    
    [ Upstream commit 0a2319308de88b9e819c0b43d0fccd857123eb31 ]
    
    There have been intermittent issues with the SPDIF output on H3
    and H2+ devices which has been fixed by setting the s_clk to 4
    times the audio pll.
    Add a quirk for the clock multiplier as not every supported SoC
    requires it. Without the multiplier, the audio at normal sampling
    rates was distorted and did not play at higher sampling rates.
    
    Fixes: 1bd92af877ab ("ASoC: sun4i-spdif: Add support for the H3 SoC")
    Signed-off-by: George Lander <lander@jagmn.com>
    Signed-off-by: Marcus Cooper <codekipper@gmail.com>
    Link: https://patch.msgid.link/20241111165600.57219-2-codekipper@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6a5d02ae6ff815b972a639c8149cb949cd10cc23
Author: Quentin Monnet <qmo@kernel.org>
Date:   Thu Dec 5 13:59:42 2024 +0000

    libbpf: Fix segfault due to libelf functions not setting errno
    
    [ Upstream commit e10500b69c3f3378f3dcfc8c2fe4cdb74fc844f5 ]
    
    Libelf functions do not set errno on failure. Instead, it relies on its
    internal _elf_errno value, that can be retrieved via elf_errno (or the
    corresponding message via elf_errmsg()). From "man libelf":
    
        If a libelf function encounters an error it will set an internal
        error code that can be retrieved with elf_errno. Each thread
        maintains its own separate error code. The meaning of each error
        code can be determined with elf_errmsg, which returns a string
        describing the error.
    
    As a consequence, libbpf should not return -errno when a function from
    libelf fails, because an empty value will not be interpreted as an error
    and won't prevent the program to stop. This is visible in
    bpf_linker__add_file(), for example, where we call a succession of
    functions that rely on libelf:
    
        err = err ?: linker_load_obj_file(linker, filename, opts, &obj);
        err = err ?: linker_append_sec_data(linker, &obj);
        err = err ?: linker_append_elf_syms(linker, &obj);
        err = err ?: linker_append_elf_relos(linker, &obj);
        err = err ?: linker_append_btf(linker, &obj);
        err = err ?: linker_append_btf_ext(linker, &obj);
    
    If the object file that we try to process is not, in fact, a correct
    object file, linker_load_obj_file() may fail with errno not being set,
    and return 0. In this case we attempt to run linker_append_elf_sysms()
    and may segfault.
    
    This can happen (and was discovered) with bpftool:
    
        $ bpftool gen object output.o sample_ret0.bpf.c
        libbpf: failed to get ELF header for sample_ret0.bpf.c: invalid `Elf' handle
        zsh: segmentation fault (core dumped)  bpftool gen object output.o sample_ret0.bpf.c
    
    Fix the issue by returning a non-null error code (-EINVAL) when libelf
    functions fail.
    
    Fixes: faf6ed321cf6 ("libbpf: Add BPF static linker APIs")
    Signed-off-by: Quentin Monnet <qmo@kernel.org>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20241205135942.65262-1-qmo@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c99e59404f30afe96003d4ad5ec5d847220c025
Author: Marco Leogrande <leogrande@google.com>
Date:   Mon Dec 2 12:45:30 2024 -0800

    tools/testing/selftests/bpf/test_tc_tunnel.sh: Fix wait for server bind
    
    [ Upstream commit e2f0791124a1b6ca8d570110cbd487969d9d41ef ]
    
    Commit f803bcf9208a ("selftests/bpf: Prevent client connect before
    server bind in test_tc_tunnel.sh") added code that waits for the
    netcat server to start before the netcat client attempts to connect to
    it. However, not all calls to 'server_listen' were guarded.
    
    This patch adds the existing 'wait_for_port' guard after the remaining
    call to 'server_listen'.
    
    Fixes: f803bcf9208a ("selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh")
    Signed-off-by: Marco Leogrande <leogrande@google.com>
    Acked-by: Stanislav Fomichev <sdf@fomichev.me>
    Link: https://lore.kernel.org/r/20241202204530.1143448-1-leogrande@google.com
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8583b54455cbec2fc038fa32b6700890b369815
Author: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Date:   Wed Jan 15 08:42:20 2025 -0800

    net/rose: prevent integer overflows in rose_setsockopt()
    
    [ Upstream commit d640627663bfe7d8963c7615316d7d4ef60f3b0b ]
    
    In case of possible unpredictably large arguments passed to
    rose_setsockopt() and multiplied by extra values on top of that,
    integer overflows may occur.
    
    Do the safest minimum and fix these issues by checking the
    contents of 'opt' and returning -EINVAL if they are too large. Also,
    switch to unsigned int and remove useless check for negative 'opt'
    in ROSE_IDLE case.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Link: https://patch.msgid.link/20250115164220.19954-1-n.zhandarovich@fintech.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3cfabbb18810043b13f950fb56e776720f4a8ba3
Author: Mahdi Arghavani <ma.arghavani@yahoo.com>
Date:   Fri Jan 17 21:37:51 2025 +0000

    tcp_cubic: fix incorrect HyStart round start detection
    
    [ Upstream commit 25c1a9ca53db5780757e7f53e688b8f916821baa ]
    
    I noticed that HyStart incorrectly marks the start of rounds,
    leading to inaccurate measurements of ACK train lengths and
    resetting the `ca->sample_cnt` variable. This inaccuracy can impact
    HyStart's functionality in terminating exponential cwnd growth during
    Slow-Start, potentially degrading TCP performance.
    
    The issue arises because the changes introduced in commit 4e1fddc98d25
    ("tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited flows")
    moved the caller of the `bictcp_hystart_reset` function inside the `hystart_update` function.
    This modification added an additional condition for triggering the caller,
    requiring that (tcp_snd_cwnd(tp) >= hystart_low_window) must also
    be satisfied before invoking `bictcp_hystart_reset`.
    
    This fix ensures that `bictcp_hystart_reset` is correctly called
    at the start of a new round, regardless of the congestion window size.
    This is achieved by moving the condition
    (tcp_snd_cwnd(tp) >= hystart_low_window)
    from before calling `bictcp_hystart_reset` to after it.
    
    I tested with a client and a server connected through two Linux software routers.
    In this setup, the minimum RTT was 150 ms, the bottleneck bandwidth was 50 Mbps,
    and the bottleneck buffer size was 1 BDP, calculated as (50M / 1514 / 8) * 0.150 = 619 packets.
    I conducted the test twice, transferring data from the server to the client for 1.5 seconds.
    Before the patch was applied, HYSTART-DELAY stopped the exponential growth of cwnd when
    cwnd = 516, and the bottleneck link was not yet saturated (516 < 619).
    After the patch was applied, HYSTART-ACK-TRAIN stopped the exponential growth of cwnd when
    cwnd = 632, and the bottleneck link was saturated (632 > 619).
    In this test, applying the patch resulted in 300 KB more data delivered.
    
    Fixes: 4e1fddc98d25 ("tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited flows")
    Signed-off-by: Mahdi Arghavani <ma.arghavani@yahoo.com>
    Reviewed-by: Jason Xing <kerneljasonxing@gmail.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Haibo Zhang <haibo.zhang@otago.ac.nz>
    Cc: David Eyers <david.eyers@otago.ac.nz>
    Cc: Abbas Arghavani <abbas.arghavani@mdu.se>
    Reviewed-by: Neal Cardwell <ncardwell@google.com>
    Tested-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ed8c0300f302338c36edb06bca99051e5be6fb2f
Author: Roger Quadros <rogerq@kernel.org>
Date:   Thu Jan 16 15:54:49 2025 +0200

    net: ethernet: ti: am65-cpsw: fix freeing IRQ in am65_cpsw_nuss_remove_tx_chns()
    
    [ Upstream commit 4395a44acb15850e492dd1de9ec4b6479d96bc80 ]
    
    When getting the IRQ we use k3_udma_glue_tx_get_irq() which returns
    negative error value on error. So not NULL check is not sufficient
    to deteremine if IRQ is valid. Check that IRQ is greater then zero
    to ensure it is valid.
    
    There is no issue at probe time but at runtime user can invoke
    .set_channels which results in the following call chain.
    am65_cpsw_set_channels()
     am65_cpsw_nuss_update_tx_rx_chns()
      am65_cpsw_nuss_remove_tx_chns()
      am65_cpsw_nuss_init_tx_chns()
    
    At this point if am65_cpsw_nuss_init_tx_chns() fails due to
    k3_udma_glue_tx_get_irq() then tx_chn->irq will be set to a
    negative value.
    
    Then, at subsequent .set_channels with higher channel count we
    will attempt to free an invalid IRQ in am65_cpsw_nuss_remove_tx_chns()
    leading to a kernel warning.
    
    The issue is present in the original commit that introduced this driver,
    although there, am65_cpsw_nuss_update_tx_rx_chns() existed as
    am65_cpsw_nuss_update_tx_chns().
    
    Fixes: 93a76530316a ("net: ethernet: ti: introduce am65x/j721e gigabit eth subsystem driver")
    Signed-off-by: Roger Quadros <rogerq@kernel.org>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
    Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 920f736e6c64faf989218a0a4f3252e62f3ad7dd
Author: Florian Westphal <fw@strlen.de>
Date:   Tue Jan 14 00:50:34 2025 +0100

    netfilter: nft_flow_offload: update tcp state flags under lock
    
    [ Upstream commit 7a4b61406395291ffb7220a10e8951a9a8684819 ]
    
    The conntrack entry is already public, there is a small chance that another
    CPU is handling a packet in reply direction and racing with the tcp state
    update.
    
    Move this under ct spinlock.
    
    This is done once, when ct is about to be offloaded, so this should
    not result in a noticeable performance hit.
    
    Fixes: 8437a6209f76 ("netfilter: nft_flow_offload: set liberal tracking mode for tcp")
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38646749d6e12f9d80a08d21ca39f0beca20230d
Author: Jamal Hadi Salim <jhs@mojatatu.com>
Date:   Wed Jan 15 17:37:13 2025 -0800

    net: sched: Disallow replacing of child qdisc from one parent to another
    
    [ Upstream commit bc50835e83f60f56e9bec2b392fb5544f250fb6f ]
    
    Lion Ackermann was able to create a UAF which can be abused for privilege
    escalation with the following script
    
    Step 1. create root qdisc
    tc qdisc add dev lo root handle 1:0 drr
    
    step2. a class for packet aggregation do demonstrate uaf
    tc class add dev lo classid 1:1 drr
    
    step3. a class for nesting
    tc class add dev lo classid 1:2 drr
    
    step4. a class to graft qdisc to
    tc class add dev lo classid 1:3 drr
    
    step5.
    tc qdisc add dev lo parent 1:1 handle 2:0 plug limit 1024
    
    step6.
    tc qdisc add dev lo parent 1:2 handle 3:0 drr
    
    step7.
    tc class add dev lo classid 3:1 drr
    
    step 8.
    tc qdisc add dev lo parent 3:1 handle 4:0 pfifo
    
    step 9. Display the class/qdisc layout
    
    tc class ls dev lo
     class drr 1:1 root leaf 2: quantum 64Kb
     class drr 1:2 root leaf 3: quantum 64Kb
     class drr 3:1 root leaf 4: quantum 64Kb
    
    tc qdisc ls
     qdisc drr 1: dev lo root refcnt 2
     qdisc plug 2: dev lo parent 1:1
     qdisc pfifo 4: dev lo parent 3:1 limit 1000p
     qdisc drr 3: dev lo parent 1:2
    
    step10. trigger the bug <=== prevented by this patch
    tc qdisc replace dev lo parent 1:3 handle 4:0
    
    step 11. Redisplay again the qdiscs/classes
    
    tc class ls dev lo
     class drr 1:1 root leaf 2: quantum 64Kb
     class drr 1:2 root leaf 3: quantum 64Kb
     class drr 1:3 root leaf 4: quantum 64Kb
     class drr 3:1 root leaf 4: quantum 64Kb
    
    tc qdisc ls
     qdisc drr 1: dev lo root refcnt 2
     qdisc plug 2: dev lo parent 1:1
     qdisc pfifo 4: dev lo parent 3:1 refcnt 2 limit 1000p
     qdisc drr 3: dev lo parent 1:2
    
    Observe that a) parent for 4:0 does not change despite the replace request.
    There can only be one parent.  b) refcount has gone up by two for 4:0 and
    c) both class 1:3 and 3:1 are pointing to it.
    
    Step 12.  send one packet to plug
    echo "" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10001))
    step13.  send one packet to the grafted fifo
    echo "" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10003))
    
    step14. lets trigger the uaf
    tc class delete dev lo classid 1:3
    tc class delete dev lo classid 1:1
    
    The semantics of "replace" is for a del/add _on the same node_ and not
    a delete from one node(3:1) and add to another node (1:3) as in step10.
    While we could "fix" with a more complex approach there could be
    consequences to expectations so the patch takes the preventive approach of
    "disallow such config".
    
    Joint work with Lion Ackermann <nnamrec@gmail.com>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20250116013713.900000-1-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 26bc6076798aa4dc83a07d0a386f9e57c94e8517
Author: Antoine Tenart <atenart@kernel.org>
Date:   Thu Jan 16 10:21:57 2025 +0100

    net: avoid race between device unregistration and ethnl ops
    
    [ Upstream commit 12e070eb6964b341b41677fd260af5a305316a1f ]
    
    The following trace can be seen if a device is being unregistered while
    its number of channels are being modified.
    
      DEBUG_LOCKS_WARN_ON(lock->magic != lock)
      WARNING: CPU: 3 PID: 3754 at kernel/locking/mutex.c:564 __mutex_lock+0xc8a/0x1120
      CPU: 3 UID: 0 PID: 3754 Comm: ethtool Not tainted 6.13.0-rc6+ #771
      RIP: 0010:__mutex_lock+0xc8a/0x1120
      Call Trace:
       <TASK>
       ethtool_check_max_channel+0x1ea/0x880
       ethnl_set_channels+0x3c3/0xb10
       ethnl_default_set_doit+0x306/0x650
       genl_family_rcv_msg_doit+0x1e3/0x2c0
       genl_rcv_msg+0x432/0x6f0
       netlink_rcv_skb+0x13d/0x3b0
       genl_rcv+0x28/0x40
       netlink_unicast+0x42e/0x720
       netlink_sendmsg+0x765/0xc20
       __sys_sendto+0x3ac/0x420
       __x64_sys_sendto+0xe0/0x1c0
       do_syscall_64+0x95/0x180
       entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    This is because unregister_netdevice_many_notify might run before the
    rtnl lock section of ethnl operations, eg. set_channels in the above
    example. In this example the rss lock would be destroyed by the device
    unregistration path before being used again, but in general running
    ethnl operations while dismantle has started is not a good idea.
    
    Fix this by denying any operation on devices being unregistered. A check
    was already there in ethnl_ops_begin, but not wide enough.
    
    Note that the same issue cannot be seen on the ioctl version
    (__dev_ethtool) because the device reference is retrieved from within
    the rtnl lock section there. Once dismantle started, the net device is
    unlisted and no reference will be found.
    
    Fixes: dde91ccfa25f ("ethtool: do not perform operations on net devices being unregistered")
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: Edward Cree <ecree.xilinx@gmail.com>
    Link: https://patch.msgid.link/20250116092159.50890-1-atenart@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f023bf6758148654526d2ca6b965958d6a492855
Author: Maher Sanalla <msanalla@nvidia.com>
Date:   Thu Jan 16 14:33:16 2025 +0200

    net/mlxfw: Drop hard coded max FW flash image size
    
    [ Upstream commit 70d81f25cc92cc4e914516c9935ae752f27d78ad ]
    
    Currently, mlxfw kernel module limits FW flash image size to be
    10MB at most, preventing the ability to burn recent BlueField-3
    FW that exceeds the said size limit.
    
    Thus, drop the hard coded limit. Instead, rely on FW's
    max_component_size threshold that is reported in MCQI register
    as the size limit for FW image.
    
    Fixes: 410ed13cae39 ("Add the mlxfw module for Mellanox firmware flash process")
    Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
    Signed-off-by: Moshe Shemesh <moshe@nvidia.com>
    Reviewed-by: Ido Schimmel <idosch@nvidia.com>
    Tested-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Link: https://patch.msgid.link/1737030796-1441634-1-git-send-email-moshe@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0e2f1d93d287d544d26f8ff293ea820a8079b9f8
Author: Liu Jian <liujian56@huawei.com>
Date:   Thu Jan 16 22:30:53 2025 +0800

    net: let net.core.dev_weight always be non-zero
    
    [ Upstream commit d1f9f79fa2af8e3b45cffdeef66e05833480148a ]
    
    The following problem was encountered during stability test:
    
    (NULL net_device): NAPI poll function process_backlog+0x0/0x530 \
            returned 1, exceeding its budget of 0.
    ------------[ cut here ]------------
    list_add double add: new=ffff88905f746f48, prev=ffff88905f746f48, \
            next=ffff88905f746e40.
    WARNING: CPU: 18 PID: 5462 at lib/list_debug.c:35 \
            __list_add_valid_or_report+0xf3/0x130
    CPU: 18 UID: 0 PID: 5462 Comm: ping Kdump: loaded Not tainted 6.13.0-rc7+
    RIP: 0010:__list_add_valid_or_report+0xf3/0x130
    Call Trace:
    ? __warn+0xcd/0x250
    ? __list_add_valid_or_report+0xf3/0x130
    enqueue_to_backlog+0x923/0x1070
    netif_rx_internal+0x92/0x2b0
    __netif_rx+0x15/0x170
    loopback_xmit+0x2ef/0x450
    dev_hard_start_xmit+0x103/0x490
    __dev_queue_xmit+0xeac/0x1950
    ip_finish_output2+0x6cc/0x1620
    ip_output+0x161/0x270
    ip_push_pending_frames+0x155/0x1a0
    raw_sendmsg+0xe13/0x1550
    __sys_sendto+0x3bf/0x4e0
    __x64_sys_sendto+0xdc/0x1b0
    do_syscall_64+0x5b/0x170
    entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    The reproduction command is as follows:
      sysctl -w net.core.dev_weight=0
      ping 127.0.0.1
    
    This is because when the napi's weight is set to 0, process_backlog() may
    return 0 and clear the NAPI_STATE_SCHED bit of napi->state, causing this
    napi to be re-polled in net_rx_action() until __do_softirq() times out.
    Since the NAPI_STATE_SCHED bit has been cleared, napi_schedule_rps() can
    be retriggered in enqueue_to_backlog(), causing this issue.
    
    Making the napi's weight always non-zero solves this problem.
    
    Triggering this issue requires system-wide admin (setting is
    not namespaced).
    
    Fixes: e38766054509 ("[NET]: Fix sysctl net.core.dev_weight")
    Fixes: 3d48b53fb2ae ("net: dev_weight: TX/RX orthogonality")
    Signed-off-by: Liu Jian <liujian56@huawei.com>
    Link: https://patch.msgid.link/20250116143053.4146855-1-liujian56@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0cc8fc34df845d9d3a41fd65849147029b5b7249
Author: Mickaël Salaün <mic@digikod.net>
Date:   Wed Jan 8 16:43:28 2025 +0100

    selftests/landlock: Fix error message
    
    [ Upstream commit 2107c35128ad751b201eb92fe91443450d9e5c37 ]
    
    The global variable errno may not be set in test_execute().  Do not use
    it in related error message.
    
    Cc: Günther Noack <gnoack@google.com>
    Fixes: e1199815b47b ("selftests/landlock: Add user space tests")
    Link: https://lore.kernel.org/r/20250108154338.1129069-21-mic@digikod.net
    Signed-off-by: Mickaël Salaün <mic@digikod.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 78eadb30f5cea97f4bac6925ea478afd417ffd0f
Author: Bo Gan <ganboing@gmail.com>
Date:   Thu Aug 29 23:16:39 2024 -0700

    clk: analogbits: Fix incorrect calculation of vco rate delta
    
    [ Upstream commit d7f12857f095ef38523399d47e68787b357232f6 ]
    
    In wrpll_configure_for_rate() we try to determine the best PLL
    configuration for a target rate. However, in the loop where we try
    values of R, we should compare the derived `vco` with `target_vco_rate`.
    However, we were in fact comparing it with `target_rate`, which is
    actually after Q shift. This is incorrect, and sometimes can result in
    suboptimal clock rates. Fix it.
    
    Fixes: 7b9487a9a5c4 ("clk: analogbits: add Wide-Range PLL library")
    Signed-off-by: Bo Gan <ganboing@gmail.com>
    Link: https://lore.kernel.org/r/20240830061639.2316-1-ganboing@gmail.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7d07de96990e68f2e69dd180e697501324d6a36e
Author: Dmitry Antipov <dmantipov@yandex.ru>
Date:   Mon Jan 13 18:54:17 2025 +0300

    wifi: cfg80211: adjust allocation of colocated AP data
    
    [ Upstream commit 1a0d24775cdee2b8dc14bfa4f4418c930ab1ac57 ]
    
    In 'cfg80211_scan_6ghz()', an instances of 'struct cfg80211_colocated_ap'
    are allocated as if they would have 'ssid' as trailing VLA member. Since
    this is not so, extra IEEE80211_MAX_SSID_LEN bytes are not needed.
    Briefly tested with KUnit.
    
    Fixes: c8cb5b854b40 ("nl80211/cfg80211: support 6 GHz scanning")
    Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
    Link: https://patch.msgid.link/20250113155417.552587-1-dmantipov@yandex.ru
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7427e4afbd161aac1120a49870cb518b8e983cef
Author: Ilan Peer <ilan.peer@intel.com>
Date:   Thu Sep 28 17:35:30 2023 +0300

    wifi: cfg80211: Handle specific BSSID in 6GHz scanning
    
    [ Upstream commit 0fca7784b7a14d4ede64f479662afb98876ec7f8 ]
    
    When the scan parameters for a 6GHz scan specify a unicast
    BSSID address, and the corresponding AP is found in the scan
    list, add a corresponding entry in the collocated AP list,
    so this AP would be directly probed even if it was not
    advertised as a collocated AP.
    
    This is needed for handling a scan request that is intended
    for a ML probe flow, where user space can requests a scan
    to retrieve information for other links in the AP MLD.
    
    Signed-off-by: Ilan Peer <ilan.peer@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230928172905.54b954bc02ad.I1c072793d3d77a4c8fbbc64b4db5cce1bbb00382@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Stable-dep-of: 1a0d24775cde ("wifi: cfg80211: adjust allocation of colocated AP data")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23b54d193a90fdde31723de51641504c22cc627c
Author: Dmitry V. Levin <ldv@strace.io>
Date:   Wed Jan 8 19:07:57 2025 +0200

    selftests: harness: fix printing of mismatch values in __EXPECT()
    
    [ Upstream commit 02bc220dc6dc7c56edc4859bc5dd2c08b95d5fb5 ]
    
    intptr_t and uintptr_t are not big enough types on 32-bit architectures
    when printing 64-bit values, resulting to the following incorrect
    diagnostic output:
    
      # get_syscall_info.c:209:get_syscall_info:Expected exp_args[2] (3134324433) == info.entry.args[1] (3134324433)
    
    Replace intptr_t and uintptr_t with intmax_t and uintmax_t, respectively.
    With this fix, the same test produces more usable diagnostic output:
    
      # get_syscall_info.c:209:get_syscall_info:Expected exp_args[2] (3134324433) == info.entry.args[1] (18446744072548908753)
    
    Link: https://lore.kernel.org/r/20250108170757.GA6723@strace.io
    Fixes: b5bb6d3068ea ("selftests/seccomp: fix 32-bit build warnings")
    Signed-off-by: Dmitry V. Levin <ldv@strace.io>
    Reviewed-by: Kees Cook <kees@kernel.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28063f72460dd8105ffc158c1eed4fc04812fe26
Author: Gautham R. Shenoy <gautham.shenoy@amd.com>
Date:   Mon Jan 13 10:11:07 2025 +0530

    cpufreq: ACPI: Fix max-frequency computation
    
    [ Upstream commit 0834667545962ef1c5e8684ed32b45d9c574acd3 ]
    
    Commit 3c55e94c0ade ("cpufreq: ACPI: Extend frequency tables to cover
    boost frequencies") introduced an assumption in acpi_cpufreq_cpu_init()
    that the first entry in the P-state table was the nominal frequency.
    This assumption is incorrect. The frequency corresponding to the P0
    P-State need not be the same as the nominal frequency advertised via
    CPPC.
    
    Since the driver is using the CPPC.highest_perf and CPPC.nominal_perf
    to compute the boost-ratio, it makes sense to use CPPC.nominal_freq to
    compute the max-frequency. CPPC.nominal_freq is advertised on
    platforms supporting CPPC revisions 3 or higher.
    
    Hence, fallback to using the first entry in the P-State table only on
    platforms that do not advertise CPPC.nominal_freq.
    
    Fixes: 3c55e94c0ade ("cpufreq: ACPI: Extend frequency tables to cover boost frequencies")
    Tested-by: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
    Signed-off-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Link: https://patch.msgid.link/20250113044107.566-1-gautham.shenoy@amd.com
    [ rjw: Retain reverse X-mas tree ordering of local variable declarations ]
    [ rjw: Subject and changelog edits ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 965e41a93fced4dddca9b439184263d476ac6d9b
Author: WangYuli <wangyuli@uniontech.com>
Date:   Mon Jan 13 15:02:41 2025 +0800

    wifi: mt76: mt76u_vendor_request: Do not print error messages when -EPROTO
    
    [ Upstream commit f1b1e133a770fcdbd89551651232b034d2f7a27a ]
    
    When initializing the network card, unplugging the device will
    trigger an -EPROTO error, resulting in a flood of error messages
    being printed frantically.
    
    The exception is printed as follows:
    
             mt76x2u 2-2.4:1.0: vendor request req:47 off:9018 failed:-71
             mt76x2u 2-2.4:1.0: vendor request req:47 off:9018 failed:-71
             ...
    
    It will continue to print more than 2000 times for about 5 minutes,
    causing the usb device to be unable to be disconnected. During this
    period, the usb port cannot recognize the new device because the old
    device has not disconnected.
    
    There may be other operating methods that cause -EPROTO, but -EPROTO is
    a low-level hardware error. It is unwise to repeat vendor requests
    expecting to read correct data. It is a better choice to treat -EPROTO
    and -ENODEV the same way.
    
    Similar to commit 9b0f100c1970 ("mt76: usb: process URBs with status
    EPROTO properly") do no schedule rx_worker for urb marked with status
    set  -EPROTO. I also reproduced this situation when plugging and
    unplugging the device, and this patch is effective.
    
    Just do not vendor request again for urb marked with status set -EPROTO.
    
    Link: https://lore.kernel.org/all/531681bd-30f5-4a70-a156-bf8754b8e072@intel.com/
    Link: https://lore.kernel.org/all/D4B9CC1FFC0CBAC3+20250105040607.154706-1-wangyuli@uniontech.com/
    Fixes: b40b15e1521f ("mt76: add usb support to mt76 layer")
    Co-developed-by: Xu Rao <raoxu@uniontech.com>
    Signed-off-by: Xu Rao <raoxu@uniontech.com>
    Signed-off-by: WangYuli <wangyuli@uniontech.com>
    Link: https://patch.msgid.link/9DD7DE7AAB497CB7+20250113070241.63590-1-wangyuli@uniontech.com
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1fccf6b72b56343dd4f2d96b008147f9951eebd
Author: Mickaël Salaün <mic@digikod.net>
Date:   Fri Jan 10 16:39:13 2025 +0100

    landlock: Handle weird files
    
    [ Upstream commit 49440290a0935f428a1e43a5ac8dc275a647ff80 ]
    
    A corrupted filesystem (e.g. bcachefs) might return weird files.
    Instead of throwing a warning and allowing access to such file, treat
    them as regular files.
    
    Cc: Dave Chinner <david@fromorbit.com>
    Cc: Kent Overstreet <kent.overstreet@linux.dev>
    Cc: Paul Moore <paul@paul-moore.com>
    Reported-by: syzbot+34b68f850391452207df@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/r/000000000000a65b35061cffca61@google.com
    Reported-by: syzbot+360866a59e3c80510a62@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/r/67379b3f.050a0220.85a0.0001.GAE@google.com
    Reported-by: Ubisectech Sirius <bugreport@ubisectech.com>
    Closes: https://lore.kernel.org/r/c426821d-8380-46c4-a494-7008bbd7dd13.bugreport@ubisectech.com
    Fixes: cb2c7d1a1776 ("landlock: Support filesystem access-control")
    Reviewed-by: Günther Noack <gnoack3000@gmail.com>
    Link: https://lore.kernel.org/r/20250110153918.241810-1-mic@digikod.net
    Signed-off-by: Mickaël Salaün <mic@digikod.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b32a42383c26cd672badb46b3c66e12b6b7337db
Author: Mickaël Salaün <mic@digikod.net>
Date:   Fri May 6 18:10:55 2022 +0200

    landlock: Move filesystem helpers and add a new one
    
    [ Upstream commit 9da82b20fde95814af721a2a7b1796a5b4a3d78e ]
    
    Move the SB_NOUSER and IS_PRIVATE dentry check to a standalone
    is_nouser_or_private() helper.  This will be useful for a following
    commit.
    
    Move get_mode_access() and maybe_remove() to make them usable by new
    code provided by a following commit.
    
    Reviewed-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Mickaël Salaün <mic@digikod.net>
    Link: https://lore.kernel.org/r/20220506161102.525323-6-mic@digikod.net
    Stable-dep-of: 49440290a093 ("landlock: Handle weird files")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ba079f94cb0aa061428f56c54a186d87b9d90390
Author: Guangguan Wang <guangguan.wang@linux.alibaba.com>
Date:   Sat Jan 4 22:32:01 2025 +0800

    net/smc: fix data error when recvmsg with MSG_PEEK flag
    
    [ Upstream commit a4b6539038c1aa1ae871aacf6e41b566c3613993 ]
    
    When recvmsg with MSG_PEEK flag, the data will be copied to
    user's buffer without advancing consume cursor and without
    reducing the length of rx available data. Once the expected
    peek length is larger than the value of bytes_to_rcv, in the
    loop of do while in smc_rx_recvmsg, the first loop will copy
    bytes_to_rcv bytes of data from the position local_tx_ctrl.cons,
    the second loop will copy the min(bytes_to_rcv, read_remaining)
    bytes from the position local_tx_ctrl.cons again because of the
    lacking of process with advancing consume cursor and reducing
    the length of available data. So do the subsequent loops. The
    data copied in the second loop and the subsequent loops will
    result in data error, as it should not be copied if no more data
    arrives and it should be copied from the position advancing
    bytes_to_rcv bytes from the local_tx_ctrl.cons if more data arrives.
    
    This issue can be reproduce by the following python script:
    server.py:
    import socket
    import time
    server_ip = '0.0.0.0'
    server_port = 12346
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind((server_ip, server_port))
    server_socket.listen(1)
    print('Server is running and listening for connections...')
    conn, addr = server_socket.accept()
    print('Connected by', addr)
    while True:
        data = conn.recv(1024)
        if not data:
            break
        print('Received request:', data.decode())
        conn.sendall(b'Hello, client!\n')
        time.sleep(5)
        conn.sendall(b'Hello, again!\n')
    conn.close()
    
    client.py:
    import socket
    server_ip = '<server ip>'
    server_port = 12346
    resp=b'Hello, client!\nHello, again!\n'
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client_socket.connect((server_ip, server_port))
    request = 'Hello, server!'
    client_socket.sendall(request.encode())
    peek_data = client_socket.recv(len(resp),
        socket.MSG_PEEK | socket.MSG_WAITALL)
    print('Peeked data:', peek_data.decode())
    client_socket.close()
    
    Fixes: 952310ccf2d8 ("smc: receive data from RMBE")
    Reported-by: D. Wythe <alibuda@linux.alibaba.com>
    Signed-off-by: Guangguan Wang <guangguan.wang@linux.alibaba.com>
    Link: https://patch.msgid.link/20250104143201.35529-1-guangguan.wang@linux.alibaba.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9394c1163c209aa730c69c430e66d5e301feee68
Author: Andreas Kemnade <andreas@kemnade.info>
Date:   Sat Jan 4 20:55:07 2025 +0100

    wifi: wlcore: fix unbalanced pm_runtime calls
    
    [ Upstream commit 996c934c8c196144af386c4385f61fcd5349af28 ]
    
    If firmware boot failes, runtime pm is put too often:
    [12092.708099] wlcore: ERROR firmware boot failed despite 3 retries
    [12092.708099] wl18xx_driver wl18xx.1.auto: Runtime PM usage count underflow!
    Fix that by redirecting all error gotos before runtime_get so that runtime is
    not put.
    
    Fixes: c40aad28a3cf ("wlcore: Make sure firmware is initialized in wl1271_op_add_interface()")
    Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
    Reviewed-by: Michael Nemanov <michael.nemanov@ti.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://patch.msgid.link/20250104195507.402673-1-akemnade@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7e98a85990af7292d472875ee917cf491fdd7d7
Author: Zichen Xie <zichenxie0106@gmail.com>
Date:   Wed Nov 27 21:29:56 2024 -0600

    samples/landlock: Fix possible NULL dereference in parse_path()
    
    [ Upstream commit 078bf9438a31567e2c0587159ccefde835fb1ced ]
    
    malloc() may return NULL, leading to NULL dereference.  Add a NULL
    check.
    
    Fixes: ba84b0bf5a16 ("samples/landlock: Add a sandbox manager example")
    Signed-off-by: Zichen Xie <zichenxie0106@gmail.com>
    Link: https://lore.kernel.org/r/20241128032955.11711-1-zichenxie0106@gmail.com
    [mic: Simplify fix]
    Signed-off-by: Mickaël Salaün <mic@digikod.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 332ee5fc52e1b9654788bf409f4f8d709601a867
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Sat Jan 4 17:04:53 2025 +0900

    regulator: of: Implement the unwind path of of_regulator_match()
    
    [ Upstream commit dddca3b2fc676113c58b04aaefe84bfb958ac83e ]
    
    of_regulator_match() does not release the OF node reference in the error
    path, resulting in an OF node leak. Therefore, call of_node_put() on the
    obtained nodes before returning the EINVAL error.
    
    Since it is possible that some drivers call this function and do not
    exit on failure, such as s2mps11_pmic_driver, clear the init_data and
    of_node in the error path.
    
    This was reported by an experimental verification tool that I am
    developing. As I do not have access to actual devices nor the QEMU board
    configuration to test drivers that call this function, no runtime test
    was able to be performed.
    
    Fixes: 1c8fa58f4750 ("regulator: Add generic DT parsing for regulators")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Link: https://patch.msgid.link/20250104080453.2153592-1-joe@pf.is.s.u-tokyo.ac.jp
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd099a2fa9be983ba0e90a57a59484fe9d520ba8
Author: Octavian Purdila <tavip@google.com>
Date:   Mon Dec 30 12:56:47 2024 -0800

    team: prevent adding a device which is already a team device lower
    
    [ Upstream commit 3fff5da4ca2164bb4d0f1e6cd33f6eb8a0e73e50 ]
    
    Prevent adding a device which is already a team device lower,
    e.g. adding veth0 if vlan1 was already added and veth0 is a lower of
    vlan1.
    
    This is not useful in practice and can lead to recursive locking:
    
    $ ip link add veth0 type veth peer name veth1
    $ ip link set veth0 up
    $ ip link set veth1 up
    $ ip link add link veth0 name veth0.1 type vlan protocol 802.1Q id 1
    $ ip link add team0 type team
    $ ip link set veth0.1 down
    $ ip link set veth0.1 master team0
    team0: Port device veth0.1 added
    $ ip link set veth0 down
    $ ip link set veth0 master team0
    
    ============================================
    WARNING: possible recursive locking detected
    6.13.0-rc2-virtme-00441-ga14a429069bb #46 Not tainted
    --------------------------------------------
    ip/7684 is trying to acquire lock:
    ffff888016848e00 (team->team_lock_key){+.+.}-{4:4}, at: team_device_event (drivers/net/team/team_core.c:2928 drivers/net/team/team_core.c:2951 drivers/net/team/team_core.c:2973)
    
    but task is already holding lock:
    ffff888016848e00 (team->team_lock_key){+.+.}-{4:4}, at: team_add_slave (drivers/net/team/team_core.c:1147 drivers/net/team/team_core.c:1977)
    
    other info that might help us debug this:
    Possible unsafe locking scenario:
    
    CPU0
    ----
    lock(team->team_lock_key);
    lock(team->team_lock_key);
    
    *** DEADLOCK ***
    
    May be due to missing lock nesting notation
    
    2 locks held by ip/7684:
    
    stack backtrace:
    CPU: 3 UID: 0 PID: 7684 Comm: ip Not tainted 6.13.0-rc2-virtme-00441-ga14a429069bb #46
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
    Call Trace:
    <TASK>
    dump_stack_lvl (lib/dump_stack.c:122)
    print_deadlock_bug.cold (kernel/locking/lockdep.c:3040)
    __lock_acquire (kernel/locking/lockdep.c:3893 kernel/locking/lockdep.c:5226)
    ? netlink_broadcast_filtered (net/netlink/af_netlink.c:1548)
    lock_acquire.part.0 (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5851)
    ? team_device_event (drivers/net/team/team_core.c:2928 drivers/net/team/team_core.c:2951 drivers/net/team/team_core.c:2973)
    ? trace_lock_acquire (./include/trace/events/lock.h:24 (discriminator 2))
    ? team_device_event (drivers/net/team/team_core.c:2928 drivers/net/team/team_core.c:2951 drivers/net/team/team_core.c:2973)
    ? lock_acquire (kernel/locking/lockdep.c:5822)
    ? team_device_event (drivers/net/team/team_core.c:2928 drivers/net/team/team_core.c:2951 drivers/net/team/team_core.c:2973)
    __mutex_lock (kernel/locking/mutex.c:587 kernel/locking/mutex.c:735)
    ? team_device_event (drivers/net/team/team_core.c:2928 drivers/net/team/team_core.c:2951 drivers/net/team/team_core.c:2973)
    ? team_device_event (drivers/net/team/team_core.c:2928 drivers/net/team/team_core.c:2951 drivers/net/team/team_core.c:2973)
    ? fib_sync_up (net/ipv4/fib_semantics.c:2167)
    ? team_device_event (drivers/net/team/team_core.c:2928 drivers/net/team/team_core.c:2951 drivers/net/team/team_core.c:2973)
    team_device_event (drivers/net/team/team_core.c:2928 drivers/net/team/team_core.c:2951 drivers/net/team/team_core.c:2973)
    notifier_call_chain (kernel/notifier.c:85)
    call_netdevice_notifiers_info (net/core/dev.c:1996)
    __dev_notify_flags (net/core/dev.c:8993)
    ? __dev_change_flags (net/core/dev.c:8975)
    dev_change_flags (net/core/dev.c:9027)
    vlan_device_event (net/8021q/vlan.c:85 net/8021q/vlan.c:470)
    ? br_device_event (net/bridge/br.c:143)
    notifier_call_chain (kernel/notifier.c:85)
    call_netdevice_notifiers_info (net/core/dev.c:1996)
    dev_open (net/core/dev.c:1519 net/core/dev.c:1505)
    team_add_slave (drivers/net/team/team_core.c:1219 drivers/net/team/team_core.c:1977)
    ? __pfx_team_add_slave (drivers/net/team/team_core.c:1972)
    do_set_master (net/core/rtnetlink.c:2917)
    do_setlink.isra.0 (net/core/rtnetlink.c:3117)
    
    Reported-by: syzbot+3c47b5843403a45aef57@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=3c47b5843403a45aef57
    Fixes: 3d249d4ca7d0 ("net: introduce ethernet teaming device")
    Signed-off-by: Octavian Purdila <tavip@google.com>
    Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f5072f5c806fe348a6c121cfae5ebadd77266126
Author: Marek Vasut <marex@denx.de>
Date:   Tue Nov 12 02:36:54 2024 +0100

    clk: imx8mp: Fix clkout1/2 support
    
    [ Upstream commit a9b7c84d22fb1687d63ca2a386773015cf59436b ]
    
    The CLKOUTn may be fed from PLL1/2/3, but the PLL1/2/3 has to be enabled
    first by setting PLL_CLKE bit 11 in CCM_ANALOG_SYS_PLLn_GEN_CTRL register.
    The CCM_ANALOG_SYS_PLLn_GEN_CTRL bit 11 is modeled by plln_out clock. Fix
    the clock tree and place the clkout1/2 under plln_sel instead of plain plln
    to let the clock subsystem correctly control the bit 11 and enable the PLL
    in case the CLKOUTn is supplied by PLL1/2/3.
    
    Fixes: 43896f56b59e ("clk: imx8mp: add clkout1/2 support")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Reviewed-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lore.kernel.org/r/20241112013718.333771-1-marex@denx.de
    Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 68fb4aafe3bb5acadb3676f7269b8c02992cf649
Author: Sultan Alsawaf (unemployed) <sultan@kerneltoast.com>
Date:   Wed Dec 11 17:57:32 2024 -0800

    cpufreq: schedutil: Fix superfluous updates caused by need_freq_update
    
    [ Upstream commit 8e461a1cb43d69d2fc8a97e61916dce571e6bb31 ]
    
    A redundant frequency update is only truly needed when there is a policy
    limits change with a driver that specifies CPUFREQ_NEED_UPDATE_LIMITS.
    
    In spite of that, drivers specifying CPUFREQ_NEED_UPDATE_LIMITS receive a
    frequency update _all the time_, not just for a policy limits change,
    because need_freq_update is never cleared.
    
    Furthermore, ignore_dl_rate_limit()'s usage of need_freq_update also leads
    to a redundant frequency update, regardless of whether or not the driver
    specifies CPUFREQ_NEED_UPDATE_LIMITS, when the next chosen frequency is the
    same as the current one.
    
    Fix the superfluous updates by only honoring CPUFREQ_NEED_UPDATE_LIMITS
    when there's a policy limits change, and clearing need_freq_update when a
    requisite redundant update occurs.
    
    This is neatly achieved by moving up the CPUFREQ_NEED_UPDATE_LIMITS test
    and instead setting need_freq_update to false in sugov_update_next_freq().
    
    Fixes: 600f5badb78c ("cpufreq: schedutil: Don't skip freq update when limits change")
    Signed-off-by: Sultan Alsawaf (unemployed) <sultan@kerneltoast.com>
    Reviewed-by: Christian Loehle <christian.loehle@arm.com>
    Link: https://patch.msgid.link/20241212015734.41241-2-sultan@kerneltoast.com
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0e833dc042b94f75c27997f18900d0560328ba6e
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Mon Dec 16 16:49:23 2024 +0900

    leds: netxbig: Fix an OF node reference leak in netxbig_leds_get_of_pdata()
    
    [ Upstream commit 0508316be63bb735f59bdc8fe4527cadb62210ca ]
    
    netxbig_leds_get_of_pdata() does not release the OF node obtained by
    of_parse_phandle() when of_find_device_by_node() fails. Add an
    of_node_put() call to fix the leak.
    
    This bug was found by an experimental static analysis tool that I am
    developing.
    
    Fixes: 9af512e81964 ("leds: netxbig: Convert to use GPIO descriptors")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Link: https://lore.kernel.org/r/20241216074923.628509-1-joe@pf.is.s.u-tokyo.ac.jp
    Signed-off-by: Lee Jones <lee@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4efb30e564f239e5767af5bdd28a36e0e85ac670
Author: Matti Vaittinen <mazziesaccount@gmail.com>
Date:   Tue Nov 12 19:01:06 2024 +0200

    dt-bindings: mfd: bd71815: Fix rsense and typos
    
    [ Upstream commit 6856edf7ead8c54803216a38a7b227bcb3dadff7 ]
    
    The sense resistor used for measuring currents is typically some tens of
    milli Ohms. It has accidentally been documented to be tens of mega Ohms.
    Fix the size of this resistor and a few copy-paste errors while at it.
    
    Drop the unsuitable 'rohm,charger-sense-resistor-ohms' property (which
    can't represent resistors smaller than one Ohm), and introduce a new
    'rohm,charger-sense-resistor-micro-ohms' property with appropriate
    minimum, maximum and default values instead.
    
    Fixes: 4238dc1e6490 ("dt_bindings: mfd: Add ROHM BD71815 PMIC")
    Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
    Acked-by: Conor Dooley <conor.dooley@microchip.com>
    Link: https://lore.kernel.org/r/0efd8e9de0ae8d62ee4c6b78cc565b04007a245d.1731430700.git.mazziesaccount@gmail.com
    Signed-off-by: Lee Jones <lee@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 725d01fdde5978bb69be38a9837a15fc5a43bd12
Author: He Rongguang <herongguang@linux.alibaba.com>
Date:   Thu Dec 12 10:14:59 2024 +0800

    cpupower: fix TSC MHz calculation
    
    [ Upstream commit 9d6c0e58514f8b57cd9c2c755e41623d6a966025 ]
    
    Commit 'cpupower: Make TSC read per CPU for Mperf monitor' (c2adb1877b7)
    changes TSC counter reads per cpu, but left time diff global (from start
    of all cpus to end of all cpus), thus diff(time) is too large for a
    cpu's tsc counting, resulting in far less than acutal TSC_Mhz and thus
    `cpupower monitor` showing far less than actual cpu realtime frequency.
    
    /proc/cpuinfo shows frequency:
    cat /proc/cpuinfo | egrep -e 'processor' -e 'MHz'
    ...
    processor : 171
    cpu MHz   : 4108.498
    ...
    
    before fix (System 100% busy):
        | Mperf              || Idle_Stats
     CPU| C0   | Cx   | Freq  || POLL | C1   | C2
     171|  0.77| 99.23|  2279||  0.00|  0.00|  0.00
    
    after fix (System 100% busy):
        | Mperf              || Idle_Stats
     CPU| C0   | Cx   | Freq  || POLL | C1   | C2
     171|  0.46| 99.54|  4095||  0.00|  0.00|  0.00
    
    Fixes: c2adb1877b76 ("cpupower: Make TSC read per CPU for Mperf monitor")
    Signed-off-by: He Rongguang <herongguang@linux.alibaba.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fc1750250f852f29331d93c97052f7fb612971a5
Author: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Date:   Wed Dec 11 12:28:12 2024 +0900

    ACPI: fan: cleanup resources in the error path of .probe()
    
    [ Upstream commit c759bc8e9046f9812238f506d70f07d3ea4206d4 ]
    
    Call thermal_cooling_device_unregister() and sysfs_remove_link() in the
    error path of acpi_fan_probe() to fix possible memory leak.
    
    This bug was found by an experimental static analysis tool that I am
    developing.
    
    Fixes: 05a83d972293 ("ACPI: register ACPI Fan as generic thermal cooling device")
    Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
    Link: https://patch.msgid.link/20241211032812.210164-1-joe@pf.is.s.u-tokyo.ac.jp
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f575806ef1daff6bbdcd2bf440e1b690f65b4fb3
Author: Chen-Yu Tsai <wenst@chromium.org>
Date:   Wed Dec 11 13:24:19 2024 +0800

    regulator: dt-bindings: mt6315: Drop regulator-compatible property
    
    [ Upstream commit 08242719a8af603db54a2a79234a8fe600680105 ]
    
    The "regulator-compatible" property has been deprecated since 2012 in
    commit 13511def87b9 ("regulator: deprecate regulator-compatible DT
    property"), which is so old it's not even mentioned in the converted
    regulator bindings YAML file. It should not have been used for new
    submissions such as the MT6315.
    
    Drop the property from the MT6315 regulator binding and its examples.
    
    Fixes: 977fb5b58469 ("regulator: document binding for MT6315 regulator")
    Fixes: 6d435a94ba5b ("regulator: mt6315: Enforce regulator-compatible, not name")
    Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://patch.msgid.link/20241211052427.4178367-2-wenst@chromium.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a57bce750a52694a7eee54a1588abc086b926c61
Author: Jiri Kosina <jikos@kernel.org>
Date:   Thu Dec 12 10:19:32 2024 +0100

    HID: multitouch: fix support for Goodix PID 0x01e9
    
    [ Upstream commit 8ade5e05bd094485ce370fad66a6a3fb6f50bfbc ]
    
    Commit c8000deb68365b ("HID: multitouch: Add support for GT7868Q") added
    support for 0x01e8 and 0x01e9, but the mt_device[] entries were added
    twice for 0x01e8 and there was none added for 0x01e9. Fix that.
    
    Fixes: c8000deb68365b ("HID: multitouch: Add support for GT7868Q")
    Reported-by: He Lugang <helugang@uniontech.com>
    Reported-by: WangYuli <wangyuli@uniontech.com>
    Reported-by: Ulrich Müller <ulm@gentoo.org>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 25c30f9024385e8a69838aab8d6dc2bf34eee269
Author: Jiri Kosina <jikos@kernel.org>
Date:   Thu Dec 12 09:53:10 2024 +0100

    Revert "HID: multitouch: Add support for lenovo Y9000P Touchpad"
    
    [ Upstream commit 3d88ba86ba6f35a0467f25a88c38aa5639190d04 ]
    
    This reverts commit 251efae73bd46b097deec4f9986d926813aed744.
    
    Quoting Wang Yuli:
    
            "The 27C6:01E0 touchpad doesn't require the workaround and applying it
            would actually break functionality.
    
            The initial report came from a BBS forum, but we suspect the
            information provided by the forum user may be incorrect which could
            happen sometimes. [1]
    
            Further investigation showed that the Lenovo Y9000P 2024 doesn't even
            use a Goodix touchpad. [2]
    
            For the broader issue of 27c6:01e0 being unusable on some devices, it
            just need to address it with a libinput quirk.
    
            In conclusion, we should revert this commit, which is the best
            solution."
    
    Reported-by: Ulrich Müller <ulm@gentoo.org>
    Reported-by: WangYuli <wangyuli@uniontech.com>
    Link: https://lore.kernel.org/all/uikt4wwpw@gentoo.org/
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Stable-dep-of: 8ade5e05bd09 ("HID: multitouch: fix support for Goodix PID 0x01e9")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c52d33d88ef0a6d1fa711f2b15a1ca1250cbe54
Author: He Lugang <helugang@uniontech.com>
Date:   Tue Aug 27 10:56:05 2024 +0800

    HID: multitouch: Add support for lenovo Y9000P Touchpad
    
    [ Upstream commit 251efae73bd46b097deec4f9986d926813aed744 ]
    
    The 2024 Lenovo Y9000P which use GT7868Q chip also needs a fixup.
    The information of the chip is as follows:
    I2C HID v1.00 Mouse [GXTP5100:00 27C6:01E0]
    
    Signed-off-by: He Lugang <helugang@uniontech.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Stable-dep-of: 8ade5e05bd09 ("HID: multitouch: fix support for Goodix PID 0x01e9")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c436e8bd32666cee1923094f0023eea5f45116b
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Fri Dec 6 14:37:13 2024 -0300

    wifi: rtlwifi: pci: wait for firmware loading before releasing memory
    
    [ Upstream commit b59b86c5d08be7d761c04affcbcec8184738c200 ]
    
    At probe error path, the firmware loading work may have already been
    queued. In such a case, it will try to access memory allocated by the probe
    function, which is about to be released. In such paths, wait for the
    firmware worker to finish before releasing memory.
    
    Fixes: 3d86b93064c7 ("rtlwifi: Fix PCI probe error path orphaned memory")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/20241206173713.3222187-5-cascardo@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b96371339fd9cac90f5ee4ac17ee5c4cbbdfa6f7
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Fri Dec 6 14:37:12 2024 -0300

    wifi: rtlwifi: fix memory leaks and invalid access at probe error path
    
    [ Upstream commit e7ceefbfd8d447abc8aca8ab993a942803522c06 ]
    
    Deinitialize at reverse order when probe fails.
    
    When init_sw_vars fails, rtl_deinit_core should not be called, specially
    now that it destroys the rtl_wq workqueue.
    
    And call rtl_pci_deinit and deinit_sw_vars, otherwise, memory will be
    leaked.
    
    Remove pci_set_drvdata call as it will already be cleaned up by the core
    driver code and could lead to memory leaks too. cf. commit 8d450935ae7f
    ("wireless: rtlwifi: remove unnecessary pci_set_drvdata()") and
    commit 3d86b93064c7 ("rtlwifi: Fix PCI probe error path orphaned memory").
    
    Fixes: 0c8173385e54 ("rtl8192ce: Add new driver")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/20241206173713.3222187-4-cascardo@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0eea81f30c6e584656acb30f64cb6fbe5f254315
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Fri Dec 6 14:37:11 2024 -0300

    wifi: rtlwifi: destroy workqueue at rtl_deinit_core
    
    [ Upstream commit d8ece6fc3694657e4886191b32ca1690af11adda ]
    
    rtl_wq is allocated at rtl_init_core, so it makes more sense to destroy it
    at rtl_deinit_core. In the case of USB, where _rtl_usb_init does not
    require anything to be undone, that is fine. But for PCI, rtl_pci_init,
    which is called after rtl_init_core, needs to deallocate data, but only if
    it has been called.
    
    That means that destroying the workqueue needs to be done whether
    rtl_pci_init has been called or not. And since rtl_pci_deinit was doing it,
    it has to be moved out of there.
    
    It makes more sense to move it to rtl_deinit_core and have it done in both
    cases, USB and PCI.
    
    Since this is a requirement for a followup memory leak fix, mark this as
    fixing such memory leak.
    
    Fixes: 0c8173385e54 ("rtl8192ce: Add new driver")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/20241206173713.3222187-3-cascardo@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8e2fcc68fbaab3ad9f5671fee2be0956134b740a
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Fri Dec 6 14:37:10 2024 -0300

    wifi: rtlwifi: remove unused check_buddy_priv
    
    [ Upstream commit 2fdac64c3c35858aa8ac5caa70b232e03456e120 ]
    
    Commit 2461c7d60f9f ("rtlwifi: Update header file") introduced a global
    list of private data structures.
    
    Later on, commit 26634c4b1868 ("rtlwifi Modify existing bits to match
    vendor version 2013.02.07") started adding the private data to that list at
    probe time and added a hook, check_buddy_priv to find the private data from
    a similar device.
    
    However, that function was never used.
    
    Besides, though there is a lock for that list, it is never used. And when
    the probe fails, the private data is never removed from the list. This
    would cause a second probe to access freed memory.
    
    Remove the unused hook, structures and members, which will prevent the
    potential race condition on the list and its corruption during a second
    probe when probe fails.
    
    Fixes: 26634c4b1868 ("rtlwifi Modify existing bits to match vendor version 2013.02.07")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/20241206173713.3222187-2-cascardo@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ed3d742c2204314c825ec5f1bc8aa3bbf318558d
Author: Dmitry Antipov <dmantipov@yandex.ru>
Date:   Fri Jun 2 09:59:40 2023 +0300

    wifi: rtlwifi: remove unused dualmac control leftovers
    
    [ Upstream commit 557123259200b30863e1b6a8f24a8c8060b6fc1d ]
    
    Remove 'struct rtl_dualmac_easy_concurrent_ctl' of 'struct rtl_priv'
    and related code in '_rtl_pci_tx_chk_waitq()'.
    
    Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
    Acked-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230602065940.149198-2-dmantipov@yandex.ru
    Stable-dep-of: 2fdac64c3c35 ("wifi: rtlwifi: remove unused check_buddy_priv")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c8951a13d62698b24a2623993b7dde4196f3c7ab
Author: Dmitry Antipov <dmantipov@yandex.ru>
Date:   Fri Jun 2 09:59:39 2023 +0300

    wifi: rtlwifi: remove unused timer and related code
    
    [ Upstream commit 358b94f0a7cadd2ec7824531d54dadaa8b71de04 ]
    
    Drop unused 'dualmac_easyconcurrent_retrytimer' of 'struct rtl_works',
    corresponding 'rtl_easy_concurrent_retrytimer_callback()' handler,
    'dualmac_easy_concurrent' function pointer of 'struct rtl_hal_ops'
    and related call to 'timer_setup()' in '_rtl_init_deferred_work()'.
    
    Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
    Acked-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230602065940.149198-1-dmantipov@yandex.ru
    Stable-dep-of: 2fdac64c3c35 ("wifi: rtlwifi: remove unused check_buddy_priv")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f945d2595cd075386378125a41506995bc72f17
Author: Jakob Koschel <jakobkoschel@gmail.com>
Date:   Thu Mar 24 08:21:24 2022 +0100

    rtlwifi: replace usage of found with dedicated list iterator variable
    
    [ Upstream commit a0ff2a87194a968b9547fd4d824a09092171d1ea ]
    
    To move the list iterator variable into the list_for_each_entry_*()
    macro in the future it should be avoided to use the list iterator
    variable after the loop body.
    
    To *never* use the list iterator variable after the loop it was
    concluded to use a separate iterator variable instead of a
    found boolean [1].
    
    This removes the need to use a found variable and simply checking if
    the variable was set, can determine if the break/goto was hit.
    
    Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/
    Signed-off-by: Jakob Koschel <jakobkoschel@gmail.com>
    Acked-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20220324072124.62458-1-jakobkoschel@gmail.com
    Stable-dep-of: 2fdac64c3c35 ("wifi: rtlwifi: remove unused check_buddy_priv")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94b4c15bca53c8472072509b8b6233c142f0870a
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Nov 14 13:44:29 2024 +0100

    dt-bindings: leds: class-multicolor: Fix path to color definitions
    
    [ Upstream commit 609bc99a4452ffbce82d10f024a85d911c42e6cd ]
    
    The LED color definitions have always been in
    include/dt-bindings/leds/common.h in upstream.
    
    Fixes: 5c7f8ffe741daae7 ("dt: bindings: Add multicolor class dt bindings documention")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Acked-by: Conor Dooley <conor.dooley@microchip.com>
    Link: https://lore.kernel.org/r/a3c7ea92e90b77032f2e480d46418b087709286d.1731588129.git.geert+renesas@glider.be
    Signed-off-by: Lee Jones <lee@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f045124251f58844911435d0457ce993339b1c87
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Fri Jun 24 13:21:06 2022 +0200

    dt-bindings: leds: class-multicolor: reference class directly in multi-led node
    
    [ Upstream commit de40c8496ead3e25d1e989999eed0c3ecee8fc96 ]
    
    The leds/common.yaml is referenced directly in each LED node, which
    leads to people doing the same with leds/leds-class-multicolor.yaml.
    This is not correct because leds-class-multicolor.yaml defined multi-led
    property and its children.  Some schemas implemented this incorrect.
    
    Rework this to match same behavior common.yaml, so expect the multi-led
    node to reference the leds-class-multicolor.yaml.  Fixing allows to add
    unevaluatedProperties:false.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Stable-dep-of: 609bc99a4452 ("dt-bindings: leds: class-multicolor: Fix path to color definitions")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 594cb8eeac4922664e303aa316aad7bd268b9b1f
Author: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
Date:   Thu Apr 7 09:32:24 2022 +0200

    dt-bindings: leds: Add multicolor PWM LED bindings
    
    [ Upstream commit ac123741b8f52311af118f8a052b1cbbed041291 ]
    
    This allows to group multiple PWM-connected monochrome LEDs into
    multicolor LEDs, e.g. RGB LEDs.
    
    Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Stable-dep-of: 609bc99a4452 ("dt-bindings: leds: class-multicolor: Fix path to color definitions")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c09f7ba7ad389c3aa8fc7ec8674542a3b259b5c
Author: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
Date:   Thu Apr 7 09:32:23 2022 +0200

    dt-bindings: leds: Optional multi-led unit address
    
    [ Upstream commit 21c0d13e3dd64581bab0ef4b4d0fea7752cc236b ]
    
    The unit address does not make sense in all cases the multi-led node is
    used, e.g. for the upcoming PWM multi-color LED driver.
    
    Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Stable-dep-of: 609bc99a4452 ("dt-bindings: leds: class-multicolor: Fix path to color definitions")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e547ede9d118a98658df0d23413d0e0eac0f76bd
Author: Bjorn Andersson <andersson@kernel.org>
Date:   Thu Mar 3 13:42:59 2022 -0800

    dt-bindings: leds: Add Qualcomm Light Pulse Generator binding
    
    [ Upstream commit a8e53db46f19f67be6a26488aafb7d10c78e33bd ]
    
    This adds the binding document describing the three hardware blocks
    related to the Light Pulse Generator found in a wide range of Qualcomm
    PMICs.
    
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Stable-dep-of: 609bc99a4452 ("dt-bindings: leds: class-multicolor: Fix path to color definitions")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 621600ed2ce5833a72f73433aa5b05a7b9fed3c5
Author: Rob Herring <robh@kernel.org>
Date:   Mon Feb 28 15:38:02 2022 -0600

    dt-bindings: Another pass removing cases of 'allOf' containing a '$ref'
    
    [ Upstream commit dca669354e6ff494222dfc461bed1087264f3755 ]
    
    Another pass at removing unnecessary use of 'allOf' with a '$ref'.
    
    json-schema versions draft7 and earlier have a weird behavior in that
    any keywords combined with a '$ref' are ignored (silently). The correct
    form was to put a '$ref' under an 'allOf'. This behavior is now changed
    in the 2019-09 json-schema spec and '$ref' can be mixed with other
    keywords.
    
    Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Cc: Thierry Reding <thierry.reding@gmail.com>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Cc: Pavel Machek <pavel@ucw.cz>
    Cc: Guenter Roeck <groeck@chromium.org>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: Vignesh Raghavendra <vigneshr@ti.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Kishon Vijay Abraham I <kishon@ti.com>
    Cc: Sebastian Reichel <sre@kernel.org>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Acked-by: Mark Brown <broonie@kernel.org>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Acked-By: Vinod Koul <vkoul@kernel.org>
    Acked-by: Lee Jones <lee.jones@linaro.org>
    Acked-by: Marek Behún <kabel@kernel.org>
    Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Acked-by: Jakub Kicinski <kuba@kernel.org>
    Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20220228213802.1639658-1-robh@kernel.org
    Stable-dep-of: 609bc99a4452 ("dt-bindings: leds: class-multicolor: Fix path to color definitions")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b220d6b97a8b116e57a6f35f18433275eaccdddc
Author: Pratyush Yadav <p.yadav@ti.com>
Date:   Tue Nov 9 23:49:09 2021 +0530

    spi: dt-bindings: add schema listing peripheral-specific properties
    
    [ Upstream commit 8762b07c95c18fbbe1c6b3eb1e8e686091c346b5 ]
    
    Many SPI controllers need to add properties to peripheral devices. This
    could be the delay in clock or data lines, etc. These properties are
    controller specific but need to be defined in the peripheral node
    because they are per-peripheral and there can be multiple peripherals
    attached to a controller.
    
    If these properties are not added to the peripheral binding, then the
    dtbs check emits a warning. But these properties do not make much sense
    in the peripheral binding because they are controller-specific and they
    will just pollute every peripheral binding. So this binding is added to
    collect all such properties from all such controllers. Peripheral
    bindings should simply refer to this binding and they should be rid of
    the warnings.
    
    There are some limitations with this approach. Firstly, there is no way
    to specify required properties. The schema contains properties for all
    controllers and there is no way to know which controller is being used.
    Secondly, there is no way to restrict additional properties. Since this
    schema will be used with an allOf operator, additionalProperties needs
    to be true. In addition, the peripheral schema will have to set
    unevaluatedProperties: false.
    
    Despite these limitations, this appears to be the best solution to this
    problem that doesn't involve modifying existing tools or schema specs.
    
    Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20211109181911.2251-2-p.yadav@ti.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Stable-dep-of: 609bc99a4452 ("dt-bindings: leds: class-multicolor: Fix path to color definitions")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit efb8b60b79903f056635facc4116f25f62c384ad
Author: Neil Armstrong <neil.armstrong@linaro.org>
Date:   Thu Nov 28 16:16:41 2024 +0100

    dt-bindings: mmc: controller: clarify the address-cells description
    
    [ Upstream commit b2b8e93ec00b8110cb37cbde5400d5abfdaed6a7 ]
    
    The term "slot ID" has nothing to do with the SDIO function number
    which is specified in the reg property of the subnodes, rephrase
    the description to be more accurate.
    
    Fixes: f9b7989859dd ("dt-bindings: mmc: Add YAML schemas for the generic MMC options")
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Acked-by: Rob Herring (Arm) <robh@kernel.org>
    Message-ID: <20241128-topic-amlogic-arm32-upstream-bindings-fixes-convert-meson-mx-sdio-v4-1-11d9f9200a59@linaro.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4960235d6662701d60552f5583b8e52a81496530
Author: Mingwei Zheng <zmw12306@gmail.com>
Date:   Fri Dec 6 20:52:06 2024 -0500

    spi: zynq-qspi: Add check for clk_enable()
    
    [ Upstream commit 8332e667099712e05ec87ba2058af394b51ebdc9 ]
    
    Add check for the return value of clk_enable() to catch the potential
    error.
    
    Fixes: c618a90dcaf3 ("spi: zynq-qspi: Drop GPIO header")
    Signed-off-by: Mingwei Zheng <zmw12306@gmail.com>
    Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
    Link: https://patch.msgid.link/20241207015206.3689364-1-zmw12306@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5a80bbc5df5819b71dc54161ce53f4936744bef1
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Thu Nov 7 10:33:22 2024 -0300

    wifi: rtlwifi: usb: fix workqueue leak when probe fails
    
    [ Upstream commit f79bc5c67867c19ce2762e7934c20dbb835ed82c ]
    
    rtl_init_core creates a workqueue that is then assigned to rtl_wq.
    rtl_deinit_core does not destroy it. It is left to rtl_usb_deinit, which
    must be called in the probe error path.
    
    Fixes: 2ca20f79e0d8 ("rtlwifi: Add usb driver")
    Fixes: 851639fdaeac ("rtlwifi: Modify some USB de-initialize code.")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/20241107133322.855112-6-cascardo@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 643c584528cedb34c2979e7ebf161948699c128d
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Thu Nov 7 10:33:21 2024 -0300

    wifi: rtlwifi: fix init_sw_vars leak when probe fails
    
    [ Upstream commit 00260350aed80c002df270c805ca443ec9a719a6 ]
    
    If ieee80211_register_hw fails, the memory allocated for the firmware will
    not be released. Call deinit_sw_vars as the function that undoes the
    allocationes done by init_sw_vars.
    
    Fixes: cefe3dfdb9f5 ("rtl8192cu: Call ieee80211_register_hw from rtl_usb_probe")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/20241107133322.855112-5-cascardo@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 284a6f64f4cf380281cc397e1a6e56a268d104b8
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Thu Nov 7 10:33:20 2024 -0300

    wifi: rtlwifi: wait for firmware loading before releasing memory
    
    [ Upstream commit b4b26642b31ef282df6ff7ea8531985edfdef12a ]
    
    At probe error path, the firmware loading work may have already been
    queued. In such a case, it will try to access memory allocated by the probe
    function, which is about to be released. In such paths, wait for the
    firmware worker to finish before releasing memory.
    
    Fixes: a7f7c15e945a ("rtlwifi: rtl8192cu: Free ieee80211_hw if probing fails")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/20241107133322.855112-4-cascardo@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 949845dfdb9b74484aeb1ed8d7e0f3fef5d4b1be
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Thu Nov 7 10:33:19 2024 -0300

    wifi: rtlwifi: rtl8192se: rise completion of firmware loading as last step
    
    [ Upstream commit 8559a9e0c457729fe3edb3176bbf7c7874f482b0 ]
    
    Just like in commit 4dfde294b979 ("rtlwifi: rise completion at the last
    step of firmware callback"), only signal completion once the function is
    finished. Otherwise, the module removal waiting for the completion could
    free the memory that the callback will still use before returning.
    
    Fixes: b0302aba812b ("rtlwifi: Convert to asynchronous firmware load")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Acked-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/20241107133322.855112-3-cascardo@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 56e84ffaf3d85074cb7013e2452857b6181276df
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Thu Nov 7 10:33:18 2024 -0300

    wifi: rtlwifi: do not complete firmware loading needlessly
    
    [ Upstream commit e73e11d303940119e41850a0452a0deda2cc4eb5 ]
    
    The only code waiting for completion is driver removal, which will not be
    called when probe returns a failure. So this completion is unnecessary.
    
    Fixes: b0302aba812b ("rtlwifi: Convert to asynchronous firmware load")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Acked-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://patch.msgid.link/20241107133322.855112-2-cascardo@igalia.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eb288ab33fd87579789cb331209ff09e988ff4f7
Author: Charles Han <hanchunchao@inspur.com>
Date:   Thu Sep 26 17:44:19 2024 +0800

    ipmi: ipmb: Add check devm_kasprintf() returned value
    
    [ Upstream commit 2378bd0b264ad3a1f76bd957caf33ee0c7945351 ]
    
    devm_kasprintf() can return a NULL pointer on failure but this
    returned value is not checked.
    
    Fixes: 51bd6f291583 ("Add support for IPMB driver")
    Signed-off-by: Charles Han <hanchunchao@inspur.com>
    Message-ID: <20240926094419.25900-1-hanchunchao@inspur.com>
    Signed-off-by: Corey Minyard <corey@minyard.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 62f14b506f5b4d305a12bba30299b4eb531ef480
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue Dec 10 11:20:43 2024 +0100

    genirq: Make handle_enforce_irqctx() unconditionally available
    
    [ Upstream commit 8d187a77f04c14fb459a5301d69f733a5a1396bc ]
    
    Commit 1b57d91b969c ("irqchip/gic-v2, v3: Prevent SW resends entirely")
    sett the flag which enforces interrupt handling in interrupt context and
    prevents software base resends for ARM GIC v2/v3.
    
    But it missed that the helper function which checks the flag was hidden
    behind CONFIG_GENERIC_PENDING_IRQ, which is not set by ARM[64].
    
    Make the helper unconditionally available so that the enforcement actually
    works.
    
    Fixes: 1b57d91b969c ("irqchip/gic-v2, v3: Prevent SW resends entirely")
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/all/20241210101811.497716609@linutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2396bc91935c6da0588ce07850d07897974bd350
Author: Ivan Stepchenko <sid@itb.spb.ru>
Date:   Mon Dec 2 11:00:43 2024 +0300

    drm/amdgpu: Fix potential NULL pointer dereference in atomctrl_get_smc_sclk_range_table
    
    [ Upstream commit 357445e28ff004d7f10967aa93ddb4bffa5c3688 ]
    
    The function atomctrl_get_smc_sclk_range_table() does not check the return
    value of smu_atom_get_data_table(). If smu_atom_get_data_table() fails to
    retrieve SMU_Info table, it returns NULL which is later dereferenced.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    In practice this should never happen as this code only gets called
    on polaris chips and the vbios data table will always be present on
    those chips.
    
    Fixes: a23eefa2f461 ("drm/amd/powerplay: enable dpm for baffin.")
    Signed-off-by: Ivan Stepchenko <sid@itb.spb.ru>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a32ea3f982b389ea43a41ce77b6fb70d74006d9b
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue Dec 31 14:23:12 2024 -0500

    HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections
    
    commit 64f2657b579343cf923aa933f08074e6258eb07b upstream.
    
    A report in 2019 by the syzbot fuzzer was found to be connected to two
    errors in the HID core associated with Resolution Multipliers.  One of
    the errors was fixed by commit ea427a222d8b ("HID: core: Fix deadloop
    in hid_apply_multiplier."), but the other has not been fixed.
    
    This error arises because hid_apply_multipler() assumes that every
    Resolution Multiplier control is contained in a Logical Collection,
    i.e., there's no way the routine can ever set multiplier_collection to
    NULL.  This is in spite of the fact that the function starts with a
    big comment saying:
    
             * "The Resolution Multiplier control must be contained in the same
             * Logical Collection as the control(s) to which it is to be applied.
               ...
             *  If no Logical Collection is
             * defined, the Resolution Multiplier is associated with all
             * controls in the report."
             * HID Usage Table, v1.12, Section 4.3.1, p30
             *
             * Thus, search from the current collection upwards until we find a
             * logical collection...
    
    The comment and the code overlook the possibility that none of the
    collections found may be a Logical Collection.
    
    The fix is to set the multiplier_collection pointer to NULL if the
    collection found isn't a Logical Collection.
    
    Reported-by: syzbot+ec5f884c4a135aa0dbb9@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/all/000000000000109c040597dc5843@google.com/
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Cc: Peter Hutterer <peter.hutterer@who-t.net>
    Fixes: 5a4abb36f312 ("HID: core: process the Resolution Multiplier")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c589074b64dd8f6b6e62feccd5b7426c22048ab6
Author: Sui Jingfeng <sui.jingfeng@linux.dev>
Date:   Mon Nov 4 08:41:56 2024 +0800

    drm/etnaviv: Fix page property being used for non writecombine buffers
    
    [ Upstream commit 834f304192834d6f0941954f3277ae0ba11a9a86 ]
    
    In the etnaviv_gem_vmap_impl() function, the driver vmap whatever buffers
    with write combine(WC) page property, this is incorrect. Cached buffers
    should be mapped with the cached page property and uncached buffers should
    be mapped with the uncached page property.
    
    Fixes: a0a5ab3e99b8 ("drm/etnaviv: call correct function when trying to vmap a DMABUF")
    Signed-off-by: Sui Jingfeng <sui.jingfeng@linux.dev>
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c7971fc03a066ae7bd78f79e3ddaa664378148af
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Fri Dec 20 06:32:19 2024 +0000

    sched/fair: Fix value reported by hot tasks pulled in /proc/schedstat
    
    [ Upstream commit a430d99e349026d53e2557b7b22bd2ebd61fe12a ]
    
    In /proc/schedstat, lb_hot_gained reports the number hot tasks pulled
    during load balance. This value is incremented in can_migrate_task()
    if the task is migratable and hot. After incrementing the value,
    load balancer can still decide not to migrate this task leading to wrong
    accounting. Fix this by incrementing stats when hot tasks are detached.
    This issue only exists in detach_tasks() where we can decide to not
    migrate hot task even if it is migratable. However, in detach_one_task(),
    we migrate it unconditionally.
    
    [Swapnil: Handled the case where nr_failed_migrations_hot was not accounted properly and wrote commit log]
    
    Fixes: d31980846f96 ("sched: Move up affinity check to mitigate useless redoing overhead")
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reported-by: "Gautham R. Shenoy" <gautham.shenoy@amd.com>
    Not-yet-signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Swapnil Sapkal <swapnil.sapkal@amd.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20241220063224.17767-2-swapnil.sapkal@amd.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b3a5ff8c4b6e5bcc25f43c6eee9f07a9eac0d866
Author: Chengming Zhou <zhouchengming@bytedance.com>
Date:   Mon Sep 26 16:19:31 2022 +0800

    sched/psi: Use task->psi_flags to clear in CPU migration
    
    [ Upstream commit 52b33d87b9197c51e8ffdc61873739d90dd0a16f ]
    
    The commit d583d360a620 ("psi: Fix psi state corruption when schedule()
    races with cgroup move") fixed a race problem by making cgroup_move_task()
    use task->psi_flags instead of looking at the scheduler state.
    
    We can extend task->psi_flags usage to CPU migration, which should be
    a minor optimization for performance and code simplicity.
    
    Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Link: https://lore.kernel.org/r/20220926081931.45420-1-zhouchengming@bytedance.com
    Stable-dep-of: a430d99e3490 ("sched/fair: Fix value reported by hot tasks pulled in /proc/schedstat")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 105ff30243975cedaec0195f8c9f1d0dfde0d80f
Author: David Howells <dhowells@redhat.com>
Date:   Tue Jan 14 14:46:03 2025 +0000

    afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call
    
    [ Upstream commit e30458d690f35abb01de8b3cbc09285deb725d00 ]
    
    Fix a pair of bugs in the fallback handling for the YFS.RemoveFile2 RPC
    call:
    
     (1) Fix the abort code check to also look for RXGEN_OPCODE.  The lack of
         this masks the second bug.
    
     (2) call->server is now not used for ordinary filesystem RPC calls that
         have an operation descriptor.  Fix to use call->op->server instead.
    
    Fixes: e49c7b2f6de7 ("afs: Build an abstraction around an "operation" concept")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Link: https://lore.kernel.org/r/109541.1736865963@warthog.procyon.org.uk
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0a60270ee48cbfc22d622fb2346971d62e61d625
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Mon Jan 13 09:37:24 2025 +0100

    select: Fix unbalanced user_access_end()
    
    [ Upstream commit 344af27715ddbf357cf76978d674428b88f8e92d ]
    
    While working on implementing user access validation on powerpc
    I got the following warnings on a pmac32_defconfig build:
    
              CC      fs/select.o
            fs/select.o: warning: objtool: sys_pselect6+0x1bc: redundant UACCESS disable
            fs/select.o: warning: objtool: sys_pselect6_time32+0x1bc: redundant UACCESS disable
    
    On powerpc/32s, user_read_access_begin/end() are no-ops, but the
    failure path has a user_access_end() instead of user_read_access_end()
    which means an access end without any prior access begin.
    
    Replace that user_access_end() by user_read_access_end().
    
    Fixes: 7e71609f64ec ("pselect6() and friends: take handling the combined 6th/7th args into helper")
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Link: https://lore.kernel.org/r/a7139e28d767a13e667ee3c79599a8047222ef36.1736751221.git.christophe.leroy@csgroup.eu
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9ca509e5b7fc463cbf9de9db3fca7bd8039519e
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Jan 10 22:27:58 2025 -0800

    partitions: ldm: remove the initial kernel-doc notation
    
    [ Upstream commit e494e451611a3de6ae95f99e8339210c157d70fb ]
    
    Remove the file's first comment describing what the file is.
    This comment is not in kernel-doc format so it causes a kernel-doc
    warning.
    
    ldm.h:13: warning: expecting prototype for ldm(). Prototype was for _FS_PT_LDM_H_() instead
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Richard Russon (FlatCap) <ldm@flatcap.org>
    Cc: linux-ntfs-dev@lists.sourceforge.net
    Cc: Jens Axboe <axboe@kernel.dk>
    Link: https://lore.kernel.org/r/20250111062758.910458-1-rdunlap@infradead.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8714ecb8fa5520c9cc0aec7e240e79943326f7aa
Author: Keisuke Nishimura <keisuke.nishimura@inria.fr>
Date:   Fri Dec 20 13:00:47 2024 +0100

    nvme: Add error check for xa_store in nvme_get_effects_log
    
    [ Upstream commit ac32057acc7f3d7a238dafaa9b2aa2bc9750080e ]
    
    The xa_store() may fail due to memory allocation failure because there
    is no guarantee that the index csi is already used. This fix adds an
    error check of the return value of xa_store() in nvme_get_effects_log().
    
    Fixes: 1cf7a12e09aa ("nvme: use an xarray to lookup the Commands Supported and Effects log")
    Signed-off-by: Keisuke Nishimura <keisuke.nishimura@inria.fr>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 113563188f22274e7c56013db3d206bfa09e4da5
Author: Eugen Hristev <eugen.hristev@linaro.org>
Date:   Wed Jan 1 13:19:21 2025 +0200

    pstore/blk: trivial typo fixes
    
    [ Upstream commit 542243af7182efaeaf6d0f4643f7de437541a9af ]
    
    Fix trivial typos in comments.
    
    Fixes: 2a03ddbde1e1 ("pstore/blk: Move verify_size() macro out of function")
    Fixes: 17639f67c1d6 ("pstore/blk: Introduce backend for block devices")
    Signed-off-by: Eugen Hristev <eugen.hristev@linaro.org>
    Link: https://lore.kernel.org/r/20250101111921.850406-1-eugen.hristev@linaro.org
    Signed-off-by: Kees Cook <kees@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e3be8862d73cac833e0fb7602636c19c6cb94b11
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Fri Jan 3 17:28:59 2025 +0800

    nbd: don't allow reconnect after disconnect
    
    [ Upstream commit 844b8cdc681612ff24df62cdefddeab5772fadf1 ]
    
    Following process can cause nbd_config UAF:
    
    1) grab nbd_config temporarily;
    
    2) nbd_genl_disconnect() flush all recv_work() and release the
    initial reference:
    
      nbd_genl_disconnect
       nbd_disconnect_and_put
        nbd_disconnect
         flush_workqueue(nbd->recv_workq)
        if (test_and_clear_bit(NBD_RT_HAS_CONFIG_REF, ...))
         nbd_config_put
         -> due to step 1), reference is still not zero
    
    3) nbd_genl_reconfigure() queue recv_work() again;
    
      nbd_genl_reconfigure
       config = nbd_get_config_unlocked(nbd)
       if (!config)
       -> succeed
       if (!test_bit(NBD_RT_BOUND, ...))
       -> succeed
       nbd_reconnect_socket
        queue_work(nbd->recv_workq, &args->work)
    
    4) step 1) release the reference;
    
    5) Finially, recv_work() will trigger UAF:
    
      recv_work
       nbd_config_put(nbd)
       -> nbd_config is freed
       atomic_dec(&config->recv_threads)
       -> UAF
    
    Fix the problem by clearing NBD_RT_BOUND in nbd_genl_disconnect(), so
    that nbd_genl_reconfigure() will fail.
    
    Fixes: b7aa3d39385d ("nbd: add a reconfigure netlink command")
    Reported-by: syzbot+6b0df248918b92c33e6a@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/all/675bfb65.050a0220.1a2d0d.0006.GAE@google.com/
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20250103092859.3574648-1-yukuai1@huaweicloud.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2d43a6fcea0ee8f3472cabb1dc7831a2911bb5d3
Author: Yang Erkun <yangerkun@huawei.com>
Date:   Mon Dec 9 19:04:35 2024 +0800

    block: retry call probe after request_module in blk_request_module
    
    [ Upstream commit 457ef47c08d2979f3e59ce66267485c3faed70c8 ]
    
    Set kernel config:
    
     CONFIG_BLK_DEV_LOOP=m
     CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
    
    Do latter:
    
     mknod loop0 b 7 0
     exec 4<> loop0
    
    Before commit e418de3abcda ("block: switch gendisk lookup to a simple
    xarray"), lookup_gendisk will first use base_probe to load module loop,
    and then the retry will call loop_probe to prepare the loop disk. Finally
    open for this disk will success. However, after this commit, we lose the
    retry logic, and open will fail with ENXIO. Block device autoloading is
    deprecated and will be removed soon, but maybe we should keep open success
    until we really remove it. So, give a retry to fix it.
    
    Fixes: e418de3abcda ("block: switch gendisk lookup to a simple xarray")
    Suggested-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Yang Erkun <yangerkun@huawei.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20241209110435.3670985-1-yangerkun@huaweicloud.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6327dacfe6d6320f17c2f19dab0bbbd98f4ae05f
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue Jan 4 08:16:47 2022 +0100

    block: deprecate autoloading based on dev_t
    
    [ Upstream commit fbdee71bb5d8d054e1bdb5af4c540f2cb86fe296 ]
    
    Make the legacy dev_t based autoloading optional and add a deprecation
    warning.  This kind of autoloading has ceased to be useful about 20 years
    ago.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20220104071647.164918-1-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Stable-dep-of: 457ef47c08d2 ("block: retry call probe after request_module in blk_request_module")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit effcbfb1e5ead74d88311e26633b0e747f208e24
Author: Jinliang Zheng <alexjlzheng@gmail.com>
Date:   Sun Nov 24 11:46:36 2024 +0800

    fs: fix proc_handler for sysctl_nr_open
    
    [ Upstream commit d727935cad9f6f52c8d184968f9720fdc966c669 ]
    
    Use proc_douintvec_minmax() instead of proc_dointvec_minmax() to handle
    sysctl_nr_open, because its data type is unsigned int, not int.
    
    Fixes: 9b80a184eaad ("fs/file: more unsigned file descriptors")
    Signed-off-by: Jinliang Zheng <alexjlzheng@tencent.com>
    Link: https://lore.kernel.org/r/20241124034636.325337-1-alexjlzheng@tencent.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3eff27900d055cb98e8d05c50927a2aaca8c496
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Fri Jan 21 22:12:56 2022 -0800

    fs: move fs stat sysctls to file_table.c
    
    [ Upstream commit 204d5a24e15562b2816825c0f9b49d26814b77be ]
    
    kernel/sysctl.c is a kitchen sink where everyone leaves their dirty
    dishes, this makes it very difficult to maintain.
    
    To help with this maintenance let's start by moving sysctls to places
    where they actually belong.  The proc sysctl maintainers do not want to
    know what sysctl knobs you wish to add for your own piece of code, we
    just care about the core logic.
    
    We can create the sysctl dynamically on early init for fs stat to help
    with this clutter.  This dusts off the fs stat syctls knobs and puts
    them into where they are declared.
    
    Link: https://lkml.kernel.org/r/20211129205548.605569-3-mcgrof@kernel.org
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Antti Palosaari <crope@iki.fi>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Iurii Zaikin <yzaikin@google.com>
    Cc: "J. Bruce Fields" <bfields@fieldses.org>
    Cc: Jeff Layton <jlayton@kernel.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Lukas Middendorf <kernel@tuxforce.de>
    Cc: Stephen Kitt <steve@sk2.org>
    Cc: Xiaoming Ni <nixiaoming@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Stable-dep-of: d727935cad9f ("fs: fix proc_handler for sysctl_nr_open")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ca5d118b213ed089d93c93b79d957d5a12701403
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Fri Jan 21 22:12:52 2022 -0800

    fs: move inode sysctls to its own file
    
    [ Upstream commit 1d67fe585049d3e2448b997af78c68cbf90ada09 ]
    
    Patch series "sysctl: 4th set of kernel/sysctl cleanups".
    
    This is slimming down the fs uses of kernel/sysctl.c to the point that
    the next step is to just get rid of the fs base directory for it and
    move that elsehwere, so that next patch series starts dealing with that
    to demo how we can end up cleaning up a full base directory from
    kernel/sysctl.c, one at a time.
    
    This patch (of 9):
    
    kernel/sysctl.c is a kitchen sink where everyone leaves their dirty
    dishes, this makes it very difficult to maintain.
    
    To help with this maintenance let's start by moving sysctls to places
    where they actually belong.  The proc sysctl maintainers do not want to
    know what sysctl knobs you wish to add for your own piece of code, we
    just care about the core logic.
    
    So move the inode sysctls to its own file.  Since we are no longer using
    this outside of fs/ remove the extern declaration of its respective proc
    helper.
    
    We use early_initcall() as it is the earliest we can use.
    
    [arnd@arndb.de: avoid unused-variable warning]
      Link: https://lkml.kernel.org/r/20211203190123.874239-1-arnd@kernel.org
    
    Link: https://lkml.kernel.org/r/20211129205548.605569-1-mcgrof@kernel.org
    Link: https://lkml.kernel.org/r/20211129205548.605569-2-mcgrof@kernel.org
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Iurii Zaikin <yzaikin@google.com>
    Cc: Xiaoming Ni <nixiaoming@huawei.com>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Stephen Kitt <steve@sk2.org>
    Cc: Lukas Middendorf <kernel@tuxforce.de>
    Cc: Antti Palosaari <crope@iki.fi>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Jeff Layton <jlayton@kernel.org>
    Cc: "J. Bruce Fields" <bfields@fieldses.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Stable-dep-of: d727935cad9f ("fs: fix proc_handler for sysctl_nr_open")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 548fae8fb904d80a5723200e94f7c2879f4e4bc6
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Fri Jan 21 22:12:48 2022 -0800

    sysctl: share unsigned long const values
    
    [ Upstream commit b1f2aff888af54a057c2c3c0d88a13ef5d37b52a ]
    
    Provide a way to share unsigned long values.  This will allow others to
    not have to re-invent these values.
    
    Link: https://lkml.kernel.org/r/20211124231435.1445213-9-mcgrof@kernel.org
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Amir Goldstein <amir73il@gmail.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Antti Palosaari <crope@iki.fi>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Benjamin LaHaise <bcrl@kvack.org>
    Cc: Clemens Ladisch <clemens@ladisch.de>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Douglas Gilbert <dgilbert@interlog.com>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Iurii Zaikin <yzaikin@google.com>
    Cc: James E.J. Bottomley <jejb@linux.ibm.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: John Ogness <john.ogness@linutronix.de>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Julia Lawall <julia.lawall@inria.fr>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Lukas Middendorf <kernel@tuxforce.de>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: Paul Turner <pjt@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Phillip Potter <phil@philpotter.co.uk>
    Cc: Qing Wang <wangqing@vivo.com>
    Cc: "Rafael J. Wysocki" <rafael@kernel.org>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Sebastian Reichel <sre@kernel.org>
    Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
    Cc: Stephen Kitt <steve@sk2.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: "Theodore Ts'o" <tytso@mit.edu>
    Cc: Xiaoming Ni <nixiaoming@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Stable-dep-of: d727935cad9f ("fs: fix proc_handler for sysctl_nr_open")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7584027c80dc46c81bb0101ab5994e24113f6e12
Author: Xiaoming Ni <nixiaoming@huawei.com>
Date:   Fri Jan 21 22:11:14 2022 -0800

    sysctl: use const for typically used max/min proc sysctls
    
    [ Upstream commit d73840ec2f747b860331bbba53677d0ce38fb9c1 ]
    
    When proc_dointvec_minmax() or proc_doulongvec_minmax() are used we are
    using the extra1 and extra2 parameters on the sysctl table only for a
    min and max boundary, these extra1 and extra2 arguments are then used
    for read-only operations.  So make them const to reflect this.
    
    [mcgrof@kernel.org: commit log love]
    
    Link: https://lkml.kernel.org/r/20211123202347.818157-7-mcgrof@kernel.org
    Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com>
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Amir Goldstein <amir73il@gmail.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Benjamin LaHaise <bcrl@kvack.org>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Iurii Zaikin <yzaikin@google.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Paul Turner <pjt@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Qing Wang <wangqing@vivo.com>
    Cc: Sebastian Reichel <sre@kernel.org>
    Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
    Cc: Stephen Kitt <steve@sk2.org>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Antti Palosaari <crope@iki.fi>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Clemens Ladisch <clemens@ladisch.de>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Julia Lawall <julia.lawall@inria.fr>
    Cc: Lukas Middendorf <kernel@tuxforce.de>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Phillip Potter <phil@philpotter.co.uk>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Douglas Gilbert <dgilbert@interlog.com>
    Cc: James E.J. Bottomley <jejb@linux.ibm.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: John Ogness <john.ogness@linutronix.de>
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: "Rafael J. Wysocki" <rafael@kernel.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Stable-dep-of: d727935cad9f ("fs: fix proc_handler for sysctl_nr_open")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d96a8f8e86d1ae0b1652ff93ee06891962240232
Author: Xiaoming Ni <nixiaoming@huawei.com>
Date:   Fri Jan 21 22:11:00 2022 -0800

    hung_task: move hung_task sysctl interface to hung_task.c
    
    [ Upstream commit bbe7a10ed83a5fa0b0ff6161ecdc4e65a0e9c993 ]
    
    The kernel/sysctl.c is a kitchen sink where everyone leaves their dirty
    dishes, this makes it very difficult to maintain.
    
    To help with this maintenance let's start by moving sysctls to places
    where they actually belong.  The proc sysctl maintainers do not want to
    know what sysctl knobs you wish to add for your own piece of code, we
    just care about the core logic.
    
    So move hung_task sysctl interface to hung_task.c and use
    register_sysctl() to register the sysctl interface.
    
    [mcgrof@kernel.org: commit log refresh and fixed 2-3 0day reported compile issues]
    
    Link: https://lkml.kernel.org/r/20211123202347.818157-4-mcgrof@kernel.org
    Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com>
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Amir Goldstein <amir73il@gmail.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Benjamin LaHaise <bcrl@kvack.org>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Iurii Zaikin <yzaikin@google.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Paul Turner <pjt@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Qing Wang <wangqing@vivo.com>
    Cc: Sebastian Reichel <sre@kernel.org>
    Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
    Cc: Stephen Kitt <steve@sk2.org>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Antti Palosaari <crope@iki.fi>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Clemens Ladisch <clemens@ladisch.de>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Julia Lawall <julia.lawall@inria.fr>
    Cc: Lukas Middendorf <kernel@tuxforce.de>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Phillip Potter <phil@philpotter.co.uk>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Douglas Gilbert <dgilbert@interlog.com>
    Cc: James E.J. Bottomley <jejb@linux.ibm.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: John Ogness <john.ogness@linutronix.de>
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: "Rafael J. Wysocki" <rafael@kernel.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Stable-dep-of: d727935cad9f ("fs: fix proc_handler for sysctl_nr_open")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f3cfafcdb5bbe658897ca203bab711073d8a8915
Author: David Howells <dhowells@redhat.com>
Date:   Mon Dec 16 20:41:03 2024 +0000

    afs: Fix directory format encoding struct
    
    [ Upstream commit 07a10767853adcbdbf436dc91393b729b52c4e81 ]
    
    The AFS directory format structure, union afs_xdr_dir_block::meta, has too
    many alloc counter slots declared and so pushes the hash table along and
    over the data.  This doesn't cause a problem at the moment because I'm
    currently ignoring the hash table and only using the correct number of
    alloc_ctrs in the code anyway.  In future, however, I should start using
    the hash table to try and speed up afs_lookup().
    
    Fix this by using the correct constant to declare the counter array.
    
    Fixes: 4ea219a839bf ("afs: Split the directory content defs into a header")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Link: https://lore.kernel.org/r/20241216204124.3752367-14-dhowells@redhat.com
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef5f2706364d0ed08a686ba3a0e6b2bb3a39c4af
Author: David Howells <dhowells@redhat.com>
Date:   Mon Dec 16 20:41:02 2024 +0000

    afs: Fix EEXIST error returned from afs_rmdir() to be ENOTEMPTY
    
    [ Upstream commit b49194da2aff2c879dec9c59ef8dec0f2b0809ef ]
    
    AFS servers pass back a code indicating EEXIST when they're asked to remove
    a directory that is not empty rather than ENOTEMPTY because not all the
    systems that an AFS server can run on have the latter error available and
    AFS preexisted the addition of that error in general.
    
    Fix afs_rmdir() to translate EEXIST to ENOTEMPTY.
    
    Fixes: 260a980317da ("[AFS]: Add "directory write" support.")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Link: https://lore.kernel.org/r/20241216204124.3752367-13-dhowells@redhat.com
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>