commit 85d7786c66b69d3f07cc149ac2f78d8f330c7c11
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Feb 9 11:26:48 2023 +0100

    Linux 5.15.93
    
    Link: https://lore.kernel.org/r/20230207125618.699726054@linuxfoundation.org
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Allen Pais <apais@linux.microsoft.com>
    Tested-by: Bagas Sanjaya <bagasdotme@gmail.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Ron Economos <re@w6rz.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e2fac197de2c4c041bdd8982cffb104689113f1
Author: Hao Sun <sunhao.th@gmail.com>
Date:   Wed Jan 4 09:47:09 2023 +0800

    bpf: Skip invalid kfunc call in backtrack_insn
    
    commit d3178e8a434b58678d99257c0387810a24042fb6 upstream.
    
    The verifier skips invalid kfunc call in check_kfunc_call(), which
    would be captured in fixup_kfunc_call() if such insn is not eliminated
    by dead code elimination. However, this can lead to the following
    warning in backtrack_insn(), also see [1]:
    
      ------------[ cut here ]------------
      verifier backtracking bug
      WARNING: CPU: 6 PID: 8646 at kernel/bpf/verifier.c:2756 backtrack_insn
      kernel/bpf/verifier.c:2756
            __mark_chain_precision kernel/bpf/verifier.c:3065
            mark_chain_precision kernel/bpf/verifier.c:3165
            adjust_reg_min_max_vals kernel/bpf/verifier.c:10715
            check_alu_op kernel/bpf/verifier.c:10928
            do_check kernel/bpf/verifier.c:13821 [inline]
            do_check_common kernel/bpf/verifier.c:16289
      [...]
    
    So make backtracking conservative with this by returning ENOTSUPP.
    
      [1] https://lore.kernel.org/bpf/CACkBjsaXNceR8ZjkLG=dT3P=4A8SBsg0Z5h5PWLryF5=ghKq=g@mail.gmail.com/
    
    Reported-by: syzbot+4da3ff23081bafe74fc2@syzkaller.appspotmail.com
    Signed-off-by: Hao Sun <sunhao.th@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Yonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/bpf/20230104014709.9375-1-sunhao.th@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46c9088cabd4d0469fdb61ac2a9c5003057fe94d
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Sun Dec 4 17:00:04 2022 +0100

    gfs2: Always check inode size of inline inodes
    
    commit 70376c7ff31221f1d21db5611d8209e677781d3a upstream.
    
    Check if the inode size of stuffed (inline) inodes is within the allowed
    range when reading inodes from disk (gfs2_dinode_in()).  This prevents
    us from on-disk corruption.
    
    The two checks in stuffed_readpage() and gfs2_unstuffer_page() that just
    truncate inline data to the maximum allowed size don't actually make
    sense, and they can be removed now as well.
    
    Reported-by: syzbot+7bb81dfa9cda07d9cd9d@syzkaller.appspotmail.com
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8eb2e58a92e08473fb44294c783377c9eba99cd7
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Sun Dec 4 16:50:41 2022 +0100

    gfs2: Cosmetic gfs2_dinode_{in,out} cleanup
    
    commit 7db354444ad8429e660b0f8145d425285d4f90ff upstream.
    
    In each of the two functions, add an inode variable that points to
    &ip->i_inode and use that throughout the rest of the function.
    
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e4991910f15013db72f6ec0db7038ea67a57052e
Author: Minsuk Kang <linuxlovemin@yonsei.ac.kr>
Date:   Wed Nov 16 23:29:52 2022 +0900

    wifi: brcmfmac: Check the count value of channel spec to prevent out-of-bounds reads
    
    commit 4920ab131b2dbae7464b72bdcac465d070254209 upstream.
    
    This patch fixes slab-out-of-bounds reads in brcmfmac that occur in
    brcmf_construct_chaninfo() and brcmf_enable_bw40_2g() when the count
    value of channel specifications provided by the device is greater than
    the length of 'list->element[]', decided by the size of the 'list'
    allocated with kzalloc(). The patch adds checks that make the functions
    free the buffer and return -EINVAL if that is the case. Note that the
    negative return is handled by the caller, brcmf_setup_wiphybands() or
    brcmf_cfg80211_attach().
    
    Found by a modified version of syzkaller.
    
    Crash Report from brcmf_construct_chaninfo():
    ==================================================================
    BUG: KASAN: slab-out-of-bounds in brcmf_setup_wiphybands+0x1238/0x1430
    Read of size 4 at addr ffff888115f24600 by task kworker/0:2/1896
    
    CPU: 0 PID: 1896 Comm: kworker/0:2 Tainted: G        W  O      5.14.0+ #132
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
    Workqueue: usb_hub_wq hub_event
    Call Trace:
     dump_stack_lvl+0x57/0x7d
     print_address_description.constprop.0.cold+0x93/0x334
     kasan_report.cold+0x83/0xdf
     brcmf_setup_wiphybands+0x1238/0x1430
     brcmf_cfg80211_attach+0x2118/0x3fd0
     brcmf_attach+0x389/0xd40
     brcmf_usb_probe+0x12de/0x1690
     usb_probe_interface+0x25f/0x710
     really_probe+0x1be/0xa90
     __driver_probe_device+0x2ab/0x460
     driver_probe_device+0x49/0x120
     __device_attach_driver+0x18a/0x250
     bus_for_each_drv+0x123/0x1a0
     __device_attach+0x207/0x330
     bus_probe_device+0x1a2/0x260
     device_add+0xa61/0x1ce0
     usb_set_configuration+0x984/0x1770
     usb_generic_driver_probe+0x69/0x90
     usb_probe_device+0x9c/0x220
     really_probe+0x1be/0xa90
     __driver_probe_device+0x2ab/0x460
     driver_probe_device+0x49/0x120
     __device_attach_driver+0x18a/0x250
     bus_for_each_drv+0x123/0x1a0
     __device_attach+0x207/0x330
     bus_probe_device+0x1a2/0x260
     device_add+0xa61/0x1ce0
     usb_new_device.cold+0x463/0xf66
     hub_event+0x10d5/0x3330
     process_one_work+0x873/0x13e0
     worker_thread+0x8b/0xd10
     kthread+0x379/0x450
     ret_from_fork+0x1f/0x30
    
    Allocated by task 1896:
     kasan_save_stack+0x1b/0x40
     __kasan_kmalloc+0x7c/0x90
     kmem_cache_alloc_trace+0x19e/0x330
     brcmf_setup_wiphybands+0x290/0x1430
     brcmf_cfg80211_attach+0x2118/0x3fd0
     brcmf_attach+0x389/0xd40
     brcmf_usb_probe+0x12de/0x1690
     usb_probe_interface+0x25f/0x710
     really_probe+0x1be/0xa90
     __driver_probe_device+0x2ab/0x460
     driver_probe_device+0x49/0x120
     __device_attach_driver+0x18a/0x250
     bus_for_each_drv+0x123/0x1a0
     __device_attach+0x207/0x330
     bus_probe_device+0x1a2/0x260
     device_add+0xa61/0x1ce0
     usb_set_configuration+0x984/0x1770
     usb_generic_driver_probe+0x69/0x90
     usb_probe_device+0x9c/0x220
     really_probe+0x1be/0xa90
     __driver_probe_device+0x2ab/0x460
     driver_probe_device+0x49/0x120
     __device_attach_driver+0x18a/0x250
     bus_for_each_drv+0x123/0x1a0
     __device_attach+0x207/0x330
     bus_probe_device+0x1a2/0x260
     device_add+0xa61/0x1ce0
     usb_new_device.cold+0x463/0xf66
     hub_event+0x10d5/0x3330
     process_one_work+0x873/0x13e0
     worker_thread+0x8b/0xd10
     kthread+0x379/0x450
     ret_from_fork+0x1f/0x30
    
    The buggy address belongs to the object at ffff888115f24000
     which belongs to the cache kmalloc-2k of size 2048
    The buggy address is located 1536 bytes inside of
     2048-byte region [ffff888115f24000, ffff888115f24800)
    
    Memory state around the buggy address:
     ffff888115f24500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     ffff888115f24580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    >ffff888115f24600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                       ^
     ffff888115f24680: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff888115f24700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    ==================================================================
    
    Crash Report from brcmf_enable_bw40_2g():
    ==================================================================
    BUG: KASAN: slab-out-of-bounds in brcmf_cfg80211_attach+0x3d11/0x3fd0
    Read of size 4 at addr ffff888103787600 by task kworker/0:2/1896
    
    CPU: 0 PID: 1896 Comm: kworker/0:2 Tainted: G        W  O      5.14.0+ #132
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
    Workqueue: usb_hub_wq hub_event
    Call Trace:
     dump_stack_lvl+0x57/0x7d
     print_address_description.constprop.0.cold+0x93/0x334
     kasan_report.cold+0x83/0xdf
     brcmf_cfg80211_attach+0x3d11/0x3fd0
     brcmf_attach+0x389/0xd40
     brcmf_usb_probe+0x12de/0x1690
     usb_probe_interface+0x25f/0x710
     really_probe+0x1be/0xa90
     __driver_probe_device+0x2ab/0x460
     driver_probe_device+0x49/0x120
     __device_attach_driver+0x18a/0x250
     bus_for_each_drv+0x123/0x1a0
     __device_attach+0x207/0x330
     bus_probe_device+0x1a2/0x260
     device_add+0xa61/0x1ce0
     usb_set_configuration+0x984/0x1770
     usb_generic_driver_probe+0x69/0x90
     usb_probe_device+0x9c/0x220
     really_probe+0x1be/0xa90
     __driver_probe_device+0x2ab/0x460
     driver_probe_device+0x49/0x120
     __device_attach_driver+0x18a/0x250
     bus_for_each_drv+0x123/0x1a0
     __device_attach+0x207/0x330
     bus_probe_device+0x1a2/0x260
     device_add+0xa61/0x1ce0
     usb_new_device.cold+0x463/0xf66
     hub_event+0x10d5/0x3330
     process_one_work+0x873/0x13e0
     worker_thread+0x8b/0xd10
     kthread+0x379/0x450
     ret_from_fork+0x1f/0x30
    
    Allocated by task 1896:
     kasan_save_stack+0x1b/0x40
     __kasan_kmalloc+0x7c/0x90
     kmem_cache_alloc_trace+0x19e/0x330
     brcmf_cfg80211_attach+0x3302/0x3fd0
     brcmf_attach+0x389/0xd40
     brcmf_usb_probe+0x12de/0x1690
     usb_probe_interface+0x25f/0x710
     really_probe+0x1be/0xa90
     __driver_probe_device+0x2ab/0x460
     driver_probe_device+0x49/0x120
     __device_attach_driver+0x18a/0x250
     bus_for_each_drv+0x123/0x1a0
     __device_attach+0x207/0x330
     bus_probe_device+0x1a2/0x260
     device_add+0xa61/0x1ce0
     usb_set_configuration+0x984/0x1770
     usb_generic_driver_probe+0x69/0x90
     usb_probe_device+0x9c/0x220
     really_probe+0x1be/0xa90
     __driver_probe_device+0x2ab/0x460
     driver_probe_device+0x49/0x120
     __device_attach_driver+0x18a/0x250
     bus_for_each_drv+0x123/0x1a0
     __device_attach+0x207/0x330
     bus_probe_device+0x1a2/0x260
     device_add+0xa61/0x1ce0
     usb_new_device.cold+0x463/0xf66
     hub_event+0x10d5/0x3330
     process_one_work+0x873/0x13e0
     worker_thread+0x8b/0xd10
     kthread+0x379/0x450
     ret_from_fork+0x1f/0x30
    
    The buggy address belongs to the object at ffff888103787000
     which belongs to the cache kmalloc-2k of size 2048
    The buggy address is located 1536 bytes inside of
     2048-byte region [ffff888103787000, ffff888103787800)
    
    Memory state around the buggy address:
     ffff888103787500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     ffff888103787580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    >ffff888103787600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                       ^
     ffff888103787680: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff888103787700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    ==================================================================
    
    Reported-by: Dokyung Song <dokyungs@yonsei.ac.kr>
    Reported-by: Jisoo Jang <jisoo.jang@yonsei.ac.kr>
    Reported-by: Minsuk Kang <linuxlovemin@yonsei.ac.kr>
    Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Minsuk Kang <linuxlovemin@yonsei.ac.kr>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20221116142952.518241-1-linuxlovemin@yonsei.ac.kr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97ccfffcc061e54ce87e4a51a40e2e9cb0b7076a
Author: Chao Yu <chao@kernel.org>
Date:   Tue Nov 15 00:08:47 2022 +0800

    f2fs: fix to do sanity check on i_extra_isize in is_alive()
    
    commit d3b7b4afd6b2c344eabf9cc26b8bfa903c164c7c upstream.
    
    syzbot found a f2fs bug:
    
    BUG: KASAN: slab-out-of-bounds in data_blkaddr fs/f2fs/f2fs.h:2891 [inline]
    BUG: KASAN: slab-out-of-bounds in is_alive fs/f2fs/gc.c:1117 [inline]
    BUG: KASAN: slab-out-of-bounds in gc_data_segment fs/f2fs/gc.c:1520 [inline]
    BUG: KASAN: slab-out-of-bounds in do_garbage_collect+0x386a/0x3df0 fs/f2fs/gc.c:1734
    Read of size 4 at addr ffff888076557568 by task kworker/u4:3/52
    
    CPU: 1 PID: 52 Comm: kworker/u4:3 Not tainted 6.1.0-rc4-syzkaller-00362-gfef7fd48922d #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
    Workqueue: writeback wb_workfn (flush-7:0)
    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:284 [inline]
    print_report+0x15e/0x45d mm/kasan/report.c:395
    kasan_report+0xbb/0x1f0 mm/kasan/report.c:495
    data_blkaddr fs/f2fs/f2fs.h:2891 [inline]
    is_alive fs/f2fs/gc.c:1117 [inline]
    gc_data_segment fs/f2fs/gc.c:1520 [inline]
    do_garbage_collect+0x386a/0x3df0 fs/f2fs/gc.c:1734
    f2fs_gc+0x88c/0x20a0 fs/f2fs/gc.c:1831
    f2fs_balance_fs+0x544/0x6b0 fs/f2fs/segment.c:410
    f2fs_write_inode+0x57e/0xe20 fs/f2fs/inode.c:753
    write_inode fs/fs-writeback.c:1440 [inline]
    __writeback_single_inode+0xcfc/0x1440 fs/fs-writeback.c:1652
    writeback_sb_inodes+0x54d/0xf90 fs/fs-writeback.c:1870
    wb_writeback+0x2c5/0xd70 fs/fs-writeback.c:2044
    wb_do_writeback fs/fs-writeback.c:2187 [inline]
    wb_workfn+0x2dc/0x12f0 fs/fs-writeback.c:2227
    process_one_work+0x9bf/0x1710 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
    
    The root cause is that we forgot to do sanity check on .i_extra_isize
    in below path, result in accessing invalid address later, fix it.
    - gc_data_segment
     - is_alive
      - data_blkaddr
       - offset_in_addr
    
    Reported-by: syzbot+f8f3dfa4abc489e768a1@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/linux-f2fs-devel/0000000000003cb3c405ed5c17f9@google.com/T/#u
    Signed-off-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64fa364ad3245508d393e16ed4886f92d7eb423c
Author: Dongliang Mu <dzm91@hust.edu.cn>
Date:   Fri Nov 11 13:49:49 2022 +0800

    fbdev: smscufx: fix error handling code in ufx_usb_probe
    
    commit b76449ee75e21acfe9fa4c653d8598f191ed7d68 upstream.
    
    The current error handling code in ufx_usb_probe have many unmatching
    issues, e.g., missing ufx_free_usb_list, destroy_modedb label should
    only include framebuffer_release, fb_dealloc_cmap only matches
    fb_alloc_cmap.
    
    My local syzkaller reports a memory leak bug:
    
    memory leak in ufx_usb_probe
    
    BUG: memory leak
    unreferenced object 0xffff88802f879580 (size 128):
      comm "kworker/0:7", pid 17416, jiffies 4295067474 (age 46.710s)
      hex dump (first 32 bytes):
        80 21 7c 2e 80 88 ff ff 18 d0 d0 0c 80 88 ff ff  .!|.............
        00 d0 d0 0c 80 88 ff ff e0 ff ff ff 0f 00 00 00  ................
      backtrace:
        [<ffffffff814c99a0>] kmalloc_trace+0x20/0x90 mm/slab_common.c:1045
        [<ffffffff824d219c>] kmalloc include/linux/slab.h:553 [inline]
        [<ffffffff824d219c>] kzalloc include/linux/slab.h:689 [inline]
        [<ffffffff824d219c>] ufx_alloc_urb_list drivers/video/fbdev/smscufx.c:1873 [inline]
        [<ffffffff824d219c>] ufx_usb_probe+0x11c/0x15a0 drivers/video/fbdev/smscufx.c:1655
        [<ffffffff82d17927>] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
        [<ffffffff82712f0d>] call_driver_probe drivers/base/dd.c:560 [inline]
        [<ffffffff82712f0d>] really_probe+0x12d/0x390 drivers/base/dd.c:639
        [<ffffffff8271322f>] __driver_probe_device+0xbf/0x140 drivers/base/dd.c:778
        [<ffffffff827132da>] driver_probe_device+0x2a/0x120 drivers/base/dd.c:808
        [<ffffffff82713c27>] __device_attach_driver+0xf7/0x150 drivers/base/dd.c:936
        [<ffffffff82710137>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:427
        [<ffffffff827136b5>] __device_attach+0x105/0x2d0 drivers/base/dd.c:1008
        [<ffffffff82711d36>] bus_probe_device+0xc6/0xe0 drivers/base/bus.c:487
        [<ffffffff8270e242>] device_add+0x642/0xdc0 drivers/base/core.c:3517
        [<ffffffff82d14d5f>] usb_set_configuration+0x8ef/0xb80 drivers/usb/core/message.c:2170
        [<ffffffff82d2576c>] usb_generic_driver_probe+0x8c/0xc0 drivers/usb/core/generic.c:238
        [<ffffffff82d16ffc>] usb_probe_device+0x5c/0x140 drivers/usb/core/driver.c:293
        [<ffffffff82712f0d>] call_driver_probe drivers/base/dd.c:560 [inline]
        [<ffffffff82712f0d>] really_probe+0x12d/0x390 drivers/base/dd.c:639
        [<ffffffff8271322f>] __driver_probe_device+0xbf/0x140 drivers/base/dd.c:778
    
    Fix this bug by rewriting the error handling code in ufx_usb_probe.
    
    Reported-by: syzkaller <syzkaller@googlegroups.com>
    Tested-by: Dongliang Mu <dzm91@hust.edu.cn>
    Signed-off-by: Dongliang Mu <dzm91@hust.edu.cn>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a77141a06367825d639ac51b04703d551163e36c
Author: Kees Cook <keescook@chromium.org>
Date:   Sat Sep 24 00:33:15 2022 -0700

    ovl: Use "buf" flexible array for memcpy() destination
    
    commit cf8aa9bf97cadf85745506c6a3e244b22c268d63 upstream.
    
    The "buf" flexible array needs to be the memcpy() destination to avoid
    false positive run-time warning from the recent FORTIFY_SOURCE
    hardening:
    
      memcpy: detected field-spanning write (size 93) of single field "&fh->fb"
      at fs/overlayfs/export.c:799 (size 21)
    
    Reported-by: syzbot+9d14351a171d0d1c7955@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/all/000000000000763a6c05e95a5985@google.com/
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1692fedd0f66fc9ff38d5c387df0c3e2d1af243f
Author: Abdun Nihaal <abdun.nihaal@gmail.com>
Date:   Tue Oct 4 08:45:02 2022 +0530

    fs/ntfs3: Validate attribute data and valid sizes
    
    commit 019d22eb0eb707fc099e6e8fad9b3933236a06d0 upstream.
    
    The data_size and valid_size fields of non resident attributes should be
    less than the its alloc_size field, but this is not checked in
    ntfs_read_mft function.
    
    Syzbot reports a allocation order warning due to a large unchecked value
    of data_size getting assigned to inode->i_size which is then passed to
    kcalloc.
    
    Add sanity check for ensuring that the data_size and valid_size fields
    are not larger than alloc_size field.
    
    Link: https://syzkaller.appspot.com/bug?extid=fa4648a5446460b7b963
    Reported-and-tested-by: syzbot+fa4648a5446460b7b963@syzkaller.appspotmail.com
    Fixes: (82cae269cfa95) fs/ntfs3: Add initialization of super block
    Signed-off-by: Abdun Nihaal <abdun.nihaal@gmail.com>
    Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5b9cb72769bad3f8b3595ecc0c215fe2cfe4904
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Mon Jan 30 12:44:01 2023 +1100

    powerpc/imc-pmu: Revert nest_init_lock to being a mutex
    
    commit ad53db4acb415976761d7302f5b02e97f2bd097e upstream.
    
    The recent commit 76d588dddc45 ("powerpc/imc-pmu: Fix use of mutex in
    IRQs disabled section") fixed warnings (and possible deadlocks) in the
    IMC PMU driver by converting the locking to use spinlocks.
    
    It also converted the init-time nest_init_lock to a spinlock, even
    though it's not used at runtime in IRQ disabled sections or while
    holding other spinlocks.
    
    This leads to warnings such as:
    
      BUG: sleeping function called from invalid context at include/linux/percpu-rwsem.h:49
      in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper/0
      preempt_count: 1, expected: 0
      CPU: 7 PID: 1 Comm: swapper/0 Not tainted 6.2.0-rc2-14719-gf12cd06109f4-dirty #1
      Hardware name: Mambo,Simulated-System POWER9 0x4e1203 opal:v6.6.6 PowerNV
      Call Trace:
        dump_stack_lvl+0x74/0xa8 (unreliable)
        __might_resched+0x178/0x1a0
        __cpuhp_setup_state+0x64/0x1e0
        init_imc_pmu+0xe48/0x1250
        opal_imc_counters_probe+0x30c/0x6a0
        platform_probe+0x78/0x110
        really_probe+0x104/0x420
        __driver_probe_device+0xb0/0x170
        driver_probe_device+0x58/0x180
        __driver_attach+0xd8/0x250
        bus_for_each_dev+0xb4/0x140
        driver_attach+0x34/0x50
        bus_add_driver+0x1e8/0x2d0
        driver_register+0xb4/0x1c0
        __platform_driver_register+0x38/0x50
        opal_imc_driver_init+0x2c/0x40
        do_one_initcall+0x80/0x360
        kernel_init_freeable+0x310/0x3b8
        kernel_init+0x30/0x1a0
        ret_from_kernel_thread+0x5c/0x64
    
    Fix it by converting nest_init_lock back to a mutex, so that we can call
    sleeping functions while holding it. There is no interaction between
    nest_init_lock and the runtime spinlocks used by the actual PMU routines.
    
    Fixes: 76d588dddc45 ("powerpc/imc-pmu: Fix use of mutex in IRQs disabled section")
    Tested-by: Kajol Jain<kjain@linux.ibm.com>
    Reviewed-by: Kajol Jain<kjain@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20230130014401.540543-1-mpe@ellerman.id.au
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3691f43a09598c318d858b247e63f98ba4ae5910
Author: Andreas Kemnade <andreas@kemnade.info>
Date:   Sat Dec 17 23:13:05 2022 +0100

    iio:adc:twl6030: Enable measurement of VAC
    
    commit bffb7d9d1a3dbd09e083b88aefd093b3b10abbfb upstream.
    
    VAC needs to be wired up to produce proper measurements,
    without this change only near zero values are reported.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Julia Lawall <julia.lawall@lip6.fr>
    Fixes: 1696f36482e7 ("iio: twl6030-gpadc: TWL6030, TWL6032 GPADC driver")
    Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
    Link: https://lore.kernel.org/r/20221217221305.671117-1-andreas@kemnade.info
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c84f50390b2d90dc7e9858727bd38bb4a8bc649
Author: Martin KaFai Lau <kafai@fb.com>
Date:   Mon Nov 1 23:45:35 2021 -0700

    bpf: Do not reject when the stack read size is different from the tracked scalar size
    
    commit f30d4968e9aee737e174fc97942af46cfb49b484 upstream.
    
    Below is a simplified case from a report in bcc [0]:
    
      r4 = 20
      *(u32 *)(r10 -4) = r4
      *(u32 *)(r10 -8) = r4  /* r4 state is tracked */
      r4 = *(u64 *)(r10 -8)  /* Read more than the tracked 32bit scalar.
                              * verifier rejects as 'corrupted spill memory'.
                              */
    
    After commit 354e8f1970f8 ("bpf: Support <8-byte scalar spill and refill"),
    the 8-byte aligned 32bit spill is also tracked by the verifier and the
    register state is stored.
    
    However, if 8 bytes are read from the stack instead of the tracked 4 byte
    scalar, then verifier currently rejects the program as "corrupted spill
    memory". This patch fixes this case by allowing it to read but marks the
    register as unknown.
    
    Also note that, if the prog is trying to corrupt/leak an earlier spilled
    pointer by spilling another <8 bytes register on top, this has already
    been rejected in the check_stack_write_fixed_off().
    
      [0] https://github.com/iovisor/bcc/pull/3683
    
    Fixes: 354e8f1970f8 ("bpf: Support <8-byte scalar spill and refill")
    Reported-by: Hengqi Chen <hengqi.chen@gmail.com>
    Reported-by: Yonghong Song <yhs@gmail.com>
    Signed-off-by: Martin KaFai Lau <kafai@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Tested-by: Hengqi Chen <hengqi.chen@gmail.com>
    Acked-by: Yonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/bpf/20211102064535.316018-1-kafai@fb.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14b6198abbd54924fad6ae4936f8d20df68fa56e
Author: Paul Chaignon <paul@isovalent.com>
Date:   Fri Dec 10 00:46:31 2021 +0100

    bpf: Fix incorrect state pruning for <8B spill/fill
    
    commit 345e004d023343d38088fdfea39688aa11e06ccf upstream.
    
    Commit 354e8f1970f8 ("bpf: Support <8-byte scalar spill and refill")
    introduced support in the verifier to track <8B spill/fills of scalars.
    The backtracking logic for the precision bit was however skipping
    spill/fills of less than 8B. That could cause state pruning to consider
    two states equivalent when they shouldn't be.
    
    As an example, consider the following bytecode snippet:
    
      0:  r7 = r1
      1:  call bpf_get_prandom_u32
      2:  r6 = 2
      3:  if r0 == 0 goto pc+1
      4:  r6 = 3
      ...
      8: [state pruning point]
      ...
      /* u32 spill/fill */
      10: *(u32 *)(r10 - 8) = r6
      11: r8 = *(u32 *)(r10 - 8)
      12: r0 = 0
      13: if r8 == 3 goto pc+1
      14: r0 = 1
      15: exit
    
    The verifier first walks the path with R6=3. Given the support for <8B
    spill/fills, at instruction 13, it knows the condition is true and skips
    instruction 14. At that point, the backtracking logic kicks in but stops
    at the fill instruction since it only propagates the precision bit for
    8B spill/fill. When the verifier then walks the path with R6=2, it will
    consider it safe at instruction 8 because R6 is not marked as needing
    precision. Instruction 14 is thus never walked and is then incorrectly
    removed as 'dead code'.
    
    It's also possible to lead the verifier to accept e.g. an out-of-bound
    memory access instead of causing an incorrect dead code elimination.
    
    This regression was found via Cilium's bpf-next CI where it was causing
    a conntrack map update to be silently skipped because the code had been
    removed by the verifier.
    
    This commit fixes it by enabling support for <8B spill/fills in the
    bactracking logic. In case of a <8B spill/fill, the full 8B stack slot
    will be marked as needing precision. Then, in __mark_chain_precision,
    any tracked register spilled in a marked slot will itself be marked as
    needing precision, regardless of the spill size. This logic makes two
    assumptions: (1) only 8B-aligned spill/fill are tracked and (2) spilled
    registers are only tracked if the spill and fill sizes are equal. Commit
    ef979017b837 ("bpf: selftest: Add verifier tests for <8-byte scalar
    spill and refill") covers the first assumption and the next commit in
    this patchset covers the second.
    
    Fixes: 354e8f1970f8 ("bpf: Support <8-byte scalar spill and refill")
    Signed-off-by: Paul Chaignon <paul@isovalent.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 575a9f6fefd9909a9565e42dffa6332e69942fa4
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Fri Feb 3 14:26:16 2023 -0800

    phy: qcom-qmp-combo: fix runtime suspend
    
    commit c7b98de745cffdceefc077ad5cf9cda032ef8959 upstream.
    
    Drop the confused runtime-suspend type check which effectively broke
    runtime PM if the DP child node happens to be parsed before the USB
    child node during probe (e.g. due to order of child nodes in the
    devicetree).
    
    Instead use the new driver data USB PHY pointer to access the USB
    configuration and resources.
    
    Fixes: 52e013d0bffa ("phy: qcom-qmp: Add support for DP in USB3+DP combo phy")
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Link: https://lore.kernel.org/r/20221114081346.5116-6-johan+linaro@kernel.org
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    [swboyd@chromium.org: Backport to pre-split driver. Note that the
    condition is kept so that ufs and pcie don't do anything as before]
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e58df87394be1b4a4e72760ae99461c1e3828073
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Fri Feb 3 14:26:15 2023 -0800

    phy: qcom-qmp-combo: fix broken power on
    
    commit 7a7d86d14d073dfa3429c550667a8e78b99edbd4 upstream.
    
    The PHY is powered on during phy-init by setting the SW_PWRDN bit in the
    COM_POWER_DOWN_CTRL register and then setting the same bit in the in the
    PCS_POWER_DOWN_CONTROL register that belongs to the USB part of the
    PHY.
    
    Currently, whether power on succeeds depends on probe order and having
    the USB part of the PHY be initialised first. In case the DP part of the
    PHY is instead initialised first, the intended power on of the USB block
    results in a corrupted DP_PHY register (e.g. DP_PHY_AUX_CFG8).
    
    Add a pointer to the USB part of the PHY to the driver data and use that
    to power on the PHY also if the DP part of the PHY is initialised first.
    
    Fixes: 52e013d0bffa ("phy: qcom-qmp: Add support for DP in USB3+DP combo phy")
    Cc: stable@vger.kernel.org      # 5.10
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Link: https://lore.kernel.org/r/20221114081346.5116-5-johan+linaro@kernel.org
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    [swboyd@chromium.org: Backport to pre-split driver, also set usb_phy for
    pcie/ufs]
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 368ea32e0ad0335bdf3180067875a928e35387c6
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Fri Feb 3 14:26:14 2023 -0800

    phy: qcom-qmp-usb: fix memleak on probe deferral
    
    commit a5d6b1ac56cbd6b5850a3a54e35f1cb71e8e8cdd upstream.
    
    Switch to using the device-managed of_iomap helper to avoid leaking
    memory on probe deferral and driver unbind.
    
    Note that this helper checks for already reserved regions and may fail
    if there are multiple devices claiming the same memory.
    
    Two bindings currently rely on overlapping mappings for the PCS region
    so fallback to non-exclusive mappings for those for now.
    
    Fixes: e78f3d15e115 ("phy: qcom-qmp: new qmp phy driver for qcom-chipsets")
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Link: https://lore.kernel.org/r/20220916102340.11520-7-johan+linaro@kernel.org
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    [swboyd@chromium.org: Backport to pre-split driver]
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f27d3811a41a66b1d9d7c87b4af76bcdf0c9e05
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Fri Feb 3 14:26:13 2023 -0800

    phy: qcom-qmp-combo: fix memleak on probe deferral
    
    commit 2de8a325b1084330ae500380cc27edc39f488c30 upstream.
    
    Switch to using the device-managed of_iomap helper to avoid leaking
    memory on probe deferral and driver unbind.
    
    Note that this helper checks for already reserved regions and may fail
    if there are multiple devices claiming the same memory.
    
    Fixes: e78f3d15e115 ("phy: qcom-qmp: new qmp phy driver for qcom-chipsets")
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Link: https://lore.kernel.org/r/20220916102340.11520-5-johan+linaro@kernel.org
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0cb10ddab7dff172aff63d0c7cb0110a1f5b5b5e
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Fri Feb 3 14:26:12 2023 -0800

    phy: qcom-qmp-combo: disable runtime PM on unbind
    
    commit 4382d518d1887e62234560ea08a0203d11d28cc1 upstream.
    
    Make sure to disable runtime PM also on driver unbind.
    
    Fixes: ac0d239936bd ("phy: qcom-qmp: Add support for runtime PM").
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20220907110728.19092-2-johan+linaro@kernel.org
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ef5ffe11682267c0c5b670a2e26a78b3f5896d5
Author: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Date:   Mon Jan 30 13:48:41 2023 +0200

    serial: 8250_dma: Fix DMA Rx rearm race
    
    commit 57e9af7831dcf211c5c689c2a6f209f4abdf0bce upstream.
    
    As DMA Rx can be completed from two places, it is possible that DMA Rx
    completes before DMA completion callback had a chance to complete it.
    Once the previous DMA Rx has been completed, a new one can be started
    on the next UART interrupt. The following race is possible
    (uart_unlock_and_check_sysrq_irqrestore() replaced with
    spin_unlock_irqrestore() for simplicity/clarity):
    
    CPU0                                    CPU1
                                            dma_rx_complete()
    serial8250_handle_irq()
      spin_lock_irqsave(&port->lock)
      handle_rx_dma()
        serial8250_rx_dma_flush()
          __dma_rx_complete()
            dma->rx_running = 0
            // Complete DMA Rx
      spin_unlock_irqrestore(&port->lock)
    
    serial8250_handle_irq()
      spin_lock_irqsave(&port->lock)
      handle_rx_dma()
        serial8250_rx_dma()
          dma->rx_running = 1
          // Setup a new DMA Rx
      spin_unlock_irqrestore(&port->lock)
    
                                              spin_lock_irqsave(&port->lock)
                                              // sees dma->rx_running = 1
                                              __dma_rx_complete()
                                                dma->rx_running = 0
                                                // Incorrectly complete
                                                // running DMA Rx
    
    This race seems somewhat theoretical to occur for real but handle it
    correctly regardless. Check what is the DMA status before complething
    anything in __dma_rx_complete().
    
    Reported-by: Gilles BULOZ <gilles.buloz@kontron.com>
    Tested-by: Gilles BULOZ <gilles.buloz@kontron.com>
    Fixes: 9ee4b83e51f7 ("serial: 8250: Add support for dmaengine")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Link: https://lore.kernel.org/r/20230130114841.25749-3-ilpo.jarvinen@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e30328f599b9f5799322b665d262df9bd0519cbd
Author: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Date:   Mon Jan 30 13:48:40 2023 +0200

    serial: 8250_dma: Fix DMA Rx completion race
    
    commit 31352811e13dc2313f101b890fd4b1ce760b5fe7 upstream.
    
    __dma_rx_complete() is called from two places:
      - Through the DMA completion callback dma_rx_complete()
      - From serial8250_rx_dma_flush() after IIR_RLSI or IIR_RX_TIMEOUT
    The former does not hold port's lock during __dma_rx_complete() which
    allows these two to race and potentially insert the same data twice.
    
    Extend port's lock coverage in dma_rx_complete() to prevent the race
    and check if the DMA Rx is still pending completion before calling
    into __dma_rx_complete().
    
    Reported-by: Gilles BULOZ <gilles.buloz@kontron.com>
    Tested-by: Gilles BULOZ <gilles.buloz@kontron.com>
    Fixes: 9ee4b83e51f7 ("serial: 8250: Add support for dmaengine")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Link: https://lore.kernel.org/r/20230130114841.25749-2-ilpo.jarvinen@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5a171f61a047cf73464b9182f938a91be358f99
Author: Michael Walle <michael@walle.cc>
Date:   Fri Jan 27 10:40:13 2023 +0000

    nvmem: core: fix cell removal on error
    
    commit db3546d58b5a0fa581d9c9f2bdc2856fa6c5e43e upstream.
    
    nvmem_add_cells() could return an error after some cells are already
    added to the provider. In this case, the added cells are not removed.
    Remove any registered cells if nvmem_add_cells() fails.
    
    Fixes: fa72d847d68d7 ("nvmem: check the return value of nvmem_add_cells()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Michael Walle <michael@walle.cc>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20230127104015.23839-9-srinivas.kandagatla@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d9fa3ff6548ad9aab4ae930904f19879259dd37
Author: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Date:   Fri Jan 27 10:40:09 2023 +0000

    nvmem: core: remove nvmem_config wp_gpio
    
    commit 569653f022a29a1a44ea9de5308b657228303fa5 upstream.
    
    No one provides wp_gpio, so let's remove it to avoid issues with
    the nvmem core putting this gpio.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20230127104015.23839-5-srinivas.kandagatla@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit adf80e072c95e2b0a4d93e033c83927a018274cd
Author: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Date:   Fri Jan 27 10:40:08 2023 +0000

    nvmem: core: initialise nvmem->id early
    
    commit 3bd747c7ea13cb145f0d84444e00df928b0842d9 upstream.
    
    The error path for wp_gpio attempts to free the IDA nvmem->id, but
    this has yet to be assigned, so will always be zero - leaking the
    ID allocated by ida_alloc(). Fix this by moving the initialisation
    of nvmem->id earlier.
    
    Fixes: f7d8d7dcd978 ("nvmem: fix memory leak in error path")
    Cc: stable@vger.kernel.org
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20230127104015.23839-4-srinivas.kandagatla@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3ebc3e23bd9028a8a9a26cbc5985f99be445f65
Author: Rob Clark <robdclark@chromium.org>
Date:   Fri Jan 27 12:05:31 2023 -0800

    drm/i915: Fix potential bit_17 double-free
    
    commit 7057a8f126f14f14b040faecfa220fd27c6c2f85 upstream.
    
    A userspace with multiple threads racing I915_GEM_SET_TILING to set the
    tiling to I915_TILING_NONE could trigger a double free of the bit_17
    bitmask.  (Or conversely leak memory on the transition to tiled.)  Move
    allocation/free'ing of the bitmask within the section protected by the
    obj lock.
    
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Fixes: 2850748ef876 ("drm/i915: Pull i915_vma_pin under the vm->mutex")
    Cc: <stable@vger.kernel.org> # v5.5+
    [tursulin: Correct fixes tag and added cc stable.]
    Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230127200550.3531984-1-robdclark@gmail.com
    (cherry picked from commit 10e0cbaaf1104f449d695c80bcacf930dcd3c42e)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 997bed0f3cde78a3e639d624985bf4a95cf767e6
Author: Phillip Lougher <phillip@squashfs.org.uk>
Date:   Fri Jan 27 06:18:42 2023 +0000

    Squashfs: fix handling and sanity checking of xattr_ids count
    
    commit f65c4bbbd682b0877b669828b4e033b8d5d0a2dc upstream.
    
    A Sysbot [1] corrupted filesystem exposes two flaws in the handling and
    sanity checking of the xattr_ids count in the filesystem.  Both of these
    flaws cause computation overflow due to incorrect typing.
    
    In the corrupted filesystem the xattr_ids value is 4294967071, which
    stored in a signed variable becomes the negative number -225.
    
    Flaw 1 (64-bit systems only):
    
    The signed integer xattr_ids variable causes sign extension.
    
    This causes variable overflow in the SQUASHFS_XATTR_*(A) macros.  The
    variable is first multiplied by sizeof(struct squashfs_xattr_id) where the
    type of the sizeof operator is "unsigned long".
    
    On a 64-bit system this is 64-bits in size, and causes the negative number
    to be sign extended and widened to 64-bits and then become unsigned.  This
    produces the very large number 18446744073709548016 or 2^64 - 3600.  This
    number when rounded up by SQUASHFS_METADATA_SIZE - 1 (8191 bytes) and
    divided by SQUASHFS_METADATA_SIZE overflows and produces a length of 0
    (stored in len).
    
    Flaw 2 (32-bit systems only):
    
    On a 32-bit system the integer variable is not widened by the unsigned
    long type of the sizeof operator (32-bits), and the signedness of the
    variable has no effect due it always being treated as unsigned.
    
    The above corrupted xattr_ids value of 4294967071, when multiplied
    overflows and produces the number 4294963696 or 2^32 - 3400.  This number
    when rounded up by SQUASHFS_METADATA_SIZE - 1 (8191 bytes) and divided by
    SQUASHFS_METADATA_SIZE overflows again and produces a length of 0.
    
    The effect of the 0 length computation:
    
    In conjunction with the corrupted xattr_ids field, the filesystem also has
    a corrupted xattr_table_start value, where it matches the end of
    filesystem value of 850.
    
    This causes the following sanity check code to fail because the
    incorrectly computed len of 0 matches the incorrect size of the table
    reported by the superblock (0 bytes).
    
        len = SQUASHFS_XATTR_BLOCK_BYTES(*xattr_ids);
        indexes = SQUASHFS_XATTR_BLOCKS(*xattr_ids);
    
        /*
         * The computed size of the index table (len bytes) should exactly
         * match the table start and end points
        */
        start = table_start + sizeof(*id_table);
        end = msblk->bytes_used;
    
        if (len != (end - start))
                return ERR_PTR(-EINVAL);
    
    Changing the xattr_ids variable to be "usigned int" fixes the flaw on a
    64-bit system.  This relies on the fact the computation is widened by the
    unsigned long type of the sizeof operator.
    
    Casting the variable to u64 in the above macro fixes this flaw on a 32-bit
    system.
    
    It also means 64-bit systems do not implicitly rely on the type of the
    sizeof operator to widen the computation.
    
    [1] https://lore.kernel.org/lkml/000000000000cd44f005f1a0f17f@google.com/
    
    Link: https://lkml.kernel.org/r/20230127061842.10965-1-phillip@squashfs.org.uk
    Fixes: 506220d2ba21 ("squashfs: add more sanity checks in xattr id lookup")
    Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
    Reported-by: <syzbot+082fa4af80a5bb1a9843@syzkaller.appspotmail.com>
    Cc: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Cc: Fedor Pchelkin <pchelkin@ispras.ru>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a0cfaf9d45703c5a46d537066516fa06e0f037b
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Thu Jan 26 20:07:27 2023 +0000

    highmem: round down the address passed to kunmap_flush_on_unmap()
    
    commit 88d7b12068b95731c280af8ce88e8ee9561f96de upstream.
    
    We already round down the address in kunmap_local_indexed() which is the
    other implementation of __kunmap_local().  The only implementation of
    kunmap_flush_on_unmap() is PA-RISC which is expecting a page-aligned
    address.  This may be causing PA-RISC to be flushing the wrong addresses
    currently.
    
    Link: https://lkml.kernel.org/r/20230126200727.1680362-1-willy@infradead.org
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Fixes: 298fa1ad5571 ("highmem: Provide generic variant of kmap_atomic*")
    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Cc: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Helge Deller <deller@gmx.de>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Bagas Sanjaya <bagasdotme@gmail.com>
    Cc: David Sterba <dsterba@suse.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Tony Luck <tony.luck@intel.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 5dbe1ebd56470d03b78fc31491a9e4d433106ef2
Author: Longlong Xia <xialonglong1@huawei.com>
Date:   Sat Jan 28 09:47:57 2023 +0000

    mm/swapfile: add cond_resched() in get_swap_pages()
    
    commit 7717fc1a12f88701573f9ed897cc4f6699c661e3 upstream.
    
    The softlockup still occurs in get_swap_pages() under memory pressure.  64
    CPU cores, 64GB memory, and 28 zram devices, the disksize of each zram
    device is 50MB with same priority as si.  Use the stress-ng tool to
    increase memory pressure, causing the system to oom frequently.
    
    The plist_for_each_entry_safe() loops in get_swap_pages() could reach tens
    of thousands of times to find available space (extreme case:
    cond_resched() is not called in scan_swap_map_slots()).  Let's add
    cond_resched() into get_swap_pages() when failed to find available space
    to avoid softlockup.
    
    Link: https://lkml.kernel.org/r/20230128094757.1060525-1-xialonglong1@huawei.com
    Signed-off-by: Longlong Xia <xialonglong1@huawei.com>
    Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
    Cc: Chen Wandun <chenwandun@huawei.com>
    Cc: Huang Ying <ying.huang@intel.com>
    Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Nanyong Sun <sunnanyong@huawei.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit daf82418045fe5847723d37e31f694ecd166eaff
Author: Zheng Yongjun <zhengyongjun3@huawei.com>
Date:   Sat Nov 26 07:14:30 2022 +0000

    fpga: stratix10-soc: Fix return value check in s10_ops_write_init()
    
    commit 65ea840afd508194b0ee903256162aa87e46ec30 upstream.
    
    In case of error, the function stratix10_svc_allocate_memory()
    returns ERR_PTR() and never returns NULL. The NULL test in the
    return value check should be replaced with IS_ERR().
    
    Fixes: e7eef1d7633a ("fpga: add intel stratix10 soc fpga manager driver")
    Signed-off-by: Zheng Yongjun <zhengyongjun3@huawei.com>
    Reviewed-by: Russ Weight <russell.h.weight@intel.com>
    Cc: stable@vger.kernel.org
    Acked-by: Xu Yilun <yilun.xu@intel.com>
    Link: https://lore.kernel.org/r/20221126071430.19540-1-zhengyongjun3@huawei.com
    Signed-off-by: Xu Yilun <yilun.xu@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit afd32b683154c70cbc3190487dc40a4495ecef9a
Author: Joerg Roedel <jroedel@suse.de>
Date:   Tue Jan 31 09:57:18 2023 +0100

    x86/debug: Fix stack recursion caused by wrongly ordered DR7 accesses
    
    commit 9d2c7203ffdb846399b82b0660563c89e918c751 upstream.
    
    In kernels compiled with CONFIG_PARAVIRT=n, the compiler re-orders the
    DR7 read in exc_nmi() to happen before the call to sev_es_ist_enter().
    
    This is problematic when running as an SEV-ES guest because in this
    environment the DR7 read might cause a #VC exception, and taking #VC
    exceptions is not safe in exc_nmi() before sev_es_ist_enter() has run.
    
    The result is stack recursion if the NMI was caused on the #VC IST
    stack, because a subsequent #VC exception in the NMI handler will
    overwrite the stack frame of the interrupted #VC handler.
    
    As there are no compiler barriers affecting the ordering of DR7
    reads/writes, make the accesses to this register volatile, forbidding
    the compiler to re-order them.
    
      [ bp: Massage text, make them volatile too, to make sure some
      aggressive compiler optimization pass doesn't discard them. ]
    
    Fixes: 315562c9af3d ("x86/sev-es: Adjust #VC IST Stack on entering NMI handler")
    Reported-by: Alexey Kardashevskiy <aik@amd.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20230127035616.508966-1-aik@amd.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 066ecbf1a53eb0b92b10c8df7808666be6ea5681
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Feb 2 16:15:54 2023 +0100

    kernel/irq/irqdomain.c: fix memory leak with using debugfs_lookup()
    
    commit d83d7ed260283560700d4034a80baad46620481b upstream.
    
    When calling debugfs_lookup() the result must have dput() called on it,
    otherwise the memory will leak over time.  To make things simpler, just
    call debugfs_lookup_and_remove() instead which handles all of the logic
    at once.
    
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable <stable@kernel.org>
    Reviewed-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230202151554.2310273-1-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 481bf49f58bb1980aafe67183c399c69d9302cbc
Author: Pratham Pratap <quic_ppratap@quicinc.com>
Date:   Wed Jan 25 12:57:25 2023 +0530

    usb: gadget: f_uac2: Fix incorrect increment of bNumEndpoints
    
    commit 2fa89458af9993fab8054daf827f38881e2ad473 upstream.
    
    Currently connect/disconnect of USB cable calls afunc_bind and
    eventually increments the bNumEndpoints. Performing multiple
    plugin/plugout will increment bNumEndpoints incorrectly, and on
    the next plug-in it leads to invalid configuration of descriptor
    and hence enumeration fails.
    
    Fix this by resetting the value of bNumEndpoints to 1 on every
    afunc_bind call.
    
    Fixes: 40c73b30546e ("usb: gadget: f_uac2: add adaptive sync support for capture")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Pratham Pratap <quic_ppratap@quicinc.com>
    Signed-off-by: Prashanth K <quic_prashk@quicinc.com>
    Link: https://lore.kernel.org/r/1674631645-28888-1-git-send-email-quic_prashk@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fdf40e582442359b954b8f9249be5c16d4794286
Author: Mike Kravetz <mike.kravetz@oracle.com>
Date:   Thu Jan 26 14:27:20 2023 -0800

    mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps
    
    commit 3489dbb696d25602aea8c3e669a6d43b76bd5358 upstream.
    
    Patch series "Fixes for hugetlb mapcount at most 1 for shared PMDs".
    
    This issue of mapcount in hugetlb pages referenced by shared PMDs was
    discussed in [1].  The following two patches address user visible behavior
    caused by this issue.
    
    [1] https://lore.kernel.org/linux-mm/Y9BF+OCdWnCSilEu@monkey/
    
    
    This patch (of 2):
    
    A hugetlb page will have a mapcount of 1 if mapped by multiple processes
    via a shared PMD.  This is because only the first process increases the
    map count, and subsequent processes just add the shared PMD page to their
    page table.
    
    page_mapcount is being used to decide if a hugetlb page is shared or
    private in /proc/PID/smaps.  Pages referenced via a shared PMD were
    incorrectly being counted as private.
    
    To fix, check for a shared PMD if mapcount is 1.  If a shared PMD is found
    count the hugetlb page as shared.  A new helper to check for a shared PMD
    is added.
    
    [akpm@linux-foundation.org: simplification, per David]
    [akpm@linux-foundation.org: hugetlb.h: include page_ref.h for page_count()]
    Link: https://lkml.kernel.org/r/20230126222721.222195-2-mike.kravetz@oracle.com
    Fixes: 25ee01a2fca0 ("mm: hugetlb: proc: add hugetlb-related fields to /proc/PID/smaps")
    Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
    Acked-by: Peter Xu <peterx@redhat.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: James Houghton <jthoughton@google.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Muchun Song <songmuchun@bytedance.com>
    Cc: Naoya Horiguchi <naoya.horiguchi@linux.dev>
    Cc: Vishal Moola (Oracle) <vishal.moola@gmail.com>
    Cc: Yang Shi <shy828301@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 6c300351c55dcee76203b4e1fbbae8804c81ee11
Author: Andreas Schwab <schwab@suse.de>
Date:   Wed Feb 1 10:29:45 2023 +0100

    riscv: disable generation of unwind tables
    
    commit 2f394c0e7d1129a35156e492bc8f445fb20f43ac upstream.
    
    GCC 13 will enable -fasynchronous-unwind-tables by default on riscv.  In
    the kernel, we don't have any use for unwind tables yet, so disable them.
    More importantly, the .eh_frame section brings relocations
    (R_RISC_32_PCREL, R_RISCV_SET{6,8,16}, R_RISCV_SUB{6,8,16}) into modules
    that we are not prepared to handle.
    
    Signed-off-by: Andreas Schwab <schwab@suse.de>
    Link: https://lore.kernel.org/r/mvmzg9xybqu.fsf@suse.de
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5c275add96b468adc9454a3eaed3f4a72820c6f
Author: Helge Deller <deller@gmx.de>
Date:   Wed Feb 1 16:41:54 2023 +0100

    parisc: Wire up PTRACE_GETREGS/PTRACE_SETREGS for compat case
    
    commit 316f1f42b5cc1d95124c1f0387c867c1ba7b6d0e upstream.
    
    Wire up the missing ptrace requests PTRACE_GETREGS, PTRACE_SETREGS,
    PTRACE_GETFPREGS and PTRACE_SETFPREGS when running 32-bit applications
    on 64-bit kernels.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Cc: stable@vger.kernel.org # 4.7+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a964decd1307efb23e3825601b5a07be2aa77bae
Author: Helge Deller <deller@gmx.de>
Date:   Mon Dec 19 20:56:36 2022 +0100

    parisc: Fix return code of pdc_iodc_print()
    
    commit 5d1335dabb3c493a3d6d5b233953b6ac7b6c1ff2 upstream.
    
    There is an off-by-one if the printed string includes a new-line
    char.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 488eaf0625d953d01b7fe6f856e495352c5e335b
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Fri Jan 27 10:40:15 2023 +0000

    nvmem: qcom-spmi-sdam: fix module autoloading
    
    commit 1ca7fca349316231bbaa68d16f819a08d683c5a7 upstream.
    
    Add the missing module device table so that the driver can be autoloaded
    when built as a module.
    
    Fixes: 40ce9798794f ("nvmem: add QTI SDAM driver")
    Cc: stable@vger.kernel.org      # 5.6
    Reviewed-by: Bjorn Andersson <andersson@kernel.org>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20230127104015.23839-11-srinivas.kandagatla@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8569beb66fe6f70534104d5c017132fe531aab9c
Author: Carlos Song <carlos.song@nxp.com>
Date:   Wed Jan 18 15:42:27 2023 +0800

    iio: imu: fxos8700: fix MAGN sensor scale and unit
    
    commit 2acd031347f645871959a799238a7caf6803aa18 upstream.
    
    +/-1200uT is a MAGN sensor full measurement range. Magnetometer scale
    is the magnetic sensitivity parameter. It is referenced as 0.1uT
    according to datasheet and magnetometer channel unit is Gauss in
    sysfs-bus-iio documentation. Gauss and uTesla unit conversion
    relationship as follows: 0.1uT = 0.001Gs.
    
    Set magnetometer scale and available magnetometer scale as fixed 0.001Gs.
    
    Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU")
    Signed-off-by: Carlos Song <carlos.song@nxp.com>
    Link: https://lore.kernel.org/r/20230118074227.1665098-5-carlos.song@nxp.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 8aa5cdcfaf6ae227ccd8ac9f5b06652b626031c9
Author: Carlos Song <carlos.song@nxp.com>
Date:   Wed Jan 18 15:42:26 2023 +0800

    iio: imu: fxos8700: remove definition FXOS8700_CTRL_ODR_MIN
    
    commit ff5e2cd92ffda9a25ffa2cbdb3a0cf17650172a6 upstream.
    
    FXOS8700_CTRL_ODR_MIN is not used but value is probably wrong.
    
    Remove it for a good readability.
    
    Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU")
    Signed-off-by: Carlos Song <carlos.song@nxp.com>
    Link: https://lore.kernel.org/r/20230118074227.1665098-4-carlos.song@nxp.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 4112ba1ad5cacdfac495415a22f14d85eefdaa62
Author: Carlos Song <carlos.song@nxp.com>
Date:   Wed Jan 18 15:42:25 2023 +0800

    iio: imu: fxos8700: fix failed initialization ODR mode assignment
    
    commit eb6d8f8705bc19141bac81d8161461f9e256948a upstream.
    
    The absence of correct offset leads a failed initialization ODR mode
    assignment.
    
    Select MAX ODR mode as the initialization ODR mode by field mask and
    FIELD_PREP.
    
    Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU")
    Signed-off-by: Carlos Song <carlos.song@nxp.com>
    Link: https://lore.kernel.org/r/20230118074227.1665098-3-carlos.song@nxp.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 abf7b2ba51f5c0b94f70c053b3297b7fe92447d0
Author: Carlos Song <carlos.song@nxp.com>
Date:   Wed Jan 18 15:42:24 2023 +0800

    iio: imu: fxos8700: fix incorrect ODR mode readback
    
    commit 78ad6864e9e012cdba7c353d044d21ffcfd5f34b upstream.
    
    The absence of a correct offset leads an incorrect ODR mode
    readback after use a hexadecimal number to mark the value from
    FXOS8700_CTRL_REG1.
    
    Get ODR mode by field mask and FIELD_GET clearly and conveniently.
    And attach other additional fix for keeping the original code logic
    and a good readability.
    
    Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU")
    Signed-off-by: Carlos Song <carlos.song@nxp.com>
    Link: https://lore.kernel.org/r/20230118074227.1665098-2-carlos.song@nxp.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 412757741c22ced74800838018b02676431c862d
Author: Carlos Song <carlos.song@nxp.com>
Date:   Thu Dec 8 15:19:06 2022 +0800

    iio: imu: fxos8700: fix swapped ACCEL and MAGN channels readback
    
    commit c68b44bc7d9b1469774a1c985ee71d2cbc5ebef5 upstream.
    
    Because ACCEL and MAGN channels data register base address is
    swapped the accelerometer and magnetometer channels readback is
    swapped.
    
    Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU")
    Signed-off-by: Carlos Song <carlos.song@nxp.com>
    Link: https://lore.kernel.org/r/20221208071911.2405922-3-carlos.song@nxp.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 34909532b12e694c63c3746bc54e97c8cbbadbd6
Author: Carlos Song <carlos.song@nxp.com>
Date:   Thu Dec 8 15:19:05 2022 +0800

    iio: imu: fxos8700: fix map label of channel type to MAGN sensor
    
    commit 429e1e8ec696e0e7a0742904e3dc2f83b7b23dfb upstream.
    
    FXOS8700 is an IMU sensor with ACCEL sensor and MAGN sensor.
    Sensor type is indexed by corresponding channel type in a switch.
    IIO_ANGL_VEL channel type mapped to MAGN sensor has caused confusion.
    
    Fix the mapping label of "IIO_MAGN" channel type instead of
    "IIO_ANGL_VEL" channel type to MAGN sensor.
    
    Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU")
    Signed-off-by: Carlos Song <carlos.song@nxp.com>
    Link: https://lore.kernel.org/r/20221208071911.2405922-2-carlos.song@nxp.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 8346eb4987e58676e5ac4c69110aaa9b9774b80d
Author: Carlos Song <carlos.song@nxp.com>
Date:   Thu Dec 8 15:19:08 2022 +0800

    iio: imu: fxos8700: fix IMU data bits returned to user space
    
    commit a53f945879c0cb9de3a4c05a665f5157884b5208 upstream.
    
    ACCEL output data registers contain the X-axis, Y-axis, and Z-axis
    14-bit left-justified sample data and MAGN output data registers
    contain the X-axis, Y-axis, and Z-axis 16-bit sample data. The ACCEL
    raw register output data should be divided by 4 before sent to
    userspace.
    
    Apply a 2 bits signed right shift to the raw data from ACCEL output
    data register but keep that from MAGN sensor as the origin.
    
    Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU")
    Signed-off-by: Carlos Song <carlos.song@nxp.com>
    Link: https://lore.kernel.org/r/20221208071911.2405922-5-carlos.song@nxp.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 7567cdf3ce21fe362321d1c111e35632aaf1e19c
Author: Carlos Song <carlos.song@nxp.com>
Date:   Thu Dec 8 15:19:07 2022 +0800

    iio: imu: fxos8700: fix incomplete ACCEL and MAGN channels readback
    
    commit 37a94d86d7050665d6d01378b2c916c28e454f10 upstream.
    
    The length of ACCEL and MAGN 3-axis channels output data is 6 byte
    individually. However block only read 3 bytes data into buffer from
    ACCEL or MAGN output data registers every time. It causes an incomplete
    ACCEL and MAGN channels readback.
    
    Set correct value count for regmap_bulk_read to get 6 bytes ACCEL and
    MAGN channels readback.
    
    Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU")
    Signed-off-by: Carlos Song <carlos.song@nxp.com>
    Link: https://lore.kernel.org/r/20221208071911.2405922-4-carlos.song@nxp.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 6969852220afe50dcadc4369125f13efbca0e0bc
Author: Carlos Song <carlos.song@nxp.com>
Date:   Thu Dec 8 15:19:09 2022 +0800

    iio: imu: fxos8700: fix ACCEL measurement range selection
    
    commit 9d61c1820598a5ea474576ed55318a6dadee37ed upstream.
    
    When device is in active mode, it fails to set an ACCEL full-scale
    range(2g/4g/8g) in FXOS8700_XYZ_DATA_CFG. This is not align with the
    datasheet, but it is a fxos8700 chip behavior.
    
    Keep the device in standby mode before setting ACCEL full-scale range
    into FXOS8700_XYZ_DATA_CFG in chip initialization phase and setting
    scale phase.
    
    Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU")
    Signed-off-by: Carlos Song <carlos.song@nxp.com>
    Link: https://lore.kernel.org/r/20221208071911.2405922-6-carlos.song@nxp.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 cdacfb22055625fab8f2124957c8209e375dd32a
Author: Andreas Kemnade <andreas@kemnade.info>
Date:   Thu Dec 1 19:16:35 2022 +0100

    iio:adc:twl6030: Enable measurements of VUSB, VBAT and others
    
    commit f804bd0dc28683a93a60f271aaefb2fc5b0853dd upstream.
    
    Some inputs need to be wired up to produce proper measurements,
    without this change only near zero values are reported.
    
    Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
    Fixes: 1696f36482e70 ("iio: twl6030-gpadc: TWL6030, TWL6032 GPADC driver")
    Link: https://lore.kernel.org/r/20221201181635.3522962-1-andreas@kemnade.info
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9988063dcefd7435a1917a3126a49a0606a1d3dd
Author: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Date:   Tue Nov 29 10:03:16 2022 +0800

    iio: adc: berlin2-adc: Add missing of_node_put() in error path
    
    commit cbd3a0153cd18a2cbef6bf3cf31bb406c3fc9f55 upstream.
    
    of_get_parent() will return a device_node pointer with refcount
    incremented. We need to use of_node_put() on it when done. Add the
    missing of_node_put() in the error path of berlin2_adc_probe();
    
    Fixes: 70f1937911ca ("iio: adc: add support for Berlin")
    Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
    Link: https://lore.kernel.org/r/20221129020316.191731-1-wangxiongfeng2@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 c691a5c0fd036201877b8361a55b12268a04f9e4
Author: Dmitry Perchanov <dmitry.perchanov@intel.com>
Date:   Wed Jan 11 14:24:25 2023 +0200

    iio: hid: fix the retval in gyro_3d_capture_sample
    
    commit eb50cd5bfdac61627a5026566cf3b90ced7b141c upstream.
    
    Return value should be zero for success. This was forgotten for timestamp
    feature. Verified on RealSense cameras.
    
    Fixes: 4648cbd8fb92 ("iio: hid-sensor-gyro-3d: Add timestamp channel")
    Signed-off-by: Dmitry Perchanov <dmitry.perchanov@intel.com>
    Link: https://lore.kernel.org/r/7c1809dc74eb2f58a20595f4d02e76934f8e9219.camel@intel.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 ef80a34699cd4628074d37c2209aed90664e41d2
Author: Dmitry Perchanov <dmitry.perchanov@intel.com>
Date:   Wed Jan 11 14:22:10 2023 +0200

    iio: hid: fix the retval in accel_3d_capture_sample
    
    commit f7b23d1c35d8b8de1425bdfccaefd01f3b7c9d1c upstream.
    
    Return value should be zero for success. This was forgotten for timestamp
    feature. Verified on RealSense cameras.
    
    Fixes: a96cd0f901ee ("iio: accel: hid-sensor-accel-3d: Add timestamp")
    Signed-off-by: Dmitry Perchanov <dmitry.perchanov@intel.com>
    Link: https://lore.kernel.org/r/a6dc426498221c81fa71045b41adf782ebd42136.camel@intel.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 c4eae85c73be9c889c01af6fb686709f1fac3512
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Thu Feb 2 18:30:06 2023 +0100

    efi: Accept version 2 of memory attributes table
    
    commit 636ab417a7aec4ee993916e688eb5c5977570836 upstream.
    
    UEFI v2.10 introduces version 2 of the memory attributes table, which
    turns the reserved field into a flags field, but is compatible with
    version 1 in all other respects. So let's not complain about version 2
    if we encounter it.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 710db8206351a613dfc3ff06fd64c58d5827ef91
Author: Victor Shyba <victor1984@riseup.net>
Date:   Mon Jan 23 19:21:29 2023 -0300

    ALSA: hda/realtek: Add Acer Predator PH315-54
    
    commit 6a28a25d358079b7d0d144689f850aecacf63cba upstream.
    
    Same issue as SP513-54N: Headset microphone does not work without
    ALC255_FIXUP_ACER_MIC_NO_PRESENCE fixup.
    
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=211853
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Victor Shyba <victor1984@riseup.net>
    Link: https://lore.kernel.org/r/20230123222129.17589-1-victor1984@riseup.net
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3fbddf86d92411bddc4084b5b8db2bfdb5f5db11
Author: Alexander Egorenkov <egorenar@linux.ibm.com>
Date:   Fri Jan 27 14:52:42 2023 +0100

    watchdog: diag288_wdt: fix __diag288() inline assembly
    
    commit 32e40f9506b9e32917eb73154f93037b443124d1 upstream.
    
    The DIAG 288 statement consumes an EBCDIC string the address of which is
    passed in a register. Use a "memory" clobber to tell the compiler that
    memory is accessed within the inline assembly.
    
    Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
    Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 700dd5bc72d349e6314bb8f2d01bb0eb7c0f1ffc
Author: Alexander Egorenkov <egorenar@linux.ibm.com>
Date:   Fri Jan 27 14:52:41 2023 +0100

    watchdog: diag288_wdt: do not use stack buffers for hardware data
    
    commit fe8973a3ad0905cb9ba2d42db42ed51de14737df upstream.
    
    With CONFIG_VMAP_STACK=y the stack is allocated from the vmalloc space.
    Data passed to a hardware or a hypervisor interface that
    requires V=R can no longer be allocated on the stack.
    
    Use kmalloc() to get memory for a diag288 command.
    
    Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
    Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 21bc51e29e6617d915cd267e9f6c283c48aaa553
Author: Natalia Petrova <n.petrova@fintech.ru>
Date:   Wed Jan 25 16:48:31 2023 +0300

    net: qrtr: free memory on error path in radix_tree_insert()
    
    commit 29de68c2b32ce58d64dea496d281e25ad0f551bd upstream.
    
    Function radix_tree_insert() returns errors if the node hasn't
    been initialized and added to the tree.
    
    "kfree(node)" and return value "NULL" of node_get() help
    to avoid using unclear node in other calls.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Cc: <stable@vger.kernel.org> # 5.7
    Fixes: 0c2204a4ad71 ("net: qrtr: Migrate nameservice to kernel from userspace")
    Signed-off-by: Natalia Petrova <n.petrova@fintech.ru>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
    Link: https://lore.kernel.org/r/20230125134831.8090-1-n.petrova@fintech.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dccbd062d71657648efc32fdc9919b33763cc68b
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun Jan 29 16:17:40 2023 +0100

    fbcon: Check font dimension limits
    
    commit 2b09d5d364986f724f17001ccfe4126b9b43a0be upstream.
    
    blit_x and blit_y are u32, so fbcon currently cannot support fonts
    larger than 32x32.
    
    The 32x32 case also needs shifting an unsigned int, to properly set bit
    31, otherwise we get "UBSAN: shift-out-of-bounds in fbcon_set_font",
    as reported on:
    
    http://lore.kernel.org/all/IA1PR07MB98308653E259A6F2CE94A4AFABCE9@IA1PR07MB9830.namprd07.prod.outlook.com
    Kernel Branch: 6.2.0-rc5-next-20230124
    Kernel config: https://drive.google.com/file/d/1F-LszDAizEEH0ZX0HcSR06v5q8FPl2Uv/view?usp=sharing
    Reproducer: https://drive.google.com/file/d/1mP1jcLBY7vWCNM60OMf-ogw-urQRjNrm/view?usp=sharing
    
    Reported-by: Sanan Hasanov <sanan.hasanov@Knights.ucf.edu>
    Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
    Fixes: 2d2699d98492 ("fbcon: font setting should check limitation of driver")
    Cc: stable@vger.kernel.org
    Tested-by: Miko Larsson <mikoxyzzz@gmail.com>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d7500d99164953b185d3b92f9903322f15efb17
Author: Werner Sembach <wse@tuxedocomputers.com>
Date:   Tue Jan 10 14:45:24 2023 +0100

    Input: i8042 - add Clevo PCX0DX to i8042 quirk table
    
    [ Upstream commit 9c445d2637c938a800fcc8b5f0b10e60c94460c7 ]
    
    The Clevo PCX0DX/TUXEDO XP1511, need quirks for the keyboard to not be
    occasionally unresponsive after resume.
    
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
    Link: https://lore.kernel.org/r/20230110134524.553620-1-wse@tuxedocomputers.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fc9e27f3ba083534b8bbf72ab0f5c810ffdc7d18
Author: George Kennedy <george.kennedy@oracle.com>
Date:   Tue Jan 24 11:16:54 2023 -0500

    vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF
    
    [ Upstream commit 226fae124b2dac217ea5436060d623ff3385bc34 ]
    
    After a call to console_unlock() in vcs_read() the vc_data struct can be
    freed by vc_deallocate(). Because of that, the struct vc_data pointer
    load must be done at the top of while loop in vcs_read() to avoid a UAF
    when vcs_size() is called.
    
    Syzkaller reported a UAF in vcs_size().
    
    BUG: KASAN: use-after-free in vcs_size (drivers/tty/vt/vc_screen.c:215)
    Read of size 4 at addr ffff8881137479a8 by task 4a005ed81e27e65/1537
    
    CPU: 0 PID: 1537 Comm: 4a005ed81e27e65 Not tainted 6.2.0-rc5 #1
    Hardware name: Red Hat KVM, BIOS 1.15.0-2.module
    Call Trace:
      <TASK>
    __asan_report_load4_noabort (mm/kasan/report_generic.c:350)
    vcs_size (drivers/tty/vt/vc_screen.c:215)
    vcs_read (drivers/tty/vt/vc_screen.c:415)
    vfs_read (fs/read_write.c:468 fs/read_write.c:450)
    ...
      </TASK>
    
    Allocated by task 1191:
    ...
    kmalloc_trace (mm/slab_common.c:1069)
    vc_allocate (./include/linux/slab.h:580 ./include/linux/slab.h:720
         drivers/tty/vt/vt.c:1128 drivers/tty/vt/vt.c:1108)
    con_install (drivers/tty/vt/vt.c:3383)
    tty_init_dev (drivers/tty/tty_io.c:1301 drivers/tty/tty_io.c:1413
         drivers/tty/tty_io.c:1390)
    tty_open (drivers/tty/tty_io.c:2080 drivers/tty/tty_io.c:2126)
    chrdev_open (fs/char_dev.c:415)
    do_dentry_open (fs/open.c:883)
    vfs_open (fs/open.c:1014)
    ...
    
    Freed by task 1548:
    ...
    kfree (mm/slab_common.c:1021)
    vc_port_destruct (drivers/tty/vt/vt.c:1094)
    tty_port_destructor (drivers/tty/tty_port.c:296)
    tty_port_put (drivers/tty/tty_port.c:312)
    vt_disallocate_all (drivers/tty/vt/vt_ioctl.c:662 (discriminator 2))
    vt_ioctl (drivers/tty/vt/vt_ioctl.c:903)
    tty_ioctl (drivers/tty/tty_io.c:2776)
    ...
    
    The buggy address belongs to the object at ffff888113747800
      which belongs to the cache kmalloc-1k of size 1024
    The buggy address is located 424 bytes inside of
      1024-byte region [ffff888113747800, ffff888113747c00)
    
    The buggy address belongs to the physical page:
    page:00000000b3fe6c7c refcount:1 mapcount:0 mapping:0000000000000000
         index:0x0 pfn:0x113740
    head:00000000b3fe6c7c order:3 compound_mapcount:0 subpages_mapcount:0
         compound_pincount:0
    anon flags: 0x17ffffc0010200(slab|head|node=0|zone=2|lastcpupid=0x1fffff)
    raw: 0017ffffc0010200 ffff888100042dc0 0000000000000000 dead000000000001
    raw: 0000000000000000 0000000000100010 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
      ffff888113747880: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      ffff888113747900: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    > ffff888113747980: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                       ^
      ffff888113747a00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      ffff888113747a80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    ==================================================================
    Disabling lock debugging due to kernel taint
    
    Fixes: ac751efa6a0d ("console: rename acquire/release_console_sem() to console_lock/unlock()")
    Reported-by: syzkaller <syzkaller@googlegroups.com>
    Suggested-by: Jiri Slaby <jirislaby@kernel.org>
    Signed-off-by: George Kennedy <george.kennedy@oracle.com>
    Link: https://lore.kernel.org/r/1674577014-12374-1-git-send-email-george.kennedy@oracle.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ba1188a719a940d8cddee040c1b7580c5973fbe
Author: Udipto Goswami <quic_ugoswami@quicinc.com>
Date:   Tue Jan 24 14:41:49 2023 +0530

    usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait
    
    [ Upstream commit 921deb9da15851425ccbb6ee409dc2fd8fbdfe6b ]
    
    __ffs_ep0_queue_wait executes holding the spinlock of &ffs->ev.waitq.lock
    and unlocks it after the assignments to usb_request are done.
    However in the code if the request is already NULL we bail out returning
    -EINVAL but never unlocked the spinlock.
    
    Fix this by adding spin_unlock_irq &ffs->ev.waitq.lock before returning.
    
    Fixes: 6a19da111057 ("usb: gadget: f_fs: Prevent race during ffs_ep0_queue_wait")
    Reviewed-by: John Keeping <john@metanate.com>
    Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
    Link: https://lore.kernel.org/r/20230124091149.18647-1-quic_ugoswami@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fe86480e903f33cfaca85e27f286f6d944cc7f44
Author: Neil Armstrong <neil.armstrong@linaro.org>
Date:   Tue Jan 24 09:31:21 2023 +0100

    usb: dwc3: qcom: enable vbus override when in OTG dr-mode
    
    [ Upstream commit eb320f76e31dc835b9f57f04af1a2353b13bb7d8 ]
    
    With vbus override enabled when in OTG dr_mode, Host<->Peripheral
    switch now works on SM8550, otherwise the DWC3 seems to be stuck
    in Host mode only.
    
    Fixes: a4333c3a6ba9 ("usb: dwc3: Add Qualcomm DWC3 glue driver")
    Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://lore.kernel.org/r/20230123-topic-sm8550-upstream-dwc3-qcom-otg-v2-1-2d400e598463@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a412fe7baf40afa756a2953dc66f46fc6b4bb27f
Author: Olivier Moysan <olivier.moysan@foss.st.com>
Date:   Fri Dec 2 16:28:48 2022 +0100

    iio: adc: stm32-dfsdm: fill module aliases
    
    [ Upstream commit cc3304052a89ab6ac887ed9224420a27e3d354e1 ]
    
    When STM32 DFSDM driver is built as module, no modalias information
    is available. This prevents module to be loaded by udev.
    Add MODULE_DEVICE_TABLE() to fill module aliases.
    
    Fixes: e2e6771c6462 ("IIO: ADC: add STM32 DFSDM sigma delta ADC support")
    Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com>
    Link: https://lore.kernel.org/r/20221202152848.45585-1-olivier.moysan@foss.st.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 994465939830120c89f86f547f9f3200f43c4193
Author: Aurabindo Pillai <aurabindo.pillai@amd.com>
Date:   Wed Jan 11 14:56:22 2023 -0500

    drm/amd/display: Fix timing not changning when freesync video is enabled
    
    [ Upstream commit 4b069553246f993c4221e382d0d0ae34f5ba730e ]
    
    [Why&How]
    Switching between certain modes that are freesync video modes and those
    are not freesync video modes result in timing not changing as seen by
    the monitor due to incorrect timing being driven.
    
    The issue is fixed by ensuring that when a non freesync video mode is
    set, we reset the freesync status on the crtc.
    
    Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
    Acked-by: Alan Liu <HaoPing.Liu@amd.com>
    Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3967128bc659f72bdf4fe7d2fd20258ea5b5e88
Author: Hyunwoo Kim <v4bel@theori.io>
Date:   Mon Jan 23 11:43:23 2023 -0800

    net/x25: Fix to not accept on connected socket
    
    [ Upstream commit f2b0b5210f67c56a3bcdf92ff665fb285d6e0067 ]
    
    When listen() and accept() are called on an x25 socket
    that connect() succeeds, accept() succeeds immediately.
    This is because x25_connect() queues the skb to
    sk->sk_receive_queue, and x25_accept() dequeues it.
    
    This creates a child socket with the sk of the parent
    x25 socket, which can cause confusion.
    
    Fix x25_listen() to return -EINVAL if the socket has
    already been successfully connect()ed to avoid this issue.
    
    Signed-off-by: Hyunwoo Kim <v4bel@theori.io>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 396ea318e7fa6792070ad9e74932b1b61894a934
Author: Kevin Kuriakose <kevinmkuriakose@gmail.com>
Date:   Thu Jan 19 20:39:25 2023 +0530

    platform/x86: gigabyte-wmi: add support for B450M DS3H WIFI-CF
    
    [ Upstream commit a410429a3b7e748a9db9f357e71e2e085a21c902 ]
    
    To the best of my knowledge this is the same board as the B450M DS3H-CF,
    but with an added WiFi card. Name obtained using dmidecode, tested
    with force_load on v6.1.6
    
    Signed-off-by: Kevin Kuriakose <kevinmkuriakose@gmail.com>
    Acked-by: Thomas Weißschuh <linux@weissschuh.net>
    Link: https://lore.kernel.org/r/20230119150925.31962-1-kevinmkuriakose@gmail.com
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1577524633c7f2bda951c1abe9138324a72032b3
Author: Koba Ko <koba.ko@canonical.com>
Date:   Tue Jan 17 20:34:36 2023 +0800

    platform/x86: dell-wmi: Add a keymap for KEY_MUTE in type 0x0010 table
    
    [ Upstream commit 83bcf3e52e9cfc727df33f1055ef0618c91719d0 ]
    
    Some platforms send the speaker-mute key from EC. dell-wmi can't
    recognize it.
    
    Add a new keymap for KEY_MUTE in type 0x0010 table.
    
    Signed-off-by: Koba Ko <koba.ko@canonical.com>
    Link: https://lore.kernel.org/r/20230117123436.200440-1-koba.ko@canonical.com
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 540cea9f9b6da7e3dae3dd6ee7616314c14cc3d8
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Thu Jan 12 22:38:05 2023 -0800

    i2c: rk3x: fix a bunch of kernel-doc warnings
    
    [ Upstream commit 0582d984793d30442da88fe458674502bad1ad29 ]
    
    Fix multiple W=1 kernel-doc warnings in i2c-rk3x.c:
    
    drivers/i2c/busses/i2c-rk3x.c:83: warning: missing initial short description on line:
     * struct i2c_spec_values:
    drivers/i2c/busses/i2c-rk3x.c:139: warning: missing initial short description on line:
     * struct rk3x_i2c_calced_timings:
    drivers/i2c/busses/i2c-rk3x.c:162: warning: missing initial short description on line:
     * struct rk3x_i2c_soc_data:
    drivers/i2c/busses/i2c-rk3x.c:242: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
     * Generate a START condition, which triggers a REG_INT_START interrupt.
    drivers/i2c/busses/i2c-rk3x.c:261: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
     * Generate a STOP condition, which triggers a REG_INT_STOP interrupt.
    drivers/i2c/busses/i2c-rk3x.c:304: warning: expecting prototype for Setup a read according to i2c(). Prototype was for rk3x_i2c_prepare_read() instead
    drivers/i2c/busses/i2c-rk3x.c:335: warning: expecting prototype for Fill the transmit buffer with data from i2c(). Prototype was for rk3x_i2c_fill_transmit_buf() instead
    drivers/i2c/busses/i2c-rk3x.c:535: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
     * Get timing values of I2C specification
    drivers/i2c/busses/i2c-rk3x.c:552: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
     * Calculate divider values for desired SCL frequency
    drivers/i2c/busses/i2c-rk3x.c:713: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
     * Calculate timing values for desired SCL frequency
    drivers/i2c/busses/i2c-rk3x.c:963: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
     * Setup I2C registers for an I2C operation specified by msgs, num.
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0aaabdb900c7415caa2006ef580322f7eac5f6b6
Author: Mike Christie <michael.christie@oracle.com>
Date:   Tue Jan 17 13:39:37 2023 -0600

    scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress
    
    [ Upstream commit f484a794e4ee2a9ce61f52a78e810ac45f3fe3b3 ]
    
    If during iscsi_sw_tcp_session_create() iscsi_tcp_r2tpool_alloc() fails,
    userspace could be accessing the host's ipaddress attr. If we then free the
    session via iscsi_session_teardown() while userspace is still accessing the
    session we will hit a use after free bug.
    
    Set the tcp_sw_host->session after we have completed session creation and
    can no longer fail.
    
    Link: https://lore.kernel.org/r/20230117193937.21244-3-michael.christie@oracle.com
    Signed-off-by: Mike Christie <michael.christie@oracle.com>
    Reviewed-by: Lee Duncan <lduncan@suse.com>
    Acked-by: Ding Hui <dinghui@sangfor.com.cn>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 17b738590b97fb3fc287289971d1519ff9b875a1
Author: Mike Christie <michael.christie@oracle.com>
Date:   Tue Jan 17 13:39:36 2023 -0600

    scsi: iscsi_tcp: Fix UAF during logout when accessing the shost ipaddress
    
    [ Upstream commit 6f1d64b13097e85abda0f91b5638000afc5f9a06 ]
    
    Bug report and analysis from Ding Hui.
    
    During iSCSI session logout, if another task accesses the shost ipaddress
    attr, we can get a KASAN UAF report like this:
    
    [  276.942144] BUG: KASAN: use-after-free in _raw_spin_lock_bh+0x78/0xe0
    [  276.942535] Write of size 4 at addr ffff8881053b45b8 by task cat/4088
    [  276.943511] CPU: 2 PID: 4088 Comm: cat Tainted: G            E      6.1.0-rc8+ #3
    [  276.943997] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
    [  276.944470] Call Trace:
    [  276.944943]  <TASK>
    [  276.945397]  dump_stack_lvl+0x34/0x48
    [  276.945887]  print_address_description.constprop.0+0x86/0x1e7
    [  276.946421]  print_report+0x36/0x4f
    [  276.947358]  kasan_report+0xad/0x130
    [  276.948234]  kasan_check_range+0x35/0x1c0
    [  276.948674]  _raw_spin_lock_bh+0x78/0xe0
    [  276.949989]  iscsi_sw_tcp_host_get_param+0xad/0x2e0 [iscsi_tcp]
    [  276.951765]  show_host_param_ISCSI_HOST_PARAM_IPADDRESS+0xe9/0x130 [scsi_transport_iscsi]
    [  276.952185]  dev_attr_show+0x3f/0x80
    [  276.953005]  sysfs_kf_seq_show+0x1fb/0x3e0
    [  276.953401]  seq_read_iter+0x402/0x1020
    [  276.954260]  vfs_read+0x532/0x7b0
    [  276.955113]  ksys_read+0xed/0x1c0
    [  276.955952]  do_syscall_64+0x38/0x90
    [  276.956347]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
    [  276.956769] RIP: 0033:0x7f5d3a679222
    [  276.957161] Code: c0 e9 b2 fe ff ff 50 48 8d 3d 32 c0 0b 00 e8 a5 fe 01 00 0f 1f 44 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 0f 05 <48> 3d 00 f0 ff ff 77 56 c3 0f 1f 44 00 00 48 83 ec 28 48 89 54 24
    [  276.958009] RSP: 002b:00007ffc864d16a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
    [  276.958431] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f5d3a679222
    [  276.958857] RDX: 0000000000020000 RSI: 00007f5d3a4fe000 RDI: 0000000000000003
    [  276.959281] RBP: 00007f5d3a4fe000 R08: 00000000ffffffff R09: 0000000000000000
    [  276.959682] R10: 0000000000000022 R11: 0000000000000246 R12: 0000000000020000
    [  276.960126] R13: 0000000000000003 R14: 0000000000000000 R15: 0000557a26dada58
    [  276.960536]  </TASK>
    [  276.961357] Allocated by task 2209:
    [  276.961756]  kasan_save_stack+0x1e/0x40
    [  276.962170]  kasan_set_track+0x21/0x30
    [  276.962557]  __kasan_kmalloc+0x7e/0x90
    [  276.962923]  __kmalloc+0x5b/0x140
    [  276.963308]  iscsi_alloc_session+0x28/0x840 [scsi_transport_iscsi]
    [  276.963712]  iscsi_session_setup+0xda/0xba0 [libiscsi]
    [  276.964078]  iscsi_sw_tcp_session_create+0x1fd/0x330 [iscsi_tcp]
    [  276.964431]  iscsi_if_create_session.isra.0+0x50/0x260 [scsi_transport_iscsi]
    [  276.964793]  iscsi_if_recv_msg+0xc5a/0x2660 [scsi_transport_iscsi]
    [  276.965153]  iscsi_if_rx+0x198/0x4b0 [scsi_transport_iscsi]
    [  276.965546]  netlink_unicast+0x4d5/0x7b0
    [  276.965905]  netlink_sendmsg+0x78d/0xc30
    [  276.966236]  sock_sendmsg+0xe5/0x120
    [  276.966576]  ____sys_sendmsg+0x5fe/0x860
    [  276.966923]  ___sys_sendmsg+0xe0/0x170
    [  276.967300]  __sys_sendmsg+0xc8/0x170
    [  276.967666]  do_syscall_64+0x38/0x90
    [  276.968028]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
    [  276.968773] Freed by task 2209:
    [  276.969111]  kasan_save_stack+0x1e/0x40
    [  276.969449]  kasan_set_track+0x21/0x30
    [  276.969789]  kasan_save_free_info+0x2a/0x50
    [  276.970146]  __kasan_slab_free+0x106/0x190
    [  276.970470]  __kmem_cache_free+0x133/0x270
    [  276.970816]  device_release+0x98/0x210
    [  276.971145]  kobject_cleanup+0x101/0x360
    [  276.971462]  iscsi_session_teardown+0x3fb/0x530 [libiscsi]
    [  276.971775]  iscsi_sw_tcp_session_destroy+0xd8/0x130 [iscsi_tcp]
    [  276.972143]  iscsi_if_recv_msg+0x1bf1/0x2660 [scsi_transport_iscsi]
    [  276.972485]  iscsi_if_rx+0x198/0x4b0 [scsi_transport_iscsi]
    [  276.972808]  netlink_unicast+0x4d5/0x7b0
    [  276.973201]  netlink_sendmsg+0x78d/0xc30
    [  276.973544]  sock_sendmsg+0xe5/0x120
    [  276.973864]  ____sys_sendmsg+0x5fe/0x860
    [  276.974248]  ___sys_sendmsg+0xe0/0x170
    [  276.974583]  __sys_sendmsg+0xc8/0x170
    [  276.974891]  do_syscall_64+0x38/0x90
    [  276.975216]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    We can easily reproduce by two tasks:
    1. while :; do iscsiadm -m node --login; iscsiadm -m node --logout; done
    2. while :; do cat \
    /sys/devices/platform/host*/iscsi_host/host*/ipaddress; done
    
                iscsid              |        cat
    --------------------------------+---------------------------------------
    |- iscsi_sw_tcp_session_destroy |
      |- iscsi_session_teardown     |
        |- device_release           |
          |- iscsi_session_release  ||- dev_attr_show
            |- kfree                |  |- show_host_param_
                                    |             ISCSI_HOST_PARAM_IPADDRESS
                                    |    |- iscsi_sw_tcp_host_get_param
                                    |      |- r/w tcp_sw_host->session (UAF)
      |- iscsi_host_remove          |
      |- iscsi_host_free            |
    
    Fix the above bug by splitting the session removal into 2 parts:
    
     1. removal from iSCSI class which includes sysfs and removal from host
        tracking.
    
     2. freeing of session.
    
    During iscsi_tcp host and session removal we can remove the session from
    sysfs then remove the host from sysfs. At this point we know userspace is
    not accessing the kernel via sysfs so we can free the session and host.
    
    Link: https://lore.kernel.org/r/20230117193937.21244-2-michael.christie@oracle.com
    Signed-off-by: Mike Christie <michael.christie@oracle.com>
    Reviewed-by: Lee Duncan <lduncan@suse.com>
    Acked-by: Ding Hui <dinghui@sangfor.com.cn>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8cd0499f9c33270bf3a14406beaadf477a089bd6
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Fri Jan 6 08:04:46 2023 -0800

    perf/x86/intel: Add Emerald Rapids
    
    [ Upstream commit 6795e558e9cc6123c24e2100a2ebe88e58a792bc ]
    
    From core PMU's perspective, Emerald Rapids is the same as the Sapphire
    Rapids. The only difference is the event list, which will be
    supported in the perf tool later.
    
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Link: https://lore.kernel.org/r/20230106160449.3566477-1-kan.liang@linux.intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7093515370967d3af83189f86b83bb4d9208b349
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Tue Jan 10 13:53:10 2023 +0100

    scsi: target: core: Fix warning on RT kernels
    
    [ Upstream commit 84ed64b1a7a7fcd507598dee7708c1f225123711 ]
    
    Calling spin_lock_irqsave() does not disable the interrupts on realtime
    kernels, remove the warning and replace assert_spin_locked() with
    lockdep_assert_held().
    
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20230110125310.55884-1-mlombard@redhat.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7960f54362b9e5e191568f90f36a2e2a90af2c0
Author: Stefan Wahren <stefan.wahren@i2se.com>
Date:   Sat Jan 7 13:32:29 2023 +0100

    i2c: mxs: suppress probe-deferral error message
    
    [ Upstream commit 78a4471fa1a76a8bef4919105de67660a89a1e9b ]
    
    During boot of I2SE Duckbill the kernel log contains a
    confusing error:
    
      Failed to request dma
    
    This is caused by i2c-mxs tries to request a not yet available DMA
    channel (-EPROBE_DEFER). So suppress this message by using
    dev_err_probe().
    
    Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9b87fc34b7f544bff6c88ee330f9948ea6c85a9
Author: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
Date:   Mon Jan 2 22:39:55 2023 +0530

    i2c: designware-pci: Add new PCI IDs for AMD NAVI GPU
    
    [ Upstream commit 2ece0930ac5662bccce0ba4c59b84c98d2437200 ]
    
    Add additional supported PCI IDs for latest AMD NAVI GPU card which
    has an integrated Type-C controller and designware I2C with PCI
    interface.
    
    Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
    Tested-by: Sanath S <Sanath.S@amd.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d8fc0b5fb3e816a4a8684bcd3ed02cbef0fce23c
Author: Anton Gusev <aagusev@ispras.ru>
Date:   Fri Feb 3 16:22:13 2023 +0300

    efi: fix potential NULL deref in efi_mem_reserve_persistent
    
    [ Upstream commit 966d47e1f27c45507c5df82b2a2157e5a4fd3909 ]
    
    When iterating on a linked list, a result of memremap is dereferenced
    without checking it for NULL.
    
    This patch adds a check that falls back on allocating a new page in
    case memremap doesn't succeed.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: 18df7577adae ("efi/memreserve: deal with memreserve entries in unmapped memory")
    Signed-off-by: Anton Gusev <aagusev@ispras.ru>
    [ardb: return -ENOMEM instead of breaking out of the loop]
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f423c2efd51d7eb1d143c2be7eea233241d9bbbf
Author: Fedor Pchelkin <pchelkin@ispras.ru>
Date:   Thu Feb 2 00:02:18 2023 +0300

    net: openvswitch: fix flow memory leak in ovs_flow_cmd_new
    
    [ Upstream commit 0c598aed445eb45b0ee7ba405f7ece99ee349c30 ]
    
    Syzkaller reports a memory leak of new_flow in ovs_flow_cmd_new() as it is
    not freed when an allocation of a key fails.
    
    BUG: memory leak
    unreferenced object 0xffff888116668000 (size 632):
      comm "syz-executor231", pid 1090, jiffies 4294844701 (age 18.871s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<00000000defa3494>] kmem_cache_zalloc include/linux/slab.h:654 [inline]
        [<00000000defa3494>] ovs_flow_alloc+0x19/0x180 net/openvswitch/flow_table.c:77
        [<00000000c67d8873>] ovs_flow_cmd_new+0x1de/0xd40 net/openvswitch/datapath.c:957
        [<0000000010a539a8>] genl_family_rcv_msg_doit+0x22d/0x330 net/netlink/genetlink.c:739
        [<00000000dff3302d>] genl_family_rcv_msg net/netlink/genetlink.c:783 [inline]
        [<00000000dff3302d>] genl_rcv_msg+0x328/0x590 net/netlink/genetlink.c:800
        [<000000000286dd87>] netlink_rcv_skb+0x153/0x430 net/netlink/af_netlink.c:2515
        [<0000000061fed410>] genl_rcv+0x24/0x40 net/netlink/genetlink.c:811
        [<000000009dc0f111>] netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline]
        [<000000009dc0f111>] netlink_unicast+0x545/0x7f0 net/netlink/af_netlink.c:1339
        [<000000004a5ee816>] netlink_sendmsg+0x8e7/0xde0 net/netlink/af_netlink.c:1934
        [<00000000482b476f>] sock_sendmsg_nosec net/socket.c:651 [inline]
        [<00000000482b476f>] sock_sendmsg+0x152/0x190 net/socket.c:671
        [<00000000698574ba>] ____sys_sendmsg+0x70a/0x870 net/socket.c:2356
        [<00000000d28d9e11>] ___sys_sendmsg+0xf3/0x170 net/socket.c:2410
        [<0000000083ba9120>] __sys_sendmsg+0xe5/0x1b0 net/socket.c:2439
        [<00000000c00628f8>] do_syscall_64+0x30/0x40 arch/x86/entry/common.c:46
        [<000000004abfdcf4>] entry_SYSCALL_64_after_hwframe+0x61/0xc6
    
    To fix this the patch rearranges the goto labels to reflect the order of
    object allocations and adds appropriate goto statements on the error
    paths.
    
    Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
    
    Fixes: 68bb10101e6b ("openvswitch: Fix flow lookup to use unmasked key")
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Acked-by: Eelco Chaudron <echaudro@redhat.com>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Link: https://lore.kernel.org/r/20230201210218.361970-1-pchelkin@ispras.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 798502864789e2207abf942667e71c04b1b8f56a
Author: Parav Pandit <parav@nvidia.com>
Date:   Thu Feb 2 18:35:16 2023 +0200

    virtio-net: Keep stop() to follow mirror sequence of open()
    
    [ Upstream commit 63b114042d8a9c02d9939889177c36dbdb17a588 ]
    
    Cited commit in fixes tag frees rxq xdp info while RQ NAPI is
    still enabled and packet processing may be ongoing.
    
    Follow the mirror sequence of open() in the stop() callback.
    This ensures that when rxq info is unregistered, no rx
    packet processing is ongoing.
    
    Fixes: 754b8a21a96d ("virtio_net: setup xdp_rxq_info")
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Signed-off-by: Parav Pandit <parav@nvidia.com>
    Link: https://lore.kernel.org/r/20230202163516.12559-1-parav@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5d884f9e80ffe652e3f98fcedcce77a5ac10b45d
Author: Andrei Gherzan <andrei.gherzan@canonical.com>
Date:   Wed Feb 1 00:16:16 2023 +0000

    selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy benchmarking
    
    [ Upstream commit 329c9cd769c2e306957df031efff656c40922c76 ]
    
    The test tool can check that the zerocopy number of completions value is
    valid taking into consideration the number of datagram send calls. This can
    catch the system into a state where the datagrams are still in the system
    (for example in a qdisk, waiting for the network interface to return a
    completion notification, etc).
    
    This change adds a retry logic of computing the number of completions up to
    a configurable (via CLI) timeout (default: 2 seconds).
    
    Fixes: 79ebc3c26010 ("net/udpgso_bench_tx: options to exercise TX CMSG")
    Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Cc: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Link: https://lore.kernel.org/r/20230201001612.515730-4-andrei.gherzan@canonical.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 63aa63af3a1e652948124a911d241aed60c44f3c
Author: Andrei Gherzan <andrei.gherzan@canonical.com>
Date:   Wed Feb 1 00:16:14 2023 +0000

    selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs
    
    [ Upstream commit dafe93b9ee21028d625dce347118b82659652eff ]
    
    "udpgro_bench.sh" invokes udpgso_bench_rx/udpgso_bench_tx programs
    subsequently and while doing so, there is a chance that the rx one is not
    ready to accept socket connections. This racing bug could fail the test
    with at least one of the following:
    
    ./udpgso_bench_tx: connect: Connection refused
    ./udpgso_bench_tx: sendmsg: Connection refused
    ./udpgso_bench_tx: write: Connection refused
    
    This change addresses this by making udpgro_bench.sh wait for the rx
    program to be ready before firing off the tx one - up to a 10s timeout.
    
    Fixes: 3a687bef148d ("selftests: udp gso benchmark")
    Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com>
    Cc: Paolo Abeni <pabeni@redhat.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Link: https://lore.kernel.org/r/20230201001612.515730-3-andrei.gherzan@canonical.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d41a3f9cc2423eb44cd3b2aaea2f8cad923c8b41
Author: Andrei Gherzan <andrei.gherzan@canonical.com>
Date:   Wed Feb 1 00:16:12 2023 +0000

    selftests: net: udpgso_bench_rx/tx: Stop when wrong CLI args are provided
    
    [ Upstream commit db9b47ee9f5f375ab0c5daeb20321c75b4fa657d ]
    
    Leaving unrecognized arguments buried in the output, can easily hide a
    CLI/script typo. Avoid this by exiting when wrong arguments are provided to
    the udpgso_bench test programs.
    
    Fixes: 3a687bef148d ("selftests: udp gso benchmark")
    Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Link: https://lore.kernel.org/r/20230201001612.515730-2-andrei.gherzan@canonical.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5af98283e554081df639c91c942d97c1cbde2e0a
Author: Andrei Gherzan <andrei.gherzan@canonical.com>
Date:   Wed Feb 1 00:16:10 2023 +0000

    selftests: net: udpgso_bench_rx: Fix 'used uninitialized' compiler warning
    
    [ Upstream commit c03c80e3a03ffb4f790901d60797e9810539d946 ]
    
    This change fixes the following compiler warning:
    
    /usr/include/x86_64-linux-gnu/bits/error.h:40:5: warning: ‘gso_size’ may
    be used uninitialized [-Wmaybe-uninitialized]
       40 |     __error_noreturn (__status, __errnum, __format,
       __va_arg_pack ());
             |
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             udpgso_bench_rx.c: In function ‘main’:
             udpgso_bench_rx.c:253:23: note: ‘gso_size’ was declared here
               253 |         int ret, len, gso_size, budget = 256;
    
    Fixes: 3327a9c46352 ("selftests: add functionals test for UDP GRO")
    Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Link: https://lore.kernel.org/r/20230201001612.515730-1-andrei.gherzan@canonical.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 89e0701e03c5fc023c775530048bbb289e1e7c7b
Author: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Date:   Mon Jan 30 12:27:41 2023 +0900

    ata: libata: Fix sata_down_spd_limit() when no link speed is reported
    
    [ Upstream commit 69f2c9346313ba3d3dfa4091ff99df26c67c9021 ]
    
    Commit 2dc0b46b5ea3 ("libata: sata_down_spd_limit should return if
    driver has not recorded sstatus speed") changed the behavior of
    sata_down_spd_limit() to return doing nothing if a drive does not report
    a current link speed, to avoid reducing the link speed to the lowest 1.5
    Gbps speed.
    
    However, the change assumed that a speed was recorded before probing
    (e.g. before a suspend/resume) and set in link->sata_spd. This causes
    problems with adapters/drives combination failing to establish a link
    speed during probe autonegotiation. One example reported of this problem
    is an mvebu adapter with a 3Gbps port-multiplier box: autonegotiation
    fails, leaving no recorded link speed and no reported current link
    speed. Probe retries also fail as no action is taken by sata_set_spd()
    after each retry.
    
    Fix this by returning early in sata_down_spd_limit() only if we do have
    a recorded link speed, that is, if link->sata_spd is not 0. With this
    fix, a failed probe not leading to a recorded link speed is retried at
    the lower 1.5 Gbps speed, with the link speed potentially increased
    later on the second revalidate of the device if the device reports
    that it supports higher link speeds.
    
    Reported-by: Marius Dinu <marius@psihoexpert.ro>
    Fixes: 2dc0b46b5ea3 ("libata: sata_down_spd_limit should return if driver has not recorded sstatus speed")
    Reviewed-by: Niklas Cassel <niklas.cassel@wdc.com>
    Tested-by: Marius Dinu <marius@psihoexpert.ro>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ab896775f98ff54b68512f345eed178bf961084
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Mon Sep 6 17:42:00 2021 +0800

    can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate
    
    [ Upstream commit d0553680f94c49bbe0e39eb50d033ba563b4212d ]
    
    The conclusion "j1939_session_deactivate() should be called with a
    session ref-count of at least 2" is incorrect. In some concurrent
    scenarios, j1939_session_deactivate can be called with the session
    ref-count less than 2. But there is not any problem because it
    will check the session active state before session putting in
    j1939_session_deactivate_locked().
    
    Here is the concurrent scenario of the problem reported by syzbot
    and my reproduction log.
    
            cpu0                            cpu1
                                    j1939_xtp_rx_eoma
    j1939_xtp_rx_abort_one
                                    j1939_session_get_by_addr [kref == 2]
    j1939_session_get_by_addr [kref == 3]
    j1939_session_deactivate [kref == 2]
    j1939_session_put [kref == 1]
                                    j1939_session_completed
                                    j1939_session_deactivate
                                    WARN_ON_ONCE(kref < 2)
    
    =====================================================
    WARNING: CPU: 1 PID: 21 at net/can/j1939/transport.c:1088 j1939_session_deactivate+0x5f/0x70
    CPU: 1 PID: 21 Comm: ksoftirqd/1 Not tainted 5.14.0-rc7+ #32
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1 04/01/2014
    RIP: 0010:j1939_session_deactivate+0x5f/0x70
    Call Trace:
     j1939_session_deactivate_activate_next+0x11/0x28
     j1939_xtp_rx_eoma+0x12a/0x180
     j1939_tp_recv+0x4a2/0x510
     j1939_can_recv+0x226/0x380
     can_rcv_filter+0xf8/0x220
     can_receive+0x102/0x220
     ? process_backlog+0xf0/0x2c0
     can_rcv+0x53/0xf0
     __netif_receive_skb_one_core+0x67/0x90
     ? process_backlog+0x97/0x2c0
     __netif_receive_skb+0x22/0x80
    
    Fixes: 0c71437dd50d ("can: j1939: j1939_session_deactivate(): clarify lifetime of session object")
    Reported-by: syzbot+9981a614060dcee6eeca@syzkaller.appspotmail.com
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Link: https://lore.kernel.org/all/20210906094200.95868-1-william.xuanziyang@huawei.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 02d77d98e02085673ebfee85896bb68d180d445c
Author: Tom Rix <trix@redhat.com>
Date:   Tue Jan 31 13:54:37 2023 -0800

    igc: return an error if the mac type is unknown in igc_ptp_systim_to_hwtstamp()
    
    [ Upstream commit a2df8463e15c10a8a882090f3d7a760fdb7b189d ]
    
    clang static analysis reports
    drivers/net/ethernet/intel/igc/igc_ptp.c:673:3: warning: The left operand of
      '+' is a garbage value [core.UndefinedBinaryOperatorResult]
       ktime_add_ns(shhwtstamps.hwtstamp, adjust);
       ^            ~~~~~~~~~~~~~~~~~~~~
    
    igc_ptp_systim_to_hwtstamp() silently returns without setting the hwtstamp
    if the mac type is unknown.  This should be treated as an error.
    
    Fixes: 81b055205e8b ("igc: Add support for RX timestamping")
    Signed-off-by: Tom Rix <trix@redhat.com>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Acked-by: Sasha Neftin <sasha.neftin@intel.com>
    Tested-by: Naama Meir <naamax.meir@linux.intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Link: https://lore.kernel.org/r/20230131215437.1528994-1-anthony.l.nguyen@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 04a73558209554da17f46490ec4faaaf1b2bab68
Author: Guo Ren <guoren@kernel.org>
Date:   Tue Jan 31 23:06:04 2023 -0500

    riscv: kprobe: Fixup kernel panic when probing an illegal position
    
    [ Upstream commit 87f48c7ccc73afc78630530d9af51f458f58cab8 ]
    
    The kernel would panic when probed for an illegal position. eg:
    
    (CONFIG_RISCV_ISA_C=n)
    
    echo 'p:hello kernel_clone+0x16 a0=%a0' >> kprobe_events
    echo 1 > events/kprobes/hello/enable
    cat trace
    
    Kernel panic - not syncing: stack-protector: Kernel stack
    is corrupted in: __do_sys_newfstatat+0xb8/0xb8
    CPU: 0 PID: 111 Comm: sh Not tainted
    6.2.0-rc1-00027-g2d398fe49a4d #490
    Hardware name: riscv-virtio,qemu (DT)
    Call Trace:
    [<ffffffff80007268>] dump_backtrace+0x38/0x48
    [<ffffffff80c5e83c>] show_stack+0x50/0x68
    [<ffffffff80c6da28>] dump_stack_lvl+0x60/0x84
    [<ffffffff80c6da6c>] dump_stack+0x20/0x30
    [<ffffffff80c5ecf4>] panic+0x160/0x374
    [<ffffffff80c6db94>] generic_handle_arch_irq+0x0/0xa8
    [<ffffffff802deeb0>] sys_newstat+0x0/0x30
    [<ffffffff800158c0>] sys_clone+0x20/0x30
    [<ffffffff800039e8>] ret_from_syscall+0x0/0x4
    ---[ end Kernel panic - not syncing: stack-protector:
    Kernel stack is corrupted in: __do_sys_newfstatat+0xb8/0xb8 ]---
    
    That is because the kprobe's ebreak instruction broke the kernel's
    original code. The user should guarantee the correction of the probe
    position, but it couldn't make the kernel panic.
    
    This patch adds arch_check_kprobe in arch_prepare_kprobe to prevent an
    illegal position (Such as the middle of an instruction).
    
    Fixes: c22b0bcb1dd0 ("riscv: Add kprobes supported")
    Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
    Signed-off-by: Guo Ren <guoren@kernel.org>
    Reviewed-by: Björn Töpel <bjorn@kernel.org>
    Link: https://lore.kernel.org/r/20230201040604.3390509-1-guoren@kernel.org
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 206c367b6a2e7b8a07ff4f42bbf7273fdc231cdc
Author: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
Date:   Tue Jan 31 16:46:46 2023 +1300

    ip/ip6_gre: Fix non-point-to-point tunnel not generating IPv6 link local address
    
    [ Upstream commit 30e2291f61f93f7132c060190f8360df52644ec1 ]
    
    We recently found that our non-point-to-point tunnels were not
    generating any IPv6 link local address and instead generating an
    IPv6 compat address, breaking IPv6 communication on the tunnel.
    
    Previously, addrconf_gre_config always would call addrconf_addr_gen
    and generate a EUI64 link local address for the tunnel.
    Then commit e5dd729460ca changed the code path so that add_v4_addrs
    is called but this only generates a compat IPv6 address for
    non-point-to-point tunnels.
    
    I assume the compat address is specifically for SIT tunnels so
    have kept that only for SIT - GRE tunnels now always generate link
    local addresses.
    
    Fixes: e5dd729460ca ("ip/ip6_gre: use the same logic as SIT interfaces when computing v6LL address")
    Signed-off-by: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 90178bc0f28f60ce9e0f2904a58911459452d1c9
Author: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
Date:   Tue Jan 31 16:46:45 2023 +1300

    ip/ip6_gre: Fix changing addr gen mode not generating IPv6 link local address
    
    [ Upstream commit 23ca0c2c93406bdb1150659e720bda1cec1fad04 ]
    
    For our point-to-point GRE tunnels, they have IN6_ADDR_GEN_MODE_NONE
    when they are created then we set IN6_ADDR_GEN_MODE_EUI64 when they
    come up to generate the IPv6 link local address for the interface.
    Recently we found that they were no longer generating IPv6 addresses.
    This issue would also have affected SIT tunnels.
    
    Commit e5dd729460ca changed the code path so that GRE tunnels
    generate an IPv6 address based on the tunnel source address.
    It also changed the code path so GRE tunnels don't call addrconf_addr_gen
    in addrconf_dev_config which is called by addrconf_sysctl_addr_gen_mode
    when the IN6_ADDR_GEN_MODE is changed.
    
    This patch aims to fix this issue by moving the code in addrconf_notify
    which calls the addr gen for GRE and SIT into a separate function
    and calling it in the places that expect the IPv6 address to be
    generated.
    
    The previous addrconf_dev_config is renamed to addrconf_eth_config
    since it only expected eth type interfaces and follows the
    addrconf_gre/sit_config format.
    
    A part of this changes means that the loopback address will be
    attempted to be configured when changing addr_gen_mode for lo.
    This should not be a problem because the address should exist anyway
    and if does already exist then no error is produced.
    
    Fixes: e5dd729460ca ("ip/ip6_gre: use the same logic as SIT interfaces when computing v6LL address")
    Signed-off-by: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dfe2f0ea38515a8d8fec7686747d605dc3d30727
Author: Chris Healy <healych@amazon.com>
Date:   Mon Jan 30 15:14:02 2023 -0800

    net: phy: meson-gxl: Add generic dummy stubs for MMD register access
    
    [ Upstream commit afc2336f89dc0fc0ef25b92366814524b0fd90fb ]
    
    The Meson G12A Internal PHY does not support standard IEEE MMD extended
    register access, therefore add generic dummy stubs to fail the read and
    write MMD calls. This is necessary to prevent the core PHY code from
    erroneously believing that EEE is supported by this PHY even though this
    PHY does not support EEE, as MMD register access returns all FFFFs.
    
    Fixes: 5c3407abb338 ("net: phy: meson-gxl: add g12a support")
    Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: Chris Healy <healych@amazon.com>
    Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
    Link: https://lore.kernel.org/r/20230130231402.471493-1-cphealy@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7398efe24a965cf3937b716c0b1011c201c5d6e
Author: Fedor Pchelkin <pchelkin@ispras.ru>
Date:   Tue Jan 17 13:52:26 2023 +0300

    squashfs: harden sanity check in squashfs_read_xattr_id_table
    
    [ Upstream commit 72e544b1b28325fe78a4687b980871a7e4101f76 ]
    
    While mounting a corrupted filesystem, a signed integer '*xattr_ids' can
    become less than zero.  This leads to the incorrect computation of 'len'
    and 'indexes' values which can cause null-ptr-deref in copy_bio_to_actor()
    or out-of-bounds accesses in the next sanity checks inside
    squashfs_read_xattr_id_table().
    
    Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
    
    Link: https://lkml.kernel.org/r/20230117105226.329303-2-pchelkin@ispras.ru
    Fixes: 506220d2ba21 ("squashfs: add more sanity checks in xattr id lookup")
    Reported-by: <syzbot+082fa4af80a5bb1a9843@syzkaller.appspotmail.com>
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Cc: Phillip Lougher <phillip@squashfs.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 89a69216f17005e28bd9a333662dcb3247dd0f56
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Jan 30 11:39:29 2023 +0100

    netfilter: br_netfilter: disable sabotage_in hook after first suppression
    
    [ Upstream commit 2b272bb558f1d3a5aa95ed8a82253786fd1a48ba ]
    
    When using a xfrm interface in a bridged setup (the outgoing device is
    bridged), the incoming packets in the xfrm interface are only tracked
    in the outgoing direction.
    
    $ brctl show
    bridge name     interfaces
    br_eth1         eth1
    
    $ conntrack -L
    tcp 115 SYN_SENT src=192... dst=192... [UNREPLIED] ...
    
    If br_netfilter is enabled, the first (encrypted) packet is received onR
    eth1, conntrack hooks are called from br_netfilter emulation which
    allocates nf_bridge info for this skb.
    
    If the packet is for local machine, skb gets passed up the ip stack.
    The skb passes through ip prerouting a second time. br_netfilter
    ip_sabotage_in supresses the re-invocation of the hooks.
    
    After this, skb gets decrypted in xfrm layer and appears in
    network stack a second time (after decryption).
    
    Then, ip_sabotage_in is called again and suppresses netfilter
    hook invocation, even though the bridge layer never called them
    for the plaintext incarnation of the packet.
    
    Free the bridge info after the first suppression to avoid this.
    
    I was unable to figure out where the regression comes from, as far as i
    can see br_netfilter always had this problem; i did not expect that skb
    is looped again with different headers.
    
    Fixes: c4b0e771f906 ("netfilter: avoid using skb->nf_bridge directly")
    Reported-and-tested-by: Wolfgang Nothdurft <wolfgang@linogate.de>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cdb444e73fdc8dc49c67a2a6688d96191153225d
Author: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Date:   Thu Jan 12 15:11:31 2023 +0530

    drm/i915/adlp: Fix typo for reference clock
    
    [ Upstream commit 47a2bd9d985bfdb55900f313603619fc9234f317 ]
    
    Fix typo for reference clock from 24400 to 24000.
    
    Bspec: 55409
    Fixes: 626426ff9ce4 ("drm/i915/adl_p: Add cdclk support for ADL-P")
    Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
    Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230112094131.550252-1-chaitanya.kumar.borah@intel.com
    (cherry picked from commit 2b6f7e39ccae065abfbe3b6e562ec95ccad09f1e)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 960f20d8582e80c7a3ce1429898fc3097fb9305c
Author: John Harrison <John.C.Harrison@Intel.com>
Date:   Thu Jan 26 16:28:35 2023 -0800

    drm/i915/guc: Fix locking when searching for a hung request
    
    [ Upstream commit 87b04e53daf806945c415e94de9f90943d434aed ]
    
    intel_guc_find_hung_context() was not acquiring the correct spinlock
    before searching the request list. So fix that up. While at it, add
    some extra whitespace padding for readability.
    
    Fixes: dc0dad365c5e ("drm/i915/guc: Fix for error capture after full GPU reset with GuC")
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Matthew Brost <matthew.brost@intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
    Cc: Michael Cheng <michael.cheng@intel.com>
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
    Cc: Chris Wilson <chris.p.wilson@intel.com>
    Cc: Bruce Chang <yu.bruce.chang@intel.com>
    Cc: Alan Previn <alan.previn.teres.alexis@intel.com>
    Cc: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230127002842.3169194-2-John.C.Harrison@Intel.com
    (cherry picked from commit d1c3717501bcf56536e8b8c1bdaf5cd5357f6bb2)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c27e0eac568a008cdf04ae7e4ea2d3c18717e627
Author: Hyunwoo Kim <v4bel@theori.io>
Date:   Thu Jan 26 18:32:50 2023 -0800

    netrom: Fix use-after-free caused by accept on already connected socket
    
    [ Upstream commit 611792920925fb088ddccbe2783c7f92fdfb6b64 ]
    
    If you call listen() and accept() on an already connect()ed
    AF_NETROM socket, accept() can successfully connect.
    This is because when the peer socket sends data to sendmsg,
    the skb with its own sk stored in the connected socket's
    sk->sk_receive_queue is connected, and nr_accept() dequeues
    the skb waiting in the sk->sk_receive_queue.
    
    As a result, nr_accept() allocates and returns a sock with
    the sk of the parent AF_NETROM socket.
    
    And here use-after-free can happen through complex race conditions:
    ```
                      cpu0                                                     cpu1
                                                                   1. socket_2 = socket(AF_NETROM)
                                                                            .
                                                                            .
                                                                      listen(socket_2)
                                                                      accepted_socket = accept(socket_2)
           2. socket_1 = socket(AF_NETROM)
                nr_create()    // sk refcount : 1
              connect(socket_1)
                                                                   3. write(accepted_socket)
                                                                        nr_sendmsg()
                                                                        nr_output()
                                                                        nr_kick()
                                                                        nr_send_iframe()
                                                                        nr_transmit_buffer()
                                                                        nr_route_frame()
                                                                        nr_loopback_queue()
                                                                        nr_loopback_timer()
                                                                        nr_rx_frame()
                                                                        nr_process_rx_frame(sk, skb);    // sk : socket_1's sk
                                                                        nr_state3_machine()
                                                                        nr_queue_rx_frame()
                                                                        sock_queue_rcv_skb()
                                                                        sock_queue_rcv_skb_reason()
                                                                        __sock_queue_rcv_skb()
                                                                        __skb_queue_tail(list, skb);    // list : socket_1's sk->sk_receive_queue
           4. listen(socket_1)
                nr_listen()
              uaf_socket = accept(socket_1)
                nr_accept()
                skb_dequeue(&sk->sk_receive_queue);
                                                                   5. close(accepted_socket)
                                                                        nr_release()
                                                                        nr_write_internal(sk, NR_DISCREQ)
                                                                        nr_transmit_buffer()    // NR_DISCREQ
                                                                        nr_route_frame()
                                                                        nr_loopback_queue()
                                                                        nr_loopback_timer()
                                                                        nr_rx_frame()    // sk : socket_1's sk
                                                                        nr_process_rx_frame()  // NR_STATE_3
                                                                        nr_state3_machine()    // NR_DISCREQ
                                                                        nr_disconnect()
                                                                        nr_sk(sk)->state = NR_STATE_0;
           6. close(socket_1)    // sk refcount : 3
                nr_release()    // NR_STATE_0
                sock_put(sk);    // sk refcount : 0
                sk_free(sk);
              close(uaf_socket)
                nr_release()
                sock_hold(sk);    // UAF
    ```
    
    KASAN report by syzbot:
    ```
    BUG: KASAN: use-after-free in nr_release+0x66/0x460 net/netrom/af_netrom.c:520
    Write of size 4 at addr ffff8880235d8080 by task syz-executor564/5128
    
    Call Trace:
     <TASK>
     __dump_stack lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0xd1/0x138 lib/dump_stack.c:106
     print_address_description mm/kasan/report.c:306 [inline]
     print_report+0x15e/0x461 mm/kasan/report.c:417
     kasan_report+0xbf/0x1f0 mm/kasan/report.c:517
     check_region_inline mm/kasan/generic.c:183 [inline]
     kasan_check_range+0x141/0x190 mm/kasan/generic.c:189
     instrument_atomic_read_write include/linux/instrumented.h:102 [inline]
     atomic_fetch_add_relaxed include/linux/atomic/atomic-instrumented.h:116 [inline]
     __refcount_add include/linux/refcount.h:193 [inline]
     __refcount_inc include/linux/refcount.h:250 [inline]
     refcount_inc include/linux/refcount.h:267 [inline]
     sock_hold include/net/sock.h:775 [inline]
     nr_release+0x66/0x460 net/netrom/af_netrom.c:520
     __sock_release+0xcd/0x280 net/socket.c:650
     sock_close+0x1c/0x20 net/socket.c:1365
     __fput+0x27c/0xa90 fs/file_table.c:320
     task_work_run+0x16f/0x270 kernel/task_work.c:179
     exit_task_work include/linux/task_work.h:38 [inline]
     do_exit+0xaa8/0x2950 kernel/exit.c:867
     do_group_exit+0xd4/0x2a0 kernel/exit.c:1012
     get_signal+0x21c3/0x2450 kernel/signal.c:2859
     arch_do_signal_or_restart+0x79/0x5c0 arch/x86/kernel/signal.c:306
     exit_to_user_mode_loop kernel/entry/common.c:168 [inline]
     exit_to_user_mode_prepare+0x15f/0x250 kernel/entry/common.c:203
     __syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline]
     syscall_exit_to_user_mode+0x1d/0x50 kernel/entry/common.c:296
     do_syscall_64+0x46/0xb0 arch/x86/entry/common.c:86
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    RIP: 0033:0x7f6c19e3c9b9
    Code: Unable to access opcode bytes at 0x7f6c19e3c98f.
    RSP: 002b:00007fffd4ba2ce8 EFLAGS: 00000246 ORIG_RAX: 0000000000000133
    RAX: 0000000000000116 RBX: 0000000000000003 RCX: 00007f6c19e3c9b9
    RDX: 0000000000000318 RSI: 00000000200bd000 RDI: 0000000000000006
    RBP: 0000000000000003 R08: 000000000000000d R09: 000000000000000d
    R10: 0000000000000000 R11: 0000000000000246 R12: 000055555566a2c0
    R13: 0000000000000011 R14: 0000000000000000 R15: 0000000000000000
     </TASK>
    
    Allocated by task 5128:
     kasan_save_stack+0x22/0x40 mm/kasan/common.c:45
     kasan_set_track+0x25/0x30 mm/kasan/common.c:52
     ____kasan_kmalloc mm/kasan/common.c:371 [inline]
     ____kasan_kmalloc mm/kasan/common.c:330 [inline]
     __kasan_kmalloc+0xa3/0xb0 mm/kasan/common.c:380
     kasan_kmalloc include/linux/kasan.h:211 [inline]
     __do_kmalloc_node mm/slab_common.c:968 [inline]
     __kmalloc+0x5a/0xd0 mm/slab_common.c:981
     kmalloc include/linux/slab.h:584 [inline]
     sk_prot_alloc+0x140/0x290 net/core/sock.c:2038
     sk_alloc+0x3a/0x7a0 net/core/sock.c:2091
     nr_create+0xb6/0x5f0 net/netrom/af_netrom.c:433
     __sock_create+0x359/0x790 net/socket.c:1515
     sock_create net/socket.c:1566 [inline]
     __sys_socket_create net/socket.c:1603 [inline]
     __sys_socket_create net/socket.c:1588 [inline]
     __sys_socket+0x133/0x250 net/socket.c:1636
     __do_sys_socket net/socket.c:1649 [inline]
     __se_sys_socket net/socket.c:1647 [inline]
     __x64_sys_socket+0x73/0xb0 net/socket.c:1647
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Freed by task 5128:
     kasan_save_stack+0x22/0x40 mm/kasan/common.c:45
     kasan_set_track+0x25/0x30 mm/kasan/common.c:52
     kasan_save_free_info+0x2b/0x40 mm/kasan/generic.c:518
     ____kasan_slab_free mm/kasan/common.c:236 [inline]
     ____kasan_slab_free+0x13b/0x1a0 mm/kasan/common.c:200
     kasan_slab_free include/linux/kasan.h:177 [inline]
     __cache_free mm/slab.c:3394 [inline]
     __do_kmem_cache_free mm/slab.c:3580 [inline]
     __kmem_cache_free+0xcd/0x3b0 mm/slab.c:3587
     sk_prot_free net/core/sock.c:2074 [inline]
     __sk_destruct+0x5df/0x750 net/core/sock.c:2166
     sk_destruct net/core/sock.c:2181 [inline]
     __sk_free+0x175/0x460 net/core/sock.c:2192
     sk_free+0x7c/0xa0 net/core/sock.c:2203
     sock_put include/net/sock.h:1991 [inline]
     nr_release+0x39e/0x460 net/netrom/af_netrom.c:554
     __sock_release+0xcd/0x280 net/socket.c:650
     sock_close+0x1c/0x20 net/socket.c:1365
     __fput+0x27c/0xa90 fs/file_table.c:320
     task_work_run+0x16f/0x270 kernel/task_work.c:179
     exit_task_work include/linux/task_work.h:38 [inline]
     do_exit+0xaa8/0x2950 kernel/exit.c:867
     do_group_exit+0xd4/0x2a0 kernel/exit.c:1012
     get_signal+0x21c3/0x2450 kernel/signal.c:2859
     arch_do_signal_or_restart+0x79/0x5c0 arch/x86/kernel/signal.c:306
     exit_to_user_mode_loop kernel/entry/common.c:168 [inline]
     exit_to_user_mode_prepare+0x15f/0x250 kernel/entry/common.c:203
     __syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline]
     syscall_exit_to_user_mode+0x1d/0x50 kernel/entry/common.c:296
     do_syscall_64+0x46/0xb0 arch/x86/entry/common.c:86
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    ```
    
    To fix this issue, nr_listen() returns -EINVAL for sockets that
    successfully nr_connect().
    
    Reported-by: syzbot+caa188bdfc1eeafeb418@syzkaller.appspotmail.com
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Hyunwoo Kim <v4bel@theori.io>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 511c922c5bf6c8a166bea826e702336bc2424140
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Mon Jan 30 09:41:36 2023 +0800

    block, bfq: fix uaf for bfqq in bic_set_bfqq()
    
    [ Upstream commit b600de2d7d3a16f9007fad1bdae82a3951a26af2 ]
    
    After commit 64dc8c732f5c ("block, bfq: fix possible uaf for 'bfqq->bic'"),
    bic->bfqq will be accessed in bic_set_bfqq(), however, in some context
    bic->bfqq will be freed, and bic_set_bfqq() is called with the freed
    bic->bfqq.
    
    Fix the problem by always freeing bfqq after bic_set_bfqq().
    
    Fixes: 64dc8c732f5c ("block, bfq: fix possible uaf for 'bfqq->bic'")
    Reported-and-tested-by: Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20230130014136.591038-1-yukuai1@huaweicloud.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a62c129dcbfab0df020a7acb9538716304c180de
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Wed Dec 14 11:31:55 2022 +0800

    block, bfq: replace 0/1 with false/true in bic apis
    
    [ Upstream commit 337366e02b370d2800110fbc99940f6ddddcbdfa ]
    
    Just to make the code a litter cleaner, there are no functional changes.
    
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20221214033155.3455754-3-yukuai1@huaweicloud.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Stable-dep-of: b600de2d7d3a ("block, bfq: fix uaf for bfqq in bic_set_bfqq()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 37a744a068c99903c52f959907ea5135f8ce4ad6
Author: NeilBrown <neilb@suse.de>
Date:   Tue Mar 22 14:39:16 2022 -0700

    block/bfq-iosched.c: use "false" rather than "BLK_RW_ASYNC"
    
    [ Upstream commit f6bad159f5d5e5b33531aba3d9b860ad8618afe0 ]
    
    bfq_get_queue() expects a "bool" for the third arg, so pass "false"
    rather than "BLK_RW_ASYNC" which will soon be removed.
    
    Link: https://lkml.kernel.org/r/164549983746.9187.7949730109246767909.stgit@noble.brown
    Signed-off-by: NeilBrown <neilb@suse.de>
    Acked-by: Jens Axboe <axboe@kernel.dk>
    Cc: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Cc: Chao Yu <chao@kernel.org>
    Cc: Darrick J. Wong <djwong@kernel.org>
    Cc: Ilya Dryomov <idryomov@gmail.com>
    Cc: Jaegeuk Kim <jaegeuk@kernel.org>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Jeff Layton <jlayton@kernel.org>
    Cc: Lars Ellenberg <lars.ellenberg@linbit.com>
    Cc: Miklos Szeredi <miklos@szeredi.hu>
    Cc: Paolo Valente <paolo.valente@linaro.org>
    Cc: Philipp Reisner <philipp.reisner@linbit.com>
    Cc: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
    Cc: Wu Fengguang <fengguang.wu@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Stable-dep-of: b600de2d7d3a ("block, bfq: fix uaf for bfqq in bic_set_bfqq()")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2cd1e9c013ec56421c58921b1ddf1d2d53bd47fa
Author: Andre Kalb <andre.kalb@sma.de>
Date:   Wed Jan 25 19:23:26 2023 +0100

    net: phy: dp83822: Fix null pointer access on DP83825/DP83826 devices
    
    [ Upstream commit 422ae7d9c7221e8d4c8526d0f54106307d69d2dc ]
    
    The probe() function is only used for the DP83822 PHY, leaving the
    private data pointer uninitialized for the smaller DP83825/26 models.
    While all uses of the private data structure are hidden in 82822 specific
    callbacks, configuring the interrupt is shared across all models.
    This causes a NULL pointer dereference on the smaller PHYs as it accesses
    the private data unchecked. Verifying the pointer avoids that.
    
    Fixes: 5dc39fd5ef35 ("net: phy: DP83822: Add ability to advertise Fiber connection")
    Signed-off-by: Andre Kalb <andre.kalb@sma.de>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Link: https://lore.kernel.org/r/Y9FzniUhUtbaGKU7@pc6682
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 18c18c2110eaff846f8ca02b7e9fa213c0dccb0f
Author: Íñigo Huguet <ihuguet@redhat.com>
Date:   Wed Jan 25 15:35:13 2023 +0100

    sfc: correctly advertise tunneled IPv6 segmentation
    
    [ Upstream commit ffffd2454a7a1bc9f7242b12c4cc0b05c12692b4 ]
    
    Recent sfc NICs are TSO capable for some tunnel protocols. However, it
    was not working properly because the feature was not advertised in
    hw_enc_features, but in hw_features only.
    
    Setting up a GENEVE tunnel and using iperf3 to send IPv4 and IPv6 traffic
    to the tunnel show, with tcpdump, that the IPv4 packets still had ~64k
    size but the IPv6 ones had only ~1500 bytes (they had been segmented by
    software, not offloaded). With this patch segmentation is offloaded as
    expected and the traffic is correctly received at the other end.
    
    Fixes: 24b2c3751aa3 ("sfc: advertise encapsulated offloads on EF10")
    Reported-by: Tianhao Zhao <tizhao@redhat.com>
    Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
    Acked-by: Martin Habets <habetsm.xilinx@gmail.com>
    Link: https://lore.kernel.org/r/20230125143513.25841-1-ihuguet@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 878b06f60a087d8ab25a15dddf29ede6345899b1
Author: Magnus Karlsson <magnus.karlsson@intel.com>
Date:   Wed Jan 25 08:49:01 2023 +0100

    dpaa2-eth: execute xdp_do_flush() before napi_complete_done()
    
    [ Upstream commit a3191c4d86c5d3bd35b00dfde6910b88391436a0 ]
    
    Make sure that xdp_do_flush() is always executed before
    napi_complete_done(). This is important for two reasons. First, a
    redirect to an XSKMAP assumes that a call to xdp_do_redirect() from
    napi context X on CPU Y will be followed by a xdp_do_flush() from the
    same napi context and CPU. This is not guaranteed if the
    napi_complete_done() is executed before xdp_do_flush(), as it tells
    the napi logic that it is fine to schedule napi context X on another
    CPU. Details from a production system triggering this bug using the
    veth driver can be found following the first link below.
    
    The second reason is that the XDP_REDIRECT logic in itself relies on
    being inside a single NAPI instance through to the xdp_do_flush() call
    for RCU protection of all in-kernel data structures. Details can be
    found in the second link below.
    
    Fixes: d678be1dc1ec ("dpaa2-eth: add XDP_REDIRECT support")
    Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
    Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Link: https://lore.kernel.org/r/20221220185903.1105011-1-sbohrer@cloudflare.com
    Link: https://lore.kernel.org/all/20210624160609.292325-1-toke@redhat.com/
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b5774cd6b94794face5ce774cc4d6d23dcb1f32
Author: Magnus Karlsson <magnus.karlsson@intel.com>
Date:   Wed Jan 25 08:49:00 2023 +0100

    dpaa_eth: execute xdp_do_flush() before napi_complete_done()
    
    [ Upstream commit b534013798b77f81a36f36dafd59bab9de837619 ]
    
    Make sure that xdp_do_flush() is always executed before
    napi_complete_done(). This is important for two reasons. First, a
    redirect to an XSKMAP assumes that a call to xdp_do_redirect() from
    napi context X on CPU Y will be followed by a xdp_do_flush() from the
    same napi context and CPU. This is not guaranteed if the
    napi_complete_done() is executed before xdp_do_flush(), as it tells
    the napi logic that it is fine to schedule napi context X on another
    CPU. Details from a production system triggering this bug using the
    veth driver can be found following the first link below.
    
    The second reason is that the XDP_REDIRECT logic in itself relies on
    being inside a single NAPI instance through to the xdp_do_flush() call
    for RCU protection of all in-kernel data structures. Details can be
    found in the second link below.
    
    Fixes: a1e031ffb422 ("dpaa_eth: add XDP_REDIRECT support")
    Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
    Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Link: https://lore.kernel.org/r/20221220185903.1105011-1-sbohrer@cloudflare.com
    Link: https://lore.kernel.org/all/20210624160609.292325-1-toke@redhat.com/
    Acked-by: Camelia Groza <camelia.groza@nxp.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5a7040a649c8e40c3fb630233d942be2fcdf7111
Author: Magnus Karlsson <magnus.karlsson@intel.com>
Date:   Wed Jan 25 08:48:59 2023 +0100

    virtio-net: execute xdp_do_flush() before napi_complete_done()
    
    [ Upstream commit ad7e615f646c9b5b2cf655cdfb9d91a28db4f25a ]
    
    Make sure that xdp_do_flush() is always executed before
    napi_complete_done(). This is important for two reasons. First, a
    redirect to an XSKMAP assumes that a call to xdp_do_redirect() from
    napi context X on CPU Y will be followed by a xdp_do_flush() from the
    same napi context and CPU. This is not guaranteed if the
    napi_complete_done() is executed before xdp_do_flush(), as it tells
    the napi logic that it is fine to schedule napi context X on another
    CPU. Details from a production system triggering this bug using the
    veth driver can be found following the first link below.
    
    The second reason is that the XDP_REDIRECT logic in itself relies on
    being inside a single NAPI instance through to the xdp_do_flush() call
    for RCU protection of all in-kernel data structures. Details can be
    found in the second link below.
    
    Fixes: 186b3c998c50 ("virtio-net: support XDP_REDIRECT")
    Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
    Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Link: https://lore.kernel.org/r/20221220185903.1105011-1-sbohrer@cloudflare.com
    Link: https://lore.kernel.org/all/20210624160609.292325-1-toke@redhat.com/
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94add5b2729090f5c984e7af6bdbcce7595b8bc8
Author: Magnus Karlsson <magnus.karlsson@intel.com>
Date:   Wed Jan 25 08:48:57 2023 +0100

    qede: execute xdp_do_flush() before napi_complete_done()
    
    [ Upstream commit 2ccce20d51faa0178086163ccb6c84a099a87ab4 ]
    
    Make sure that xdp_do_flush() is always executed before
    napi_complete_done(). This is important for two reasons. First, a
    redirect to an XSKMAP assumes that a call to xdp_do_redirect() from
    napi context X on CPU Y will be followed by a xdp_do_flush() from the
    same napi context and CPU. This is not guaranteed if the
    napi_complete_done() is executed before xdp_do_flush(), as it tells
    the napi logic that it is fine to schedule napi context X on another
    CPU. Details from a production system triggering this bug using the
    veth driver can be found following the first link below.
    
    The second reason is that the XDP_REDIRECT logic in itself relies on
    being inside a single NAPI instance through to the xdp_do_flush() call
    for RCU protection of all in-kernel data structures. Details can be
    found in the second link below.
    
    Fixes: d1b25b79e162b ("qede: add .ndo_xdp_xmit() and XDP_REDIRECT support")
    Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
    Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Link: https://lore.kernel.org/r/20221220185903.1105011-1-sbohrer@cloudflare.com
    Link: https://lore.kernel.org/all/20210624160609.292325-1-toke@redhat.com/
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a273f8e3ab901c711b3830d73595c14e76dec6af
Author: Dave Ertman <david.m.ertman@intel.com>
Date:   Tue Jan 24 09:19:43 2023 -0800

    ice: Prevent set_channel from changing queues while RDMA active
    
    [ Upstream commit a6a0974aae4209d039ba81226ded5246eea14961 ]
    
    The PF controls the set of queues that the RDMA auxiliary_driver requests
    resources from.  The set_channel command will alter that pool and trigger a
    reconfiguration of the VSI, which breaks RDMA functionality.
    
    Prevent set_channel from executing when RDMA driver bound to auxiliary
    device.
    
    Adding a locked variable to pass down the call chain to avoid double
    locking the device_lock.
    
    Fixes: 348048e724a0 ("ice: Implement iidc operations")
    Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b432e183c26ecbc0dd6cd7a731bbd883edddcd8b
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Sep 15 19:16:56 2022 -0400

    fix "direction" argument of iov_iter_kvec()
    
    [ Upstream commit fc02f33787d8dd227b54f263eba983d5b249c032 ]
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d8b8306e963ed72c96ef9b2291df28c39aabec35
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Sep 15 19:04:18 2022 -0400

    fix iov_iter_bvec() "direction" argument
    
    [ Upstream commit b676668d99155e6859d99bbf2df18b3f03851902 ]
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 389c7c0ef9cc3c301907ef6c4d8548f80a160f21
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Sep 15 19:01:10 2022 -0400

    READ is "data destination", not source...
    
    [ Upstream commit 355d2c2798e9dc39f6714fa7ef8902c0d4c5350b ]
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7a3649bf5bef2c6f8b0e28e9ef394b367d09f9ef
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Sep 15 18:59:12 2022 -0400

    WRITE is "data source", not destination...
    
    [ Upstream commit 974c36fb828aeae7b4f9063f94860ae6c5633efd ]
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 83cc6a7bb75c1d1a206e9ffcdcc0abab5efd000a
Author: Eric Auger <eric.auger@redhat.com>
Date:   Tue Jan 17 10:15:18 2023 -0500

    vhost/net: Clear the pending messages when the backend is removed
    
    [ Upstream commit 9526f9a2b762af16be94a72aca5d65c677d28f50 ]
    
    When the vhost iotlb is used along with a guest virtual iommu
    and the guest gets rebooted, some MISS messages may have been
    recorded just before the reboot and spuriously executed by
    the virtual iommu after the reboot.
    
    As vhost does not have any explicit reset user API,
    VHOST_NET_SET_BACKEND looks a reasonable point where to clear
    the pending messages, in case the backend is removed.
    
    Export vhost_clear_msg() and call it in vhost_net_set_backend()
    when fd == -1.
    
    Signed-off-by: Eric Auger <eric.auger@redhat.com>
    Suggested-by: Jason Wang <jasowang@redhat.com>
    Fixes: 6b1e6cc7855b0 ("vhost: new device IOTLB API")
    Message-Id: <20230117151518.44725-3-eric.auger@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c7d344bc386a0d97337518706c07f7a3df42631
Author: Martin K. Petersen <martin.petersen@oracle.com>
Date:   Thu Jan 26 22:06:08 2023 -0500

    scsi: Revert "scsi: core: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT"
    
    [ Upstream commit 15600159bcc6abbeae6b33a849bef90dca28b78f ]
    
    This reverts commit 948e922fc44611ee2de0c89583ca958cb5307d36.
    
    Not all targets that return PQ=1 and PDT=0 should be ignored. While
    the SCSI spec is vague in this department, there appears to be a
    critical mass of devices which rely on devices being accessible with
    this combination of reported values.
    
    Fixes: 948e922fc446 ("scsi: core: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT")
    Link: https://lore.kernel.org/r/yq1lelrleqr.fsf@ca-mkp.ca.oracle.com
    Acked-by: Bart Van Assche <bvanassche@acm.org>
    Acked-by: Martin Wilck <mwilck@suse.com>
    Acked-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4b199dc09416d5a532671e2d8c4aa0a076c9e4c7
Author: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Date:   Thu Jan 19 10:02:19 2023 +0100

    drm/vc4: hdmi: make CEC adapter name unique
    
    [ Upstream commit 51128c3f2a7c98055ea1d27e34910dc10977f618 ]
    
    The bcm2711 has two HDMI outputs, each with their own CEC adapter.
    The CEC adapter name has to be unique, but it is currently
    hardcoded to "vc4" for both outputs. Change this to use the card_name
    from the variant information in order to make the adapter name unique.
    
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Fixes: 15b4511a4af6 ("drm/vc4: add HDMI CEC support")
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/dcf1db75-d9cc-62cc-fa12-baf1b2b3bf31@xs4all.nl
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc1f8ab25a171a87666bc1c8f651ce5d8ba299b7
Author: Pierluigi Passaro <pierluigi.p@variscite.com>
Date:   Sun Jan 15 22:35:03 2023 +0100

    arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX
    
    [ Upstream commit 47123900f3e4a7f769631d6ec15abf44086276f6 ]
    
    According section
        8.2.5.313 Select Input Register (IOMUXC_UART1_RXD_SELECT_INPUT)
    of 
        i.MX 8M Mini Applications Processor Reference Manual, Rev. 3, 11/2020
    the required setting for this specific pin configuration is "1"
    
    Signed-off-by: Pierluigi Passaro <pierluigi.p@variscite.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Fixes: c1c9d41319c3 ("dt-bindings: imx: Add pinctrl binding doc for imx8mm")
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c681d7a4ed3d360de0574f4d6b7305a8de8dc54f
Author: Jakub Sitnicki <jakub@cloudflare.com>
Date:   Sat Jan 21 13:41:44 2023 +0100

    bpf, sockmap: Check for any of tcp_bpf_prots when cloning a listener
    
    [ Upstream commit ddce1e091757d0259107c6c0c7262df201de2b66 ]
    
    A listening socket linked to a sockmap has its sk_prot overridden. It
    points to one of the struct proto variants in tcp_bpf_prots. The variant
    depends on the socket's family and which sockmap programs are attached.
    
    A child socket cloned from a TCP listener initially inherits their sk_prot.
    But before cloning is finished, we restore the child's proto to the
    listener's original non-tcp_bpf_prots one. This happens in
    tcp_create_openreq_child -> tcp_bpf_clone.
    
    Today, in tcp_bpf_clone we detect if the child's proto should be restored
    by checking only for the TCP_BPF_BASE proto variant. This is not
    correct. The sk_prot of listening socket linked to a sockmap can point to
    to any variant in tcp_bpf_prots.
    
    If the listeners sk_prot happens to be not the TCP_BPF_BASE variant, then
    the child socket unintentionally is left if the inherited sk_prot by
    tcp_bpf_clone.
    
    This leads to issues like infinite recursion on close [1], because the
    child state is otherwise not set up for use with tcp_bpf_prot operations.
    
    Adjust the check in tcp_bpf_clone to detect all of tcp_bpf_prots variants.
    
    Note that it wouldn't be sufficient to check the socket state when
    overriding the sk_prot in tcp_bpf_update_proto in order to always use the
    TCP_BPF_BASE variant for listening sockets. Since commit
    b8b8315e39ff ("bpf, sockmap: Remove unhash handler for BPF sockmap usage")
    it is possible for a socket to transition to TCP_LISTEN state while already
    linked to a sockmap, e.g. connect() -> insert into map ->
    connect(AF_UNSPEC) -> listen().
    
    [1]: https://lore.kernel.org/all/00000000000073b14905ef2e7401@google.com/
    
    Fixes: e80251555f0b ("tcp_bpf: Don't let child socket inherit parent protocol ops on copy")
    Reported-by: syzbot+04c21ed96d861dccc5cd@syzkaller.appspotmail.com
    Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    Link: https://lore.kernel.org/r/20230113-sockmap-fix-v2-2-1e0ee7ac2f90@cloudflare.com
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34ad5d8885f5e1f3f04d931b1f4d9a183274e143
Author: Eduard Zingerman <eddyz87@gmail.com>
Date:   Fri Jan 6 16:22:13 2023 +0200

    bpf: Fix to preserve reg parent/live fields when copying range info
    
    [ Upstream commit 71f656a50176915d6813751188b5758daa8d012b ]
    
    Register range information is copied in several places. The intent is
    to transfer range/id information from one register/stack spill to
    another. Currently this is done using direct register assignment, e.g.:
    
    static void find_equal_scalars(..., struct bpf_reg_state *known_reg)
    {
            ...
            struct bpf_reg_state *reg;
            ...
                            *reg = *known_reg;
            ...
    }
    
    However, such assignments also copy the following bpf_reg_state fields:
    
    struct bpf_reg_state {
            ...
            struct bpf_reg_state *parent;
            ...
            enum bpf_reg_liveness live;
            ...
    };
    
    Copying of these fields is accidental and incorrect, as could be
    demonstrated by the following example:
    
         0: call ktime_get_ns()
         1: r6 = r0
         2: call ktime_get_ns()
         3: r7 = r0
         4: if r0 > r6 goto +1             ; r0 & r6 are unbound thus generated
                                           ; branch states are identical
         5: *(u64 *)(r10 - 8) = 0xdeadbeef ; 64-bit write to fp[-8]
        --- checkpoint ---
         6: r1 = 42                        ; r1 marked as written
         7: *(u8 *)(r10 - 8) = r1          ; 8-bit write, fp[-8] parent & live
                                           ; overwritten
         8: r2 = *(u64 *)(r10 - 8)
         9: r0 = 0
        10: exit
    
    This example is unsafe because 64-bit write to fp[-8] at (5) is
    conditional, thus not all bytes of fp[-8] are guaranteed to be set
    when it is read at (8). However, currently the example passes
    verification.
    
    First, the execution path 1-10 is examined by verifier.
    Suppose that a new checkpoint is created by is_state_visited() at (6).
    After checkpoint creation:
    - r1.parent points to checkpoint.r1,
    - fp[-8].parent points to checkpoint.fp[-8].
    At (6) the r1.live is set to REG_LIVE_WRITTEN.
    At (7) the fp[-8].parent is set to r1.parent and fp[-8].live is set to
    REG_LIVE_WRITTEN, because of the following code called in
    check_stack_write_fixed_off():
    
    static void save_register_state(struct bpf_func_state *state,
                                    int spi, struct bpf_reg_state *reg,
                                    int size)
    {
            ...
            state->stack[spi].spilled_ptr = *reg;  // <--- parent & live copied
            if (size == BPF_REG_SIZE)
                    state->stack[spi].spilled_ptr.live |= REG_LIVE_WRITTEN;
            ...
    }
    
    Note the intent to mark stack spill as written only if 8 bytes are
    spilled to a slot, however this intent is spoiled by a 'live' field copy.
    At (8) the checkpoint.fp[-8] should be marked as REG_LIVE_READ but
    this does not happen:
    - fp[-8] in a current state is already marked as REG_LIVE_WRITTEN;
    - fp[-8].parent points to checkpoint.r1, parentage chain is used by
      mark_reg_read() to mark checkpoint states.
    At (10) the verification is finished for path 1-10 and jump 4-6 is
    examined. The checkpoint.fp[-8] never gets REG_LIVE_READ mark and this
    spill is pruned from the cached states by clean_live_states(). Hence
    verifier state obtained via path 1-4,6 is deemed identical to one
    obtained via path 1-6 and program marked as safe.
    
    Note: the example should be executed with BPF_F_TEST_STATE_FREQ flag
    set to force creation of intermediate verifier states.
    
    This commit revisits the locations where bpf_reg_state instances are
    copied and replaces the direct copies with a call to a function
    copy_register_state(dst, src) that preserves 'parent' and 'live'
    fields of the 'dst'.
    
    Fixes: 679c782de14b ("bpf/verifier: per-register parent pointers")
    Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
    Link: https://lore.kernel.org/r/20230106142214.1040390-2-eddyz87@gmail.com
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b86f9ab56924ca56cde927d461165127b6b472e
Author: Martin KaFai Lau <kafai@fb.com>
Date:   Tue Sep 21 17:49:41 2021 -0700

    bpf: Support <8-byte scalar spill and refill
    
    [ Upstream commit 354e8f1970f821d4952458f77b1ab6c3eb24d530 ]
    
    The verifier currently does not save the reg state when
    spilling <8byte bounded scalar to the stack.  The bpf program
    will be incorrectly rejected when this scalar is refilled to
    the reg and then used to offset into a packet header.
    The later patch has a simplified bpf prog from a real use case
    to demonstrate this case.  The current work around is
    to reparse the packet again such that this offset scalar
    is close to where the packet data will be accessed to
    avoid the spill.  Thus, the header is parsed twice.
    
    The llvm patch [1] will align the <8bytes spill to
    the 8-byte stack address.  This can simplify the verifier
    support by avoiding to store multiple reg states for
    each 8 byte stack slot.
    
    This patch changes the verifier to save the reg state when
    spilling <8bytes scalar to the stack.  This reg state saving
    is limited to spill aligned to the 8-byte stack address.
    The current refill logic has already called coerce_reg_to_size(),
    so coerce_reg_to_size() is not called on state->stack[spi].spilled_ptr
    during spill.
    
    When refilling in check_stack_read_fixed_off(),  it checks
    the refill size is the same as the number of bytes marked with
    STACK_SPILL before restoring the reg state.  When restoring
    the reg state to state->regs[dst_regno], it needs
    to avoid the state->regs[dst_regno].subreg_def being
    over written because it has been marked by the check_reg_arg()
    earlier [check_mem_access() is called after check_reg_arg() in
    do_check()].  Reordering check_mem_access() and check_reg_arg()
    will need a lot of changes in test_verifier's tests because
    of the difference in verifier's error message.  Thus, the
    patch here is to save the state->regs[dst_regno].subreg_def
    first in check_stack_read_fixed_off().
    
    There are cases that the verifier needs to scrub the spilled slot
    from STACK_SPILL to STACK_MISC.  After this patch the spill is not always
    in 8 bytes now, so it can no longer assume the other 7 bytes are always
    marked as STACK_SPILL.  In particular, the scrub needs to avoid marking
    an uninitialized byte from STACK_INVALID to STACK_MISC.  Otherwise, the
    verifier will incorrectly accept bpf program reading uninitialized bytes
    from the stack.  A new helper scrub_spilled_slot() is created for this
    purpose.
    
    [1]: https://reviews.llvm.org/D109073
    
    Signed-off-by: Martin KaFai Lau <kafai@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20210922004941.625398-1-kafai@fb.com
    Stable-dep-of: 71f656a50176 ("bpf: Fix to preserve reg parent/live fields when copying range info")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1b9256c96220bcdba287eeeb90e7c910c77f8c46
Author: Artemii Karasev <karasev@ispras.ru>
Date:   Thu Jan 19 00:22:59 2023 -0800

    ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()
    
    [ Upstream commit b9cee506da2b7920b5ea02ccd8e78a907d0ee7aa ]
    
    snd_hda_get_connections() can return a negative error code.
    It may lead to accessing 'conn' array at a negative index.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Signed-off-by: Artemii Karasev <karasev@ispras.ru>
    Fixes: 30b4503378c9 ("ALSA: hda - Expose secret DAC-AA connection of some VIA codecs")
    Link: https://lore.kernel.org/r/20230119082259.3634-1-karasev@ispras.ru
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7abeb6916377d375054e14fa1612d987f1641ab
Author: Yonghong Song <yhs@fb.com>
Date:   Wed Jan 18 12:48:15 2023 -0800

    bpf: Fix a possible task gone issue with bpf_send_signal[_thread]() helpers
    
    [ Upstream commit bdb7fdb0aca8b96cef9995d3a57e251c2289322f ]
    
    In current bpf_send_signal() and bpf_send_signal_thread() helper
    implementation, irq_work is used to handle nmi context. Hao Sun
    reported in [1] that the current task at the entry of the helper
    might be gone during irq_work callback processing. To fix the issue,
    a reference is acquired for the current task before enqueuing into
    the irq_work so that the queued task is still available during
    irq_work callback processing.
    
      [1] https://lore.kernel.org/bpf/20230109074425.12556-1-sunhao.th@gmail.com/
    
    Fixes: 8b401f9ed244 ("bpf: implement bpf_send_signal() helper")
    Tested-by: Hao Sun <sunhao.th@gmail.com>
    Reported-by: Hao Sun <sunhao.th@gmail.com>
    Signed-off-by: Yonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/r/20230118204815.3331855-1-yhs@fb.com
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cfcc2390dbc5b3818a74d5a4c9847bd434460b59
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Thu Jan 12 13:28:51 2023 +0200

    ASoC: Intel: bytcr_wm5102: Drop reference count of ACPI device after use
    
    [ Upstream commit c8aa49abdeda2ab587aadb083e670f6aa0236f93 ]
    
    Theoretically the device might gone if its reference count drops to 0.
    This might be the case when we try to find the first physical node of
    the ACPI device. We need to keep reference to it until we get a result
    of the above mentioned call. Refactor the code to drop the reference
    count at the correct place.
    
    While at it, move to acpi_dev_put() as symmetrical call to the
    acpi_dev_get_first_match_dev().
    
    Fixes: 9a87fc1e0619 ("ASoC: Intel: bytcr_wm5102: Add machine driver for BYT/WM5102")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20230112112852.67714-5-andriy.shevchenko@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b4b204565a45d730bdc553a8386ba079956e42ab
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Thu Jan 12 13:28:50 2023 +0200

    ASoC: Intel: bytcr_rt5640: Drop reference count of ACPI device after use
    
    [ Upstream commit cbf87bcf46e399e9a5288430d940efbad3551c68 ]
    
    Theoretically the device might gone if its reference count drops to 0.
    This might be the case when we try to find the first physical node of
    the ACPI device. We need to keep reference to it until we get a result
    of the above mentioned call. Refactor the code to drop the reference
    count at the correct place.
    
    While at it, move to acpi_dev_put() as symmetrical call to the
    acpi_dev_get_first_match_dev().
    
    Fixes: a232b96dcece ("ASoC: Intel: bytcr_rt5640: use HID translation util")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20230112112852.67714-4-andriy.shevchenko@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f1e7635c54d95b8359423116c92b2f11d62e535
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Thu Jan 12 13:28:49 2023 +0200

    ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after use
    
    [ Upstream commit 721858823d7cdc8f2a897579b040e935989f6f02 ]
    
    Theoretically the device might gone if its reference count drops to 0.
    This might be the case when we try to find the first physical node of
    the ACPI device. We need to keep reference to it until we get a result
    of the above mentioned call. Refactor the code to drop the reference
    count at the correct place.
    
    While at it, move to acpi_dev_put() as symmetrical call to the
    acpi_dev_get_first_match_dev().
    
    Fixes: 02c0a3b3047f ("ASoC: Intel: bytcr_rt5651: add MCLK, quirks and cleanups")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20230112112852.67714-3-andriy.shevchenko@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41d323c352acfc6cde828e01a1fe420c2d1c9b38
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Thu Jan 12 13:28:48 2023 +0200

    ASoC: Intel: bytcht_es8316: Drop reference count of ACPI device after use
    
    [ Upstream commit 6b1c0bd6fdefbf3c3d75680c2708f5423ef72e46 ]
    
    Theoretically the device might gone if its reference count drops to 0.
    This might be the case when we try to find the first physical node of
    the ACPI device. We need to keep reference to it until we get a result
    of the above mentioned call. Refactor the code to drop the reference
    count at the correct place.
    
    While at it, move to acpi_dev_put() as symmetrical call to the
    acpi_dev_get_first_match_dev().
    
    Fixes: 3c22a73fb873 ("ASoC: Intel: bytcht_es8316: fix HID handling")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20230112112852.67714-2-andriy.shevchenko@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6a9990e1d92b08a9e76db14ca971758f871b8e4b
Author: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date:   Tue Mar 8 13:26:10 2022 -0600

    ASoC: Intel: bytcht_es8316: move comment to the right place
    
    [ Upstream commit fe0596a006081bc963874d4f3d38cd0b1b5e46d4 ]
    
    Additional code was added and the comment on the speaker GPIO needs to
    be moved before we actually try to get the GPIO.
    
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
    Link: https://lore.kernel.org/r/20220308192610.392950-21-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Stable-dep-of: 6b1c0bd6fdef ("ASoC: Intel: bytcht_es8316: Drop reference count of ACPI device after use")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ffcdf354555b832ac8f59c6eb37c715099afb090
Author: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date:   Tue Mar 1 13:48:57 2022 -0600

    ASoC: Intel: boards: fix spelling in comments
    
    [ Upstream commit f1eebb3bf707b267bd8ed945d00a81c8ca31bd73 ]
    
    copy/paste spelling issues with platforms and buttons.
    
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Reviewed-by: FRED OH <fred.oh@linux.intel.com>
    Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20220301194903.60859-3-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Stable-dep-of: 6b1c0bd6fdef ("ASoC: Intel: bytcht_es8316: Drop reference count of ACPI device after use")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd0b17ab1b76b559a7f3ff0c8b466fae214644a2
Author: Yuan Can <yuancan@huawei.com>
Date:   Wed Nov 23 09:42:00 2022 +0000

    bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()
    
    [ Upstream commit f71eaf2708be7831428eacae7db25d8ec6b8b4c5 ]
    
    The sunxi_rsb_init() returns the platform_driver_register() directly
    without checking its return value, if platform_driver_register() failed,
    the sunxi_rsb_bus is not unregistered.
    Fix by unregister sunxi_rsb_bus when platform_driver_register() failed.
    
    Fixes: d787dcdb9c8f ("bus: sunxi-rsb: Add driver for Allwinner Reduced Serial Bus")
    Signed-off-by: Yuan Can <yuancan@huawei.com>
    Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Link: https://lore.kernel.org/r/20221123094200.12036-1-yuancan@huawei.com
    Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f4543c9382ae2d5062f6aa4fecae0c9258d0b0e
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Tue Jan 17 18:06:10 2023 +0900

    firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region
    
    commit 531390a243ef47448f8bad01c186c2787666bf4d upstream.
    
    This patch is fix for Linux kernel v2.6.33 or later.
    
    For request subaction to IEC 61883-1 FCP region, Linux FireWire subsystem
    have had an issue of use-after-free. The subsystem allows multiple
    user space listeners to the region, while data of the payload was likely
    released before the listeners execute read(2) to access to it for copying
    to user space.
    
    The issue was fixed by a commit 281e20323ab7 ("firewire: core: fix
    use-after-free regression in FCP handler"). The object of payload is
    duplicated in kernel space for each listener. When the listener executes
    ioctl(2) with FW_CDEV_IOC_SEND_RESPONSE request, the object is going to
    be released.
    
    However, it causes memory leak since the commit relies on call of
    release_request() in drivers/firewire/core-cdev.c. Against the
    expectation, the function is never called due to the design of
    release_client_resource(). The function delegates release task
    to caller when called with non-NULL fourth argument. The implementation
    of ioctl_send_response() is the case. It should release the object
    explicitly.
    
    This commit fixes the bug.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 281e20323ab7 ("firewire: core: fix use-after-free regression in FCP handler")
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20230117090610.93792-2-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>