commit c1ccef20f08e192228a2056808113b453d18c094
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Nov 25 17:40:30 2022 +0100

    Linux 4.19.267
    
    Link: https://lore.kernel.org/r/20221123084551.864610302@linuxfoundation.org
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45683723f6b53e39e8a4cec0894e61fd6ec71989
Author: Hawkins Jiawei <yin31149@gmail.com>
Date:   Thu Sep 1 00:09:38 2022 +0800

    ntfs: check overflow when iterating ATTR_RECORDs
    
    commit 63095f4f3af59322bea984a6ae44337439348fe0 upstream.
    
    Kernel iterates over ATTR_RECORDs in mft record in ntfs_attr_find().
    Because the ATTR_RECORDs are next to each other, kernel can get the next
    ATTR_RECORD from end address of current ATTR_RECORD, through current
    ATTR_RECORD length field.
    
    The problem is that during iteration, when kernel calculates the end
    address of current ATTR_RECORD, kernel may trigger an integer overflow bug
    in executing `a = (ATTR_RECORD*)((u8*)a + le32_to_cpu(a->length))`.  This
    may wrap, leading to a forever iteration on 32bit systems.
    
    This patch solves it by adding some checks on calculating end address
    of current ATTR_RECORD during iteration.
    
    Link: https://lkml.kernel.org/r/20220831160935.3409-4-yin31149@gmail.com
    Link: https://lore.kernel.org/all/20220827105842.GM2030@kadam/
    Signed-off-by: Hawkins Jiawei <yin31149@gmail.com>
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: Anton Altaparmakov <anton@tuxera.com>
    Cc: chenxiaosong (A) <chenxiaosong2@huawei.com>
    Cc: syzkaller-bugs <syzkaller-bugs@googlegroups.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4301aa833a734257ad3715f607cbde17402eda94
Author: Hawkins Jiawei <yin31149@gmail.com>
Date:   Thu Sep 1 00:09:36 2022 +0800

    ntfs: fix out-of-bounds read in ntfs_attr_find()
    
    commit 36a4d82dddbbd421d2b8e79e1cab68c8126d5075 upstream.
    
    Kernel iterates over ATTR_RECORDs in mft record in ntfs_attr_find().  To
    ensure access on these ATTR_RECORDs are within bounds, kernel will do some
    checking during iteration.
    
    The problem is that during checking whether ATTR_RECORD's name is within
    bounds, kernel will dereferences the ATTR_RECORD name_offset field, before
    checking this ATTR_RECORD strcture is within bounds.  This problem may
    result out-of-bounds read in ntfs_attr_find(), reported by Syzkaller:
    
    ==================================================================
    BUG: KASAN: use-after-free in ntfs_attr_find+0xc02/0xce0 fs/ntfs/attrib.c:597
    Read of size 2 at addr ffff88807e352009 by task syz-executor153/3607
    
    [...]
    Call Trace:
     <TASK>
     __dump_stack lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
     print_address_description mm/kasan/report.c:317 [inline]
     print_report.cold+0x2ba/0x719 mm/kasan/report.c:433
     kasan_report+0xb1/0x1e0 mm/kasan/report.c:495
     ntfs_attr_find+0xc02/0xce0 fs/ntfs/attrib.c:597
     ntfs_attr_lookup+0x1056/0x2070 fs/ntfs/attrib.c:1193
     ntfs_read_inode_mount+0x89a/0x2580 fs/ntfs/inode.c:1845
     ntfs_fill_super+0x1799/0x9320 fs/ntfs/super.c:2854
     mount_bdev+0x34d/0x410 fs/super.c:1400
     legacy_get_tree+0x105/0x220 fs/fs_context.c:610
     vfs_get_tree+0x89/0x2f0 fs/super.c:1530
     do_new_mount fs/namespace.c:3040 [inline]
     path_mount+0x1326/0x1e20 fs/namespace.c:3370
     do_mount fs/namespace.c:3383 [inline]
     __do_sys_mount fs/namespace.c:3591 [inline]
     __se_sys_mount fs/namespace.c:3568 [inline]
     __x64_sys_mount+0x27f/0x300 fs/namespace.c:3568
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
     [...]
     </TASK>
    
    The buggy address belongs to the physical page:
    page:ffffea0001f8d400 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x7e350
    head:ffffea0001f8d400 order:3 compound_mapcount:0 compound_pincount:0
    flags: 0xfff00000010200(slab|head|node=0|zone=1|lastcpupid=0x7ff)
    raw: 00fff00000010200 0000000000000000 dead000000000122 ffff888011842140
    raw: 0000000000000000 0000000000040004 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    Memory state around the buggy address:
     ffff88807e351f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff88807e351f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    >ffff88807e352000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                          ^
     ffff88807e352080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff88807e352100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    ==================================================================
    
    This patch solves it by moving the ATTR_RECORD strcture's bounds checking
    earlier, then checking whether ATTR_RECORD's name is within bounds.
    What's more, this patch also add some comments to improve its
    maintainability.
    
    Link: https://lkml.kernel.org/r/20220831160935.3409-3-yin31149@gmail.com
    Link: https://lore.kernel.org/all/1636796c-c85e-7f47-e96f-e074fee3c7d3@huawei.com/
    Link: https://groups.google.com/g/syzkaller-bugs/c/t_XdeKPGTR4/m/LECAuIGcBgAJ
    Signed-off-by: chenxiaosong (A) <chenxiaosong2@huawei.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Hawkins Jiawei <yin31149@gmail.com>
    Reported-by: syzbot+5f8dcabe4a3b2c51c607@syzkaller.appspotmail.com
    Tested-by: syzbot+5f8dcabe4a3b2c51c607@syzkaller.appspotmail.com
    Cc: Anton Altaparmakov <anton@tuxera.com>
    Cc: syzkaller-bugs <syzkaller-bugs@googlegroups.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d0006d739738a658a9c29b438444259d9f71dfa0
Author: Hawkins Jiawei <yin31149@gmail.com>
Date:   Thu Sep 1 00:09:34 2022 +0800

    ntfs: fix use-after-free in ntfs_attr_find()
    
    commit d85a1bec8e8d552ab13163ca1874dcd82f3d1550 upstream.
    
    Patch series "ntfs: fix bugs about Attribute", v2.
    
    This patchset fixes three bugs relative to Attribute in record:
    
    Patch 1 adds a sanity check to ensure that, attrs_offset field in first
    mft record loading from disk is within bounds.
    
    Patch 2 moves the ATTR_RECORD's bounds checking earlier, to avoid
    dereferencing ATTR_RECORD before checking this ATTR_RECORD is within
    bounds.
    
    Patch 3 adds an overflow checking to avoid possible forever loop in
    ntfs_attr_find().
    
    Without patch 1 and patch 2, the kernel triggersa KASAN use-after-free
    detection as reported by Syzkaller.
    
    Although one of patch 1 or patch 2 can fix this, we still need both of
    them.  Because patch 1 fixes the root cause, and patch 2 not only fixes
    the direct cause, but also fixes the potential out-of-bounds bug.
    
    
    This patch (of 3):
    
    Syzkaller reported use-after-free read as follows:
    ==================================================================
    BUG: KASAN: use-after-free in ntfs_attr_find+0xc02/0xce0 fs/ntfs/attrib.c:597
    Read of size 2 at addr ffff88807e352009 by task syz-executor153/3607
    
    [...]
    Call Trace:
     <TASK>
     __dump_stack lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
     print_address_description mm/kasan/report.c:317 [inline]
     print_report.cold+0x2ba/0x719 mm/kasan/report.c:433
     kasan_report+0xb1/0x1e0 mm/kasan/report.c:495
     ntfs_attr_find+0xc02/0xce0 fs/ntfs/attrib.c:597
     ntfs_attr_lookup+0x1056/0x2070 fs/ntfs/attrib.c:1193
     ntfs_read_inode_mount+0x89a/0x2580 fs/ntfs/inode.c:1845
     ntfs_fill_super+0x1799/0x9320 fs/ntfs/super.c:2854
     mount_bdev+0x34d/0x410 fs/super.c:1400
     legacy_get_tree+0x105/0x220 fs/fs_context.c:610
     vfs_get_tree+0x89/0x2f0 fs/super.c:1530
     do_new_mount fs/namespace.c:3040 [inline]
     path_mount+0x1326/0x1e20 fs/namespace.c:3370
     do_mount fs/namespace.c:3383 [inline]
     __do_sys_mount fs/namespace.c:3591 [inline]
     __se_sys_mount fs/namespace.c:3568 [inline]
     __x64_sys_mount+0x27f/0x300 fs/namespace.c:3568
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
     [...]
     </TASK>
    
    The buggy address belongs to the physical page:
    page:ffffea0001f8d400 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x7e350
    head:ffffea0001f8d400 order:3 compound_mapcount:0 compound_pincount:0
    flags: 0xfff00000010200(slab|head|node=0|zone=1|lastcpupid=0x7ff)
    raw: 00fff00000010200 0000000000000000 dead000000000122 ffff888011842140
    raw: 0000000000000000 0000000000040004 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    Memory state around the buggy address:
     ffff88807e351f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff88807e351f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    >ffff88807e352000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                          ^
     ffff88807e352080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff88807e352100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    ==================================================================
    
    Kernel will loads $MFT/$DATA's first mft record in
    ntfs_read_inode_mount().
    
    Yet the problem is that after loading, kernel doesn't check whether
    attrs_offset field is a valid value.
    
    To be more specific, if attrs_offset field is larger than bytes_allocated
    field, then it may trigger the out-of-bounds read bug(reported as
    use-after-free bug) in ntfs_attr_find(), when kernel tries to access the
    corresponding mft record's attribute.
    
    This patch solves it by adding the sanity check between attrs_offset field
    and bytes_allocated field, after loading the first mft record.
    
    Link: https://lkml.kernel.org/r/20220831160935.3409-1-yin31149@gmail.com
    Link: https://lkml.kernel.org/r/20220831160935.3409-2-yin31149@gmail.com
    Signed-off-by: Hawkins Jiawei <yin31149@gmail.com>
    Cc: Anton Altaparmakov <anton@tuxera.com>
    Cc: ChenXiaoSong <chenxiaosong2@huawei.com>
    Cc: syzkaller-bugs <syzkaller-bugs@googlegroups.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a5be2948f350d34b1f6acb9ca3be4c89359a057
Author: Alexander Potapenko <glider@google.com>
Date:   Thu Sep 15 17:04:16 2022 +0200

    mm: fs: initialize fsdata passed to write_begin/write_end interface
    
    commit 1468c6f4558b1bcd92aa0400f2920f9dc7588402 upstream.
    
    Functions implementing the a_ops->write_end() interface accept the `void
    *fsdata` parameter that is supposed to be initialized by the corresponding
    a_ops->write_begin() (which accepts `void **fsdata`).
    
    However not all a_ops->write_begin() implementations initialize `fsdata`
    unconditionally, so it may get passed uninitialized to a_ops->write_end(),
    resulting in undefined behavior.
    
    Fix this by initializing fsdata with NULL before the call to
    write_begin(), rather than doing so in all possible a_ops implementations.
    
    This patch covers only the following cases found by running x86 KMSAN
    under syzkaller:
    
     - generic_perform_write()
     - cont_expand_zero() and generic_cont_expand_simple()
     - page_symlink()
    
    Other cases of passing uninitialized fsdata may persist in the codebase.
    
    Link: https://lkml.kernel.org/r/20220915150417.722975-43-glider@google.com
    Signed-off-by: Alexander Potapenko <glider@google.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Andrey Konovalov <andreyknvl@google.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Eric Biggers <ebiggers@google.com>
    Cc: Eric Biggers <ebiggers@kernel.org>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Ilya Leoshkevich <iii@linux.ibm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Marco Elver <elver@google.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Vegard Nossum <vegard.nossum@oracle.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7abf40f06a76c0dff42eada10597917e9776fbd4
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sat Aug 27 00:27:46 2022 +0900

    9p/trans_fd: always use O_NONBLOCK read/write
    
    commit ef575281b21e9a34dfae544a187c6aac2ae424a9 upstream.
    
    syzbot is reporting hung task at p9_fd_close() [1], for p9_mux_poll_stop()
     from p9_conn_destroy() from p9_fd_close() is failing to interrupt already
    started kernel_read() from p9_fd_read() from p9_read_work() and/or
    kernel_write() from p9_fd_write() from p9_write_work() requests.
    
    Since p9_socket_open() sets O_NONBLOCK flag, p9_mux_poll_stop() does not
    need to interrupt kernel_read()/kernel_write(). However, since p9_fd_open()
    does not set O_NONBLOCK flag, but pipe blocks unless signal is pending,
    p9_mux_poll_stop() needs to interrupt kernel_read()/kernel_write() when
    the file descriptor refers to a pipe. In other words, pipe file descriptor
    needs to be handled as if socket file descriptor.
    
    We somehow need to interrupt kernel_read()/kernel_write() on pipes.
    
    A minimal change, which this patch is doing, is to set O_NONBLOCK flag
     from p9_fd_open(), for O_NONBLOCK flag does not affect reading/writing
    of regular files. But this approach changes O_NONBLOCK flag on userspace-
    supplied file descriptors (which might break userspace programs), and
    O_NONBLOCK flag could be changed by userspace. It would be possible to set
    O_NONBLOCK flag every time p9_fd_read()/p9_fd_write() is invoked, but still
    remains small race window for clearing O_NONBLOCK flag.
    
    If we don't want to manipulate O_NONBLOCK flag, we might be able to
    surround kernel_read()/kernel_write() with set_thread_flag(TIF_SIGPENDING)
    and recalc_sigpending(). Since p9_read_work()/p9_write_work() works are
    processed by kernel threads which process global system_wq workqueue,
    signals could not be delivered from remote threads when p9_mux_poll_stop()
     from p9_conn_destroy() from p9_fd_close() is called. Therefore, calling
    set_thread_flag(TIF_SIGPENDING)/recalc_sigpending() every time would be
    needed if we count on signals for making kernel_read()/kernel_write()
    non-blocking.
    
    Link: https://lkml.kernel.org/r/345de429-a88b-7097-d177-adecf9fed342@I-love.SAKURA.ne.jp
    Link: https://syzkaller.appspot.com/bug?extid=8b41a1365f1106fd0f33 [1]
    Reported-by: syzbot <syzbot+8b41a1365f1106fd0f33@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Tested-by: syzbot <syzbot+8b41a1365f1106fd0f33@syzkaller.appspotmail.com>
    Reviewed-by: Christian Schoenebeck <linux_oss@crudebyte.com>
    [Dominique: add comment at Christian's suggestion]
    Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c8dad98bf7ed5794519cf44b1359ab9e519062a
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Fri Aug 26 15:12:17 2022 +0200

    gfs2: Switch from strlcpy to strscpy
    
    commit 204c0300c4e99707e9fb6e57840aa1127060e63f upstream.
    
    Switch from strlcpy to strscpy and make sure that @count is the size of
    the smaller of the source and destination buffers.  This prevents
    reading beyond the end of the source buffer when the source string isn't
    null terminated.
    
    Found by a modified version of syzkaller.
    
    Suggested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15c83fa0fd659dd9fbdc940a560b61236e876a80
Author: Andrew Price <anprice@redhat.com>
Date:   Wed Aug 17 13:22:00 2022 +0100

    gfs2: Check sb_bsize_shift after reading superblock
    
    commit 670f8ce56dd0632dc29a0322e188cc73ce3c6b92 upstream.
    
    Fuzzers like to scribble over sb_bsize_shift but in reality it's very
    unlikely that this field would be corrupted on its own. Nevertheless it
    should be checked to avoid the possibility of messy mount errors due to
    bad calculations. It's always a fixed value based on the block size so
    we can just check that it's the expected value.
    
    Tested with:
    
        mkfs.gfs2 -O -p lock_nolock /dev/vdb
        for i in 0 -1 64 65 32 33; do
            gfs2_edit -p sb field sb_bsize_shift $i /dev/vdb
            mount /dev/vdb /mnt/test && umount /mnt/test
        done
    
    Before this patch we get a withdraw after
    
    [   76.413681] gfs2: fsid=loop0.0: fatal: invalid metadata block
    [   76.413681]   bh = 19 (type: exp=5, found=4)
    [   76.413681]   function = gfs2_meta_buffer, file = fs/gfs2/meta_io.c, line = 492
    
    and with UBSAN configured we also get complaints like
    
    [   76.373395] UBSAN: shift-out-of-bounds in fs/gfs2/ops_fstype.c:295:19
    [   76.373815] shift exponent 4294967287 is too large for 64-bit type 'long unsigned int'
    
    After the patch, these complaints don't appear, mount fails immediately
    and we get an explanation in dmesg.
    
    Reported-by: syzbot+dcf33a7aae997956fe06@syzkaller.appspotmail.com
    Signed-off-by: Andrew Price <anprice@redhat.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fec1406f5e7ab20b71f6d231792b0040e3300aaf
Author: Dominique Martinet <asmadeus@codewreck.org>
Date:   Wed Aug 17 14:58:44 2022 +0900

    9p: trans_fd/p9_conn_cancel: drop client lock earlier
    
    commit 52f1c45dde9136f964d63a77d19826c8a74e2c7f upstream.
    
    syzbot reported a double-lock here and we no longer need this
    lock after requests have been moved off to local list:
    just drop the lock earlier.
    
    Link: https://lkml.kernel.org/r/20220904064028.1305220-1-asmadeus@codewreck.org
    Reported-by: syzbot+50f7e8d06c3768dd97f3@syzkaller.appspotmail.com
    Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
    Tested-by: Schspa Shi <schspa@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9ad4de92e184b19bcae4da10dac0275abf83931
Author: Cong Wang <cong.wang@bytedance.com>
Date:   Sun Nov 13 16:51:19 2022 -0800

    kcm: close race conditions on sk_receive_queue
    
    commit 5121197ecc5db58c07da95eb1ff82b98b121a221 upstream.
    
    sk->sk_receive_queue is protected by skb queue lock, but for KCM
    sockets its RX path takes mux->rx_lock to protect more than just
    skb queue. However, kcm_recvmsg() still only grabs the skb queue
    lock, so race conditions still exist.
    
    We can teach kcm_recvmsg() to grab mux->rx_lock too but this would
    introduce a potential performance regression as struct kcm_mux can
    be shared by multiple KCM sockets.
    
    So we have to enforce skb queue lock in requeue_rx_msgs() and handle
    skb peek case carefully in kcm_wait_data(). Fortunately,
    skb_recv_datagram() already handles it nicely and is widely used by
    other sockets, we can just switch to skb_recv_datagram() after
    getting rid of the unnecessary sock lock in kcm_recvmsg() and
    kcm_splice_read(). Side note: SOCK_DONE is not used by KCM sockets,
    so it is safe to get rid of this check too.
    
    I ran the original syzbot reproducer for 30 min without seeing any
    issue.
    
    Fixes: ab7ac4eb9832 ("kcm: Kernel Connection Multiplexor module")
    Reported-by: syzbot+278279efdd2730dd14bf@syzkaller.appspotmail.com
    Reported-by: shaozhengchao <shaozhengchao@huawei.com>
    Cc: Paolo Abeni <pabeni@redhat.com>
    Cc: Tom Herbert <tom@herbertland.com>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Link: https://lore.kernel.org/r/20221114005119.597905-1-xiyou.wangcong@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 730fb1ef974a13915bc7651364d8b3318891cd70
Author: Baisong Zhong <zhongbaisong@huawei.com>
Date:   Wed Nov 2 16:16:20 2022 +0800

    bpf, test_run: Fix alignment problem in bpf_prog_test_run_skb()
    
    commit d3fd203f36d46aa29600a72d57a1b61af80e4a25 upstream.
    
    We got a syzkaller problem because of aarch64 alignment fault
    if KFENCE enabled. When the size from user bpf program is an odd
    number, like 399, 407, etc, it will cause the struct skb_shared_info's
    unaligned access. As seen below:
    
      BUG: KFENCE: use-after-free read in __skb_clone+0x23c/0x2a0 net/core/skbuff.c:1032
    
      Use-after-free read at 0xffff6254fffac077 (in kfence-#213):
       __lse_atomic_add arch/arm64/include/asm/atomic_lse.h:26 [inline]
       arch_atomic_add arch/arm64/include/asm/atomic.h:28 [inline]
       arch_atomic_inc include/linux/atomic-arch-fallback.h:270 [inline]
       atomic_inc include/asm-generic/atomic-instrumented.h:241 [inline]
       __skb_clone+0x23c/0x2a0 net/core/skbuff.c:1032
       skb_clone+0xf4/0x214 net/core/skbuff.c:1481
       ____bpf_clone_redirect net/core/filter.c:2433 [inline]
       bpf_clone_redirect+0x78/0x1c0 net/core/filter.c:2420
       bpf_prog_d3839dd9068ceb51+0x80/0x330
       bpf_dispatcher_nop_func include/linux/bpf.h:728 [inline]
       bpf_test_run+0x3c0/0x6c0 net/bpf/test_run.c:53
       bpf_prog_test_run_skb+0x638/0xa7c net/bpf/test_run.c:594
       bpf_prog_test_run kernel/bpf/syscall.c:3148 [inline]
       __do_sys_bpf kernel/bpf/syscall.c:4441 [inline]
       __se_sys_bpf+0xad0/0x1634 kernel/bpf/syscall.c:4381
    
      kfence-#213: 0xffff6254fffac000-0xffff6254fffac196, size=407, cache=kmalloc-512
    
      allocated by task 15074 on cpu 0 at 1342.585390s:
       kmalloc include/linux/slab.h:568 [inline]
       kzalloc include/linux/slab.h:675 [inline]
       bpf_test_init.isra.0+0xac/0x290 net/bpf/test_run.c:191
       bpf_prog_test_run_skb+0x11c/0xa7c net/bpf/test_run.c:512
       bpf_prog_test_run kernel/bpf/syscall.c:3148 [inline]
       __do_sys_bpf kernel/bpf/syscall.c:4441 [inline]
       __se_sys_bpf+0xad0/0x1634 kernel/bpf/syscall.c:4381
       __arm64_sys_bpf+0x50/0x60 kernel/bpf/syscall.c:4381
    
    To fix the problem, we adjust @size so that (@size + @hearoom) is a
    multiple of SMP_CACHE_BYTES. So we make sure the struct skb_shared_info
    is aligned to a cache line.
    
    Fixes: 1cf1cae963c2 ("bpf: introduce BPF_PROG_TEST_RUN command")
    Signed-off-by: Baisong Zhong <zhongbaisong@huawei.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/bpf/20221102081620.1465154-1-zhongbaisong@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23a0a5869749c7833772330313ae7aec6581ec60
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Oct 12 13:34:12 2022 +0000

    kcm: avoid potential race in kcm_tx_work
    
    commit ec7eede369fe5b0d085ac51fdbb95184f87bfc6c upstream.
    
    syzbot found that kcm_tx_work() could crash [1] in:
    
            /* Primarily for SOCK_SEQPACKET sockets */
            if (likely(sk->sk_socket) &&
                test_bit(SOCK_NOSPACE, &sk->sk_socket->flags)) {
    <<*>>   clear_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
                    sk->sk_write_space(sk);
            }
    
    I think the reason is that another thread might concurrently
    run in kcm_release() and call sock_orphan(sk) while sk is not
    locked. kcm_tx_work() find sk->sk_socket being NULL.
    
    [1]
    BUG: KASAN: null-ptr-deref in instrument_atomic_write include/linux/instrumented.h:86 [inline]
    BUG: KASAN: null-ptr-deref in clear_bit include/asm-generic/bitops/instrumented-atomic.h:41 [inline]
    BUG: KASAN: null-ptr-deref in kcm_tx_work+0xff/0x160 net/kcm/kcmsock.c:742
    Write of size 8 at addr 0000000000000008 by task kworker/u4:3/53
    
    CPU: 0 PID: 53 Comm: kworker/u4:3 Not tainted 5.19.0-rc3-next-20220621-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Workqueue: kkcmd kcm_tx_work
    Call Trace:
    <TASK>
    __dump_stack lib/dump_stack.c:88 [inline]
    dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
    kasan_report+0xbe/0x1f0 mm/kasan/report.c:495
    check_region_inline mm/kasan/generic.c:183 [inline]
    kasan_check_range+0x13d/0x180 mm/kasan/generic.c:189
    instrument_atomic_write include/linux/instrumented.h:86 [inline]
    clear_bit include/asm-generic/bitops/instrumented-atomic.h:41 [inline]
    kcm_tx_work+0xff/0x160 net/kcm/kcmsock.c:742
    process_one_work+0x996/0x1610 kernel/workqueue.c:2289
    worker_thread+0x665/0x1080 kernel/workqueue.c:2436
    kthread+0x2e9/0x3a0 kernel/kthread.c:376
    ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:302
    </TASK>
    
    Fixes: ab7ac4eb9832 ("kcm: Kernel Connection Multiplexor module")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Tom Herbert <tom@herbertland.com>
    Link: https://lore.kernel.org/r/20221012133412.519394-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e481d87349d2282f400ee1d010a169c99f766b8
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Oct 11 15:07:48 2022 -0700

    tcp: cdg: allow tcp_cdg_release() to be called multiple times
    
    commit 72e560cb8c6f80fc2b4afc5d3634a32465e13a51 upstream.
    
    Apparently, mptcp is able to call tcp_disconnect() on an already
    disconnected flow. This is generally fine, unless current congestion
    control is CDG, because it might trigger a double-free [1]
    
    Instead of fixing MPTCP, and future bugs, we can make tcp_disconnect()
    more resilient.
    
    [1]
    BUG: KASAN: double-free in slab_free mm/slub.c:3539 [inline]
    BUG: KASAN: double-free in kfree+0xe2/0x580 mm/slub.c:4567
    
    CPU: 0 PID: 3645 Comm: kworker/0:7 Not tainted 6.0.0-syzkaller-02734-g0326074ff465 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022
    Workqueue: events mptcp_worker
    Call Trace:
    <TASK>
    __dump_stack lib/dump_stack.c:88 [inline]
    dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
    print_address_description mm/kasan/report.c:317 [inline]
    print_report.cold+0x2ba/0x719 mm/kasan/report.c:433
    kasan_report_invalid_free+0x81/0x190 mm/kasan/report.c:462
    ____kasan_slab_free+0x18b/0x1c0 mm/kasan/common.c:356
    kasan_slab_free include/linux/kasan.h:200 [inline]
    slab_free_hook mm/slub.c:1759 [inline]
    slab_free_freelist_hook+0x8b/0x1c0 mm/slub.c:1785
    slab_free mm/slub.c:3539 [inline]
    kfree+0xe2/0x580 mm/slub.c:4567
    tcp_disconnect+0x980/0x1e20 net/ipv4/tcp.c:3145
    __mptcp_close_ssk+0x5ca/0x7e0 net/mptcp/protocol.c:2327
    mptcp_do_fastclose net/mptcp/protocol.c:2592 [inline]
    mptcp_worker+0x78c/0xff0 net/mptcp/protocol.c:2627
    process_one_work+0x991/0x1610 kernel/workqueue.c:2289
    worker_thread+0x665/0x1080 kernel/workqueue.c:2436
    kthread+0x2e4/0x3a0 kernel/kthread.c:376
    ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:306
    </TASK>
    
    Allocated by task 3671:
    kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38
    kasan_set_track mm/kasan/common.c:45 [inline]
    set_alloc_info mm/kasan/common.c:437 [inline]
    ____kasan_kmalloc mm/kasan/common.c:516 [inline]
    ____kasan_kmalloc mm/kasan/common.c:475 [inline]
    __kasan_kmalloc+0xa9/0xd0 mm/kasan/common.c:525
    kmalloc_array include/linux/slab.h:640 [inline]
    kcalloc include/linux/slab.h:671 [inline]
    tcp_cdg_init+0x10d/0x170 net/ipv4/tcp_cdg.c:380
    tcp_init_congestion_control+0xab/0x550 net/ipv4/tcp_cong.c:193
    tcp_reinit_congestion_control net/ipv4/tcp_cong.c:217 [inline]
    tcp_set_congestion_control+0x96c/0xaa0 net/ipv4/tcp_cong.c:391
    do_tcp_setsockopt+0x505/0x2320 net/ipv4/tcp.c:3513
    tcp_setsockopt+0xd4/0x100 net/ipv4/tcp.c:3801
    mptcp_setsockopt+0x35f/0x2570 net/mptcp/sockopt.c:844
    __sys_setsockopt+0x2d6/0x690 net/socket.c:2252
    __do_sys_setsockopt net/socket.c:2263 [inline]
    __se_sys_setsockopt net/socket.c:2260 [inline]
    __x64_sys_setsockopt+0xba/0x150 net/socket.c:2260
    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
    do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
    entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Freed by task 16:
    kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38
    kasan_set_track+0x21/0x30 mm/kasan/common.c:45
    kasan_set_free_info+0x20/0x30 mm/kasan/generic.c:370
    ____kasan_slab_free mm/kasan/common.c:367 [inline]
    ____kasan_slab_free+0x166/0x1c0 mm/kasan/common.c:329
    kasan_slab_free include/linux/kasan.h:200 [inline]
    slab_free_hook mm/slub.c:1759 [inline]
    slab_free_freelist_hook+0x8b/0x1c0 mm/slub.c:1785
    slab_free mm/slub.c:3539 [inline]
    kfree+0xe2/0x580 mm/slub.c:4567
    tcp_cleanup_congestion_control+0x70/0x120 net/ipv4/tcp_cong.c:226
    tcp_v4_destroy_sock+0xdd/0x750 net/ipv4/tcp_ipv4.c:2254
    tcp_v6_destroy_sock+0x11/0x20 net/ipv6/tcp_ipv6.c:1969
    inet_csk_destroy_sock+0x196/0x440 net/ipv4/inet_connection_sock.c:1157
    tcp_done+0x23b/0x340 net/ipv4/tcp.c:4649
    tcp_rcv_state_process+0x40e7/0x4990 net/ipv4/tcp_input.c:6624
    tcp_v6_do_rcv+0x3fc/0x13c0 net/ipv6/tcp_ipv6.c:1525
    tcp_v6_rcv+0x2e8e/0x3830 net/ipv6/tcp_ipv6.c:1759
    ip6_protocol_deliver_rcu+0x2db/0x1950 net/ipv6/ip6_input.c:439
    ip6_input_finish+0x14c/0x2c0 net/ipv6/ip6_input.c:484
    NF_HOOK include/linux/netfilter.h:302 [inline]
    NF_HOOK include/linux/netfilter.h:296 [inline]
    ip6_input+0x9c/0xd0 net/ipv6/ip6_input.c:493
    dst_input include/net/dst.h:455 [inline]
    ip6_rcv_finish+0x193/0x2c0 net/ipv6/ip6_input.c:79
    ip_sabotage_in net/bridge/br_netfilter_hooks.c:874 [inline]
    ip_sabotage_in+0x1fa/0x260 net/bridge/br_netfilter_hooks.c:865
    nf_hook_entry_hookfn include/linux/netfilter.h:142 [inline]
    nf_hook_slow+0xc5/0x1f0 net/netfilter/core.c:614
    nf_hook.constprop.0+0x3ac/0x650 include/linux/netfilter.h:257
    NF_HOOK include/linux/netfilter.h:300 [inline]
    ipv6_rcv+0x9e/0x380 net/ipv6/ip6_input.c:309
    __netif_receive_skb_one_core+0x114/0x180 net/core/dev.c:5485
    __netif_receive_skb+0x1f/0x1c0 net/core/dev.c:5599
    netif_receive_skb_internal net/core/dev.c:5685 [inline]
    netif_receive_skb+0x12f/0x8d0 net/core/dev.c:5744
    NF_HOOK include/linux/netfilter.h:302 [inline]
    NF_HOOK include/linux/netfilter.h:296 [inline]
    br_pass_frame_up+0x303/0x410 net/bridge/br_input.c:68
    br_handle_frame_finish+0x909/0x1aa0 net/bridge/br_input.c:199
    br_nf_hook_thresh+0x2f8/0x3d0 net/bridge/br_netfilter_hooks.c:1041
    br_nf_pre_routing_finish_ipv6+0x695/0xef0 net/bridge/br_netfilter_ipv6.c:207
    NF_HOOK include/linux/netfilter.h:302 [inline]
    br_nf_pre_routing_ipv6+0x417/0x7c0 net/bridge/br_netfilter_ipv6.c:237
    br_nf_pre_routing+0x1496/0x1fe0 net/bridge/br_netfilter_hooks.c:507
    nf_hook_entry_hookfn include/linux/netfilter.h:142 [inline]
    nf_hook_bridge_pre net/bridge/br_input.c:255 [inline]
    br_handle_frame+0x9c9/0x12d0 net/bridge/br_input.c:399
    __netif_receive_skb_core+0x9fe/0x38f0 net/core/dev.c:5379
    __netif_receive_skb_one_core+0xae/0x180 net/core/dev.c:5483
    __netif_receive_skb+0x1f/0x1c0 net/core/dev.c:5599
    process_backlog+0x3a0/0x7c0 net/core/dev.c:5927
    __napi_poll+0xb3/0x6d0 net/core/dev.c:6494
    napi_poll net/core/dev.c:6561 [inline]
    net_rx_action+0x9c1/0xd90 net/core/dev.c:6672
    __do_softirq+0x1d0/0x9c8 kernel/softirq.c:571
    
    Fixes: 2b0a8c9eee81 ("tcp: add CDG congestion control")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 650137a7c0b2892df2e5b0bc112d7b09a78c93c8
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Oct 7 15:57:43 2022 -0700

    macvlan: enforce a consistent minimal mtu
    
    commit b64085b00044bdf3cd1c9825e9ef5b2e0feae91a upstream.
    
    macvlan should enforce a minimal mtu of 68, even at link creation.
    
    This patch avoids the current behavior (which could lead to crashes
    in ipv6 stack if the link is brought up)
    
    $ ip link add macvlan1 link eno1 mtu 8 type macvlan  # This should fail !
    $ ip link sh dev macvlan1
    5: macvlan1@eno1: <BROADCAST,MULTICAST> mtu 8 qdisc noop
        state DOWN mode DEFAULT group default qlen 1000
        link/ether 02:47:6c:24:74:82 brd ff:ff:ff:ff:ff:ff
    $ ip link set macvlan1 mtu 67
    Error: mtu less than device minimum.
    $ ip link set macvlan1 mtu 68
    $ ip link set macvlan1 mtu 8
    Error: mtu less than device minimum.
    
    Fixes: 91572088e3fd ("net: use core MTU range checking in core net infra")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40f5fa26c11bca5c947d218cc4fe6e0c64932070
Author: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Date:   Tue Nov 8 14:19:52 2022 +0200

    serial: 8250: Flush DMA Rx on RLSI
    
    commit 1980860e0c8299316cddaf0992dd9e1258ec9d88 upstream.
    
    Returning true from handle_rx_dma() without flushing DMA first creates
    a data ordering hazard. If DMA Rx has handled any character at the
    point when RLSI occurs, the non-DMA path handles any pending characters
    jumping them ahead of those characters that are pending under DMA.
    
    Fixes: 75df022b5f89 ("serial: 8250_dma: Fix RX handling")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20221108121952.5497-5-ilpo.jarvinen@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81df118e79b2136b5c016394f67a051dc508b7b6
Author: Chen Jun <chenjun102@huawei.com>
Date:   Fri Nov 18 15:40:03 2022 -0800

    Input: i8042 - fix leaking of platform device on module removal
    
    [ Upstream commit 81cd7e8489278d28794e7b272950c3e00c344e44 ]
    
    Avoid resetting the module-wide i8042_platform_device pointer in
    i8042_probe() or i8042_remove(), so that the device can be properly
    destroyed by i8042_exit() on module unload.
    
    Fixes: 9222ba68c3f4 ("Input: i8042 - add deferred probe support")
    Signed-off-by: Chen Jun <chenjun102@huawei.com>
    Link: https://lore.kernel.org/r/20221109034148.23821-1-chenjun102@huawei.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41a6b8b527a5957fab41c3c05e25ad125268e2e9
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Tue Nov 15 09:50:42 2022 +0800

    scsi: target: tcm_loop: Fix possible name leak in tcm_loop_setup_hba_bus()
    
    [ Upstream commit bc68e428d4963af0201e92159629ab96948f0893 ]
    
    If device_register() fails in tcm_loop_setup_hba_bus(), the name allocated
    by dev_set_name() need be freed. As comment of device_register() says, it
    should use put_device() to give up the reference in the error path. So fix
    this by calling put_device(), then the name can be freed in kobject_cleanup().
    The 'tl_hba' will be freed in tcm_loop_release_adapter(), so it don't need
    goto error label in this case.
    
    Fixes: 3703b2c5d041 ("[SCSI] tcm_loop: Add multi-fabric Linux/SCSI LLD fabric module")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Link: https://lore.kernel.org/r/20221115015042.3652261-1-yangyingliang@huawei.com
    Reviewed-by: Mike Christie <michael.chritie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5a275528025ae4bc7e2232866856dfebf84b2fad
Author: Alexander Potapenko <glider@google.com>
Date:   Fri Nov 4 18:58:49 2022 +0100

    misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram()
    
    commit e5b0d06d9b10f5f43101bd6598b076c347f9295f upstream.
    
    `struct vmci_event_qp` allocated by qp_notify_peer() contains padding,
    which may carry uninitialized data to the userspace, as observed by
    KMSAN:
    
      BUG: KMSAN: kernel-infoleak in instrument_copy_to_user ./include/linux/instrumented.h:121
       instrument_copy_to_user ./include/linux/instrumented.h:121
       _copy_to_user+0x5f/0xb0 lib/usercopy.c:33
       copy_to_user ./include/linux/uaccess.h:169
       vmci_host_do_receive_datagram drivers/misc/vmw_vmci/vmci_host.c:431
       vmci_host_unlocked_ioctl+0x33d/0x43d0 drivers/misc/vmw_vmci/vmci_host.c:925
       vfs_ioctl fs/ioctl.c:51
      ...
    
      Uninit was stored to memory at:
       kmemdup+0x74/0xb0 mm/util.c:131
       dg_dispatch_as_host drivers/misc/vmw_vmci/vmci_datagram.c:271
       vmci_datagram_dispatch+0x4f8/0xfc0 drivers/misc/vmw_vmci/vmci_datagram.c:339
       qp_notify_peer+0x19a/0x290 drivers/misc/vmw_vmci/vmci_queue_pair.c:1479
       qp_broker_attach drivers/misc/vmw_vmci/vmci_queue_pair.c:1662
       qp_broker_alloc+0x2977/0x2f30 drivers/misc/vmw_vmci/vmci_queue_pair.c:1750
       vmci_qp_broker_alloc+0x96/0xd0 drivers/misc/vmw_vmci/vmci_queue_pair.c:1940
       vmci_host_do_alloc_queuepair drivers/misc/vmw_vmci/vmci_host.c:488
       vmci_host_unlocked_ioctl+0x24fd/0x43d0 drivers/misc/vmw_vmci/vmci_host.c:927
      ...
    
      Local variable ev created at:
       qp_notify_peer+0x54/0x290 drivers/misc/vmw_vmci/vmci_queue_pair.c:1456
       qp_broker_attach drivers/misc/vmw_vmci/vmci_queue_pair.c:1662
       qp_broker_alloc+0x2977/0x2f30 drivers/misc/vmw_vmci/vmci_queue_pair.c:1750
    
      Bytes 28-31 of 48 are uninitialized
      Memory access of size 48 starts at ffff888035155e00
      Data copied to user address 0000000020000100
    
    Use memset() to prevent the infoleaks.
    
    Also speculatively fix qp_notify_peer_local(), which may suffer from the
    same problem.
    
    Reported-by: syzbot+39be4da489ed2493ba25@syzkaller.appspotmail.com
    Cc: stable <stable@kernel.org>
    Fixes: 06164d2b72aa ("VMCI: queue pairs implementation.")
    Signed-off-by: Alexander Potapenko <glider@google.com>
    Reviewed-by: Vishnu Dasa <vdasa@vmware.com>
    Link: https://lore.kernel.org/r/20221104175849.2782567-1-glider@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0feab24e42711212cf970fd449d4376615808a9
Author: Shuah Khan <skhan@linuxfoundation.org>
Date:   Tue Oct 11 11:14:17 2022 -0600

    docs: update mediator contact information in CoC doc
    
    commit 5fddf8962b429b8303c4a654291ecb6e61a7d747 upstream.
    
    Update mediator contact information in CoC interpretation document.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/20221011171417.34286-1-skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5dbd6378dbf96787d6dbcca44156c511ae085ea3
Author: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Date:   Mon Nov 14 16:31:00 2022 +0800

    mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put()
    
    commit 222cfa0118aa68687ace74aab8fdf77ce8fbd7e6 upstream.
    
    pci_get_device() will increase the reference count for the returned
    pci_dev. We need to use pci_dev_put() to decrease the reference count
    before amd_probe() returns. There is no problem for the 'smbus_dev ==
    NULL' branch because pci_dev_put() can also handle the NULL input
    parameter case.
    
    Fixes: 659c9bc114a8 ("mmc: sdhci-pci: Build o2micro support in the same module")
    Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20221114083100.149200-1-wangxiongfeng2@huawei.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47ec0a543f9c02bd6bce952b45f025c1d868cdf4
Author: Yann Gautier <yann.gautier@foss.st.com>
Date:   Fri Oct 28 09:37:40 2022 +0200

    mmc: core: properly select voltage range without power cycle
    
    commit 39a72dbfe188291b156dd6523511e3d5761ce775 upstream.
    
    In mmc_select_voltage(), if there is no full power cycle, the voltage
    range selected at the end of the function will be on a single range
    (e.g. 3.3V/3.4V). To keep a range around the selected voltage (3.2V/3.4V),
    the mask shift should be reduced by 1.
    
    This issue was triggered by using a specific SD-card (Verbatim Premium
    16GB UHS-1) on an STM32MP157C-DK2 board. This board cannot do UHS modes
    and there is no power cycle. And the card was failing to switch to
    high-speed mode. When adding the range 3.2V/3.3V for this card with the
    proposed shift change, the card can switch to high-speed mode.
    
    Fixes: ce69d37b7d8f ("mmc: core: Prevent violation of specs while initializing cards")
    Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20221028073740.7259-1-yann.gautier@foss.st.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2fa37c42c3c53e0ef5c3bcbc328bb35e23c6673e
Author: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Date:   Tue Nov 8 14:19:50 2022 +0200

    serial: 8250_lpss: Configure DMA also w/o DMA filter
    
    commit 1bfcbe5805d0cfc83c3544dcd01e0a282c1f6790 upstream.
    
    If the platform doesn't use DMA device filter (as is the case with
    Elkhart Lake), whole lpss8250_dma_setup() setup is skipped. This
    results in skipping also *_maxburst setup which is undesirable.
    Refactor lpss8250_dma_setup() to configure DMA even if filter is not
    setup.
    
    Cc: stable <stable@kernel.org>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20221108121952.5497-3-ilpo.jarvinen@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 62cda857457c7de0922852d54d69b140bd6eeb7e
Author: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Date:   Tue Nov 8 14:19:49 2022 +0200

    serial: 8250: Fall back to non-DMA Rx if IIR_RDI occurs
    
    commit a931237cbea256aff13bb403da13a97b2d1605d9 upstream.
    
    DW UART sometimes triggers IIR_RDI during DMA Rx when IIR_RX_TIMEOUT
    should have been triggered instead. Since IIR_RDI has higher priority
    than IIR_RX_TIMEOUT, this causes the Rx to hang into interrupt loop.
    The problem seems to occur at least with some combinations of
    small-sized transfers (I've reproduced the problem on Elkhart Lake PSE
    UARTs).
    
    If there's already an on-going Rx DMA and IIR_RDI triggers, fall
    graciously back to non-DMA Rx. That is, behave as if IIR_RX_TIMEOUT had
    occurred.
    
    8250_omap already considers IIR_RDI similar to this change so its
    nothing unheard of.
    
    Fixes: 75df022b5f89 ("serial: 8250_dma: Fix RX handling")
    Cc: <stable@vger.kernel.org>
    Co-developed-by: Srikanth Thokala <srikanth.thokala@intel.com>
    Signed-off-by: Srikanth Thokala <srikanth.thokala@intel.com>
    Co-developed-by: Aman Kumar <aman.kumar@intel.com>
    Signed-off-by: Aman Kumar <aman.kumar@intel.com>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20221108121952.5497-2-ilpo.jarvinen@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a1c35d72dc0b34d1e746ed705790c0f630aa427
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Nov 1 16:53:35 2022 -0400

    dm ioctl: fix misbehavior if list_versions races with module loading
    
    commit 4fe1ec995483737f3d2a14c3fe1d8fe634972979 upstream.
    
    __list_versions will first estimate the required space using the
    "dm_target_iterate(list_version_get_needed, &needed)" call and then will
    fill the space using the "dm_target_iterate(list_version_get_info,
    &iter_info)" call. Each of these calls locks the targets using the
    "down_read(&_lock)" and "up_read(&_lock)" calls, however between the first
    and second "dm_target_iterate" there is no lock held and the target
    modules can be loaded at this point, so the second "dm_target_iterate"
    call may need more space than what was the first "dm_target_iterate"
    returned.
    
    The code tries to handle this overflow (see the beginning of
    list_version_get_info), however this handling is incorrect.
    
    The code sets "param->data_size = param->data_start + needed" and
    "iter_info.end = (char *)vers+len" - "needed" is the size returned by the
    first dm_target_iterate call; "len" is the size of the buffer allocated by
    userspace.
    
    "len" may be greater than "needed"; in this case, the code will write up
    to "len" bytes into the buffer, however param->data_size is set to
    "needed", so it may write data past the param->data_size value. The ioctl
    interface copies only up to param->data_size into userspace, thus part of
    the result will be truncated.
    
    Fix this bug by setting "iter_info.end = (char *)vers + needed;" - this
    guarantees that the second "dm_target_iterate" call will write only up to
    the "needed" buffer and it will exit with "DM_BUFFER_FULL_FLAG" if it
    overflows the "needed" space - in this case, userspace will allocate a
    larger buffer and retry.
    
    Note that there is also a bug in list_version_get_needed - we need to add
    "strlen(tt->name) + 1" to the needed size, not "strlen(tt->name)".
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c984cddcaaa099c0900d04e3240f2036e8f6fd0
Author: Mitja Spes <mitja@lxnav.com>
Date:   Fri Oct 21 15:58:21 2022 +0200

    iio: pressure: ms5611: changed hardcoded SPI speed to value limited
    
    commit 741cec30cc52058d1c10d415f3b98319887e4f73 upstream.
    
    Don't hardcode the ms5611 SPI speed, limit it instead.
    
    Signed-off-by: Mitja Spes <mitja@lxnav.com>
    Fixes: c0644160a8b5 ("iio: pressure: add support for MS5611 pressure and temperature sensor")
    Link: https://lore.kernel.org/r/20221021135827.1444793-3-mitja@lxnav.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b47bb521961f027b4dcf8683337a7a1ba9e5ea1f
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Sat Oct 22 15:42:12 2022 +0800

    iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init()
    
    commit efa17e90e1711bdb084e3954fa44afb6647331c0 upstream.
    
    dev_set_name() allocates memory for name, it need be freed
    when device_add() fails, call put_device() to give up the
    reference that hold in device_initialize(), so that it can
    be freed in kobject_cleanup() when the refcount hit to 0.
    
    Fault injection test can trigger this:
    
    unreferenced object 0xffff8e8340a7b4c0 (size 32):
      comm "modprobe", pid 243, jiffies 4294678145 (age 48.845s)
      hex dump (first 32 bytes):
        69 69 6f 5f 73 79 73 66 73 5f 74 72 69 67 67 65  iio_sysfs_trigge
        72 00 a7 40 83 8e ff ff 00 86 13 c4 f6 ee ff ff  r..@............
      backtrace:
        [<0000000074999de8>] __kmem_cache_alloc_node+0x1e9/0x360
        [<00000000497fd30b>] __kmalloc_node_track_caller+0x44/0x1a0
        [<000000003636c520>] kstrdup+0x2d/0x60
        [<0000000032f84da2>] kobject_set_name_vargs+0x1e/0x90
        [<0000000092efe493>] dev_set_name+0x4e/0x70
    
    Fixes: 1f785681a870 ("staging:iio:trigger sysfs userspace trigger rework.")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Cc: <Stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20221022074212.1386424-1-yangyingliang@huawei.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b29a7f2d52fb5281b30cf61c947d88bab18a29b
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Mon Oct 24 16:45:11 2022 +0800

    iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger()
    
    commit 65f20301607d07ee279b0804d11a05a62a6c1a1c upstream.
    
    If iio_trigger_register() returns error, it should call iio_trigger_free()
    to give up the reference that hold in iio_trigger_alloc(), so that it can
    call iio_trig_release() to free memory when the refcount hit to 0.
    
    Fixes: 0e589d5fb317 ("ARM: AT91: IIO: Add AT91 ADC driver.")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Link: https://lore.kernel.org/r/20221024084511.815096-1-yangyingliang@huawei.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b6071087bf031dc643fa6f7d11ab6f642136148
Author: Duoming Zhou <duoming@zju.edu.cn>
Date:   Sun Sep 18 11:33:12 2022 +0800

    usb: chipidea: fix deadlock in ci_otg_del_timer
    
    commit 7a58b8d6021426b796eebfae80983374d9a80a75 upstream.
    
    There is a deadlock in ci_otg_del_timer(), the process is
    shown below:
    
        (thread 1)                  |        (thread 2)
    ci_otg_del_timer()              | ci_otg_hrtimer_func()
      ...                           |
      spin_lock_irqsave() //(1)     |  ...
      ...                           |
      hrtimer_cancel()              |  spin_lock_irqsave() //(2)
      (block forever)
    
    We hold ci->lock in position (1) and use hrtimer_cancel() to
    wait ci_otg_hrtimer_func() to stop, but ci_otg_hrtimer_func()
    also need ci->lock in position (2). As a result, the
    hrtimer_cancel() in ci_otg_del_timer() will be blocked forever.
    
    This patch extracts hrtimer_cancel() from the protection of
    spin_lock_irqsave() in order that the ci_otg_hrtimer_func()
    could obtain the ci->lock.
    
    What`s more, there will be no race happen. Because the
    "next_timer" is always under the protection of
    spin_lock_irqsave() and we only check whether "next_timer"
    equals to NUM_OTG_FSM_TIMERS in the following code.
    
    Fixes: 3a316ec4c91c ("usb: chipidea: use hrtimer for otg fsm timers")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Duoming Zhou <duoming@zju.edu.cn>
    Link: https://lore.kernel.org/r/20220918033312.94348-1-duoming@zju.edu.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b87527bd1e2239eb9f3e78730f2e910969731f4d
Author: Nicolas Dumazet <ndumazet@google.com>
Date:   Wed Nov 9 13:29:46 2022 +0100

    usb: add NO_LPM quirk for Realforce 87U Keyboard
    
    commit 181135bb20dcb184edd89817831b888eb8132741 upstream.
    
    Before adding this quirk, this (mechanical keyboard) device would not be
    recognized, logging:
    
      new full-speed USB device number 56 using xhci_hcd
      unable to read config index 0 descriptor/start: -32
      chopping to 0 config(s)
    
    It would take dozens of plugging/unpuggling cycles for the keyboard to
    be recognized. Keyboard seems to simply work after applying this quirk.
    
    This issue had been reported by users in two places already ([1], [2])
    but nobody tried upstreaming a patch yet. After testing I believe their
    suggested fix (DELAY_INIT + NO_LPM + DEVICE_QUALIFIER) was probably a
    little overkill. I assume this particular combination was tested because
    it had been previously suggested in [3], but only NO_LPM seems
    sufficient for this device.
    
    [1]: https://qiita.com/float168/items/fed43d540c8e2201b543
    [2]: https://blog.kostic.dev/posts/making-the-realforce-87ub-work-with-usb30-on-Ubuntu/
    [3]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1678477
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Nicolas Dumazet <ndumazet@google.com>
    Link: https://lore.kernel.org/r/20221109122946.706036-1-ndumazet@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6de1cfcacd15a120a1c7d143b34bcbc9d4c06d9
Author: Reinhard Speyerer <rspmn@arcor.de>
Date:   Wed Nov 9 22:24:15 2022 +0100

    USB: serial: option: add Fibocom FM160 0x0111 composition
    
    commit 148f4b32b4504d8a32cf82049b7b9499a4b299ab upstream.
    
    Add support for the following Fibocom FM160 composition:
    
    0x0111: MBIM + MODEM + DIAG + AT
    
    T:  Bus=01 Lev=02 Prnt=125 Port=01 Cnt=02 Dev#= 93 Spd=480  MxCh= 0
    D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=2cb7 ProdID=0111 Rev= 5.04
    S:  Manufacturer=Fibocom
    S:  Product=Fibocom FM160 Modem_SN:12345678
    S:  SerialNumber=12345678
    C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
    A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
    I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
    E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=32ms
    I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
    E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
    E:  Ad=86(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Signed-off-by: Reinhard Speyerer <rspmn@arcor.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28409de862095afae91138412c8fb76bb2fc12bd
Author: Davide Tronchin <davide.tronchin.94@gmail.com>
Date:   Wed Nov 16 16:59:50 2022 +0100

    USB: serial: option: add u-blox LARA-L6 modem
    
    commit c1547f12df8b8e9ca2686accee43213ecd117efe upstream.
    
    Add LARA-L6 PIDs for three different USB compositions.
    
    LARA-L6 module can be configured (by AT interface) in three different
    USB modes:
    * Default mode (Vendor ID: 0x1546 Product ID: 0x1341) with 4 serial
    interfaces
    * RmNet mode (Vendor ID: 0x1546 Product ID: 0x1342) with 4 serial
    interfaces and 1 RmNet virtual network interface
    * CDC-ECM mode (Vendor ID: 0x1546 Product ID: 0x1343) with 4 serial
    interface and 1 CDC-ECM virtual network interface
    
    In default mode LARA-L6 exposes the following interfaces:
    If 0: Diagnostic
    If 1: AT parser
    If 2: AT parser
    If 3: AT parser/alternative functions
    
    In RmNet mode LARA-L6 exposes the following interfaces:
    If 0: Diagnostic
    If 1: AT parser
    If 2: AT parser
    If 3: AT parset/alternative functions
    If 4: RMNET interface
    
    In CDC-ECM mode LARA-L6 exposes the following interfaces:
    If 0: Diagnostic
    If 1: AT parser
    If 2: AT parser
    If 3: AT parset/alternative functions
    If 4: CDC-ECM interface
    
    Signed-off-by: Davide Tronchin <davide.tronchin.94@gmail.com>
    [ johan: drop PID defines in favour of comments ]
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 528ac1b754f4ef6ed11af51f54542ab51a2dd2b2
Author: Davide Tronchin <davide.tronchin.94@gmail.com>
Date:   Wed Nov 16 16:59:49 2022 +0100

    USB: serial: option: add u-blox LARA-R6 00B modem
    
    commit d9e37a5c4d80ea25a7171ab8557a449115554e76 upstream.
    
    The official LARA-R6 (00B) modem uses 0x908b PID. LARA-R6 00B does not
    implement a QMI interface on port 4, the reservation (RSVD(4)) has been
    added to meet other companies that implement QMI on that interface.
    
    LARA-R6 00B USB composition exposes the following interfaces:
    If 0: Diagnostic
    If 1: AT parser
    If 2: AT parser
    If 3: AT parser/alternative functions
    
    Signed-off-by: Davide Tronchin <davide.tronchin.94@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 7c1acff6e282e5260c3f070bf0b39c3c82d8c12b
Author: Davide Tronchin <davide.tronchin.94@gmail.com>
Date:   Wed Nov 16 16:59:48 2022 +0100

    USB: serial: option: remove old LARA-R6 PID
    
    commit 2ec106b96afc19698ff934323b633c0729d4c7f8 upstream.
    
    Remove the UBLOX_PRODUCT_R6XX 0x90fa association since LARA-R6 00B final
    product uses a new USB composition with different PID. 0x90fa PID used
    only by LARA-R6 internal prototypes.
    
    Move 0x90fa PID directly in the option_ids array since used by other
    Qualcomm based modem vendors as pointed out in:
    
      https://lore.kernel.org/all/6572c4e6-d8bc-b8d3-4396-d879e4e76338@gmail.com
    
    Signed-off-by: Davide Tronchin <davide.tronchin.94@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 a4520c6ab00b01018128881e1c3a42588364635c
Author: Benoît Monin <benoit.monin@gmx.fr>
Date:   Thu Oct 13 16:26:48 2022 +0200

    USB: serial: option: add Sierra Wireless EM9191
    
    commit df3414b0a245f43476061fddd78cee7d6cff797f upstream.
    
    Add support for the AT and diag ports, similar to other qualcomm SDX55
    modems. In QDL mode, the modem uses a different device ID and support
    is provided by qcserial in commit 11c52d250b34 ("USB: serial: qcserial:
    add EM9191 QDL support").
    
    T:  Bus=08 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  3 Spd=5000 MxCh= 0
    D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
    P:  Vendor=1199 ProdID=90d3 Rev=00.06
    S:  Manufacturer=Sierra Wireless, Incorporated
    S:  Product=Sierra Wireless EM9191
    S:  SerialNumber=xxxxxxxxxxxxxxxx
    C:  #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=896mA
    I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
    I:  If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
    
    Signed-off-by: Benoît Monin <benoit.monin@gmx.fr>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a6ee8d4df9519a78f577240c5d40d1069f0d02f7
Author: Mushahid Hussain <mushi.shar@gmail.com>
Date:   Mon Oct 10 21:57:20 2022 +0500

    speakup: fix a segfault caused by switching consoles
    
    commit 0fc801f8018000c8e64a275a20cb1da7c54e46df upstream.
    
    This patch fixes a segfault by adding a null check on synth in
    speakup_con_update(). The segfault can be reproduced as follows:
    
            - Login into a text console
    
            - Load speakup and speakup_soft modules
    
            - Remove speakup_soft
    
            - Switch to a graphics console
    
    This is caused by lack of a null check on `synth` in
    speakup_con_update().
    
    Here's the sequence that causes the segfault:
    
            - When we remove the speakup_soft, synth_release() sets the synth
              to null.
    
            - After that, when we change the virtual console to graphics
              console, vt_notifier_call() is fired, which then calls
              speakup_con_update().
    
            - Inside speakup_con_update() there's no null check on synth,
              so it calls synth_printf().
    
            - Inside synth_printf(), synth_buffer_add() and synth_start(),
              both access synth, when it is null and causing a segfault.
    
    Therefore adding a null check on synth solves the issue.
    
    Fixes: 2610df41489f ("staging: speakup: Add pause command used on switching to graphical mode")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Mushahid Hussain <mushi.shar@gmail.com>
    Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
    Link: https://lore.kernel.org/r/20221010165720.397042-1-mushi.shar@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d0062d0b4f3079732e814e4f4bd4193984cd579
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Thu Sep 29 18:52:02 2022 +0200

    slimbus: stream: correct presence rate frequencies
    
    commit b9c1939627f8185dec8ba6d741e9573a4c7a5834 upstream.
    
    Correct few frequencies in presence rate table - multiplied by 10
    (110250 instead of 11025 Hz).
    
    Fixes: abb9c9b8b51b ("slimbus: stream: add stream support")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20220929165202.410937-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c43991065f36f7628cd124e037b8750c4617a7a7
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sat Nov 12 15:12:23 2022 +0100

    ALSA: usb-audio: Drop snd_BUG_ON() from snd_usbmidi_output_open()
    
    commit ad72c3c3f6eb81d2cb189ec71e888316adada5df upstream.
    
    snd_usbmidi_output_open() has a check of the NULL port with
    snd_BUG_ON().  snd_BUG_ON() was used as this shouldn't have happened,
    but in reality, the NULL port may be seen when the device gives an
    invalid endpoint setup at the descriptor, hence the driver skips the
    allocation.  That is, the check itself is valid and snd_BUG_ON()
    should be dropped from there.  Otherwise it's confusing as if it were
    a real bug, as recently syzbot stumbled on it.
    
    Reported-by: syzbot+9abda841d636d86c41da@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/syzbot+9abda841d636d86c41da@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/20221112141223.6144-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 455ea324770205525cbc13f155806a5346794339
Author: Daniil Tatianin <d-tatianin@yandex-team.ru>
Date:   Mon Nov 14 17:31:29 2022 +0300

    ring_buffer: Do not deactivate non-existant pages
    
    commit 56f4ca0a79a9f1af98f26c54b9b89ba1f9bcc6bd upstream.
    
    rb_head_page_deactivate() expects cpu_buffer to contain a valid list of
    ->pages, so verify that the list is actually present before calling it.
    
    Found by Linux Verification Center (linuxtesting.org) with the SVACE
    static analysis tool.
    
    Link: https://lkml.kernel.org/r/20221114143129.3534443-1-d-tatianin@yandex-team.ru
    
    Cc: stable@vger.kernel.org
    Fixes: 77ae365eca895 ("ring-buffer: make lockless")
    Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5bfc61f541d3f092b13dedcfe000d86eb8e133c
Author: Xiu Jianfeng <xiujianfeng@huawei.com>
Date:   Wed Nov 16 09:52:07 2022 +0800

    ftrace: Fix null pointer dereference in ftrace_add_mod()
    
    commit 19ba6c8af9382c4c05dc6a0a79af3013b9a35cd0 upstream.
    
    The @ftrace_mod is allocated by kzalloc(), so both the members {prev,next}
    of @ftrace_mode->list are NULL, it's not a valid state to call list_del().
    If kstrdup() for @ftrace_mod->{func|module} fails, it goes to @out_free
    tag and calls free_ftrace_mod() to destroy @ftrace_mod, then list_del()
    will write prev->next and next->prev, where null pointer dereference
    happens.
    
    BUG: kernel NULL pointer dereference, address: 0000000000000008
    Oops: 0002 [#1] PREEMPT SMP NOPTI
    Call Trace:
     <TASK>
     ftrace_mod_callback+0x20d/0x220
     ? do_filp_open+0xd9/0x140
     ftrace_process_regex.isra.51+0xbf/0x130
     ftrace_regex_write.isra.52.part.53+0x6e/0x90
     vfs_write+0xee/0x3a0
     ? __audit_filter_op+0xb1/0x100
     ? auditd_test_task+0x38/0x50
     ksys_write+0xa5/0xe0
     do_syscall_64+0x3a/0x90
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    Kernel panic - not syncing: Fatal exception
    
    So call INIT_LIST_HEAD() to initialize the list member to fix this issue.
    
    Link: https://lkml.kernel.org/r/20221116015207.30858-1-xiujianfeng@huawei.com
    
    Cc: stable@vger.kernel.org
    Fixes: 673feb9d76ab ("ftrace: Add :mod: caching infrastructure to trace_array")
    Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d110bb57a7e9831465aa3abb6c0d1cc658b05fbe
Author: Wang Wensheng <wangwensheng4@huawei.com>
Date:   Wed Nov 9 09:44:33 2022 +0000

    ftrace: Optimize the allocation for mcount entries
    
    commit bcea02b096333dc74af987cb9685a4dbdd820840 upstream.
    
    If we can't allocate this size, try something smaller with half of the
    size. Its order should be decreased by one instead of divided by two.
    
    Link: https://lkml.kernel.org/r/20221109094434.84046-3-wangwensheng4@huawei.com
    
    Cc: <mhiramat@kernel.org>
    Cc: <mark.rutland@arm.com>
    Cc: stable@vger.kernel.org
    Fixes: a79008755497d ("ftrace: Allocate the mcount record pages as groups")
    Signed-off-by: Wang Wensheng <wangwensheng4@huawei.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9bad1ed54cba032ce872f80e3d27fe12e4340171
Author: Wang Wensheng <wangwensheng4@huawei.com>
Date:   Wed Nov 9 09:44:32 2022 +0000

    ftrace: Fix the possible incorrect kernel message
    
    commit 08948caebe93482db1adfd2154eba124f66d161d upstream.
    
    If the number of mcount entries is an integer multiple of
    ENTRIES_PER_PAGE, the page count showing on the console would be wrong.
    
    Link: https://lkml.kernel.org/r/20221109094434.84046-2-wangwensheng4@huawei.com
    
    Cc: <mhiramat@kernel.org>
    Cc: <mark.rutland@arm.com>
    Cc: stable@vger.kernel.org
    Fixes: 5821e1b74f0d0 ("function tracing: fix wrong pos computing when read buffer has been fulfilled")
    Signed-off-by: Wang Wensheng <wangwensheng4@huawei.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d92238607dd8ec7c34e1daa0d3845d4ed0cb191
Author: Yuan Can <yuancan@huawei.com>
Date:   Mon Nov 14 14:22:25 2022 +0000

    net: thunderbolt: Fix error handling in tbnet_init()
    
    [ Upstream commit f524b7289bbb0c8ffaa2ba3c34c146e43da54fb2 ]
    
    A problem about insmod thunderbolt-net failed is triggered with following
    log given while lsmod does not show thunderbolt_net:
    
     insmod: ERROR: could not insert module thunderbolt-net.ko: File exists
    
    The reason is that tbnet_init() returns tb_register_service_driver()
    directly without checking its return value, if tb_register_service_driver()
    failed, it returns without removing property directory, resulting the
    property directory can never be created later.
    
     tbnet_init()
       tb_register_property_dir() # register property directory
       tb_register_service_driver()
         driver_register()
           bus_add_driver()
             priv = kzalloc(...) # OOM happened
       # return without remove property directory
    
    Fix by remove property directory when tb_register_service_driver() returns
    error.
    
    Fixes: e69b6c02b4c3 ("net: Add support for networking over Thunderbolt cable")
    Signed-off-by: Yuan Can <yuancan@huawei.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8a49d2268e333fb28011f06f301b5b01cd5ffa3d
Author: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Date:   Tue Nov 15 18:39:34 2022 +0800

    cifs: Fix wrong return value checking when GETFLAGS
    
    [ Upstream commit 92bbd67a55fee50743b42825d1c016e7fd5c79f9 ]
    
    The return value of CIFSGetExtAttr is negative, should be checked
    with -EOPNOTSUPP rather than EOPNOTSUPP.
    
    Fixes: 64a5cfa6db94 ("Allow setting per-file compression via SMB2/3")
    Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ef17d966445358a55c5f4ccf2c73cca3e39192b
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Mon Nov 14 11:05:19 2022 +0000

    net/x25: Fix skb leak in x25_lapb_receive_frame()
    
    [ Upstream commit 2929cceb2fcf0ded7182562e4888afafece82cce ]
    
    x25_lapb_receive_frame() using skb_copy() to get a private copy of
    skb, the new skb should be freed in the undersized/fragmented skb
    error handling path. Otherwise there is a memory leak.
    
    Fixes: cb101ed2c3c7 ("x25: Handle undersized/fragmented skbs")
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Acked-by: Martin Schiller <ms@dev.tdt.de>
    Link: https://lore.kernel.org/r/20221114110519.514538-1-weiyongjun@huaweicloud.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf47ca1b35fc1f55091ffaff5fbe41ea0c6f59a1
Author: Dan Carpenter <error27@gmail.com>
Date:   Tue Nov 15 16:16:43 2022 +0300

    drbd: use after free in drbd_create_device()
    
    [ Upstream commit a7a1598189228b5007369a9622ccdf587be0730f ]
    
    The drbd_destroy_connection() frees the "connection" so use the _safe()
    iterator to prevent a use after free.
    
    Fixes: b6f85ef9538b ("drbd: Iterate over all connections")
    Signed-off-by: Dan Carpenter <error27@gmail.com>
    Reviewed-by: Christoph Böhmwalder <christoph.boehmwalder@linbit.com>
    Link: https://lore.kernel.org/r/Y3Jd5iZRbNQ9w6gm@kili
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6209a85079a035b5c2279b15b197531156b549fa
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Thu Nov 10 23:24:41 2022 +0800

    xen/pcpu: fix possible memory leak in register_pcpu()
    
    [ Upstream commit da36a2a76b01b210ffaa55cdc2c99bc8783697c5 ]
    
    In device_add(), dev_set_name() is called to allocate name, if it returns
    error, the name need be freed. As comment of device_register() says, it
    should use put_device() to give up the reference in the error path. So fix
    this by calling put_device(), then the name can be freed in kobject_cleanup().
    
    Fixes: f65c9bb3fb72 ("xen/pcpu: Xen physical cpus online/offline sys interface")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Link: https://lore.kernel.org/r/20221110152441.401630-1-yangyingliang@huawei.com
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e58fa43c0cc528efee79ea73c5dbd1c4f95d359a
Author: Gaosheng Cui <cuigaosheng1@huawei.com>
Date:   Fri Nov 11 15:04:33 2022 +0800

    bnxt_en: Remove debugfs when pci_register_driver failed
    
    [ Upstream commit 991aef4ee4f6eb999924f429b943441a32835c8f ]
    
    When pci_register_driver failed, we need to remove debugfs,
    which will caused a resource leak, fix it.
    
    Resource leak logs as follows:
    [   52.184456] debugfs: Directory 'bnxt_en' with parent '/' already present!
    
    Fixes: cabfb09d87bd ("bnxt_en: add debugfs support for DIM")
    Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Reviewed-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28b5cab9af4a0945782ff76d56fd7fffb50eee55
Author: Zhengchao Shao <shaozhengchao@huawei.com>
Date:   Fri Nov 11 09:47:34 2022 +0800

    net: caif: fix double disconnect client in chnl_net_open()
    
    [ Upstream commit 8fbb53c8bfd8c56ecf1f78dc821778b58f505503 ]
    
    When connecting to client timeout, disconnect client for twice in
    chnl_net_open(). Remove one. Compile tested only.
    
    Fixes: 2aa40aef9deb ("caif: Use link layer MTU instead of fixed MTU")
    Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d40b35a7922f4df3767ad6fb8ef3dc86e31d7ba3
Author: Wang ShaoBo <bobo.shaobowang@huawei.com>
Date:   Thu Nov 10 19:38:23 2022 +0800

    mISDN: fix misuse of put_device() in mISDN_register_device()
    
    [ Upstream commit 2d25107e111a85c56f601a5470f1780ec054e6ac ]
    
    We should not release reference by put_device() before calling device_initialize().
    
    Fixes: e7d1d4d9ac0d ("mISDN: fix possible memory leak in mISDN_register_device()")
    Signed-off-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 727ed7d28348c026c7ef4d852f3d0e5054d376e8
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Wed Nov 9 21:28:32 2022 +0800

    mISDN: fix possible memory leak in mISDN_dsp_element_register()
    
    [ Upstream commit 98a2ac1ca8fd6eca6867726fe238d06e75eb1acd ]
    
    Afer commit 1fa5ae857bb1 ("driver core: get rid of struct device's
    bus_id string array"), the name of device is allocated dynamically,
    use put_device() to give up the reference, so that the name can be
    freed in kobject_cleanup() when the refcount is 0.
    
    The 'entry' is going to be freed in mISDN_dsp_dev_release(), so the
    kfree() is removed. list_del() is called in mISDN_dsp_dev_release(),
    so it need be initialized.
    
    Fixes: 1fa5ae857bb1 ("driver core: get rid of struct device's bus_id string array")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Link: https://lore.kernel.org/r/20221109132832.3270119-1-yangyingliang@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9c0f26b367e6d0eabb9a385b131094b8790c0d5
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Wed Nov 9 15:01:36 2022 +0000

    net: bgmac: Drop free_netdev() from bgmac_enet_remove()
    
    [ Upstream commit 6f928ab8ee9bfbcb0e631c47ea8a16c3d5116ff1 ]
    
    netdev is allocated in bgmac_alloc() with devm_alloc_etherdev() and will
    be auto released in ->remove and ->probe failure path. Using free_netdev()
    in bgmac_enet_remove() leads to double free.
    
    Fixes: 34a5102c3235 ("net: bgmac: allocate struct bgmac just once & don't copy it")
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    
    Link: https://lore.kernel.org/r/20221109150136.2991171-1-weiyongjun@huaweicloud.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30e12e2be27ac6c4be2af4163c70db381364706f
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Tue Nov 8 21:40:01 2022 +0800

    ata: libata-transport: fix double ata_host_put() in ata_tport_add()
    
    [ Upstream commit 8c76310740807ade5ecdab5888f70ecb6d35732e ]
    
    In the error path in ata_tport_add(), when calling put_device(),
    ata_tport_release() is called, it will put the refcount of 'ap->host'.
    
    And then ata_host_put() is called again, the refcount is decreased
    to 0, ata_host_release() is called, all ports are freed and set to
    null.
    
    When unbinding the device after failure, ata_host_stop() is called
    to release the resources, it leads a null-ptr-deref(), because all
    the ports all freed and null.
    
    Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
    CPU: 7 PID: 18671 Comm: modprobe Kdump: loaded Tainted: G            E      6.1.0-rc3+ #8
    pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    pc : ata_host_stop+0x3c/0x84 [libata]
    lr : release_nodes+0x64/0xd0
    Call trace:
     ata_host_stop+0x3c/0x84 [libata]
     release_nodes+0x64/0xd0
     devres_release_all+0xbc/0x1b0
     device_unbind_cleanup+0x20/0x70
     really_probe+0x158/0x320
     __driver_probe_device+0x84/0x120
     driver_probe_device+0x44/0x120
     __driver_attach+0xb4/0x220
     bus_for_each_dev+0x78/0xdc
     driver_attach+0x2c/0x40
     bus_add_driver+0x184/0x240
     driver_register+0x80/0x13c
     __pci_register_driver+0x4c/0x60
     ahci_pci_driver_init+0x30/0x1000 [ahci]
    
    Fix this by removing redundant ata_host_put() in the error path.
    
    Fixes: 2623c7a5f279 ("libata: add refcounting to ata_host")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a988dcd3dd9e691c5ccc3324b209688f3b5453e9
Author: Zeng Heng <zengheng4@huawei.com>
Date:   Thu Nov 10 16:20:56 2022 +0800

    pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map
    
    [ Upstream commit 91d5c5060ee24fe8da88cd585bb43b843d2f0dce ]
    
    Here is the BUG report by KASAN about null pointer dereference:
    
    BUG: KASAN: null-ptr-deref in strcmp+0x2e/0x50
    Read of size 1 at addr 0000000000000000 by task python3/2640
    Call Trace:
     strcmp
     __of_find_property
     of_find_property
     pinctrl_dt_to_map
    
    kasprintf() would return NULL pointer when kmalloc() fail to allocate.
    So directly return ENOMEM, if kasprintf() return NULL pointer.
    
    Fixes: 57291ce295c0 ("pinctrl: core device tree mapping table parsing support")
    Signed-off-by: Zeng Heng <zengheng4@huawei.com>
    Link: https://lore.kernel.org/r/20221110082056.2014898-1-zengheng4@huawei.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dd0b9dac4ca995eeef48fefcc5bd9ac705745edf
Author: Maciej W. Rozycki <macro@orcam.me.uk>
Date:   Fri Sep 23 19:52:08 2022 +0100

    parport_pc: Avoid FIFO port location truncation
    
    [ Upstream commit ab126f51c93a15093df604f661c9480854c005a3 ]
    
    Match the data type of a temporary holding a reference to the FIFO port
    with the type of the original reference coming from `struct parport',
    avoiding data truncation with LP64 ports such as SPARC64 that refer to
    PCI port I/O locations via their corresponding MMIO addresses and will
    therefore have non-zero bits in the high 32-bit part of the reference.
    And in any case it is cleaner to have the data types matching here.
    
    Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Link: https://lore.kernel.org/linux-pci/20220419033752.GA1101844@bhelgaas/
    Acked-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Link: https://lore.kernel.org/r/alpine.DEB.2.21.2209231912550.29493@angie.orcam.me.uk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0a5da069603ecc3d7aa09167450235462adaa295
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Fri Nov 4 10:13:34 2022 +0800

    siox: fix possible memory leak in siox_device_add()
    
    [ Upstream commit 6e63153db50059fb78b8a8447b132664887d24e3 ]
    
    If device_register() returns error in siox_device_add(),
    the name allocated by dev_set_name() need be freed. As
    comment of device_register() says, it should use put_device()
    to give up the reference in the error path. So fix this
    by calling put_device(), then the name can be freed in
    kobject_cleanup(), and sdevice is freed in siox_device_release(),
    set it to null in error path.
    
    Fixes: bbecb07fa0af ("siox: new driver framework for eckelmann SIOX")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Link: https://lore.kernel.org/r/20221104021334.618189-1-yangyingliang@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88c11cc2e96e93be5018d4678559bfe56c211420
Author: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Date:   Mon Nov 7 23:39:44 2022 +0300

    block: sed-opal: kmalloc the cmd/resp buffers
    
    [ Upstream commit f829230dd51974c1f4478900ed30bb77ba530b40 ]
    
    In accordance with [1] the DMA-able memory buffers must be
    cacheline-aligned otherwise the cache writing-back and invalidation
    performed during the mapping may cause the adjacent data being lost. It's
    specifically required for the DMA-noncoherent platforms [2]. Seeing the
    opal_dev.{cmd,resp} buffers are implicitly used for DMAs in the NVME and
    SCSI/SD drivers in framework of the nvme_sec_submit() and sd_sec_submit()
    methods respectively they must be cacheline-aligned to prevent the denoted
    problem. One of the option to guarantee that is to kmalloc the buffers
    [2]. Let's explicitly allocate them then instead of embedding into the
    opal_dev structure instance.
    
    Note this fix was inspired by the commit c94b7f9bab22 ("nvme-hwmon:
    kmalloc the NVME SMART log buffer").
    
    [1] Documentation/core-api/dma-api.rst
    [2] Documentation/core-api/dma-api-howto.rst
    
    Fixes: 455a7b238cd6 ("block: Add Sed-opal library")
    Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20221107203944.31686-1-Sergey.Semin@baikalelectronics.ru
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 92b15ab898c43812ea87cc6abfb2b6e6fb7d8907
Author: Chen Zhongjin <chenzhongjin@huawei.com>
Date:   Mon Oct 31 21:40:31 2022 +0800

    ASoC: soc-utils: Remove __exit for snd_soc_util_exit()
    
    [ Upstream commit 314d34fe7f0a5836cb0472950c1f17744b4efde8 ]
    
    snd_soc_util_exit() is called in __init snd_soc_init() for cleanup.
    Remove the __exit annotation for it to fix the build warning:
    
    WARNING: modpost: sound/soc/snd-soc-core.o: section mismatch in reference: init_module (section: .init.text) -> snd_soc_util_exit (section: .exit.text)
    
    Fixes: 6ec27c53886c ("ASoC: core: Fix use-after-free in snd_soc_exit()")
    Signed-off-by: Chen Zhongjin <chenzhongjin@huawei.com>
    Link: https://lore.kernel.org/r/20221031134031.256511-1-chenzhongjin@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aeb13df1c504671ec85a0232aab8d3546bef3e74
Author: Duoming Zhou <duoming@zju.edu.cn>
Date:   Sun Oct 2 12:07:09 2022 +0800

    tty: n_gsm: fix sleep-in-atomic-context bug in gsm_control_send
    
    [ Upstream commit 7b7dfe4833c70a11cdfa51b38705103bd31eddaa ]
    
    The function gsm_dlci_t1() is a timer handler that runs in an
    atomic context, but it calls "kzalloc(..., GFP_KERNEL)" that
    may sleep. As a result, the sleep-in-atomic-context bug will
    happen. The process is shown below:
    
    gsm_dlci_t1()
     gsm_dlci_open()
      gsm_modem_update()
       gsm_modem_upd_via_msc()
        gsm_control_send()
         kzalloc(sizeof(.., GFP_KERNEL) //may sleep
    
    This patch changes the gfp_t parameter of kzalloc() from GFP_KERNEL to
    GFP_ATOMIC in order to mitigate the bug.
    
    Fixes: e1eaea46bb40 ("tty: n_gsm line discipline")
    Signed-off-by: Duoming Zhou <duoming@zju.edu.cn>
    Link: https://lore.kernel.org/r/20221002040709.27849-1-duoming@zju.edu.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e401312ca6e180ee1bd65f6a766e99dd40aa95e7
Author: Shawn Guo <shawn.guo@linaro.org>
Date:   Wed Oct 12 20:13:53 2022 +0800

    serial: imx: Add missing .thaw_noirq hook
    
    [ Upstream commit 4561d8008a467cb05ac632a215391d6b787f40aa ]
    
    The following warning is seen with non-console UART instance when
    system hibernates.
    
    [   37.371969] ------------[ cut here ]------------
    [   37.376599] uart3_root_clk already disabled
    [   37.380810] WARNING: CPU: 0 PID: 296 at drivers/clk/clk.c:952 clk_core_disable+0xa4/0xb0
    ...
    [   37.506986] Call trace:
    [   37.509432]  clk_core_disable+0xa4/0xb0
    [   37.513270]  clk_disable+0x34/0x50
    [   37.516672]  imx_uart_thaw+0x38/0x5c
    [   37.520250]  platform_pm_thaw+0x30/0x6c
    [   37.524089]  dpm_run_callback.constprop.0+0x3c/0xd4
    [   37.528972]  device_resume+0x7c/0x160
    [   37.532633]  dpm_resume+0xe8/0x230
    [   37.536036]  hibernation_snapshot+0x288/0x430
    [   37.540397]  hibernate+0x10c/0x2e0
    [   37.543798]  state_store+0xc4/0xd0
    [   37.547203]  kobj_attr_store+0x1c/0x30
    [   37.550953]  sysfs_kf_write+0x48/0x60
    [   37.554619]  kernfs_fop_write_iter+0x118/0x1ac
    [   37.559063]  new_sync_write+0xe8/0x184
    [   37.562812]  vfs_write+0x230/0x290
    [   37.566214]  ksys_write+0x68/0xf4
    [   37.569529]  __arm64_sys_write+0x20/0x2c
    [   37.573452]  invoke_syscall.constprop.0+0x50/0xf0
    [   37.578156]  do_el0_svc+0x11c/0x150
    [   37.581648]  el0_svc+0x30/0x140
    [   37.584792]  el0t_64_sync_handler+0xe8/0xf0
    [   37.588976]  el0t_64_sync+0x1a0/0x1a4
    [   37.592639] ---[ end trace 56e22eec54676d75 ]---
    
    On hibernating, pm core calls into related hooks in sequence like:
    
        .freeze
        .freeze_noirq
        .thaw_noirq
        .thaw
    
    With .thaw_noirq hook being absent, the clock will be disabled in a
    unbalanced call which results the warning above.
    
        imx_uart_freeze()
            clk_prepare_enable()
        imx_uart_suspend_noirq()
            clk_disable()
        imx_uart_thaw
            clk_disable_unprepare()
    
    Adding the missing .thaw_noirq hook as imx_uart_resume_noirq() will have
    the call sequence corrected as below and thus fix the warning.
    
        imx_uart_freeze()
            clk_prepare_enable()
        imx_uart_suspend_noirq()
            clk_disable()
        imx_uart_resume_noirq()
            clk_enable()
        imx_uart_thaw
            clk_disable_unprepare()
    
    Fixes: 09df0b3464e5 ("serial: imx: fix endless loop during suspend")
    Reviewed-by: Martin Kaiser <martin@kaiser.cx>
    Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
    Link: https://lore.kernel.org/r/20221012121353.2346280-1-shawn.guo@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42784f62d8c94ee389e329fe3f8c21b19107f503
Author: Tony Lindgren <tony@atomide.com>
Date:   Fri Oct 28 14:00:44 2022 +0300

    serial: 8250: omap: Flush PM QOS work on remove
    
    [ Upstream commit d0b68629bd2fb61e0171a62f2e8da3db322f5cf6 ]
    
    Rebinding 8250_omap in a loop will at some point produce a warning for
    kernel/power/qos.c:296 cpu_latency_qos_update_request() with error
    "cpu_latency_qos_update_request called for unknown object". Let's flush
    the possibly pending PM QOS work scheduled from omap8250_runtime_suspend()
    before we disable runtime PM.
    
    Fixes: 61929cf0169d ("tty: serial: Add 8250-core based omap driver")
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Link: https://lore.kernel.org/r/20221028110044.54719-1-tony@atomide.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6bab569c1ceef8e36779dc923d742f9d9431e5bb
Author: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Date:   Thu Oct 13 13:23:39 2022 +0200

    serial: 8250_omap: remove wait loop from Errata i202 workaround
    
    [ Upstream commit e828e56684d61b17317e0cfdef83791fa61cb76b ]
    
    We were occasionally seeing the "Errata i202: timedout" on an AM335x
    board when repeatedly opening and closing a UART connected to an active
    sender. As new input may arrive at any time, it is possible to miss the
    "RX FIFO empty" condition, forcing the loop to wait until it times out.
    
    Nothing in the i202 Advisory states that such a wait is even necessary;
    other FIFO clear functions like serial8250_clear_fifos() do not wait
    either. For this reason, it seems safe to remove the wait, fixing the
    mentioned issue.
    
    Fixes: 61929cf0169d ("tty: serial: Add 8250-core based omap driver")
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
    Link: https://lore.kernel.org/r/20221013112339.2540767-1-matthias.schiffer@ew.tq-group.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3365e62239dc064019a244bde5686ac18527c22
Author: Chen Zhongjin <chenzhongjin@huawei.com>
Date:   Fri Oct 28 11:16:03 2022 +0800

    ASoC: core: Fix use-after-free in snd_soc_exit()
    
    [ Upstream commit 6ec27c53886c8963729885bcf2dd996eba2767a7 ]
    
    KASAN reports a use-after-free:
    
    BUG: KASAN: use-after-free in device_del+0xb5b/0xc60
    Read of size 8 at addr ffff888008655050 by task rmmod/387
    CPU: 2 PID: 387 Comm: rmmod
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996)
    Call Trace:
    <TASK>
    dump_stack_lvl+0x79/0x9a
    print_report+0x17f/0x47b
    kasan_report+0xbb/0xf0
    device_del+0xb5b/0xc60
    platform_device_del.part.0+0x24/0x200
    platform_device_unregister+0x2e/0x40
    snd_soc_exit+0xa/0x22 [snd_soc_core]
    __do_sys_delete_module.constprop.0+0x34f/0x5b0
    do_syscall_64+0x3a/0x90
    entry_SYSCALL_64_after_hwframe+0x63/0xcd
    ...
    </TASK>
    
    It's bacause in snd_soc_init(), snd_soc_util_init() is possble to fail,
    but its ret is ignored, which makes soc_dummy_dev unregistered twice.
    
    snd_soc_init()
        snd_soc_util_init()
            platform_device_register_simple(soc_dummy_dev)
            platform_driver_register() # fail
            platform_device_unregister(soc_dummy_dev)
        platform_driver_register() # success
    ...
    snd_soc_exit()
        snd_soc_util_exit()
        # soc_dummy_dev will be unregistered for second time
    
    To fix it, handle error and stop snd_soc_init() when util_init() fail.
    Also clean debugfs when util_init() or driver_register() fail.
    
    Fixes: fb257897bf20 ("ASoC: Work around allmodconfig failure")
    Signed-off-by: Chen Zhongjin <chenzhongjin@huawei.com>
    Link: https://lore.kernel.org/r/20221028031603.59416-1-chenzhongjin@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fbe7cb8400700ddbd1a631c3a8b66604a6d0f479
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Mon Oct 31 16:10:33 2022 -0700

    Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm
    
    [ Upstream commit f937b758a188d6fd328a81367087eddbb2fce50f ]
    
    l2cap_global_chan_by_psm shall not return fixed channels as they are not
    meant to be connected by (S)PSM.
    
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Reviewed-by: Tedd Ho-Jeong An <tedd.an@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c8673650fbef615ca999f9aad3273f8628cb141
Author: Filipe Manana <fdmanana@suse.com>
Date:   Tue Nov 1 16:15:40 2022 +0000

    btrfs: remove pointless and double ulist frees in error paths of qgroup tests
    
    [ Upstream commit d0ea17aec12ea0f7b9d2ed727d8ef8169d1e7699 ]
    
    Several places in the qgroup self tests follow the pattern of freeing the
    ulist pointer they passed to btrfs_find_all_roots() if the call to that
    function returned an error. That is pointless because that function always
    frees the ulist in case it returns an error.
    
    Also In some places like at test_multiple_refs(), after a call to
    btrfs_qgroup_account_extent() we also leave "old_roots" and "new_roots"
    pointing to ulists that were freed, because btrfs_qgroup_account_extent()
    has freed those ulists, and if after that the next call to
    btrfs_find_all_roots() fails, we call ulist_free() on the "old_roots"
    ulist again, resulting in a double free.
    
    So remove those calls to reduce the code size and avoid double ulist
    free in case of an error.
    
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1997320501dca8dfdda58a5ddd8f9366ce87facc
Author: Nathan Huckleberry <nhuck@google.com>
Date:   Tue Sep 13 13:55:44 2022 -0700

    drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid
    
    [ Upstream commit fc007fb815ab5395c3962c09b79a1630b0fbed9c ]
    
    The mode_valid field in drm_connector_helper_funcs is expected to be of
    type:
    enum drm_mode_status (* mode_valid) (struct drm_connector *connector,
                                         struct drm_display_mode *mode);
    
    The mismatched return type breaks forward edge kCFI since the underlying
    function definition does not match the function hook definition.
    
    The return type of imx_tve_connector_mode_valid should be changed from
    int to enum drm_mode_status.
    
    Reported-by: Dan Carpenter <error27@gmail.com>
    Link: https://github.com/ClangBuiltLinux/linux/issues/1703
    Cc: llvm@lists.linux.dev
    Signed-off-by: Nathan Huckleberry <nhuck@google.com>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220913205544.155106-1-nhuck@google.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f9b9ecd5400521df6f46bc4d926c35ab7d4d1211
Author: Benjamin Coddington <bcodding@redhat.com>
Date:   Wed Oct 19 12:09:18 2022 -0400

    NFSv4: Retry LOCK on OLD_STATEID during delegation return
    
    [ Upstream commit f5ea16137a3fa2858620dc9084466491c128535f ]
    
    There's a small window where a LOCK sent during a delegation return can
    race with another OPEN on client, but the open stateid has not yet been
    updated.  In this case, the client doesn't handle the OLD_STATEID error
    from the server and will lose this lock, emitting:
    "NFS: nfs4_handle_delegation_recall_error: unhandled error -10024".
    
    Fix this by sending the task through the nfs4 error handling in
    nfs4_lock_done() when we may have to reconcile our stateid with what the
    server believes it to be.  For this case, the result is a retry of the
    LOCK operation with the updated stateid.
    
    Reported-by: Gonzalo Siero Humet <gsierohu@redhat.com>
    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c46416ab0484f3e94d533e95ec11380c9a15fcd
Author: Ricardo Cañuelo <ricardo.canuelo@collabora.com>
Date:   Mon Oct 10 08:38:11 2022 +0200

    selftests/intel_pstate: fix build for ARCH=x86_64
    
    [ Upstream commit beb7d862ed4ac6aa14625418970f22a7d55b8615 ]
    
    Handle the scenario where the build is launched with the ARCH envvar
    defined as x86_64.
    
    Signed-off-by: Ricardo Cañuelo <ricardo.canuelo@collabora.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 77f25d3d2b2be72269b8ad29085c0e0c31784507
Author: Ricardo Cañuelo <ricardo.canuelo@collabora.com>
Date:   Mon Oct 10 08:37:02 2022 +0200

    selftests/futex: fix build for clang
    
    [ Upstream commit 03cab65a07e083b6c1010fbc8f9b817e9aca75d9 ]
    
    Don't use the test-specific header files as source files to force a
    target dependency, as clang will complain if more than one source file
    is used for a compile command with a single '-o' flag.
    
    Use the proper Makefile variables instead as defined in
    tools/testing/selftests/lib.mk.
    
    Signed-off-by: Ricardo Cañuelo <ricardo.canuelo@collabora.com>
    Reviewed-by: André Almeida <andrealmeid@igalia.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ba3e454cc28e77d3bd543db2dcfa0239c852523
Author: Mauro Lima <mauro.lima@eclypsium.com>
Date:   Wed Oct 12 12:21:35 2022 -0300

    spi: intel: Fix the offset to get the 64K erase opcode
    
    [ Upstream commit 6a43cd02ddbc597dc9a1f82c1e433f871a2f6f06 ]
    
    According to documentation, the 64K erase opcode is located in VSCC
    range [16:23] instead of [8:15].
    Use the proper value to shift the mask over the correct range.
    
    Signed-off-by: Mauro Lima <mauro.lima@eclypsium.com>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Link: https://lore.kernel.org/r/20221012152135.28353-1-mauro.lima@eclypsium.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dae5c712f1da51e745ec9ff475bb43a7c86a1624
Author: Zhang Qilong <zhangqilong3@huawei.com>
Date:   Mon Oct 10 19:48:52 2022 +0800

    ASoC: wm8997: Revert "ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe"
    
    [ Upstream commit 68ce83e3bb26feba0fcdd59667fde942b3a600a1 ]
    
    This reverts commit 41a736ac20602f64773e80f0f5b32cde1830a44a.
    
    The pm_runtime_disable is redundant when error returns in
    wm8997_probe, we just revert the old patch to fix it.
    
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20221010114852.88127-4-zhangqilong3@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 523d5a0a3d2e4b2fa29b788a502d4a426128b556
Author: Zhang Qilong <zhangqilong3@huawei.com>
Date:   Mon Oct 10 19:48:51 2022 +0800

    ASoC: wm5110: Revert "ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe"
    
    [ Upstream commit 7d4e966f4cd73ff69bf06934e8e14a33fb7ef447 ]
    
    This reverts commit 86b46bf1feb83898d89a2b4a8d08d21e9ea277a7.
    
    The pm_runtime_disable is redundant when error returns in
    wm5110_probe, we just revert the old patch to fix it.
    
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20221010114852.88127-3-zhangqilong3@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5315a814c505c9f59beabeb70b624b63c96cf294
Author: Zhang Qilong <zhangqilong3@huawei.com>
Date:   Mon Oct 10 19:48:50 2022 +0800

    ASoC: wm5102: Revert "ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe"
    
    [ Upstream commit de71d7567e358effd06dfc3e2a154b25f1331c10 ]
    
    This reverts commit fcbb60820cd3008bb44334a0395e5e57ccb77329.
    
    The pm_runtime_disable is redundant when error returns in
    wm5102_probe, we just revert the old patch to fix it.
    
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20221010114852.88127-2-zhangqilong3@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e5683e13513a8e7da175d2873e04745cb8feb110
Author: Borislav Petkov <bp@suse.de>
Date:   Mon Nov 14 12:44:01 2022 +0100

    x86/cpu: Restore AMD's DE_CFG MSR after resume
    
    commit 2632daebafd04746b4b96c2f26a6021bc38f6209 upstream.
    
    DE_CFG contains the LFENCE serializing bit, restore it on resume too.
    This is relevant to older families due to the way how they do S3.
    
    Unify and correct naming while at it.
    
    Fixes: e4d0e84e4907 ("x86/cpu/AMD: Make LFENCE a serializing instruction")
    Reported-by: Andrew Cooper <Andrew.Cooper3@citrix.com>
    Reported-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: <stable@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 310f0855352ee4b2eb38855c99185c23e6e1496b
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Nov 7 18:00:11 2022 +0000

    net: tun: call napi_schedule_prep() to ensure we own a napi
    
    commit 07d120aa33cc9d9115753d159f64d20c94458781 upstream.
    
    A recent patch exposed another issue in napi_get_frags()
    caught by syzbot [1]
    
    Before feeding packets to GRO, and calling napi_complete()
    we must first grab NAPI_STATE_SCHED.
    
    [1]
    WARNING: CPU: 0 PID: 3612 at net/core/dev.c:6076 napi_complete_done+0x45b/0x880 net/core/dev.c:6076
    Modules linked in:
    CPU: 0 PID: 3612 Comm: syz-executor408 Not tainted 6.1.0-rc3-syzkaller-00175-g1118b2049d77 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
    RIP: 0010:napi_complete_done+0x45b/0x880 net/core/dev.c:6076
    Code: c1 ea 03 0f b6 14 02 4c 89 f0 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 24 04 00 00 41 89 5d 1c e9 73 fc ff ff e8 b5 53 22 fa <0f> 0b e9 82 fe ff ff e8 a9 53 22 fa 48 8b 5c 24 08 31 ff 48 89 de
    RSP: 0018:ffffc90003c4f920 EFLAGS: 00010293
    RAX: 0000000000000000 RBX: 0000000000000030 RCX: 0000000000000000
    RDX: ffff8880251c0000 RSI: ffffffff875a58db RDI: 0000000000000007
    RBP: 0000000000000001 R08: 0000000000000007 R09: 0000000000000000
    R10: 0000000000000001 R11: 0000000000000001 R12: ffff888072d02628
    R13: ffff888072d02618 R14: ffff888072d02634 R15: 0000000000000000
    FS: 0000555555f13300(0000) GS:ffff8880b9a00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000055c44d3892b8 CR3: 00000000172d2000 CR4: 00000000003506f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
    <TASK>
    napi_complete include/linux/netdevice.h:510 [inline]
    tun_get_user+0x206d/0x3a60 drivers/net/tun.c:1980
    tun_chr_write_iter+0xdb/0x200 drivers/net/tun.c:2027
    call_write_iter include/linux/fs.h:2191 [inline]
    do_iter_readv_writev+0x20b/0x3b0 fs/read_write.c:735
    do_iter_write+0x182/0x700 fs/read_write.c:861
    vfs_writev+0x1aa/0x630 fs/read_write.c:934
    do_writev+0x133/0x2f0 fs/read_write.c:977
    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
    do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
    entry_SYSCALL_64_after_hwframe+0x63/0xcd
    RIP: 0033:0x7f37021a3c19
    
    Fixes: 1118b2049d77 ("net: tun: Fix memory leaks of napi_get_frags")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Wang Yufen <wangyufen@huawei.com>
    Link: https://lore.kernel.org/r/20221107180011.188437-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e36ea180f4c0cc01a90e931de542d11e80b9fcb4
Author: Tudor Ambarus <tudor.ambarus@microchip.com>
Date:   Tue Oct 25 12:02:49 2022 +0300

    dmaengine: at_hdmac: Check return code of dma_async_device_register
    
    commit c47e6403fa099f200868d6b106701cb42d181d2b upstream.
    
    dma_async_device_register() can fail, check the return code and display an
    error.
    
    Fixes: dc78baa2b90b ("dmaengine: at_hdmac: new driver for the Atmel AHB DMA Controller")
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Cc: stable@vger.kernel.org
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20221025090306.297886-1-tudor.ambarus@microchip.com
    Link: https://lore.kernel.org/r/20221025090306.297886-16-tudor.ambarus@microchip.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7460aff24351f789ced7183f3c2dab9d01b0e96
Author: Tudor Ambarus <tudor.ambarus@microchip.com>
Date:   Tue Oct 25 12:02:48 2022 +0300

    dmaengine: at_hdmac: Fix impossible condition
    
    commit 28cbe5a0a46a6637adbda52337d7b2777fc04027 upstream.
    
    The iterator can not be greater than ATC_MAX_DSCR_TRIALS, as the for loop
    will stop when i == ATC_MAX_DSCR_TRIALS. While here, use the common "i"
    name for the iterator.
    
    Fixes: 93dce3a6434f ("dmaengine: at_hdmac: fix residue computation")
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Cc: stable@vger.kernel.org
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20221025090306.297886-1-tudor.ambarus@microchip.com
    Link: https://lore.kernel.org/r/20221025090306.297886-15-tudor.ambarus@microchip.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4bdb8474facb4a1cc2a3e708d2db08c49220e99f
Author: Tudor Ambarus <tudor.ambarus@microchip.com>
Date:   Tue Oct 25 12:02:47 2022 +0300

    dmaengine: at_hdmac: Don't allow CPU to reorder channel enable
    
    commit 580ee84405c27d6ed419abe4d2b3de1968abdafd upstream.
    
    at_hdmac uses __raw_writel for register writes. In the absence of a
    barrier, the CPU may reorder the register operations.
    Introduce a write memory barrier so that the CPU does not reorder the
    channel enable, thus the start of the transfer, without making sure that
    all the pre-required register fields are already written.
    
    Fixes: dc78baa2b90b ("dmaengine: at_hdmac: new driver for the Atmel AHB DMA Controller")
    Reported-by: Peter Rosin <peda@axentia.se>
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20221025090306.297886-1-tudor.ambarus@microchip.com
    Link: https://lore.kernel.org/r/20221025090306.297886-14-tudor.ambarus@microchip.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d75b3e3a3e886077e7bb4acc0b9c3e01f92e080
Author: Tudor Ambarus <tudor.ambarus@microchip.com>
Date:   Tue Oct 25 12:02:46 2022 +0300

    dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors
    
    commit ef2cb4f0ce479f77607b04c4b0414bf32f863ee8 upstream.
    
    In case the controller detected an error, the code took the chance to move
    all the queued (submitted) descriptors to the active (issued) list. This
    was wrong as if there were any descriptors in the submitted list they were
    moved to the issued list without actually issuing them to the controller,
    thus a completion could be raised without even fireing the descriptor.
    
    Fixes: dc78baa2b90b ("dmaengine: at_hdmac: new driver for the Atmel AHB DMA Controller")
    Reported-by: Peter Rosin <peda@axentia.se>
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20221025090306.297886-1-tudor.ambarus@microchip.com
    Link: https://lore.kernel.org/r/20221025090306.297886-13-tudor.ambarus@microchip.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f4c890ee08f2f69be15b3db5e91280b57420c17
Author: Tudor Ambarus <tudor.ambarus@microchip.com>
Date:   Tue Oct 25 12:02:36 2022 +0300

    dmaengine: at_hdmac: Don't start transactions at tx_submit level
    
    commit 7176a6a8982d311e50a7c1168868d26e65bbba19 upstream.
    
    tx_submit is supposed to push the current transaction descriptor to a
    pending queue, waiting for issue_pending() to be called. issue_pending()
    must start the transfer, not tx_submit(), thus remove atc_dostart() from
    atc_tx_submit(). Clients of at_xdmac that assume that tx_submit() starts
    the transfer must be updated and call dma_async_issue_pending() if they
    miss to call it.
    The vdbg print was moved to after the lock is released. It is desirable to
    do the prints without the lock held if possible, and because the if
    statement disappears there's no reason why to do the print while holding
    the lock.
    
    Fixes: dc78baa2b90b ("dmaengine: at_hdmac: new driver for the Atmel AHB DMA Controller")
    Reported-by: Peter Rosin <peda@axentia.se>
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20221025090306.297886-1-tudor.ambarus@microchip.com
    Link: https://lore.kernel.org/r/20221025090306.297886-3-tudor.ambarus@microchip.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd57c0457829439fcc7b31936d4c13fe3c2bbdce
Author: Tudor Ambarus <tudor.ambarus@microchip.com>
Date:   Tue Oct 25 12:02:35 2022 +0300

    dmaengine: at_hdmac: Fix at_lli struct definition
    
    commit f1171bbdd2ba2a50ee64bb198a78c268a5baf5f1 upstream.
    
    Those hardware registers are all of 32 bits, while dma_addr_t ca be of
    type u64 or u32 depending on CONFIG_ARCH_DMA_ADDR_T_64BIT. Force u32 to
    comply with what the hardware expects.
    
    Fixes: dc78baa2b90b ("dmaengine: at_hdmac: new driver for the Atmel AHB DMA Controller")
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Cc: stable@vger.kernel.org
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20221025090306.297886-1-tudor.ambarus@microchip.com
    Link: https://lore.kernel.org/r/20221025090306.297886-2-tudor.ambarus@microchip.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d79d2463dcb9e89bf576fc3bba28607309ce38ef
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Jun 8 13:18:39 2022 -0700

    cert host tools: Stop complaining about deprecated OpenSSL functions
    
    commit 6bfb56e93bcef41859c2d5ab234ffd80b691be35 upstream.
    
    OpenSSL 3.0 deprecated the OpenSSL's ENGINE API.  That is as may be, but
    the kernel build host tools still use it.  Disable the warning about
    deprecated declarations until somebody who cares fixes it.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a6051d734f1ed0031e2216f9a538621235c11a4
Author: ZhangPeng <zhangpeng362@huawei.com>
Date:   Wed Nov 9 01:35:42 2022 +0000

    udf: Fix a slab-out-of-bounds write bug in udf_find_entry()
    
    commit c8af247de385ce49afabc3bf1cf4fd455c94bfe8 upstream.
    
    Syzbot reported a slab-out-of-bounds Write bug:
    
    loop0: detected capacity change from 0 to 2048
    ==================================================================
    BUG: KASAN: slab-out-of-bounds in udf_find_entry+0x8a5/0x14f0
    fs/udf/namei.c:253
    Write of size 105 at addr ffff8880123ff896 by task syz-executor323/3610
    
    CPU: 0 PID: 3610 Comm: syz-executor323 Not tainted
    6.1.0-rc2-syzkaller-00105-gb229b6ca5abb #0
    Hardware name: Google Compute Engine/Google Compute Engine, BIOS
    Google 10/11/2022
    Call Trace:
     <TASK>
     __dump_stack lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0x1b1/0x28e lib/dump_stack.c:106
     print_address_description+0x74/0x340 mm/kasan/report.c:284
     print_report+0x107/0x1f0 mm/kasan/report.c:395
     kasan_report+0xcd/0x100 mm/kasan/report.c:495
     kasan_check_range+0x2a7/0x2e0 mm/kasan/generic.c:189
     memcpy+0x3c/0x60 mm/kasan/shadow.c:66
     udf_find_entry+0x8a5/0x14f0 fs/udf/namei.c:253
     udf_lookup+0xef/0x340 fs/udf/namei.c:309
     lookup_open fs/namei.c:3391 [inline]
     open_last_lookups fs/namei.c:3481 [inline]
     path_openat+0x10e6/0x2df0 fs/namei.c:3710
     do_filp_open+0x264/0x4f0 fs/namei.c:3740
     do_sys_openat2+0x124/0x4e0 fs/open.c:1310
     do_sys_open fs/open.c:1326 [inline]
     __do_sys_creat fs/open.c:1402 [inline]
     __se_sys_creat fs/open.c:1396 [inline]
     __x64_sys_creat+0x11f/0x160 fs/open.c:1396
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    RIP: 0033:0x7ffab0d164d9
    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 c0 ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007ffe1a7e6bb8 EFLAGS: 00000246 ORIG_RAX: 0000000000000055
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007ffab0d164d9
    RDX: 00007ffab0d164d9 RSI: 0000000000000000 RDI: 0000000020000180
    RBP: 00007ffab0cd5a10 R08: 0000000000000000 R09: 0000000000000000
    R10: 00005555573552c0 R11: 0000000000000246 R12: 00007ffab0cd5aa0
    R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
     </TASK>
    
    Allocated by task 3610:
     kasan_save_stack mm/kasan/common.c:45 [inline]
     kasan_set_track+0x3d/0x60 mm/kasan/common.c:52
     ____kasan_kmalloc mm/kasan/common.c:371 [inline]
     __kasan_kmalloc+0x97/0xb0 mm/kasan/common.c:380
     kmalloc include/linux/slab.h:576 [inline]
     udf_find_entry+0x7b6/0x14f0 fs/udf/namei.c:243
     udf_lookup+0xef/0x340 fs/udf/namei.c:309
     lookup_open fs/namei.c:3391 [inline]
     open_last_lookups fs/namei.c:3481 [inline]
     path_openat+0x10e6/0x2df0 fs/namei.c:3710
     do_filp_open+0x264/0x4f0 fs/namei.c:3740
     do_sys_openat2+0x124/0x4e0 fs/open.c:1310
     do_sys_open fs/open.c:1326 [inline]
     __do_sys_creat fs/open.c:1402 [inline]
     __se_sys_creat fs/open.c:1396 [inline]
     __x64_sys_creat+0x11f/0x160 fs/open.c:1396
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    The buggy address belongs to the object at ffff8880123ff800
     which belongs to the cache kmalloc-256 of size 256
    The buggy address is located 150 bytes inside of
     256-byte region [ffff8880123ff800, ffff8880123ff900)
    
    The buggy address belongs to the physical page:
    page:ffffea000048ff80 refcount:1 mapcount:0 mapping:0000000000000000
    index:0x0 pfn:0x123fe
    head:ffffea000048ff80 order:1 compound_mapcount:0 compound_pincount:0
    flags: 0xfff00000010200(slab|head|node=0|zone=1|lastcpupid=0x7ff)
    raw: 00fff00000010200 ffffea00004b8500 dead000000000003 ffff888012041b40
    raw: 0000000000000000 0000000080100010 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    page_owner tracks the page as allocated
    page last allocated via order 0, migratetype Unmovable, gfp_mask 0x0(),
    pid 1, tgid 1 (swapper/0), ts 1841222404, free_ts 0
     create_dummy_stack mm/page_owner.c:67 [inline]
     register_early_stack+0x77/0xd0 mm/page_owner.c:83
     init_page_owner+0x3a/0x731 mm/page_owner.c:93
     kernel_init_freeable+0x41c/0x5d5 init/main.c:1629
     kernel_init+0x19/0x2b0 init/main.c:1519
    page_owner free stack trace missing
    
    Memory state around the buggy address:
     ffff8880123ff780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff8880123ff800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    >ffff8880123ff880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06
                                                                    ^
     ffff8880123ff900: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff8880123ff980: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    ==================================================================
    
    Fix this by changing the memory size allocated for copy_name from
    UDF_NAME_LEN(254) to UDF_NAME_LEN_CS0(255), because the total length
    (lfi) of subsequent memcpy can be up to 255.
    
    CC: stable@vger.kernel.org
    Reported-by: syzbot+69c9fdccc6dd08961d34@syzkaller.appspotmail.com
    Fixes: 066b9cded00b ("udf: Use separate buffer for copying split names")
    Signed-off-by: ZhangPeng <zhangpeng362@huawei.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20221109013542.442790-1-zhangpeng362@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 158dddd12008c75d69be1ffee34a6392ba52c76a
Author: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Date:   Tue Nov 1 10:53:54 2022 +0800

    btrfs: selftests: fix wrong error check in btrfs_free_dummy_root()
    
    commit 9b2f20344d450137d015b380ff0c2e2a6a170135 upstream.
    
    The btrfs_alloc_dummy_root() uses ERR_PTR as the error return value
    rather than NULL, if error happened, there will be a NULL pointer
    dereference:
    
      BUG: KASAN: null-ptr-deref in btrfs_free_dummy_root+0x21/0x50 [btrfs]
      Read of size 8 at addr 000000000000002c by task insmod/258926
    
      CPU: 2 PID: 258926 Comm: insmod Tainted: G        W          6.1.0-rc2+ #5
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1.fc33 04/01/2014
      Call Trace:
       <TASK>
       dump_stack_lvl+0x34/0x44
       kasan_report+0xb7/0x140
       kasan_check_range+0x145/0x1a0
       btrfs_free_dummy_root+0x21/0x50 [btrfs]
       btrfs_test_free_space_cache+0x1a8c/0x1add [btrfs]
       btrfs_run_sanity_tests+0x65/0x80 [btrfs]
       init_btrfs_fs+0xec/0x154 [btrfs]
       do_one_initcall+0x87/0x2a0
       do_init_module+0xdf/0x320
       load_module+0x3006/0x3390
       __do_sys_finit_module+0x113/0x1b0
       do_syscall_64+0x35/0x80
     entry_SYSCALL_64_after_hwframe+0x46/0xb0
    
    Fixes: aaedb55bc08f ("Btrfs: add tests for btrfs_get_extent")
    CC: stable@vger.kernel.org # 4.9+
    Reviewed-by: Anand Jain <anand.jain@oracle.com>
    Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.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 2ed6fcc913d7c975f29a43ad896487e1863eb43e
Author: Jorge Lopez <jorge.lopez2@hp.com>
Date:   Fri Oct 28 10:55:27 2022 -0500

    platform/x86: hp_wmi: Fix rfkill causing soft blocked wifi
    
    commit 1598bfa8e1faa932de42e1ee7628a1c4c4263f0a upstream.
    
    After upgrading BIOS to U82 01.02.01 Rev.A, the console is flooded
    strange char "^@" which printed out every second and makes login
    nearly impossible. Also the below messages were shown both in console
    and journal/dmesg every second:
    
    usb 1-3: Device not responding to setup address.
    usb 1-3: device not accepting address 4, error -71
    usb 1-3: device descriptor read/all, error -71
    usb usb1-port3: unable to enumerate USB device
    
    Wifi is soft blocked by checking rfkill. When unblocked manually,
    after few seconds it would be soft blocked again. So I was suspecting
    something triggered rfkill to soft block wifi.  At the end it was
    fixed by removing hp_wmi module.
    
    The root cause is the way hp-wmi driver handles command 1B on
    post-2009 BIOS.  In pre-2009 BIOS, command 1Bh return 0x4 to indicate
    that BIOS no longer controls the power for the wireless devices.
    
    Signed-off-by: Jorge Lopez <jorge.lopez2@hp.com>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216468
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Link: https://lore.kernel.org/r/20221028155527.7724-1-jorge.lopez2@hp.com
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3b997efb8fa6ac2cc7c57ad781de487b75bdd5f
Author: Matthew Auld <matthew.auld@intel.com>
Date:   Fri Oct 28 16:50:26 2022 +0100

    drm/i915/dmabuf: fix sg_table handling in map_dma_buf
    
    commit f90daa975911961b65070ec72bd7dd8d448f9ef7 upstream.
    
    We need to iterate over the original entries here for the sg_table,
    pulling out the struct page for each one, to be remapped. However
    currently this incorrectly iterates over the final dma mapped entries,
    which is likely just one gigantic sg entry if the iommu is enabled,
    leading to us only mapping the first struct page (and any physically
    contiguous pages following it), even if there is potentially lots more
    data to follow.
    
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/7306
    Fixes: 1286ff739773 ("i915: add dmabuf/prime buffer sharing support.")
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Cc: <stable@vger.kernel.org> # v3.5+
    Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20221028155029.494736-1-matthew.auld@intel.com
    (cherry picked from commit 28d52f99bbca7227008cf580c9194c9b3516968e)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4736ab5542112fe0a40f140a0a0b072954f34da
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Fri Nov 4 23:29:59 2022 +0900

    nilfs2: fix use-after-free bug of ns_writer on remount
    
    commit 8cccf05fe857a18ee26e20d11a8455a73ffd4efd upstream.
    
    If a nilfs2 filesystem is downgraded to read-only due to metadata
    corruption on disk and is remounted read/write, or if emergency read-only
    remount is performed, detaching a log writer and synchronizing the
    filesystem can be done at the same time.
    
    In these cases, use-after-free of the log writer (hereinafter
    nilfs->ns_writer) can happen as shown in the scenario below:
    
     Task1                               Task2
     --------------------------------    ------------------------------
     nilfs_construct_segment
       nilfs_segctor_sync
         init_wait
         init_waitqueue_entry
         add_wait_queue
         schedule
                                         nilfs_remount (R/W remount case)
                                           nilfs_attach_log_writer
                                             nilfs_detach_log_writer
                                               nilfs_segctor_destroy
                                                 kfree
         finish_wait
           _raw_spin_lock_irqsave
             __raw_spin_lock_irqsave
               do_raw_spin_lock
                 debug_spin_lock_before  <-- use-after-free
    
    While Task1 is sleeping, nilfs->ns_writer is freed by Task2.  After Task1
    waked up, Task1 accesses nilfs->ns_writer which is already freed.  This
    scenario diagram is based on the Shigeru Yoshida's post [1].
    
    This patch fixes the issue by not detaching nilfs->ns_writer on remount so
    that this UAF race doesn't happen.  Along with this change, this patch
    also inserts a few necessary read-only checks with superblock instance
    where only the ns_writer pointer was used to check if the filesystem is
    read-only.
    
    Link: https://syzkaller.appspot.com/bug?id=79a4c002e960419ca173d55e863bd09e8112df8b
    Link: https://lkml.kernel.org/r/20221103141759.1836312-1-syoshida@redhat.com [1]
    Link: https://lkml.kernel.org/r/20221104142959.28296-1-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+f816fa82f8783f7a02bb@syzkaller.appspotmail.com
    Reported-by: Shigeru Yoshida <syoshida@redhat.com>
    Tested-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 f0cc93080d4c09510b74ecba87fd778cca390bb1
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Sat Oct 29 13:49:12 2022 +0900

    nilfs2: fix deadlock in nilfs_count_free_blocks()
    
    commit 8ac932a4921a96ca52f61935dbba64ea87bbd5dc upstream.
    
    A semaphore deadlock can occur if nilfs_get_block() detects metadata
    corruption while locating data blocks and a superblock writeback occurs at
    the same time:
    
    task 1                               task 2
    ------                               ------
    * A file operation *
    nilfs_truncate()
      nilfs_get_block()
        down_read(rwsem A) <--
        nilfs_bmap_lookup_contig()
          ...                            generic_shutdown_super()
                                           nilfs_put_super()
                                             * Prepare to write superblock *
                                             down_write(rwsem B) <--
                                             nilfs_cleanup_super()
          * Detect b-tree corruption *         nilfs_set_log_cursor()
          nilfs_bmap_convert_error()             nilfs_count_free_blocks()
            __nilfs_error()                        down_read(rwsem A) <--
              nilfs_set_error()
                down_write(rwsem B) <--
    
                               *** DEADLOCK ***
    
    Here, nilfs_get_block() readlocks rwsem A (= NILFS_MDT(dat_inode)->mi_sem)
    and then calls nilfs_bmap_lookup_contig(), but if it fails due to metadata
    corruption, __nilfs_error() is called from nilfs_bmap_convert_error()
    inside the lock section.
    
    Since __nilfs_error() calls nilfs_set_error() unless the filesystem is
    read-only and nilfs_set_error() attempts to writelock rwsem B (=
    nilfs->ns_sem) to write back superblock exclusively, hierarchical lock
    acquisition occurs in the order rwsem A -> rwsem B.
    
    Now, if another task starts updating the superblock, it may writelock
    rwsem B during the lock sequence above, and can deadlock trying to
    readlock rwsem A in nilfs_count_free_blocks().
    
    However, there is actually no need to take rwsem A in
    nilfs_count_free_blocks() because it, within the lock section, only reads
    a single integer data on a shared struct with
    nilfs_sufile_get_ncleansegs().  This has been the case after commit
    aa474a220180 ("nilfs2: add local variable to cache the number of clean
    segments"), that is, even before this bug was introduced.
    
    So, this resolves the deadlock problem by just not taking the semaphore in
    nilfs_count_free_blocks().
    
    Link: https://lkml.kernel.org/r/20221029044912.9139-1-konishi.ryusuke@gmail.com
    Fixes: e828949e5b42 ("nilfs2: call nilfs_error inside bmap routines")
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+45d6ce7b7ad7ef455d03@syzkaller.appspotmail.com
    Tested-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Cc: <stable@vger.kernel.org>    [2.6.38+
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b05d8531a4f8cbf3a64b7fe39fec0d1062345203
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Tue Nov 8 10:49:34 2022 -0700

    vmlinux.lds.h: Fix placement of '.data..decrypted' section
    
    commit 000f8870a47bdc36730357883b6aef42bced91ee upstream.
    
    Commit d4c639990036 ("vmlinux.lds.h: Avoid orphan section with !SMP")
    fixed an orphan section warning by adding the '.data..decrypted' section
    to the linker script under the PERCPU_DECRYPTED_SECTION define but that
    placement introduced a panic with !SMP, as the percpu sections are not
    instantiated with that configuration so attempting to access variables
    defined with DEFINE_PER_CPU_DECRYPTED() will result in a page fault.
    
    Move the '.data..decrypted' section to the DATA_MAIN define so that the
    variables in it are properly instantiated at boot time with
    CONFIG_SMP=n.
    
    Cc: stable@vger.kernel.org
    Fixes: d4c639990036 ("vmlinux.lds.h: Avoid orphan section with !SMP")
    Link: https://lore.kernel.org/cbbd3548-880c-d2ca-1b67-5bb93b291d5f@huawei.com/
    Debugged-by: Ard Biesheuvel <ardb@kernel.org>
    Reported-by: Zhao Wenhui <zhaowenhui8@huawei.com>
    Tested-by: xiafukun <xiafukun@huawei.com>
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Link: https://lore.kernel.org/r/20221108174934.3384275-1-nathan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f1a8b9f8b5e9f85b30a204e4b6a958410ae9fdcf
Author: Jussi Laako <jussi@sonarnerd.net>
Date:   Wed Nov 9 00:12:41 2022 +0200

    ALSA: usb-audio: Add DSD support for Accuphase DAC-60
    
    commit 8cbd4725ffff3eface1f5f3397af02acad5b2831 upstream.
    
    Accuphase DAC-60 option card supports native DSD up to DSD256,
    but doesn't have support for auto-detection. Explicitly enable
    DSD support for the correct altsetting.
    
    Signed-off-by: Jussi Laako <jussi@sonarnerd.net>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20221108221241.1220878-1-jussi@sonarnerd.net
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7cd6f22b40adca84b40eb685042925d1f38d9c3
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Nov 8 15:07:21 2022 +0100

    ALSA: usb-audio: Add quirk entry for M-Audio Micro
    
    commit 2f01a612d4758b45f775dbb88a49cf534ba47275 upstream.
    
    M-Audio Micro (0762:201a) defines the descriptor as vendor-specific,
    while the content seems class-compliant.  Just overriding the probe
    makes the device working.
    
    Reported-by: Ash Logan <ash@heyquark.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/7ecd4417-d860-4773-c1c1-b07433342390@heyquark.com
    Link: https://lore.kernel.org/r/20221108140721.24248-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90b7d055e2b5f39429f9a9e3815b48a48530ef28
Author: Ye Bin <yebin10@huawei.com>
Date:   Thu Nov 10 22:45:39 2022 +0800

    ALSA: hda: fix potential memleak in 'add_widget_node'
    
    commit 9a5523f72bd2b0d66eef3d58810c6eb7b5ffc143 upstream.
    
    As 'kobject_add' may allocated memory for 'kobject->name' when return error.
    And in this function, if call 'kobject_add' failed didn't free kobject.
    So call 'kobject_put' to recycling resources.
    
    Signed-off-by: Ye Bin <yebin10@huawei.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20221110144539.2989354-1-yebin@huaweicloud.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfa3a66a8e5306d4ec7d8526c863f863aa4e15eb
Author: Xian Wang <dev@xianwang.io>
Date:   Fri Nov 4 13:29:13 2022 -0700

    ALSA: hda/ca0132: add quirk for EVGA Z390 DARK
    
    commit 0c423e2ffa7edd3f8f9bcf17ce73fa9c7509b99e upstream.
    
    The Z390 DARK mainboard uses a CA0132 audio controller. The quirk is
    needed to enable surround sound and 3.5mm headphone jack handling in
    the front audio connector as well as in the rear of the board when in
    stereo mode.
    
    Page 97 of the linked manual contains instructions to setup the
    controller.
    
    Signed-off-by: Xian Wang <dev@xianwang.io>
    Cc: stable@vger.kernel.org
    Link: https://www.evga.com/support/manuals/files/131-CS-E399.pdf
    Link: https://lore.kernel.org/r/20221104202913.13904-1-dev@xianwang.io
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04b13e95c5a94d62f16df978ad732f70800cdc30
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Sun Nov 6 15:53:54 2022 +0100

    arm64: efi: Fix handling of misaligned runtime regions and drop warning
    
    commit 9b9eaee9828fe98b030cf43ac50065a54a2f5d52 upstream.
    
    Currently, when mapping the EFI runtime regions in the EFI page tables,
    we complain about misaligned regions in a rather noisy way, using
    WARN().
    
    Not only does this produce a lot of irrelevant clutter in the log, it is
    factually incorrect, as misaligned runtime regions are actually allowed
    by the EFI spec as long as they don't require conflicting memory types
    within the same 64k page.
    
    So let's drop the warning, and tweak the code so that we
    - take both the start and end of the region into account when checking
      for misalignment
    - only revert to RWX mappings for non-code regions if misaligned code
      regions are also known to exist.
    
    Cc: <stable@vger.kernel.org>
    Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4601d30f7d989b4f354df899ab85b5f7a750d30
Author: Jisheng Zhang <jszhang@kernel.org>
Date:   Sat Oct 29 19:34:50 2022 +0800

    riscv: process: fix kernel info leakage
    
    [ Upstream commit 6510c78490c490a6636e48b61eeaa6fb65981f4b ]
    
    thread_struct's s[12] may contain random kernel memory content, which
    may be finally leaked to userspace. This is a security hole. Fix it
    by clearing the s[12] array in thread_struct when fork.
    
    As for kthread case, it's better to clear the s[12] array as well.
    
    Fixes: 7db91e57a0ac ("RISC-V: Task implementation")
    Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
    Tested-by: Guo Ren <guoren@kernel.org>
    Link: https://lore.kernel.org/r/20221029113450.4027-1-jszhang@kernel.org
    Reviewed-by: Guo Ren <guoren@kernel.org>
    Link: https://lore.kernel.org/r/CAJF2gTSdVyAaM12T%2B7kXAdRPGS4VyuO08X1c7paE-n4Fr8OtRA@mail.gmail.com/
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a81b44d1df1f07f00c0dcc0a0b3d2fa24a46289e
Author: Chuang Wang <nashuiliang@gmail.com>
Date:   Wed Nov 9 17:07:34 2022 +0800

    net: macvlan: fix memory leaks of macvlan_common_newlink
    
    [ Upstream commit 23569b5652ee8e8e55a12f7835f59af6f3cefc30 ]
    
    kmemleak reports memory leaks in macvlan_common_newlink, as follows:
    
     ip link add link eth0 name .. type macvlan mode source macaddr add
     <MAC-ADDR>
    
    kmemleak reports:
    
    unreferenced object 0xffff8880109bb140 (size 64):
      comm "ip", pid 284, jiffies 4294986150 (age 430.108s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 b8 aa 5a 12 80 88 ff ff  ..........Z.....
        80 1b fa 0d 80 88 ff ff 1e ff ac af c7 c1 6b 6b  ..............kk
      backtrace:
        [<ffffffff813e06a7>] kmem_cache_alloc_trace+0x1c7/0x300
        [<ffffffff81b66025>] macvlan_hash_add_source+0x45/0xc0
        [<ffffffff81b66a67>] macvlan_changelink_sources+0xd7/0x170
        [<ffffffff81b6775c>] macvlan_common_newlink+0x38c/0x5a0
        [<ffffffff81b6797e>] macvlan_newlink+0xe/0x20
        [<ffffffff81d97f8f>] __rtnl_newlink+0x7af/0xa50
        [<ffffffff81d98278>] rtnl_newlink+0x48/0x70
        ...
    
    In the scenario where the macvlan mode is configured as 'source',
    macvlan_changelink_sources() will be execured to reconfigure list of
    remote source mac addresses, at the same time, if register_netdevice()
    return an error, the resource generated by macvlan_changelink_sources()
    is not cleaned up.
    
    Using this patch, in the case of an error, it will execute
    macvlan_flush_sources() to ensure that the resource is cleaned up.
    
    Fixes: aa5fd0fb7748 ("driver: macvlan: Destroy new macvlan port if macvlan_common_newlink failed.")
    Signed-off-by: Chuang Wang <nashuiliang@gmail.com>
    Link: https://lore.kernel.org/r/20221109090735.690500-1-nashuiliang@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ad9cfa9eb969b8a38a85e367070c1cfc117e8892
Author: Zhengchao Shao <shaozhengchao@huawei.com>
Date:   Wed Nov 9 10:54:32 2022 +0800

    net: mv643xx_eth: disable napi when init rxq or txq failed in mv643xx_eth_open()
    
    [ Upstream commit f111606b63ff2282428ffbac0447c871eb957b6c ]
    
    When failed to init rxq or txq in mv643xx_eth_open() for opening device,
    napi isn't disabled. When open mv643xx_eth device next time, it will
    trigger a BUG_ON() in napi_enable(). Compile tested only.
    
    Fixes: 2257e05c1705 ("mv643xx_eth: get rid of receive-side locking")
    Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
    Link: https://lore.kernel.org/r/20221109025432.80900-1-shaozhengchao@huawei.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f7dabec93376c20143454812a68fbc2a96de15ff
Author: Zhengchao Shao <shaozhengchao@huawei.com>
Date:   Wed Nov 9 10:37:41 2022 +0800

    ethernet: s2io: disable napi when start nic failed in s2io_card_up()
    
    [ Upstream commit 0348c1ab980c1d43fb37b758d4b760990c066cb5 ]
    
    When failed to start nic or add interrupt service routine in
    s2io_card_up() for opening device, napi isn't disabled. When open
    s2io device next time, it will trigger a BUG_ON()in napi_enable().
    Compile tested only.
    
    Fixes: 5f490c968056 ("S2io: Fixed synchronization between scheduling of napi with card reset and close")
    Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
    Link: https://lore.kernel.org/r/20221109023741.131552-1-shaozhengchao@huawei.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb77231746127e38ae0539d61033457618b627c5
Author: Zhengchao Shao <shaozhengchao@huawei.com>
Date:   Wed Nov 9 10:14:51 2022 +0800

    net: cxgb3_main: disable napi when bind qsets failed in cxgb_up()
    
    [ Upstream commit d75aed1428da787cbe42bc073d76f1354f364d92 ]
    
    When failed to bind qsets in cxgb_up() for opening device, napi isn't
    disabled. When open cxgb3 device next time, it will trigger a BUG_ON()
    in napi_enable(). Compile tested only.
    
    Fixes: 48c4b6dbb7e2 ("cxgb3 - fix port up/down error path")
    Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
    Link: https://lore.kernel.org/r/20221109021451.121490-1-shaozhengchao@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 99ed07e5851bd8df537ce59e8a701affdf4605d2
Author: Zhengchao Shao <shaozhengchao@huawei.com>
Date:   Mon Nov 7 18:14:43 2022 +0800

    net: nixge: disable napi when enable interrupts failed in nixge_open()
    
    [ Upstream commit b06334919c7a068d54ba5b219c05e919d89943f7 ]
    
    When failed to enable interrupts in nixge_open() for opening device,
    napi isn't disabled. When open nixge device next time, it will reports
    a invalid opcode issue. Fix it. Only be compiled, not be tested.
    
    Fixes: 492caffa8a1a ("net: ethernet: nixge: Add support for National Instruments XGE netdev")
    Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
    Link: https://lore.kernel.org/r/20221107101443.120205-1-shaozhengchao@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d8a833ab99e9811c791e540d9b61efd44eb73e8
Author: Zhengchao Shao <shaozhengchao@huawei.com>
Date:   Mon Nov 7 12:30:32 2022 +0800

    drivers: net: xgene: disable napi when register irq failed in xgene_enet_open()
    
    [ Upstream commit ce9e57feeed81d17d5e80ed86f516ff0d39c3867 ]
    
    When failed to register irq in xgene_enet_open() for opening device,
    napi isn't disabled. When open xgene device next time, it will reports
    a invalid opcode issue. Fix it. Only be compiled, not be tested.
    
    Fixes: aeb20b6b3f4e ("drivers: net: xgene: fix: ifconfig up/down crash")
    Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
    Link: https://lore.kernel.org/r/20221107043032.357673-1-shaozhengchao@huawei.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20479886b40c0ed4864a5fc8490a1f6b70cccf1b
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Mon Oct 24 21:50:09 2022 +0200

    dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove()
    
    [ Upstream commit 081195d17a0c4c636da2b869bd5809d42e8cbb13 ]
    
    A clk_prepare_enable() call in the probe is not balanced by a corresponding
    clk_disable_unprepare() in the remove function.
    
    Add the missing call.
    
    Fixes: 3cd2c313f1d6 ("dmaengine: mv_xor_v2: Fix clock resource by adding a register clock")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/e9e3837a680c9bd2438e4db2b83270c6c052d005.1666640987.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 55a253a6753a603e80b95932ca971ba514aa6ce7
Author: Xin Long <lucien.xin@gmail.com>
Date:   Fri Nov 4 16:48:53 2022 -0400

    tipc: fix the msg->req tlv len check in tipc_nl_compat_name_table_dump_header
    
    [ Upstream commit 1c075b192fe41030457cd4a5f7dea730412bca40 ]
    
    This is a follow-up for commit 974cb0e3e7c9 ("tipc: fix uninit-value
    in tipc_nl_compat_name_table_dump") where it should have type casted
    sizeof(..) to int to work when TLV_GET_DATA_LEN() returns a negative
    value.
    
    syzbot reported a call trace because of it:
    
      BUG: KMSAN: uninit-value in ...
       tipc_nl_compat_name_table_dump+0x841/0xea0 net/tipc/netlink_compat.c:934
       __tipc_nl_compat_dumpit+0xab2/0x1320 net/tipc/netlink_compat.c:238
       tipc_nl_compat_dumpit+0x991/0xb50 net/tipc/netlink_compat.c:321
       tipc_nl_compat_recv+0xb6e/0x1640 net/tipc/netlink_compat.c:1324
       genl_family_rcv_msg_doit net/netlink/genetlink.c:731 [inline]
       genl_family_rcv_msg net/netlink/genetlink.c:775 [inline]
       genl_rcv_msg+0x103f/0x1260 net/netlink/genetlink.c:792
       netlink_rcv_skb+0x3a5/0x6c0 net/netlink/af_netlink.c:2501
       genl_rcv+0x3c/0x50 net/netlink/genetlink.c:803
       netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
       netlink_unicast+0xf3b/0x1270 net/netlink/af_netlink.c:1345
       netlink_sendmsg+0x1288/0x1440 net/netlink/af_netlink.c:1921
       sock_sendmsg_nosec net/socket.c:714 [inline]
       sock_sendmsg net/socket.c:734 [inline]
    
    Reported-by: syzbot+e5dbaaa238680ce206ea@syzkaller.appspotmail.com
    Fixes: 974cb0e3e7c9 ("tipc: fix uninit-value in tipc_nl_compat_name_table_dump")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Link: https://lore.kernel.org/r/ccd6a7ea801b15aec092c3b532a883b4c5708695.1667594933.git.lucien.xin@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d26d0587abccb9835382a0b53faa7b9b1cd83e3
Author: Alexander Potapenko <glider@google.com>
Date:   Fri Nov 4 11:32:16 2022 +0100

    ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network
    
    [ Upstream commit c23fb2c82267638f9d206cb96bb93e1f93ad7828 ]
    
    When copying a `struct ifaddrlblmsg` to the network, __ifal_reserved
    remained uninitialized, resulting in a 1-byte infoleak:
    
      BUG: KMSAN: kernel-network-infoleak in __netdev_start_xmit ./include/linux/netdevice.h:4841
       __netdev_start_xmit ./include/linux/netdevice.h:4841
       netdev_start_xmit ./include/linux/netdevice.h:4857
       xmit_one net/core/dev.c:3590
       dev_hard_start_xmit+0x1dc/0x800 net/core/dev.c:3606
       __dev_queue_xmit+0x17e8/0x4350 net/core/dev.c:4256
       dev_queue_xmit ./include/linux/netdevice.h:3009
       __netlink_deliver_tap_skb net/netlink/af_netlink.c:307
       __netlink_deliver_tap+0x728/0xad0 net/netlink/af_netlink.c:325
       netlink_deliver_tap net/netlink/af_netlink.c:338
       __netlink_sendskb net/netlink/af_netlink.c:1263
       netlink_sendskb+0x1d9/0x200 net/netlink/af_netlink.c:1272
       netlink_unicast+0x56d/0xf50 net/netlink/af_netlink.c:1360
       nlmsg_unicast ./include/net/netlink.h:1061
       rtnl_unicast+0x5a/0x80 net/core/rtnetlink.c:758
       ip6addrlbl_get+0xfad/0x10f0 net/ipv6/addrlabel.c:628
       rtnetlink_rcv_msg+0xb33/0x1570 net/core/rtnetlink.c:6082
      ...
      Uninit was created at:
       slab_post_alloc_hook+0x118/0xb00 mm/slab.h:742
       slab_alloc_node mm/slub.c:3398
       __kmem_cache_alloc_node+0x4f2/0x930 mm/slub.c:3437
       __do_kmalloc_node mm/slab_common.c:954
       __kmalloc_node_track_caller+0x117/0x3d0 mm/slab_common.c:975
       kmalloc_reserve net/core/skbuff.c:437
       __alloc_skb+0x27a/0xab0 net/core/skbuff.c:509
       alloc_skb ./include/linux/skbuff.h:1267
       nlmsg_new ./include/net/netlink.h:964
       ip6addrlbl_get+0x490/0x10f0 net/ipv6/addrlabel.c:608
       rtnetlink_rcv_msg+0xb33/0x1570 net/core/rtnetlink.c:6082
       netlink_rcv_skb+0x299/0x550 net/netlink/af_netlink.c:2540
       rtnetlink_rcv+0x26/0x30 net/core/rtnetlink.c:6109
       netlink_unicast_kernel net/netlink/af_netlink.c:1319
       netlink_unicast+0x9ab/0xf50 net/netlink/af_netlink.c:1345
       netlink_sendmsg+0xebc/0x10f0 net/netlink/af_netlink.c:1921
      ...
    
    This patch ensures that the reserved field is always initialized.
    
    Reported-by: syzbot+3553517af6020c4f2813f1003fe76ef3cbffe98d@syzkaller.appspotmail.com
    Fixes: 2a8cc6c89039 ("[IPV6] ADDRCONF: Support RFC3484 configurable address selection policy table.")
    Signed-off-by: Alexander Potapenko <glider@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b1a86e3ddf44ab2f91d716d19c5953b8f42dfc43
Author: Yuan Can <yuancan@huawei.com>
Date:   Thu Nov 3 01:47:05 2022 +0000

    drm/vc4: Fix missing platform_unregister_drivers() call in vc4_drm_register()
    
    [ Upstream commit cf53db768a8790fdaae2fa3a81322b080285f7e5 ]
    
    A problem about modprobe vc4 failed is triggered with the following log
    given:
    
     [  420.327987] Error: Driver 'vc4_hvs' is already registered, aborting...
     [  420.333904] failed to register platform driver vc4_hvs_driver [vc4]: -16
     modprobe: ERROR: could not insert 'vc4': Device or resource busy
    
    The reason is that vc4_drm_register() returns platform_driver_register()
    directly without checking its return value, if platform_driver_register()
    fails, it returns without unregistering all the vc4 drivers, resulting the
    vc4 can never be installed later.
    A simple call graph is shown as below:
    
     vc4_drm_register()
       platform_register_drivers() # all vc4 drivers are registered
       platform_driver_register()
         driver_register()
           bus_add_driver()
             priv = kzalloc(...) # OOM happened
       # return without unregister drivers
    
    Fixing this problem by checking the return value of
    platform_driver_register() and do platform_unregister_drivers() if
    error happened.
    
    Fixes: c8b75bca92cb ("drm/vc4: Add KMS support for Raspberry Pi.")
    Signed-off-by: Yuan Can <yuancan@huawei.com>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20221103014705.109322-1-yuancan@huawei.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9501509155595a0da3914734f5a205b68d61a30e
Author: Zhengchao Shao <shaozhengchao@huawei.com>
Date:   Thu Nov 3 17:09:05 2022 +0800

    hamradio: fix issue of dev reference count leakage in bpq_device_event()
    
    [ Upstream commit 85cbaf032d3cd9f595152625eda5d4ecb1d6d78d ]
    
    When following tests are performed, it will cause dev reference counting
    leakage.
    a)ip link add bond2 type bond mode balance-rr
    b)ip link set bond2 up
    c)ifenslave -f bond2 rose1
    d)ip link del bond2
    
    When new bond device is created, the default type of the bond device is
    ether. And the bond device is up, bpq_device_event() receives the message
    and creates a new bpq device. In this case, the reference count value of
    dev is hold once. But after "ifenslave -f bond2 rose1" command is
    executed, the type of the bond device is changed to rose. When the bond
    device is unregistered, bpq_device_event() will not put the dev reference
    count.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 743b4bf96c22c53ebb22aa28abe9a14f0390aee4
Author: Zhengchao Shao <shaozhengchao@huawei.com>
Date:   Thu Nov 3 17:05:37 2022 +0800

    net: lapbether: fix issue of dev reference count leakage in lapbeth_device_event()
    
    [ Upstream commit 531705a765493655472c993627106e19f7e5a6d2 ]
    
    When following tests are performed, it will cause dev reference counting
    leakage.
    a)ip link add bond2 type bond mode balance-rr
    b)ip link set bond2 up
    c)ifenslave -f bond2 rose1
    d)ip link del bond2
    
    When new bond device is created, the default type of the bond device is
    ether. And the bond device is up, lapbeth_device_event() receives the
    message and creates a new lapbeth device. In this case, the reference
    count value of dev is hold once. But after "ifenslave -f bond2 rose1"
    command is executed, the type of the bond device is changed to rose. When
    the bond device is unregistered, lapbeth_device_event() will not put the
    dev reference count.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dbaab08c8677d598244d21afb7818e44e1c5d826
Author: Gaosheng Cui <cuigaosheng1@huawei.com>
Date:   Mon Oct 31 19:25:36 2022 +0800

    capabilities: fix undefined behavior in bit shift for CAP_TO_MASK
    
    [ Upstream commit 46653972e3ea64f79e7f8ae3aa41a4d3fdb70a13 ]
    
    Shifting signed 32-bit value by 31 bits is undefined, so changing
    significant bit to unsigned. The UBSAN warning calltrace like below:
    
    UBSAN: shift-out-of-bounds in security/commoncap.c:1252:2
    left shift of 1 by 31 places cannot be represented in type 'int'
    Call Trace:
     <TASK>
     dump_stack_lvl+0x7d/0xa5
     dump_stack+0x15/0x1b
     ubsan_epilogue+0xe/0x4e
     __ubsan_handle_shift_out_of_bounds+0x1e7/0x20c
     cap_task_prctl+0x561/0x6f0
     security_task_prctl+0x5a/0xb0
     __x64_sys_prctl+0x61/0x8f0
     do_syscall_64+0x58/0x80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
     </TASK>
    
    Fixes: e338d263a76a ("Add 64-bit capability support to the kernel")
    Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
    Acked-by: Andrew G. Morgan <morgan@kernel.org>
    Reviewed-by: Serge Hallyn <serge@hallyn.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a597f8f710b3ecdbf1ad4430ec287febdd42d9c5
Author: Sean Anderson <sean.anderson@seco.com>
Date:   Thu Nov 3 14:28:30 2022 -0400

    net: fman: Unregister ethernet device on removal
    
    [ Upstream commit b7cbc6740bd6ad5d43345a2504f7e4beff0d709f ]
    
    When the mac device gets removed, it leaves behind the ethernet device.
    This will result in a segfault next time the ethernet device accesses
    mac_dev. Remove the ethernet device when we get removed to prevent
    this. This is not completely reversible, since some resources aren't
    cleaned up properly, but that can be addressed later.
    
    Fixes: 3933961682a3 ("fsl/fman: Add FMan MAC driver")
    Signed-off-by: Sean Anderson <sean.anderson@seco.com>
    Link: https://lore.kernel.org/r/20221103182831.2248833-1-sean.anderson@seco.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e84d135f808e215f73a087092ff775dccaab14a2
Author: Alex Barba <alex.barba@broadcom.com>
Date:   Thu Nov 3 19:33:27 2022 -0400

    bnxt_en: fix potentially incorrect return value for ndo_rx_flow_steer
    
    [ Upstream commit 02597d39145bb0aa81d04bf39b6a913ce9a9d465 ]
    
    In the bnxt_en driver ndo_rx_flow_steer returns '0' whenever an entry
    that we are attempting to steer is already found.  This is not the
    correct behavior.  The return code should be the value/index that
    corresponds to the entry.  Returning zero all the time causes the
    RFS records to be incorrect unless entry '0' is the correct one.  As
    flows migrate to different cores this can create entries that are not
    correct.
    
    Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.")
    Reported-by: Akshay Navgire <anavgire@purestorage.com>
    Signed-off-by: Alex Barba <alex.barba@broadcom.com>
    Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 223ef6a94e52331a6a7ef31e59921e0e82d2d40a
Author: Wang Yufen <wangyufen@huawei.com>
Date:   Wed Nov 2 17:41:19 2022 +0800

    net: tun: Fix memory leaks of napi_get_frags
    
    [ Upstream commit 1118b2049d77ca0b505775fc1a8d1909cf19a7ec ]
    
    kmemleak reports after running test_progs:
    
    unreferenced object 0xffff8881b1672dc0 (size 232):
      comm "test_progs", pid 394388, jiffies 4354712116 (age 841.975s)
      hex dump (first 32 bytes):
        e0 84 d7 a8 81 88 ff ff 80 2c 67 b1 81 88 ff ff  .........,g.....
        00 40 c5 9b 81 88 ff ff 00 00 00 00 00 00 00 00  .@..............
      backtrace:
        [<00000000c8f01748>] napi_skb_cache_get+0xd4/0x150
        [<0000000041c7fc09>] __napi_build_skb+0x15/0x50
        [<00000000431c7079>] __napi_alloc_skb+0x26e/0x540
        [<000000003ecfa30e>] napi_get_frags+0x59/0x140
        [<0000000099b2199e>] tun_get_user+0x183d/0x3bb0 [tun]
        [<000000008a5adef0>] tun_chr_write_iter+0xc0/0x1b1 [tun]
        [<0000000049993ff4>] do_iter_readv_writev+0x19f/0x320
        [<000000008f338ea2>] do_iter_write+0x135/0x630
        [<000000008a3377a4>] vfs_writev+0x12e/0x440
        [<00000000a6b5639a>] do_writev+0x104/0x280
        [<00000000ccf065d8>] do_syscall_64+0x3b/0x90
        [<00000000d776e329>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    The issue occurs in the following scenarios:
    tun_get_user()
      napi_gro_frags()
        napi_frags_finish()
          case GRO_NORMAL:
            gro_normal_one()
              list_add_tail(&skb->list, &napi->rx_list);
              <-- While napi->rx_count < READ_ONCE(gro_normal_batch),
              <-- gro_normal_list() is not called, napi->rx_list is not empty
      <-- not ask to complete the gro work, will cause memory leaks in
      <-- following tun_napi_del()
    ...
    tun_napi_del()
      netif_napi_del()
        __netif_napi_del()
        <-- &napi->rx_list is not empty, which caused memory leaks
    
    To fix, add napi_complete() after napi_gro_frags().
    
    Fixes: 90e33d459407 ("tun: enable napi_gro_frags() for TUN/TAP driver")
    Signed-off-by: Wang Yufen <wangyufen@huawei.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd5362e58721e4d0d1a37796593bd6e51536ce7a
Author: Jiri Benc <jbenc@redhat.com>
Date:   Wed Nov 2 17:53:25 2022 +0100

    net: gso: fix panic on frag_list with mixed head alloc types
    
    [ Upstream commit 9e4b7a99a03aefd37ba7bb1f022c8efab5019165 ]
    
    Since commit 3dcbdb134f32 ("net: gso: Fix skb_segment splat when
    splitting gso_size mangled skb having linear-headed frag_list"), it is
    allowed to change gso_size of a GRO packet. However, that commit assumes
    that "checking the first list_skb member suffices; i.e if either of the
    list_skb members have non head_frag head, then the first one has too".
    
    It turns out this assumption does not hold. We've seen BUG_ON being hit
    in skb_segment when skbs on the frag_list had differing head_frag with
    the vmxnet3 driver. This happens because __netdev_alloc_skb and
    __napi_alloc_skb can return a skb that is page backed or kmalloced
    depending on the requested size. As the result, the last small skb in
    the GRO packet can be kmalloced.
    
    There are three different locations where this can be fixed:
    
    (1) We could check head_frag in GRO and not allow GROing skbs with
        different head_frag. However, that would lead to performance
        regression on normal forward paths with unmodified gso_size, where
        !head_frag in the last packet is not a problem.
    
    (2) Set a flag in bpf_skb_net_grow and bpf_skb_net_shrink indicating
        that NETIF_F_SG is undesirable. That would need to eat a bit in
        sk_buff. Furthermore, that flag can be unset when all skbs on the
        frag_list are page backed. To retain good performance,
        bpf_skb_net_grow/shrink would have to walk the frag_list.
    
    (3) Walk the frag_list in skb_segment when determining whether
        NETIF_F_SG should be cleared. This of course slows things down.
    
    This patch implements (3). To limit the performance impact in
    skb_segment, the list is walked only for skbs with SKB_GSO_DODGY set
    that have gso_size changed. Normal paths thus will not hit it.
    
    We could check only the last skb but since we need to walk the whole
    list anyway, let's stay on the safe side.
    
    Fixes: 3dcbdb134f32 ("net: gso: Fix skb_segment splat when splitting gso_size mangled skb having linear-headed frag_list")
    Signed-off-by: Jiri Benc <jbenc@redhat.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Link: https://lore.kernel.org/r/e04426a6a91baf4d1081e1b478c82b5de25fdf21.1667407944.git.jbenc@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a6d2fb1874c52ace1f5cf1966ee558829c5c19b6
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Fri Oct 28 21:40:43 2022 +0800

    HID: hyperv: fix possible memory leak in mousevsc_probe()
    
    [ Upstream commit b5bcb94b0954a026bbd671741fdb00e7141f9c91 ]
    
    If hid_add_device() returns error, it should call hid_destroy_device()
    to free hid_dev which is allocated in hid_allocate_device().
    
    Fixes: 74c4fb058083 ("HID: hv_mouse: Properly add the hid device")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Reviewed-by: Wei Liu <wei.liu@kernel.org>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 219446396786330937bcd382a7bc4ccd767383bc
Author: Arend van Spriel <arend.vanspriel@broadcom.com>
Date:   Thu Oct 20 13:40:40 2022 +0200

    wifi: cfg80211: fix memory leak in query_regdb_file()
    
    [ Upstream commit 57b962e627ec0ae53d4d16d7bd1033e27e67677a ]
    
    In the function query_regdb_file() the alpha2 parameter is duplicated
    using kmemdup() and subsequently freed in regdb_fw_cb(). However,
    request_firmware_nowait() can fail without calling regdb_fw_cb() and
    thus leak memory.
    
    Fixes: 007f6c5e6eb4 ("cfg80211: support loading regulatory database as firmware file")
    Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0f4085428a449c302248f00721377711e0c559cc
Author: Dan Carpenter <error27@gmail.com>
Date:   Fri Oct 14 12:25:06 2022 +0300

    phy: stm32: fix an error code in probe
    
    [ Upstream commit ca1c73628f5bd0c1ef6e46073cc3be2450605b06 ]
    
    If "index > usbphyc->nphys" is true then this returns success but it
    should return -EINVAL.
    
    Fixes: 94c358da3a05 ("phy: stm32: add support for STM32 USB PHY Controller (USBPHYC)")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
    Link: https://lore.kernel.org/r/Y0kq8j6S+5nDdMpr@kili
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
