commit 99c8c5d5180efa2d51e2b233c0b34886752ce276
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Oct 26 13:19:43 2022 +0200

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

commit 309c16486e8b9b640e81394df24767a76a5587fb
Author: Martin Liska <mliska@suse.cz>
Date:   Thu Oct 13 09:40:59 2022 +0200

    gcov: support GCC 12.1 and newer compilers
    
    commit 977ef30a7d888eeb52fb6908f99080f33e5309a8 upstream.
    
    Starting with GCC 12.1, the created .gcda format can't be read by gcov
    tool.  There are 2 significant changes to the .gcda file format that
    need to be supported:
    
    a) [gcov: Use system IO buffering]
       (23eb66d1d46a34cb28c4acbdf8a1deb80a7c5a05) changed that all sizes in
       the format are in bytes and not in words (4B)
    
    b) [gcov: make profile merging smarter]
       (72e0c742bd01f8e7e6dcca64042b9ad7e75979de) add a new checksum to the
       file header.
    
    Tested with GCC 7.5, 10.4, 12.2 and the current master.
    
    Link: https://lkml.kernel.org/r/624bda92-f307-30e9-9aaa-8cc678b2dfb2@suse.cz
    Signed-off-by: Martin Liska <mliska@suse.cz>
    Tested-by: Peter Oberparleiter <oberpar@linux.ibm.com>
    Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.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 012e3679b8e10ff3aa3bc1eb71f1d9e7cfa2dff6
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Thu Oct 13 14:50:28 2022 +0200

    thermal: intel_powerclamp: Use first online CPU as control_cpu
    
    commit 4bb7f6c2781e46fc5bd00475a66df2ea30ef330d upstream.
    
    Commit 68b99e94a4a2 ("thermal: intel_powerclamp: Use get_cpu() instead
    of smp_processor_id() to avoid crash") fixed an issue related to using
    smp_processor_id() in preemptible context by replacing it with a pair
    of get_cpu()/put_cpu(), but what is needed there really is any online
    CPU and not necessarily the one currently running the code.  Arguably,
    getting the one that's running the code in there is confusing.
    
    For this reason, simply give the control CPU role to the first online
    one which automatically will be CPU0 if it is online, so one check
    can be dropped from the code for an added benefit.
    
    Link: https://lore.kernel.org/linux-pm/20221011113646.GA12080@duo.ucw.cz/
    Fixes: 68b99e94a4a2 ("thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to avoid crash")
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: Chen Yu <yu.c.chen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75a578000ae5e511e5d0e8433c94a14d9c99c412
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Dec 20 06:33:30 2021 -0800

    inet: fully convert sk->sk_rx_dst to RCU rules
    
    commit 8f905c0e7354ef261360fb7535ea079b1082c105 upstream.
    
    syzbot reported various issues around early demux,
    one being included in this changelog [1]
    
    sk->sk_rx_dst is using RCU protection without clearly
    documenting it.
    
    And following sequences in tcp_v4_do_rcv()/tcp_v6_do_rcv()
    are not following standard RCU rules.
    
    [a]    dst_release(dst);
    [b]    sk->sk_rx_dst = NULL;
    
    They look wrong because a delete operation of RCU protected
    pointer is supposed to clear the pointer before
    the call_rcu()/synchronize_rcu() guarding actual memory freeing.
    
    In some cases indeed, dst could be freed before [b] is done.
    
    We could cheat by clearing sk_rx_dst before calling
    dst_release(), but this seems the right time to stick
    to standard RCU annotations and debugging facilities.
    
    [1]
    BUG: KASAN: use-after-free in dst_check include/net/dst.h:470 [inline]
    BUG: KASAN: use-after-free in tcp_v4_early_demux+0x95b/0x960 net/ipv4/tcp_ipv4.c:1792
    Read of size 2 at addr ffff88807f1cb73a by task syz-executor.5/9204
    
    CPU: 0 PID: 9204 Comm: syz-executor.5 Not tainted 5.16.0-rc5-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     <TASK>
     __dump_stack lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
     print_address_description.constprop.0.cold+0x8d/0x320 mm/kasan/report.c:247
     __kasan_report mm/kasan/report.c:433 [inline]
     kasan_report.cold+0x83/0xdf mm/kasan/report.c:450
     dst_check include/net/dst.h:470 [inline]
     tcp_v4_early_demux+0x95b/0x960 net/ipv4/tcp_ipv4.c:1792
     ip_rcv_finish_core.constprop.0+0x15de/0x1e80 net/ipv4/ip_input.c:340
     ip_list_rcv_finish.constprop.0+0x1b2/0x6e0 net/ipv4/ip_input.c:583
     ip_sublist_rcv net/ipv4/ip_input.c:609 [inline]
     ip_list_rcv+0x34e/0x490 net/ipv4/ip_input.c:644
     __netif_receive_skb_list_ptype net/core/dev.c:5508 [inline]
     __netif_receive_skb_list_core+0x549/0x8e0 net/core/dev.c:5556
     __netif_receive_skb_list net/core/dev.c:5608 [inline]
     netif_receive_skb_list_internal+0x75e/0xd80 net/core/dev.c:5699
     gro_normal_list net/core/dev.c:5853 [inline]
     gro_normal_list net/core/dev.c:5849 [inline]
     napi_complete_done+0x1f1/0x880 net/core/dev.c:6590
     virtqueue_napi_complete drivers/net/virtio_net.c:339 [inline]
     virtnet_poll+0xca2/0x11b0 drivers/net/virtio_net.c:1557
     __napi_poll+0xaf/0x440 net/core/dev.c:7023
     napi_poll net/core/dev.c:7090 [inline]
     net_rx_action+0x801/0xb40 net/core/dev.c:7177
     __do_softirq+0x29b/0x9c2 kernel/softirq.c:558
     invoke_softirq kernel/softirq.c:432 [inline]
     __irq_exit_rcu+0x123/0x180 kernel/softirq.c:637
     irq_exit_rcu+0x5/0x20 kernel/softirq.c:649
     common_interrupt+0x52/0xc0 arch/x86/kernel/irq.c:240
     asm_common_interrupt+0x1e/0x40 arch/x86/include/asm/idtentry.h:629
    RIP: 0033:0x7f5e972bfd57
    Code: 39 d1 73 14 0f 1f 80 00 00 00 00 48 8b 50 f8 48 83 e8 08 48 39 ca 77 f3 48 39 c3 73 3e 48 89 13 48 8b 50 f8 48 89 38 49 8b 0e <48> 8b 3e 48 83 c3 08 48 83 c6 08 eb bc 48 39 d1 72 9e 48 39 d0 73
    RSP: 002b:00007fff8a413210 EFLAGS: 00000283
    RAX: 00007f5e97108990 RBX: 00007f5e97108338 RCX: ffffffff81d3aa45
    RDX: ffffffff81d3aa45 RSI: 00007f5e97108340 RDI: ffffffff81d3aa45
    RBP: 00007f5e97107eb8 R08: 00007f5e97108d88 R09: 0000000093c2e8d9
    R10: 0000000000000000 R11: 0000000000000000 R12: 00007f5e97107eb0
    R13: 00007f5e97108338 R14: 00007f5e97107ea8 R15: 0000000000000019
     </TASK>
    
    Allocated by task 13:
     kasan_save_stack+0x1e/0x50 mm/kasan/common.c:38
     kasan_set_track mm/kasan/common.c:46 [inline]
     set_alloc_info mm/kasan/common.c:434 [inline]
     __kasan_slab_alloc+0x90/0xc0 mm/kasan/common.c:467
     kasan_slab_alloc include/linux/kasan.h:259 [inline]
     slab_post_alloc_hook mm/slab.h:519 [inline]
     slab_alloc_node mm/slub.c:3234 [inline]
     slab_alloc mm/slub.c:3242 [inline]
     kmem_cache_alloc+0x202/0x3a0 mm/slub.c:3247
     dst_alloc+0x146/0x1f0 net/core/dst.c:92
     rt_dst_alloc+0x73/0x430 net/ipv4/route.c:1613
     ip_route_input_slow+0x1817/0x3a20 net/ipv4/route.c:2340
     ip_route_input_rcu net/ipv4/route.c:2470 [inline]
     ip_route_input_noref+0x116/0x2a0 net/ipv4/route.c:2415
     ip_rcv_finish_core.constprop.0+0x288/0x1e80 net/ipv4/ip_input.c:354
     ip_list_rcv_finish.constprop.0+0x1b2/0x6e0 net/ipv4/ip_input.c:583
     ip_sublist_rcv net/ipv4/ip_input.c:609 [inline]
     ip_list_rcv+0x34e/0x490 net/ipv4/ip_input.c:644
     __netif_receive_skb_list_ptype net/core/dev.c:5508 [inline]
     __netif_receive_skb_list_core+0x549/0x8e0 net/core/dev.c:5556
     __netif_receive_skb_list net/core/dev.c:5608 [inline]
     netif_receive_skb_list_internal+0x75e/0xd80 net/core/dev.c:5699
     gro_normal_list net/core/dev.c:5853 [inline]
     gro_normal_list net/core/dev.c:5849 [inline]
     napi_complete_done+0x1f1/0x880 net/core/dev.c:6590
     virtqueue_napi_complete drivers/net/virtio_net.c:339 [inline]
     virtnet_poll+0xca2/0x11b0 drivers/net/virtio_net.c:1557
     __napi_poll+0xaf/0x440 net/core/dev.c:7023
     napi_poll net/core/dev.c:7090 [inline]
     net_rx_action+0x801/0xb40 net/core/dev.c:7177
     __do_softirq+0x29b/0x9c2 kernel/softirq.c:558
    
    Freed by task 13:
     kasan_save_stack+0x1e/0x50 mm/kasan/common.c:38
     kasan_set_track+0x21/0x30 mm/kasan/common.c:46
     kasan_set_free_info+0x20/0x30 mm/kasan/generic.c:370
     ____kasan_slab_free mm/kasan/common.c:366 [inline]
     ____kasan_slab_free mm/kasan/common.c:328 [inline]
     __kasan_slab_free+0xff/0x130 mm/kasan/common.c:374
     kasan_slab_free include/linux/kasan.h:235 [inline]
     slab_free_hook mm/slub.c:1723 [inline]
     slab_free_freelist_hook+0x8b/0x1c0 mm/slub.c:1749
     slab_free mm/slub.c:3513 [inline]
     kmem_cache_free+0xbd/0x5d0 mm/slub.c:3530
     dst_destroy+0x2d6/0x3f0 net/core/dst.c:127
     rcu_do_batch kernel/rcu/tree.c:2506 [inline]
     rcu_core+0x7ab/0x1470 kernel/rcu/tree.c:2741
     __do_softirq+0x29b/0x9c2 kernel/softirq.c:558
    
    Last potentially related work creation:
     kasan_save_stack+0x1e/0x50 mm/kasan/common.c:38
     __kasan_record_aux_stack+0xf5/0x120 mm/kasan/generic.c:348
     __call_rcu kernel/rcu/tree.c:2985 [inline]
     call_rcu+0xb1/0x740 kernel/rcu/tree.c:3065
     dst_release net/core/dst.c:177 [inline]
     dst_release+0x79/0xe0 net/core/dst.c:167
     tcp_v4_do_rcv+0x612/0x8d0 net/ipv4/tcp_ipv4.c:1712
     sk_backlog_rcv include/net/sock.h:1030 [inline]
     __release_sock+0x134/0x3b0 net/core/sock.c:2768
     release_sock+0x54/0x1b0 net/core/sock.c:3300
     tcp_sendmsg+0x36/0x40 net/ipv4/tcp.c:1441
     inet_sendmsg+0x99/0xe0 net/ipv4/af_inet.c:819
     sock_sendmsg_nosec net/socket.c:704 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:724
     sock_write_iter+0x289/0x3c0 net/socket.c:1057
     call_write_iter include/linux/fs.h:2162 [inline]
     new_sync_write+0x429/0x660 fs/read_write.c:503
     vfs_write+0x7cd/0xae0 fs/read_write.c:590
     ksys_write+0x1ee/0x250 fs/read_write.c:643
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    The buggy address belongs to the object at ffff88807f1cb700
     which belongs to the cache ip_dst_cache of size 176
    The buggy address is located 58 bytes inside of
     176-byte region [ffff88807f1cb700, ffff88807f1cb7b0)
    The buggy address belongs to the page:
    page:ffffea0001fc72c0 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x7f1cb
    flags: 0xfff00000000200(slab|node=0|zone=1|lastcpupid=0x7ff)
    raw: 00fff00000000200 dead000000000100 dead000000000122 ffff8881413bb780
    raw: 0000000000000000 0000000000100010 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    page_owner tracks the page as allocated
    page last allocated via order 0, migratetype Unmovable, gfp_mask 0x112a20(GFP_ATOMIC|__GFP_NOWARN|__GFP_NORETRY|__GFP_HARDWALL), pid 5, ts 108466983062, free_ts 108048976062
     prep_new_page mm/page_alloc.c:2418 [inline]
     get_page_from_freelist+0xa72/0x2f50 mm/page_alloc.c:4149
     __alloc_pages+0x1b2/0x500 mm/page_alloc.c:5369
     alloc_pages+0x1a7/0x300 mm/mempolicy.c:2191
     alloc_slab_page mm/slub.c:1793 [inline]
     allocate_slab mm/slub.c:1930 [inline]
     new_slab+0x32d/0x4a0 mm/slub.c:1993
     ___slab_alloc+0x918/0xfe0 mm/slub.c:3022
     __slab_alloc.constprop.0+0x4d/0xa0 mm/slub.c:3109
     slab_alloc_node mm/slub.c:3200 [inline]
     slab_alloc mm/slub.c:3242 [inline]
     kmem_cache_alloc+0x35c/0x3a0 mm/slub.c:3247
     dst_alloc+0x146/0x1f0 net/core/dst.c:92
     rt_dst_alloc+0x73/0x430 net/ipv4/route.c:1613
     __mkroute_output net/ipv4/route.c:2564 [inline]
     ip_route_output_key_hash_rcu+0x921/0x2d00 net/ipv4/route.c:2791
     ip_route_output_key_hash+0x18b/0x300 net/ipv4/route.c:2619
     __ip_route_output_key include/net/route.h:126 [inline]
     ip_route_output_flow+0x23/0x150 net/ipv4/route.c:2850
     ip_route_output_key include/net/route.h:142 [inline]
     geneve_get_v4_rt+0x3a6/0x830 drivers/net/geneve.c:809
     geneve_xmit_skb drivers/net/geneve.c:899 [inline]
     geneve_xmit+0xc4a/0x3540 drivers/net/geneve.c:1082
     __netdev_start_xmit include/linux/netdevice.h:4994 [inline]
     netdev_start_xmit include/linux/netdevice.h:5008 [inline]
     xmit_one net/core/dev.c:3590 [inline]
     dev_hard_start_xmit+0x1eb/0x920 net/core/dev.c:3606
     __dev_queue_xmit+0x299a/0x3650 net/core/dev.c:4229
    page last free stack trace:
     reset_page_owner include/linux/page_owner.h:24 [inline]
     free_pages_prepare mm/page_alloc.c:1338 [inline]
     free_pcp_prepare+0x374/0x870 mm/page_alloc.c:1389
     free_unref_page_prepare mm/page_alloc.c:3309 [inline]
     free_unref_page+0x19/0x690 mm/page_alloc.c:3388
     qlink_free mm/kasan/quarantine.c:146 [inline]
     qlist_free_all+0x5a/0xc0 mm/kasan/quarantine.c:165
     kasan_quarantine_reduce+0x180/0x200 mm/kasan/quarantine.c:272
     __kasan_slab_alloc+0xa2/0xc0 mm/kasan/common.c:444
     kasan_slab_alloc include/linux/kasan.h:259 [inline]
     slab_post_alloc_hook mm/slab.h:519 [inline]
     slab_alloc_node mm/slub.c:3234 [inline]
     kmem_cache_alloc_node+0x255/0x3f0 mm/slub.c:3270
     __alloc_skb+0x215/0x340 net/core/skbuff.c:414
     alloc_skb include/linux/skbuff.h:1126 [inline]
     alloc_skb_with_frags+0x93/0x620 net/core/skbuff.c:6078
     sock_alloc_send_pskb+0x783/0x910 net/core/sock.c:2575
     mld_newpack+0x1df/0x770 net/ipv6/mcast.c:1754
     add_grhead+0x265/0x330 net/ipv6/mcast.c:1857
     add_grec+0x1053/0x14e0 net/ipv6/mcast.c:1995
     mld_send_initial_cr.part.0+0xf6/0x230 net/ipv6/mcast.c:2242
     mld_send_initial_cr net/ipv6/mcast.c:1232 [inline]
     mld_dad_work+0x1d3/0x690 net/ipv6/mcast.c:2268
     process_one_work+0x9b2/0x1690 kernel/workqueue.c:2298
     worker_thread+0x658/0x11f0 kernel/workqueue.c:2445
    
    Memory state around the buggy address:
     ffff88807f1cb600: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff88807f1cb680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fc fc
    >ffff88807f1cb700: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                            ^
     ffff88807f1cb780: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fc fc
     ffff88807f1cb800: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    
    Fixes: 41063e9dd119 ("ipv4: Early TCP socket demux.")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20211220143330.680945-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    [cmllamas: fixed trivial merge conflict]
    Signed-off-by: Carlos Llamas <cmllamas@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b642b9c164727956e173f0a1fdf1f2c5ba841810
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Thu Sep 15 19:00:24 2022 +0200

    efi: libstub: drop pointless get_memory_map() call
    
    commit d80ca810f096ff66f451e7a3ed2f0cd9ef1ff519 upstream.
    
    Currently, the non-x86 stub code calls get_memory_map() redundantly,
    given that the data it returns is never used anywhere. So drop the call.
    
    Cc: <stable@vger.kernel.org> # v4.14+
    Fixes: 24d7c494ce46 ("efi/arm-stub: Round up FDT allocation to mapping size")
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 897b1450abe5a67c842a5d24173ce4449ccdfa94
Author: Saurabh Sengar <ssengar@linux.microsoft.com>
Date:   Tue Aug 23 11:51:04 2022 -0700

    md: Replace snprintf with scnprintf
    
    commit 1727fd5015d8f93474148f94e34cda5aa6ad4a43 upstream.
    
    Current code produces a warning as shown below when total characters
    in the constituent block device names plus the slashes exceeds 200.
    snprintf() returns the number of characters generated from the given
    input, which could cause the expression “200 – len” to wrap around
    to a large positive number. Fix this by using scnprintf() instead,
    which returns the actual number of characters written into the buffer.
    
    [ 1513.267938] ------------[ cut here ]------------
    [ 1513.267943] WARNING: CPU: 15 PID: 37247 at <snip>/lib/vsprintf.c:2509 vsnprintf+0x2c8/0x510
    [ 1513.267944] Modules linked in:  <snip>
    [ 1513.267969] CPU: 15 PID: 37247 Comm: mdadm Not tainted 5.4.0-1085-azure #90~18.04.1-Ubuntu
    [ 1513.267969] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 05/09/2022
    [ 1513.267971] RIP: 0010:vsnprintf+0x2c8/0x510
    <-snip->
    [ 1513.267982] Call Trace:
    [ 1513.267986]  snprintf+0x45/0x70
    [ 1513.267990]  ? disk_name+0x71/0xa0
    [ 1513.267993]  dump_zones+0x114/0x240 [raid0]
    [ 1513.267996]  ? _cond_resched+0x19/0x40
    [ 1513.267998]  raid0_run+0x19e/0x270 [raid0]
    [ 1513.268000]  md_run+0x5e0/0xc50
    [ 1513.268003]  ? security_capable+0x3f/0x60
    [ 1513.268005]  do_md_run+0x19/0x110
    [ 1513.268006]  md_ioctl+0x195e/0x1f90
    [ 1513.268007]  blkdev_ioctl+0x91f/0x9f0
    [ 1513.268010]  block_ioctl+0x3d/0x50
    [ 1513.268012]  do_vfs_ioctl+0xa9/0x640
    [ 1513.268014]  ? __fput+0x162/0x260
    [ 1513.268016]  ksys_ioctl+0x75/0x80
    [ 1513.268017]  __x64_sys_ioctl+0x1a/0x20
    [ 1513.268019]  do_syscall_64+0x5e/0x200
    [ 1513.268021]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 766038846e875 ("md/raid0: replace printk() with pr_*()")
    Reviewed-by: Michael Kelley <mikelley@microsoft.com>
    Acked-by: Guoqing Jiang <guoqing.jiang@linux.dev>
    Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2180ad6a43501597d20eacad0c6f146c51d4bbd
Author: Jerry Lee 李修賢 <jerrylee@qnap.com>
Date:   Mon Jul 18 10:25:19 2022 +0000

    ext4: continue to expand file system when the target size doesn't reach
    
    commit df3cb754d13d2cd5490db9b8d536311f8413a92e upstream.
    
    When expanding a file system from (16TiB-2MiB) to 18TiB, the operation
    exits early which leads to result inconsistency between resize2fs and
    Ext4 kernel driver.
    
    === before ===
    ○ → resize2fs /dev/mapper/thin
    resize2fs 1.45.5 (07-Jan-2020)
    Filesystem at /dev/mapper/thin is mounted on /mnt/test; on-line resizing required
    old_desc_blocks = 2048, new_desc_blocks = 2304
    The filesystem on /dev/mapper/thin is now 4831837696 (4k) blocks long.
    
    [  865.186308] EXT4-fs (dm-5): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
    [  912.091502] dm-4: detected capacity change from 34359738368 to 38654705664
    [  970.030550] dm-5: detected capacity change from 34359734272 to 38654701568
    [ 1000.012751] EXT4-fs (dm-5): resizing filesystem from 4294966784 to 4831837696 blocks
    [ 1000.012878] EXT4-fs (dm-5): resized filesystem to 4294967296
    
    === after ===
    [  129.104898] EXT4-fs (dm-5): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
    [  143.773630] dm-4: detected capacity change from 34359738368 to 38654705664
    [  198.203246] dm-5: detected capacity change from 34359734272 to 38654701568
    [  207.918603] EXT4-fs (dm-5): resizing filesystem from 4294966784 to 4831837696 blocks
    [  207.918754] EXT4-fs (dm-5): resizing filesystem from 4294967296 to 4831837696 blocks
    [  207.918758] EXT4-fs (dm-5): Converting file system to meta_bg
    [  207.918790] EXT4-fs (dm-5): resizing filesystem from 4294967296 to 4831837696 blocks
    [  221.454050] EXT4-fs (dm-5): resized to 4658298880 blocks
    [  227.634613] EXT4-fs (dm-5): resized filesystem to 4831837696
    
    Signed-off-by: Jerry Lee <jerrylee@qnap.com>
    Link: https://lore.kernel.org/r/PU1PR04MB22635E739BD21150DC182AC6A18C9@PU1PR04MB2263.apcprd04.prod.outlook.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 63a35f421ea7a7d71f008bbb2b93bdc3c1e1530f
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Tue Oct 4 21:47:50 2022 -0400

    net/ieee802154: don't warn zero-sized raw_sendmsg()
    
    [ Upstream commit b12e924a2f5b960373459c8f8a514f887adf5cac ]
    
    syzbot is hitting skb_assert_len() warning at __dev_queue_xmit() [1],
    for PF_IEEE802154 socket's zero-sized raw_sendmsg() request is hitting
    __dev_queue_xmit() with skb->len == 0.
    
    Since PF_IEEE802154 socket's zero-sized raw_sendmsg() request was
    able to return 0, don't call __dev_queue_xmit() if packet length is 0.
    
      ----------
      #include <sys/socket.h>
      #include <netinet/in.h>
    
      int main(int argc, char *argv[])
      {
        struct sockaddr_in addr = { .sin_family = AF_INET, .sin_addr.s_addr = htonl(INADDR_LOOPBACK) };
        struct iovec iov = { };
        struct msghdr hdr = { .msg_name = &addr, .msg_namelen = sizeof(addr), .msg_iov = &iov, .msg_iovlen = 1 };
        sendmsg(socket(PF_IEEE802154, SOCK_RAW, 0), &hdr, 0);
        return 0;
      }
      ----------
    
    Note that this might be a sign that commit fd1894224407c484 ("bpf: Don't
    redirect packets with invalid pkt_len") should be reverted, for
    skb->len == 0 was acceptable for at least PF_IEEE802154 socket.
    
    Link: https://syzkaller.appspot.com/bug?extid=5ea725c25d06fb9114c4 [1]
    Reported-by: syzbot <syzbot+5ea725c25d06fb9114c4@syzkaller.appspotmail.com>
    Fixes: fd1894224407c484 ("bpf: Don't redirect packets with invalid pkt_len")
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20221005014750.3685555-2-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5768544cf18b41143d782300f35141ede04c0bcd
Author: Alexander Aring <aahringo@redhat.com>
Date:   Wed Oct 5 22:02:37 2022 -0400

    net: ieee802154: return -EINVAL for unknown addr type
    
    commit 30393181fdbc1608cc683b4ee99dcce05ffcc8c7 upstream.
    
    This patch adds handling to return -EINVAL for an unknown addr type. The
    current behaviour is to return 0 as successful but the size of an
    unknown addr type is not defined and should return an error like -EINVAL.
    
    Fixes: 94160108a70c ("net/ieee802154: fix uninit value bug in dgram_sendmsg")
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4120b374391bcd1c6193261e7131fbacab04d34f
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Wed Oct 12 11:22:58 2022 +0300

    perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc
    
    commit 5a3d47071f0ced0431ef82a5fb6bd077ed9493db upstream.
    
    uClibc segfaulted because NULL was passed as the format to fprintf().
    
    That happened because one of the format strings was missing and
    intel_pt_print_info() didn't check that before calling fprintf().
    
    Add the missing format string, and check format is not NULL before calling
    fprintf().
    
    Fixes: 11fa7cb86b56d361 ("perf tools: Pass Intel PT information for decoding MTC and CYC")
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20221012082259.22394-2-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 049875181d7ed58eff2866f9be2f560b79c2cb69
Author: Maxime Ripard <maxime@cerno.tech>
Date:   Mon Sep 26 10:45:09 2022 +0200

    clk: bcm2835: Make peripheral PLLC critical
    
    [ Upstream commit 6c5422851d8be8c7451e968fd2e6da41b6109e17 ]
    
    When testing for a series affecting the VEC, it was discovered that
    turning off and on the VEC clock is crashing the system.
    
    It turns out that, when disabling the VEC clock, it's the only child of
    the PLLC-per clock which will also get disabled. The source of the crash
    is PLLC-per being disabled.
    
    It's likely that some other device might not take a clock reference that
    it actually needs, but it's unclear which at this point. Let's make
    PLLC-per critical so that we don't have that crash.
    
    Reported-by: Noralf Trønnes <noralf@tronnes.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20220926084509.12233-1-maxime@cerno.tech
    Reviewed-by: Stefan Wahren <stefan.wahren@i2se.com>
    Acked-by: Noralf Trønnes <noralf@tronnes.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f589b667567fde4f81d6e6c40f42b9f2224690ea
Author: Dongliang Mu <mudongliangabcd@gmail.com>
Date:   Thu Sep 22 21:48:44 2022 +0800

    usb: idmouse: fix an uninit-value in idmouse_open
    
    [ Upstream commit bce2b0539933e485d22d6f6f076c0fcd6f185c4c ]
    
    In idmouse_create_image, if any ftip_command fails, it will
    go to the reset label. However, this leads to the data in
    bulk_in_buffer[HEADER..IMGSIZE] uninitialized. And the check
    for valid image incurs an uninitialized dereference.
    
    Fix this by moving the check before reset label since this
    check only be valid if the data after bulk_in_buffer[HEADER]
    has concrete data.
    
    Note that this is found by KMSAN, so only kernel compilation
    is tested.
    
    Reported-by: syzbot+79832d33eb89fb3cd092@syzkaller.appspotmail.com
    Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
    Link: https://lore.kernel.org/r/20220922134847.1101921-1-dzm91@hust.edu.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 366a2b3110c69f919fb3277acc1a0bb8cd8a8dbd
Author: Keith Busch <kbusch@kernel.org>
Date:   Mon Sep 19 12:45:08 2022 -0700

    nvme: copy firmware_rev on each init
    
    [ Upstream commit a8eb6c1ba48bddea82e8d74cbe6e119f006be97d ]
    
    The firmware revision can change on after a reset so copy the most
    recent info each time instead of just the first time, otherwise the
    sysfs firmware_rev entry may contain stale data.
    
    Reported-by: Jeff Lien <jeff.lien@wdc.com>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
    Reviewed-by: Chao Leng <lengchao@huawei.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7738f961b0062c00277913df02e3ac366a05a823
Author: sunghwan jung <onenowy@gmail.com>
Date:   Tue Sep 13 20:49:13 2022 +0900

    Revert "usb: storage: Add quirk for Samsung Fit flash"
    
    [ Upstream commit ad5dbfc123e6ffbbde194e2a4603323e09f741ee ]
    
    This reverts commit 86d92f5465958752481269348d474414dccb1552,
    which fix the timeout issue for "Samsung Fit Flash".
    
    But the commit affects not only "Samsung Fit Flash" but also other usb
    storages that use the same controller and causes severe performance
    regression.
    
     # hdparm -t /dev/sda (without the quirk)
     Timing buffered disk reads: 622 MB in  3.01 seconds = 206.66 MB/sec
    
     # hdparm -t /dev/sda (with the quirk)
     Timing buffered disk reads: 220 MB in  3.00 seconds =  73.32 MB/sec
    
    The commit author mentioned that "Issue was reproduced after device has
    bad block", so this quirk should be applied when we have the timeout
    issue with a device that has bad blocks.
    
    We revert the commit so that we apply this quirk by adding kernel
    paramters using a bootloader or other ways when we really need it,
    without the performance regression with devices that don't have the
    issue.
    
    Signed-off-by: sunghwan jung <onenowy@gmail.com>
    Link: https://lore.kernel.org/r/20220913114913.3073-1-onenowy@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c80f3a918ba9aa26fb699ee887064ec3af0396a
Author: Robin Guo <guoweibin@inspur.com>
Date:   Tue Sep 6 10:21:19 2022 +0800

    usb: musb: Fix musb_gadget.c rxstate overflow bug
    
    [ Upstream commit eea4c860c3b366369eff0489d94ee4f0571d467d ]
    
    The usb function device call musb_gadget_queue() adds the passed
    request to musb_ep::req_list,If the (request->length > musb_ep->packet_sz)
    and (is_buffer_mapped(req) return false),the rxstate() will copy all data
    in fifo to request->buf which may cause request->buf out of bounds.
    
    Fix it by add the length check :
    fifocnt = min_t(unsigned, request->length - request->actual, fifocnt);
    
    Signed-off-by: Robin Guo <guoweibin@inspur.com>
    Link: https://lore.kernel.org/r/20220906102119.1b071d07a8391ff115e6d1ef@inspur.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ddab9fe76296840aad686c66888a9c1dfdbff5ff
Author: Jianglei Nie <niejianglei2021@163.com>
Date:   Wed Sep 21 15:34:45 2022 +0300

    usb: host: xhci: Fix potential memory leak in xhci_alloc_stream_info()
    
    [ Upstream commit 7e271f42a5cc3768cd2622b929ba66859ae21f97 ]
    
    xhci_alloc_stream_info() allocates stream context array for stream_info
    ->stream_ctx_array with xhci_alloc_stream_ctx(). When some error occurs,
    stream_info->stream_ctx_array is not released, which will lead to a
    memory leak.
    
    We can fix it by releasing the stream_info->stream_ctx_array with
    xhci_free_stream_ctx() on the error path to avoid the potential memory
    leak.
    
    Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20220921123450.671459-2-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f3d55bd5b7b928ad82f8075d89c908702f3593ab
Author: Logan Gunthorpe <logang@deltatee.com>
Date:   Wed Sep 21 10:28:37 2022 -0600

    md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d
    
    [ Upstream commit 5e2cf333b7bd5d3e62595a44d598a254c697cd74 ]
    
    A complicated deadlock exists when using the journal and an elevated
    group_thrtead_cnt. It was found with loop devices, but its not clear
    whether it can be seen with real disks. The deadlock can occur simply
    by writing data with an fio script.
    
    When the deadlock occurs, multiple threads will hang in different ways:
    
     1) The group threads will hang in the blk-wbt code with bios waiting to
        be submitted to the block layer:
    
            io_schedule+0x70/0xb0
            rq_qos_wait+0x153/0x210
            wbt_wait+0x115/0x1b0
            io_schedule+0x70/0xb0
            rq_qos_wait+0x153/0x210
            wbt_wait+0x115/0x1b0
            __rq_qos_throttle+0x38/0x60
            blk_mq_submit_bio+0x589/0xcd0
            wbt_wait+0x115/0x1b0
            __rq_qos_throttle+0x38/0x60
            blk_mq_submit_bio+0x589/0xcd0
            __submit_bio+0xe6/0x100
            submit_bio_noacct_nocheck+0x42e/0x470
            submit_bio_noacct+0x4c2/0xbb0
            ops_run_io+0x46b/0x1a30
            handle_stripe+0xcd3/0x36b0
            handle_active_stripes.constprop.0+0x6f6/0xa60
            raid5_do_work+0x177/0x330
    
        Or:
            io_schedule+0x70/0xb0
            rq_qos_wait+0x153/0x210
            wbt_wait+0x115/0x1b0
            __rq_qos_throttle+0x38/0x60
            blk_mq_submit_bio+0x589/0xcd0
            __submit_bio+0xe6/0x100
            submit_bio_noacct_nocheck+0x42e/0x470
            submit_bio_noacct+0x4c2/0xbb0
            flush_deferred_bios+0x136/0x170
            raid5_do_work+0x262/0x330
    
     2) The r5l_reclaim thread will hang in the same way, submitting a
        bio to the block layer:
    
            io_schedule+0x70/0xb0
            rq_qos_wait+0x153/0x210
            wbt_wait+0x115/0x1b0
            __rq_qos_throttle+0x38/0x60
            blk_mq_submit_bio+0x589/0xcd0
            __submit_bio+0xe6/0x100
            submit_bio_noacct_nocheck+0x42e/0x470
            submit_bio_noacct+0x4c2/0xbb0
            submit_bio+0x3f/0xf0
            md_super_write+0x12f/0x1b0
            md_update_sb.part.0+0x7c6/0xff0
            md_update_sb+0x30/0x60
            r5l_do_reclaim+0x4f9/0x5e0
            r5l_reclaim_thread+0x69/0x30b
    
        However, before hanging, the MD_SB_CHANGE_PENDING flag will be
        set for sb_flags in r5l_write_super_and_discard_space(). This
        flag will never be cleared because the submit_bio() call never
        returns.
    
     3) Due to the MD_SB_CHANGE_PENDING flag being set, handle_stripe()
        will do no processing on any pending stripes and re-set
        STRIPE_HANDLE. This will cause the raid5d thread to enter an
        infinite loop, constantly trying to handle the same stripes
        stuck in the queue.
    
        The raid5d thread has a blk_plug that holds a number of bios
        that are also stuck waiting seeing the thread is in a loop
        that never schedules. These bios have been accounted for by
        blk-wbt thus preventing the other threads above from
        continuing when they try to submit bios. --Deadlock.
    
    To fix this, add the same wait_event() that is used in raid5_do_work()
    to raid5d() such that if MD_SB_CHANGE_PENDING is set, the thread will
    schedule and wait until the flag is cleared. The schedule action will
    flush the plug which will allow the r5l_reclaim thread to continue,
    thus preventing the deadlock.
    
    However, md_check_recovery() calls can also clear MD_SB_CHANGE_PENDING
    from the same thread and can thus deadlock if the thread is put to
    sleep. So avoid waiting if md_check_recovery() is being called in the
    loop.
    
    It's not clear when the deadlock was introduced, but the similar
    wait_event() call in raid5_do_work() was added in 2017 by this
    commit:
    
        16d997b78b15 ("md/raid5: simplfy delaying of writes while metadata
                       is updated.")
    
    Link: https://lore.kernel.org/r/7f3b87b6-b52a-f737-51d7-a4eec5c44112@deltatee.com
    Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13de81c7ea0fd68efb48a2d2957e349237905923
Author: Hyunwoo Kim <imv4bel@gmail.com>
Date:   Sun Sep 4 12:31:15 2022 -0700

    HID: roccat: Fix use-after-free in roccat_read()
    
    [ Upstream commit cacdb14b1c8d3804a3a7d31773bc7569837b71a4 ]
    
    roccat_report_event() is responsible for registering
    roccat-related reports in struct roccat_device.
    
    int roccat_report_event(int minor, u8 const *data)
    {
            struct roccat_device *device;
            struct roccat_reader *reader;
            struct roccat_report *report;
            uint8_t *new_value;
    
            device = devices[minor];
    
            new_value = kmemdup(data, device->report_size, GFP_ATOMIC);
            if (!new_value)
                    return -ENOMEM;
    
            report = &device->cbuf[device->cbuf_end];
    
            /* passing NULL is safe */
            kfree(report->value);
            ...
    
    The registered report is stored in the struct roccat_device member
    "struct roccat_report cbuf[ROCCAT_CBUF_SIZE];".
    If more reports are received than the "ROCCAT_CBUF_SIZE" value,
    kfree() the saved report from cbuf[0] and allocates a new reprot.
    Since there is no lock when this kfree() is performed,
    kfree() can be performed even while reading the saved report.
    
    static ssize_t roccat_read(struct file *file, char __user *buffer,
                    size_t count, loff_t *ppos)
    {
            struct roccat_reader *reader = file->private_data;
            struct roccat_device *device = reader->device;
            struct roccat_report *report;
            ssize_t retval = 0, len;
            DECLARE_WAITQUEUE(wait, current);
    
            mutex_lock(&device->cbuf_lock);
    
            ...
    
            report = &device->cbuf[reader->cbuf_start];
            /*
             * If report is larger than requested amount of data, rest of report
             * is lost!
             */
            len = device->report_size > count ? count : device->report_size;
    
            if (copy_to_user(buffer, report->value, len)) {
                    retval = -EFAULT;
                    goto exit_unlock;
            }
            ...
    
    The roccat_read() function receives the device->cbuf report and
    delivers it to the user through copy_to_user().
    If the N+ROCCAT_CBUF_SIZE th report is received while copying of
    the Nth report->value is in progress, the pointer that copy_to_user()
    is working on is kfree()ed and UAF read may occur. (race condition)
    
    Since the device node of this driver does not set separate permissions,
    this is not a security vulnerability, but because it is used for
    requesting screen display of profile or dpi settings,
    a user using the roccat device can apply udev to this device node or
    There is a possibility to use it by giving.
    
    Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e93beeeda78a880faf29c63c5dcc615356911b3
Author: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Date:   Fri Sep 9 22:36:06 2022 +0300

    ata: libahci_platform: Sanity check the DT child nodes number
    
    [ Upstream commit 3c132ea6508b34956e5ed88d04936983ec230601 ]
    
    Having greater than AHCI_MAX_PORTS (32) ports detected isn't that critical
    from the further AHCI-platform initialization point of view since
    exceeding the ports upper limit will cause allocating more resources than
    will be used afterwards. But detecting too many child DT-nodes doesn't
    seem right since it's very unlikely to have it on an ordinary platform. In
    accordance with the AHCI specification there can't be more than 32 ports
    implemented at least due to having the CAP.NP field of 5 bits wide and the
    PI register of dword size. Thus if such situation is found the DTB must
    have been corrupted and the data read from it shouldn't be reliable. Let's
    consider that as an erroneous situation and halt further resources
    allocation.
    
    Note it's logically more correct to have the nports set only after the
    initialization value is checked for being sane. So while at it let's make
    sure nports is assigned with a correct value.
    
    Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e741e38aa98704fbb959650ecd270b71b2670680
Author: Nam Cao <namcaov@gmail.com>
Date:   Fri Sep 9 16:13:39 2022 +0200

    staging: vt6655: fix potential memory leak
    
    [ Upstream commit c8ff91535880d41b49699b3829fb6151942de29e ]
    
    In function device_init_td0_ring, memory is allocated for member
    td_info of priv->apTD0Rings[i], with i increasing from 0. In case of
    allocation failure, the memory is freed in reversed order, with i
    decreasing to 0. However, the case i=0 is left out and thus memory is
    leaked.
    
    Modify the memory freeing loop to include the case i=0.
    
    Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com>
    Signed-off-by: Nam Cao <namcaov@gmail.com>
    Link: https://lore.kernel.org/r/20220909141338.19343-1-namcaov@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 24a0be36e9a21f63de2e6088607e689e59ec15f4
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Sat Aug 27 07:32:23 2022 +0000

    power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type()
    
    [ Upstream commit 9d47e01b9d807808224347935562f7043a358054 ]
    
    ADP5061_CHG_STATUS_1_CHG_STATUS is masked with 0x07, which means a length
    of 8, but adp5061_chg_type array size is 4, may end up reading 4 elements
    beyond the end of the adp5061_chg_type[] array.
    
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Acked-by: Michael Hennerich <michael.hennerich@analog.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c7b4641bd2395c2f3cd3b0a0cbf292ed9d489398
Author: Shigeru Yoshida <syoshida@redhat.com>
Date:   Thu Sep 8 01:35:02 2022 +0900

    nbd: Fix hung when signal interrupts nbd_start_device_ioctl()
    
    [ Upstream commit 1de7c3cf48fc41cd95adb12bd1ea9033a917798a ]
    
    syzbot reported hung task [1].  The following program is a simplified
    version of the reproducer:
    
    int main(void)
    {
            int sv[2], fd;
    
            if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv) < 0)
                    return 1;
            if ((fd = open("/dev/nbd0", 0)) < 0)
                    return 1;
            if (ioctl(fd, NBD_SET_SIZE_BLOCKS, 0x81) < 0)
                    return 1;
            if (ioctl(fd, NBD_SET_SOCK, sv[0]) < 0)
                    return 1;
            if (ioctl(fd, NBD_DO_IT) < 0)
                    return 1;
            return 0;
    }
    
    When signal interrupt nbd_start_device_ioctl() waiting the condition
    atomic_read(&config->recv_threads) == 0, the task can hung because it
    waits the completion of the inflight IOs.
    
    This patch fixes the issue by clearing queue, not just shutdown, when
    signal interrupt nbd_start_device_ioctl().
    
    Link: https://syzkaller.appspot.com/bug?id=7d89a3ffacd2b83fdd39549bc4d8e0a89ef21239 [1]
    Reported-by: syzbot+38e6c55d4969a14c1534@syzkaller.appspotmail.com
    Signed-off-by: Shigeru Yoshida <syoshida@redhat.com>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Link: https://lore.kernel.org/r/20220907163502.577561-1-syoshida@redhat.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 37b679f8b5387a7d7bfbf30bec21c0f38da3abcc
Author: Letu Ren <fantasquex@gmail.com>
Date:   Mon Aug 29 19:01:15 2022 +0800

    scsi: 3w-9xxx: Avoid disabling device if failing to enable it
    
    [ Upstream commit 7eff437b5ee1309b34667844361c6bbb5c97df05 ]
    
    The original code will "goto out_disable_device" and call
    pci_disable_device() if pci_enable_device() fails. The kernel will generate
    a warning message like "3w-9xxx 0000:00:05.0: disabling already-disabled
    device".
    
    We shouldn't disable a device that failed to be enabled. A simple return is
    fine.
    
    Link: https://lore.kernel.org/r/20220829110115.38789-1-fantasquex@gmail.com
    Reported-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Letu Ren <fantasquex@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4befc7ffa18ef9a4b70d854465313a345a06862f
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Thu Jul 28 04:23:38 2022 +0200

    media: cx88: Fix a null-ptr-deref bug in buffer_prepare()
    
    [ Upstream commit 2b064d91440b33fba5b452f2d1b31f13ae911d71 ]
    
    When the driver calls cx88_risc_buffer() to prepare the buffer, the
    function call may fail, resulting in a empty buffer and null-ptr-deref
    later in buffer_queue().
    
    The following log can reveal it:
    
    [   41.822762] general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN PTI
    [   41.824488] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
    [   41.828027] RIP: 0010:buffer_queue+0xc2/0x500
    [   41.836311] Call Trace:
    [   41.836945]  __enqueue_in_driver+0x141/0x360
    [   41.837262]  vb2_start_streaming+0x62/0x4a0
    [   41.838216]  vb2_core_streamon+0x1da/0x2c0
    [   41.838516]  __vb2_init_fileio+0x981/0xbc0
    [   41.839141]  __vb2_perform_fileio+0xbf9/0x1120
    [   41.840072]  vb2_fop_read+0x20e/0x400
    [   41.840346]  v4l2_read+0x215/0x290
    [   41.840603]  vfs_read+0x162/0x4c0
    
    Fix this by checking the return value of cx88_risc_buffer()
    
    [hverkuil: fix coding style issues]
    
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ea4eef30aea564c24f5433814354892ba8ddaae0
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Fri Aug 26 07:53:36 2022 +0200

    ARM: dts: imx6sx: add missing properties for sram
    
    [ Upstream commit 415432c008b2bce8138841356ba444631cabaa50 ]
    
    All 3 properties are required by sram.yaml. Fixes the dtbs_check warning:
    sram@900000: '#address-cells' is a required property
    sram@900000: '#size-cells' is a required property
    sram@900000: 'ranges' is a required property
    
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eb0c9169358b554e68b6e6b78efedd4434913880
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Fri Aug 26 07:53:35 2022 +0200

    ARM: dts: imx6sll: add missing properties for sram
    
    [ Upstream commit 7492a83ed9b7a151e2dd11d64b06da7a7f0fa7f9 ]
    
    All 3 properties are required by sram.yaml. Fixes the dtbs_check warning:
    sram@900000: '#address-cells' is a required property
    sram@900000: '#size-cells' is a required property
    sram@900000: 'ranges' is a required property
    
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23c83ab6bfcd0bc236d2d5efb20e2aa375f3dd63
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Fri Aug 26 07:53:34 2022 +0200

    ARM: dts: imx6sl: add missing properties for sram
    
    [ Upstream commit 60c9213a1d9941a8b33db570796c3f9be8984974 ]
    
    All 3 properties are required by sram.yaml. Fixes the dtbs_check warning:
    sram@900000: '#address-cells' is a required property
    sram@900000: '#size-cells' is a required property
    sram@900000: 'ranges' is a required property
    
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit db3d4e4d11fce630a582087dc4f276f8095f852a
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Fri Aug 26 07:53:33 2022 +0200

    ARM: dts: imx6qp: add missing properties for sram
    
    [ Upstream commit 088fe5237435ee2f7ed4450519b2ef58b94c832f ]
    
    All 3 properties are required by sram.yaml. Fixes the dtbs_check warning:
    sram@940000: '#address-cells' is a required property
    sram@940000: '#size-cells' is a required property
    sram@940000: 'ranges' is a required property
    
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 33f929077b879ad5b408fb56c2375a06616c965d
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Fri Aug 26 07:53:32 2022 +0200

    ARM: dts: imx6dl: add missing properties for sram
    
    [ Upstream commit f5848b95633d598bacf0500e0108dc5961af88c0 ]
    
    All 3 properties are required by sram.yaml. Fixes the dtbs_check warning:
    sram@900000: '#address-cells' is a required property
    sram@900000: '#size-cells' is a required property
    sram@900000: 'ranges' is a required property
    
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c0f86084b16448e6e87467570027765919564a03
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Fri Aug 26 07:53:31 2022 +0200

    ARM: dts: imx6q: add missing properties for sram
    
    [ Upstream commit b11d083c5dcec7c42fe982c854706d404ddd3a5f ]
    
    All 3 properties are required by sram.yaml. Fixes the dtbs_check warning:
    sram@900000: '#address-cells' is a required property
    sram@900000: '#size-cells' is a required property
    sram@900000: 'ranges' is a required property
    
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b2d232c86afc9e234911e016d2d0681ac8adaacb
Author: Haibo Chen <haibo.chen@nxp.com>
Date:   Mon Jul 25 18:16:22 2022 +0800

    ARM: dts: imx7d-sdb: config the max pressure for tsc2046
    
    [ Upstream commit e7c4ebe2f9cd68588eb24ba4ed122e696e2d5272 ]
    
    Use the general touchscreen method to config the max pressure for
    touch tsc2046(data sheet suggest 8 bit pressure), otherwise, for
    ABS_PRESSURE, when config the same max and min value, weston will
    meet the following issue,
    
    [17:19:39.183] event1  - ADS7846 Touchscreen: is tagged by udev as: Touchscreen
    [17:19:39.183] event1  - ADS7846 Touchscreen: kernel bug: device has min == max on ABS_PRESSURE
    [17:19:39.183] event1  - ADS7846 Touchscreen: was rejected
    [17:19:39.183] event1  - not using input device '/dev/input/event1'
    
    This will then cause the APP weston-touch-calibrator can't list touch devices.
    
    root@imx6ul7d:~# weston-touch-calibrator
    could not load cursor 'dnd-move'
    could not load cursor 'dnd-copy'
    could not load cursor 'dnd-none'
    No devices listed.
    
    And accroding to binding Doc, "ti,x-max", "ti,y-max", "ti,pressure-max"
    belong to the deprecated properties, so remove them. Also for "ti,x-min",
    "ti,y-min", "ti,x-plate-ohms", the value set in dts equal to the default
    value in driver, so are redundant, also remove here.
    
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 272660769e1b81ef388c0819ab8e2c7cd94fefbe
Author: hongao <hongao@uniontech.com>
Date:   Tue Sep 20 17:24:53 2022 +0800

    drm/amdgpu: fix initial connector audio value
    
    [ Upstream commit 4bb71fce58f30df3f251118291d6b0187ce531e6 ]
    
    This got lost somewhere along the way, This fixes
    audio not working until set_property was called.
    
    Signed-off-by: hongao <hongao@uniontech.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ae12f1688e1d201c84709675df889445adc3e468
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Sep 17 23:04:07 2022 +0200

    platform/x86: msi-laptop: Change DMI match / alias strings to fix module autoloading
    
    [ Upstream commit 2a2565272a3628e45d61625e36ef17af7af4e3de ]
    
    On a MSI S270 with Fedora 37 x86_64 / systemd-251.4 the module does not
    properly autoload.
    
    This is likely caused by issues with how systemd-udevd handles the single
    quote char (') which is part of the sys_vendor / chassis_vendor strings
    on this laptop. As a workaround remove the single quote char + everything
    behind it from the sys_vendor + chassis_vendor matches. This fixes
    the module not autoloading.
    
    Link: https://github.com/systemd/systemd/issues/24715
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220917210407.647432-1-hdegoede@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 874fb6d0e361fc56cc50abd786859133055a46d5
Author: Maya Matuszczyk <maccraft123mc@gmail.com>
Date:   Wed Aug 3 20:24:03 2022 +0200

    drm: panel-orientation-quirks: Add quirk for Anbernic Win600
    
    [ Upstream commit 770e19076065e079a32f33eb11be2057c87f1cde ]
    
    This device is another x86 gaming handheld, and as (hopefully) there is
    only one set of DMI IDs it's using DMI_EXACT_MATCH
    
    Signed-off-by: Maya Matuszczyk <maccraft123mc@gmail.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220803182402.1217293-1-maccraft123mc@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 050e4ad28ca8cc637d277e759cdbe933f5a76c38
Author: Mateusz Kwiatkowski <kfyatek+publicgit@gmail.com>
Date:   Mon Aug 29 15:11:42 2022 +0200

    drm/vc4: vec: Fix timings for VEC modes
    
    [ Upstream commit 30d7565be96b3946c18a1ce3fd538f7946839092 ]
    
    This commit fixes vertical timings of the VEC (composite output) modes
    to accurately represent the 525-line ("NTSC") and 625-line ("PAL") ITU-R
    standards.
    
    Previous timings were actually defined as 502 and 601 lines, resulting
    in non-standard 62.69 Hz and 52 Hz signals being generated,
    respectively.
    
    Signed-off-by: Mateusz Kwiatkowski <kfyatek+publicgit@gmail.com>
    Acked-by: Noralf Trønnes <noralf@tronnes.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220728-rpi-analog-tv-properties-v2-28-459522d653a7@cerno.tech
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e1876bb780059c2cfce5556419aa418fe76e2b3
Author: David Gow <davidgow@google.com>
Date:   Thu Aug 11 17:43:26 2022 -0300

    drm/amd/display: fix overflow on MIN_I64 definition
    
    [ Upstream commit 6ae0632d17759852c07e2d1e0a31c728eb6ba246 ]
    
    The definition of MIN_I64 in bw_fixed.c can cause gcc to whinge about
    integer overflow, because it is treated as a positive value, which is
    then negated. The temporary positive value is not necessarily
    representable.
    
    This causes the following warning:
    ../drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/bw_fixed.c:30:19:
    warning: integer overflow in expression ‘-9223372036854775808’ of type
    ‘long long int’ results in ‘-9223372036854775808’ [-Woverflow]
      30 |         (int64_t)(-(1LL << 63))
         |                   ^
    
    Writing out (-MAX_I64 - 1) works instead.
    
    Signed-off-by: David Gow <davidgow@google.com>
    Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8052612b9d08048ebbebcb572894670b4ac07d2f
Author: Javier Martinez Canillas <javierm@redhat.com>
Date:   Tue Jul 5 12:02:14 2022 +0200

    drm: Prevent drm_copy_field() to attempt copying a NULL pointer
    
    [ Upstream commit f6ee30407e883042482ad4ad30da5eaba47872ee ]
    
    There are some struct drm_driver fields that are required by drivers since
    drm_copy_field() attempts to copy them to user-space via DRM_IOCTL_VERSION.
    
    But it can be possible that a driver has a bug and did not set some of the
    fields, which leads to drm_copy_field() attempting to copy a NULL pointer:
    
    [ +10.395966] Unable to handle kernel access to user memory outside uaccess routines at virtual address 0000000000000000
    [  +0.010955] Mem abort info:
    [  +0.002835]   ESR = 0x0000000096000004
    [  +0.003872]   EC = 0x25: DABT (current EL), IL = 32 bits
    [  +0.005395]   SET = 0, FnV = 0
    [  +0.003113]   EA = 0, S1PTW = 0
    [  +0.003182]   FSC = 0x04: level 0 translation fault
    [  +0.004964] Data abort info:
    [  +0.002919]   ISV = 0, ISS = 0x00000004
    [  +0.003886]   CM = 0, WnR = 0
    [  +0.003040] user pgtable: 4k pages, 48-bit VAs, pgdp=0000000115dad000
    [  +0.006536] [0000000000000000] pgd=0000000000000000, p4d=0000000000000000
    [  +0.006925] Internal error: Oops: 96000004 [#1] SMP
    ...
    [  +0.011113] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [  +0.007061] pc : __pi_strlen+0x14/0x150
    [  +0.003895] lr : drm_copy_field+0x30/0x1a4
    [  +0.004156] sp : ffff8000094b3a50
    [  +0.003355] x29: ffff8000094b3a50 x28: ffff8000094b3b70 x27: 0000000000000040
    [  +0.007242] x26: ffff443743c2ba00 x25: 0000000000000000 x24: 0000000000000040
    [  +0.007243] x23: ffff443743c2ba00 x22: ffff8000094b3b70 x21: 0000000000000000
    [  +0.007241] x20: 0000000000000000 x19: ffff8000094b3b90 x18: 0000000000000000
    [  +0.007241] x17: 0000000000000000 x16: 0000000000000000 x15: 0000aaab14b9af40
    [  +0.007241] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
    [  +0.007239] x11: 0000000000000000 x10: 0000000000000000 x9 : ffffa524ad67d4d8
    [  +0.007242] x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 : 6c6e6263606e7141
    [  +0.007239] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000
    [  +0.007241] x2 : 0000000000000000 x1 : ffff8000094b3b90 x0 : 0000000000000000
    [  +0.007240] Call trace:
    [  +0.002475]  __pi_strlen+0x14/0x150
    [  +0.003537]  drm_version+0x84/0xac
    [  +0.003448]  drm_ioctl_kernel+0xa8/0x16c
    [  +0.003975]  drm_ioctl+0x270/0x580
    [  +0.003448]  __arm64_sys_ioctl+0xb8/0xfc
    [  +0.003978]  invoke_syscall+0x78/0x100
    [  +0.003799]  el0_svc_common.constprop.0+0x4c/0xf4
    [  +0.004767]  do_el0_svc+0x38/0x4c
    [  +0.003357]  el0_svc+0x34/0x100
    [  +0.003185]  el0t_64_sync_handler+0x11c/0x150
    [  +0.004418]  el0t_64_sync+0x190/0x194
    [  +0.003716] Code: 92402c04 b200c3e8 f13fc09f 5400088c (a9400c02)
    [  +0.006180] ---[ end trace 0000000000000000 ]---
    
    Reported-by: Peter Robinson <pbrobinson@gmail.com>
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220705100215.572498-3-javierm@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54e5fbda9bac666fcb746f186481cc15a8bbb91d
Author: Javier Martinez Canillas <javierm@redhat.com>
Date:   Tue Jul 5 12:02:13 2022 +0200

    drm: Use size_t type for len variable in drm_copy_field()
    
    [ Upstream commit 94dc3471d1b2b58b3728558d0e3f264e9ce6ff59 ]
    
    The strlen() function returns a size_t which is an unsigned int on 32-bit
    arches and an unsigned long on 64-bit arches. But in the drm_copy_field()
    function, the strlen() return value is assigned to an 'int len' variable.
    
    Later, the len variable is passed as copy_from_user() third argument that
    is an unsigned long parameter as well.
    
    In theory, this can lead to an integer overflow via type conversion. Since
    the assignment happens to a signed int lvalue instead of a size_t lvalue.
    
    In practice though, that's unlikely since the values copied are set by DRM
    drivers and not controlled by userspace. But using a size_t for len is the
    correct thing to do anyways.
    
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Tested-by: Peter Robinson <pbrobinson@gmail.com>
    Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220705100215.572498-2-javierm@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88d2a93972c369eb812952aa15a25c1385506c1d
Author: Andrew Gaul <gaul@gaul.org>
Date:   Sun Oct 2 12:41:28 2022 +0900

    r8152: Rate limit overflow messages
    
    [ Upstream commit 93e2be344a7db169b7119de21ac1bf253b8c6907 ]
    
    My system shows almost 10 million of these messages over a 24-hour
    period which pollutes my logs.
    
    Signed-off-by: Andrew Gaul <gaul@google.com>
    Link: https://lore.kernel.org/r/20221002034128.2026653-1-gaul@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d91fc2836562f299f34e361e089e9fe154da4f73
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Thu Sep 29 13:27:13 2022 -0700

    Bluetooth: L2CAP: Fix user-after-free
    
    [ Upstream commit 35fcbc4243aad7e7d020b7c1dfb14bb888b20a4f ]
    
    This uses l2cap_chan_hold_unless_zero() after calling
    __l2cap_get_chan_blah() to prevent the following trace:
    
    Bluetooth: l2cap_core.c:static void l2cap_chan_destroy(struct kref
    *kref)
    Bluetooth: chan 0000000023c4974d
    Bluetooth: parent 00000000ae861c08
    ==================================================================
    BUG: KASAN: use-after-free in __mutex_waiter_is_first
    kernel/locking/mutex.c:191 [inline]
    BUG: KASAN: use-after-free in __mutex_lock_common
    kernel/locking/mutex.c:671 [inline]
    BUG: KASAN: use-after-free in __mutex_lock+0x278/0x400
    kernel/locking/mutex.c:729
    Read of size 8 at addr ffff888006a49b08 by task kworker/u3:2/389
    
    Link: https://lore.kernel.org/lkml/20220622082716.478486-1-lee.jones@linaro.org
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sungwoo Kim <iam@sung-woo.kim>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5fe03917bb017d9af68a95f989f1c122eebc69a6
Author: Liu Jian <liujian56@huawei.com>
Date:   Tue Aug 23 21:37:54 2022 +0800

    net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory
    
    [ Upstream commit 3f8ef65af927db247418d4e1db49164d7a158fc5 ]
    
    Fixes the below NULL pointer dereference:
    
      [...]
      [   14.471200] Call Trace:
      [   14.471562]  <TASK>
      [   14.471882]  lock_acquire+0x245/0x2e0
      [   14.472416]  ? remove_wait_queue+0x12/0x50
      [   14.473014]  ? _raw_spin_lock_irqsave+0x17/0x50
      [   14.473681]  _raw_spin_lock_irqsave+0x3d/0x50
      [   14.474318]  ? remove_wait_queue+0x12/0x50
      [   14.474907]  remove_wait_queue+0x12/0x50
      [   14.475480]  sk_stream_wait_memory+0x20d/0x340
      [   14.476127]  ? do_wait_intr_irq+0x80/0x80
      [   14.476704]  do_tcp_sendpages+0x287/0x600
      [   14.477283]  tcp_bpf_push+0xab/0x260
      [   14.477817]  tcp_bpf_sendmsg_redir+0x297/0x500
      [   14.478461]  ? __local_bh_enable_ip+0x77/0xe0
      [   14.479096]  tcp_bpf_send_verdict+0x105/0x470
      [   14.479729]  tcp_bpf_sendmsg+0x318/0x4f0
      [   14.480311]  sock_sendmsg+0x2d/0x40
      [   14.480822]  ____sys_sendmsg+0x1b4/0x1c0
      [   14.481390]  ? copy_msghdr_from_user+0x62/0x80
      [   14.482048]  ___sys_sendmsg+0x78/0xb0
      [   14.482580]  ? vmf_insert_pfn_prot+0x91/0x150
      [   14.483215]  ? __do_fault+0x2a/0x1a0
      [   14.483738]  ? do_fault+0x15e/0x5d0
      [   14.484246]  ? __handle_mm_fault+0x56b/0x1040
      [   14.484874]  ? lock_is_held_type+0xdf/0x130
      [   14.485474]  ? find_held_lock+0x2d/0x90
      [   14.486046]  ? __sys_sendmsg+0x41/0x70
      [   14.486587]  __sys_sendmsg+0x41/0x70
      [   14.487105]  ? intel_pmu_drain_pebs_core+0x350/0x350
      [   14.487822]  do_syscall_64+0x34/0x80
      [   14.488345]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
      [...]
    
    The test scenario has the following flow:
    
    thread1                               thread2
    -----------                           ---------------
     tcp_bpf_sendmsg
      tcp_bpf_send_verdict
       tcp_bpf_sendmsg_redir              sock_close
        tcp_bpf_push_locked                 __sock_release
         tcp_bpf_push                         //inet_release
          do_tcp_sendpages                    sock->ops->release
           sk_stream_wait_memory               // tcp_close
              sk_wait_event                      sk->sk_prot->close
               release_sock(__sk);
                ***
                                                    lock_sock(sk);
                                                      __tcp_close
                                                        sock_orphan(sk)
                                                          sk->sk_wq  = NULL
                                                    release_sock
                ****
               lock_sock(__sk);
              remove_wait_queue(sk_sleep(sk), &wait);
                 sk_sleep(sk)
                 //NULL pointer dereference
                 &rcu_dereference_raw(sk->sk_wq)->wait
    
    While waiting for memory in thread1, the socket is released with its wait
    queue because thread2 has closed it. This caused by tcp_bpf_send_verdict
    didn't increase the f_count of psock->sk_redir->sk_socket->file in thread1.
    
    We should check if SOCK_DEAD flag is set on wakeup in sk_stream_wait_memory
    before accessing the wait queue.
    
    Suggested-by: Jakub Sitnicki <jakub@cloudflare.com>
    Signed-off-by: Liu Jian <liujian56@huawei.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/bpf/20220823133755.314697-2-liujian56@huawei.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 384b5a396bb63811f654d28e20dc58729754810f
Author: Daniel Golle <daniel@makrotopia.org>
Date:   Sat Sep 17 21:30:09 2022 +0100

    wifi: rt2x00: correctly set BBP register 86 for MT7620
    
    [ Upstream commit c9aada64fe6493461127f1522d7e2f01792d2424 ]
    
    Instead of 0 set the correct value for BBP register 86 for MT7620.
    
    Reported-by: Serge Vasilugin <vasilugin@yandex.ru>
    Signed-off-by: Daniel Golle <daniel@makrotopia.org>
    Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/257267247ee4fa7ebc6a5d0c4948b3f8119c0d77.1663445157.git.daniel@makrotopia.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ab1829c353647919bfae9a87f9230811ea26ffd
Author: Daniel Golle <daniel@makrotopia.org>
Date:   Sat Sep 17 21:29:55 2022 +0100

    wifi: rt2x00: set SoC wmac clock register
    
    [ Upstream commit cbde6ed406a51092d9e8a2df058f5f8490f27443 ]
    
    Instead of using the default value 33 (pci), set US_CYC_CNT init based
    on Programming guide:
    If available, set chipset bus clock with fallback to cpu clock/3.
    
    Reported-by: Serge Vasilugin <vasilugin@yandex.ru>
    Signed-off-by: Daniel Golle <daniel@makrotopia.org>
    Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/3e275d259f476f597dab91a9c395015ef3fe3284.1663445157.git.daniel@makrotopia.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dda034a77237f3a8c82e131e7822059f3f1dc157
Author: Daniel Golle <daniel@makrotopia.org>
Date:   Sat Sep 17 21:29:26 2022 +0100

    wifi: rt2x00: set correct TX_SW_CFG1 MAC register for MT7620
    
    [ Upstream commit eeb50acf15762b61921f9df18663f839f387c054 ]
    
    Set correct TX_SW_CFG1 MAC register as it is done also in v3 of the
    vendor driver[1].
    
    [1]: https://gitlab.com/dm38/padavan-ng/-/blob/master/trunk/proprietary/rt_wifi/rtpci/3.0.X.X/mt76x2/chips/rt6352.c#L531
    Reported-by: Serge Vasilugin <vasilugin@yandex.ru>
    Signed-off-by: Daniel Golle <daniel@makrotopia.org>
    Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/4be38975ce600a34249e12d09a3cb758c6e71071.1663445157.git.daniel@makrotopia.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5b1cf2977f0d4c45aa6afaa1fadf52ed68720d54
Author: Daniel Golle <daniel@makrotopia.org>
Date:   Sat Sep 17 21:28:29 2022 +0100

    wifi: rt2x00: don't run Rt5592 IQ calibration on MT7620
    
    [ Upstream commit d3aad83d05aec0cfd7670cf0028f2ad4b81de92e ]
    
    The function rt2800_iq_calibrate is intended for Rt5592 only.
    Don't call it for MT7620 which has it's own calibration functions.
    
    Reported-by: Serge Vasilugin <vasilugin@yandex.ru>
    Signed-off-by: Daniel Golle <daniel@makrotopia.org>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/31a1c34ddbd296b82f38c18c9ae7339059215fdc.1663445157.git.daniel@makrotopia.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dae06957f856eb699f2a504a46891718c9b1e0d3
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Thu Sep 15 09:55:56 2022 +0800

    can: bcm: check the result of can_send() in bcm_can_tx()
    
    [ Upstream commit 3fd7bfd28cfd68ae80a2fe92ea1615722cc2ee6e ]
    
    If can_send() fail, it should not update frames_abs counter
    in bcm_can_tx(). Add the result check for can_send() in bcm_can_tx().
    
    Suggested-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Suggested-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Link: https://lore.kernel.org/all/9851878e74d6d37aee2f1ee76d68361a46f89458.1663206163.git.william.xuanziyang@huawei.com
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 671fee73e08ff415d36a7c16bdf238927df83884
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Mon Sep 19 10:56:59 2022 -0700

    Bluetooth: hci_sysfs: Fix attempting to call device_add multiple times
    
    [ Upstream commit 448a496f760664d3e2e79466aa1787e6abc922b5 ]
    
    device_add shall not be called multiple times as stated in its
    documentation:
    
     'Do not call this routine or device_register() more than once for
     any device structure'
    
    Syzkaller reports a bug as follows [1]:
    ------------[ cut here ]------------
    kernel BUG at lib/list_debug.c:33!
    invalid opcode: 0000 [#1] PREEMPT SMP KASAN
    [...]
    Call Trace:
     <TASK>
     __list_add include/linux/list.h:69 [inline]
     list_add_tail include/linux/list.h:102 [inline]
     kobj_kset_join lib/kobject.c:164 [inline]
     kobject_add_internal+0x18f/0x8f0 lib/kobject.c:214
     kobject_add_varg lib/kobject.c:358 [inline]
     kobject_add+0x150/0x1c0 lib/kobject.c:410
     device_add+0x368/0x1e90 drivers/base/core.c:3452
     hci_conn_add_sysfs+0x9b/0x1b0 net/bluetooth/hci_sysfs.c:53
     hci_le_cis_estabilished_evt+0x57c/0xae0 net/bluetooth/hci_event.c:6799
     hci_le_meta_evt+0x2b8/0x510 net/bluetooth/hci_event.c:7110
     hci_event_func net/bluetooth/hci_event.c:7440 [inline]
     hci_event_packet+0x63d/0xfd0 net/bluetooth/hci_event.c:7495
     hci_rx_work+0xae7/0x1230 net/bluetooth/hci_core.c:4007
     process_one_work+0x991/0x1610 kernel/workqueue.c:2289
     worker_thread+0x665/0x1080 kernel/workqueue.c:2436
     kthread+0x2e4/0x3a0 kernel/kthread.c:376
     ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:306
     </TASK>
    
    Link: https://syzkaller.appspot.com/bug?id=da3246e2d33afdb92d66bc166a0934c5b146404a
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Tested-by: Hawkins Jiawei <yin31149@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d407ba4663058949de79f0d5fc90703abeddcd69
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sun Sep 4 00:32:56 2022 +0900

    Bluetooth: L2CAP: initialize delayed works at l2cap_chan_create()
    
    [ Upstream commit 2d2cb3066f2c90cd8ca540b36ba7a55e7f2406e0 ]
    
    syzbot is reporting cancel_delayed_work() without INIT_DELAYED_WORK() at
    l2cap_chan_del() [1], for CONF_NOT_COMPLETE flag (which meant to prevent
    l2cap_chan_del() from calling cancel_delayed_work()) is cleared by timer
    which fires before l2cap_chan_del() is called by closing file descriptor
    created by socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_L2CAP).
    
    l2cap_bredr_sig_cmd(L2CAP_CONF_REQ) and l2cap_bredr_sig_cmd(L2CAP_CONF_RSP)
    are calling l2cap_ertm_init(chan), and they call l2cap_chan_ready() (which
    clears CONF_NOT_COMPLETE flag) only when l2cap_ertm_init(chan) succeeded.
    
    l2cap_sock_init() does not call l2cap_ertm_init(chan), and it instead sets
    CONF_NOT_COMPLETE flag by calling l2cap_chan_set_defaults(). However, when
    connect() is requested, "command 0x0409 tx timeout" happens after 2 seconds
     from connect() request, and CONF_NOT_COMPLETE flag is cleared after 4
    seconds from connect() request, for l2cap_conn_start() from
    l2cap_info_timeout() callback scheduled by
    
      schedule_delayed_work(&conn->info_timer, L2CAP_INFO_TIMEOUT);
    
    in l2cap_connect() is calling l2cap_chan_ready().
    
    Fix this problem by initializing delayed works used by L2CAP_MODE_ERTM
    mode as soon as l2cap_chan_create() allocates a channel, like I did in
    commit be8597239379f0f5 ("Bluetooth: initialize skb_queue_head at
    l2cap_chan_create()").
    
    Link: https://syzkaller.appspot.com/bug?extid=83672956c7aa6af698b3 [1]
    Reported-by: syzbot <syzbot+83672956c7aa6af698b3@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d79f4d903e14dde822c60b5fd3bedc5a289d25df
Author: Alexander Coffin <alex.coffin@matician.com>
Date:   Mon Aug 8 10:49:26 2022 -0700

    wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit()
    
    [ Upstream commit 3f42faf6db431e04bf942d2ebe3ae88975723478 ]
    
    > ret = brcmf_proto_tx_queue_data(drvr, ifp->ifidx, skb);
    
    may be schedule, and then complete before the line
    
    > ndev->stats.tx_bytes += skb->len;
    
    [   46.912801] ==================================================================
    [   46.920552] BUG: KASAN: use-after-free in brcmf_netdev_start_xmit+0x718/0x8c8 [brcmfmac]
    [   46.928673] Read of size 4 at addr ffffff803f5882e8 by task systemd-resolve/328
    [   46.935991]
    [   46.937514] CPU: 1 PID: 328 Comm: systemd-resolve Tainted: G           O      5.4.199-[REDACTED] #1
    [   46.947255] Hardware name: [REDACTED]
    [   46.954568] Call trace:
    [   46.957037]  dump_backtrace+0x0/0x2b8
    [   46.960719]  show_stack+0x24/0x30
    [   46.964052]  dump_stack+0x128/0x194
    [   46.967557]  print_address_description.isra.0+0x64/0x380
    [   46.972877]  __kasan_report+0x1d4/0x240
    [   46.976723]  kasan_report+0xc/0x18
    [   46.980138]  __asan_report_load4_noabort+0x18/0x20
    [   46.985027]  brcmf_netdev_start_xmit+0x718/0x8c8 [brcmfmac]
    [   46.990613]  dev_hard_start_xmit+0x1bc/0xda0
    [   46.994894]  sch_direct_xmit+0x198/0xd08
    [   46.998827]  __qdisc_run+0x37c/0x1dc0
    [   47.002500]  __dev_queue_xmit+0x1528/0x21f8
    [   47.006692]  dev_queue_xmit+0x24/0x30
    [   47.010366]  neigh_resolve_output+0x37c/0x678
    [   47.014734]  ip_finish_output2+0x598/0x2458
    [   47.018927]  __ip_finish_output+0x300/0x730
    [   47.023118]  ip_output+0x2e0/0x430
    [   47.026530]  ip_local_out+0x90/0x140
    [   47.030117]  igmpv3_sendpack+0x14c/0x228
    [   47.034049]  igmpv3_send_cr+0x384/0x6b8
    [   47.037895]  igmp_ifc_timer_expire+0x4c/0x118
    [   47.042262]  call_timer_fn+0x1cc/0xbe8
    [   47.046021]  __run_timers+0x4d8/0xb28
    [   47.049693]  run_timer_softirq+0x24/0x40
    [   47.053626]  __do_softirq+0x2c0/0x117c
    [   47.057387]  irq_exit+0x2dc/0x388
    [   47.060715]  __handle_domain_irq+0xb4/0x158
    [   47.064908]  gic_handle_irq+0x58/0xb0
    [   47.068581]  el0_irq_naked+0x50/0x5c
    [   47.072162]
    [   47.073665] Allocated by task 328:
    [   47.077083]  save_stack+0x24/0xb0
    [   47.080410]  __kasan_kmalloc.isra.0+0xc0/0xe0
    [   47.084776]  kasan_slab_alloc+0x14/0x20
    [   47.088622]  kmem_cache_alloc+0x15c/0x468
    [   47.092643]  __alloc_skb+0xa4/0x498
    [   47.096142]  igmpv3_newpack+0x158/0xd78
    [   47.099987]  add_grhead+0x210/0x288
    [   47.103485]  add_grec+0x6b0/0xb70
    [   47.106811]  igmpv3_send_cr+0x2e0/0x6b8
    [   47.110657]  igmp_ifc_timer_expire+0x4c/0x118
    [   47.115027]  call_timer_fn+0x1cc/0xbe8
    [   47.118785]  __run_timers+0x4d8/0xb28
    [   47.122457]  run_timer_softirq+0x24/0x40
    [   47.126389]  __do_softirq+0x2c0/0x117c
    [   47.130142]
    [   47.131643] Freed by task 180:
    [   47.134712]  save_stack+0x24/0xb0
    [   47.138041]  __kasan_slab_free+0x108/0x180
    [   47.142146]  kasan_slab_free+0x10/0x18
    [   47.145904]  slab_free_freelist_hook+0xa4/0x1b0
    [   47.150444]  kmem_cache_free+0x8c/0x528
    [   47.154292]  kfree_skbmem+0x94/0x108
    [   47.157880]  consume_skb+0x10c/0x5a8
    [   47.161466]  __dev_kfree_skb_any+0x88/0xa0
    [   47.165598]  brcmu_pkt_buf_free_skb+0x44/0x68 [brcmutil]
    [   47.171023]  brcmf_txfinalize+0xec/0x190 [brcmfmac]
    [   47.176016]  brcmf_proto_bcdc_txcomplete+0x1c0/0x210 [brcmfmac]
    [   47.182056]  brcmf_sdio_sendfromq+0x8dc/0x1e80 [brcmfmac]
    [   47.187568]  brcmf_sdio_dpc+0xb48/0x2108 [brcmfmac]
    [   47.192529]  brcmf_sdio_dataworker+0xc8/0x238 [brcmfmac]
    [   47.197859]  process_one_work+0x7fc/0x1a80
    [   47.201965]  worker_thread+0x31c/0xc40
    [   47.205726]  kthread+0x2d8/0x370
    [   47.208967]  ret_from_fork+0x10/0x18
    [   47.212546]
    [   47.214051] The buggy address belongs to the object at ffffff803f588280
    [   47.214051]  which belongs to the cache skbuff_head_cache of size 208
    [   47.227086] The buggy address is located 104 bytes inside of
    [   47.227086]  208-byte region [ffffff803f588280, ffffff803f588350)
    [   47.238814] The buggy address belongs to the page:
    [   47.243618] page:ffffffff00dd6200 refcount:1 mapcount:0 mapping:ffffff804b6bf800 index:0xffffff803f589900 compound_mapcount: 0
    [   47.255007] flags: 0x10200(slab|head)
    [   47.258689] raw: 0000000000010200 ffffffff00dfa980 0000000200000002 ffffff804b6bf800
    [   47.266439] raw: ffffff803f589900 0000000080190018 00000001ffffffff 0000000000000000
    [   47.274180] page dumped because: kasan: bad access detected
    [   47.279752]
    [   47.281251] Memory state around the buggy address:
    [   47.286051]  ffffff803f588180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    [   47.293277]  ffffff803f588200: fb fb fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    [   47.300502] >ffffff803f588280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    [   47.307723]                                                           ^
    [   47.314343]  ffffff803f588300: fb fb fb fb fb fb fb fb fb fb fc fc fc fc fc fc
    [   47.321569]  ffffff803f588380: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
    [   47.328789] ==================================================================
    
    Signed-off-by: Alexander Coffin <alex.coffin@matician.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20220808174925.3922558-1-alex.coffin@matician.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1e8abde895b3ac6a368cbdb372e8800c49e73a28
Author: Khalid Masum <khalid.masum.92@gmail.com>
Date:   Thu Sep 1 13:12:10 2022 +0600

    xfrm: Update ipcomp_scratches with NULL when freed
    
    [ Upstream commit 8a04d2fc700f717104bfb95b0f6694e448a4537f ]
    
    Currently if ipcomp_alloc_scratches() fails to allocate memory
    ipcomp_scratches holds obsolete address. So when we try to free the
    percpu scratches using ipcomp_free_scratches() it tries to vfree non
    existent vm area. Described below:
    
    static void * __percpu *ipcomp_alloc_scratches(void)
    {
            ...
            scratches = alloc_percpu(void *);
            if (!scratches)
                    return NULL;
    ipcomp_scratches does not know about this allocation failure.
    Therefore holding the old obsolete address.
            ...
    }
    
    So when we free,
    
    static void ipcomp_free_scratches(void)
    {
            ...
            scratches = ipcomp_scratches;
    Assigning obsolete address from ipcomp_scratches
    
            if (!scratches)
                    return;
    
            for_each_possible_cpu(i)
                   vfree(*per_cpu_ptr(scratches, i));
    Trying to free non existent page, causing warning: trying to vfree
    existent vm area.
            ...
    }
    
    Fix this breakage by updating ipcomp_scrtches with NULL when scratches
    is freed
    
    Suggested-by: Herbert Xu <herbert@gondor.apana.org.au>
    Reported-by: syzbot+5ec9bb042ddfe9644773@syzkaller.appspotmail.com
    Tested-by: syzbot+5ec9bb042ddfe9644773@syzkaller.appspotmail.com
    Signed-off-by: Khalid Masum <khalid.masum.92@gmail.com>
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 84242f15f911f34aec9b22f99d1e9bff19723dbe
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Tue Aug 16 23:46:13 2022 +0900

    wifi: ath9k: avoid uninit memory read in ath9k_htc_rx_msg()
    
    [ Upstream commit b383e8abed41cc6ff1a3b34de75df9397fa4878c ]
    
    syzbot is reporting uninit value at ath9k_htc_rx_msg() [1], for
    ioctl(USB_RAW_IOCTL_EP_WRITE) can call ath9k_hif_usb_rx_stream() with
    pkt_len = 0 but ath9k_hif_usb_rx_stream() uses
    __dev_alloc_skb(pkt_len + 32, GFP_ATOMIC) based on an assumption that
    pkt_len is valid. As a result, ath9k_hif_usb_rx_stream() allocates skb
    with uninitialized memory and ath9k_htc_rx_msg() is reading from
    uninitialized memory.
    
    Since bytes accessed by ath9k_htc_rx_msg() is not known until
    ath9k_htc_rx_msg() is called, it would be difficult to check minimal valid
    pkt_len at "if (pkt_len > 2 * MAX_RX_BUF_SIZE) {" line in
    ath9k_hif_usb_rx_stream().
    
    We have two choices. One is to workaround by adding __GFP_ZERO so that
    ath9k_htc_rx_msg() sees 0 if pkt_len is invalid. The other is to let
    ath9k_htc_rx_msg() validate pkt_len before accessing. This patch chose
    the latter.
    
    Note that I'm not sure threshold condition is correct, for I can't find
    details on possible packet length used by this protocol.
    
    Link: https://syzkaller.appspot.com/bug?extid=2ca247c2d60c7023de7f [1]
    Reported-by: syzbot <syzbot+2ca247c2d60c7023de7f@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/7acfa1be-4b5c-b2ce-de43-95b0593fb3e5@I-love.SAKURA.ne.jp
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c4e1b8939195fe27b05d791577f92445b139a3e
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Aug 22 21:15:28 2022 +0000

    tcp: annotate data-race around tcp_md5sig_pool_populated
    
    [ Upstream commit aacd467c0a576e5e44d2de4205855dc0fe43f6fb ]
    
    tcp_md5sig_pool_populated can be read while another thread
    changes its value.
    
    The race has no consequence because allocations
    are protected with tcp_md5sig_mutex.
    
    This patch adds READ_ONCE() and WRITE_ONCE() to document
    the race and silence KCSAN.
    
    Reported-by: Abhishek Shah <abhishek.shah@columbia.edu>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a4a943e4222a9d17ef67bbbf80b8bbc955456a05
Author: Mike Pattrick <mkp@redhat.com>
Date:   Wed Aug 17 11:06:35 2022 -0400

    openvswitch: Fix overreporting of drops in dropwatch
    
    [ Upstream commit c21ab2afa2c64896a7f0e3cbc6845ec63dcfad2e ]
    
    Currently queue_userspace_packet will call kfree_skb for all frames,
    whether or not an error occurred. This can result in a single dropped
    frame being reported as multiple drops in dropwatch. This functions
    caller may also call kfree_skb in case of an error. This patch will
    consume the skbs instead and allow caller's to use kfree_skb.
    
    Signed-off-by: Mike Pattrick <mkp@redhat.com>
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=2109957
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 255992b54d2dba7fb3c30a00fed2bc0e4112db55
Author: Mike Pattrick <mkp@redhat.com>
Date:   Wed Aug 17 11:06:34 2022 -0400

    openvswitch: Fix double reporting of drops in dropwatch
    
    [ Upstream commit 1100248a5c5ccd57059eb8d02ec077e839a23826 ]
    
    Frames sent to userspace can be reported as dropped in
    ovs_dp_process_packet, however, if they are dropped in the netlink code
    then netlink_attachskb will report the same frame as dropped.
    
    This patch checks for error codes which indicate that the frame has
    already been freed.
    
    Signed-off-by: Mike Pattrick <mkp@redhat.com>
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=2109946
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c12d47a9017a7745585b57b9b0fdc0d8c50978e
Author: Wright Feng <wright.feng@cypress.com>
Date:   Fri Jul 22 13:56:28 2022 +0200

    wifi: brcmfmac: fix invalid address access when enabling SCAN log level
    
    [ Upstream commit aa666b68e73fc06d83c070d96180b9010cf5a960 ]
    
    The variable i is changed when setting random MAC address and causes
    invalid address access when printing the value of pi->reqs[i]->reqid.
    
    We replace reqs index with ri to fix the issue.
    
    [  136.726473] Unable to handle kernel access to user memory outside uaccess routines at virtual address 0000000000000000
    [  136.737365] Mem abort info:
    [  136.740172]   ESR = 0x96000004
    [  136.743359]   Exception class = DABT (current EL), IL = 32 bits
    [  136.749294]   SET = 0, FnV = 0
    [  136.752481]   EA = 0, S1PTW = 0
    [  136.755635] Data abort info:
    [  136.758514]   ISV = 0, ISS = 0x00000004
    [  136.762487]   CM = 0, WnR = 0
    [  136.765522] user pgtable: 4k pages, 48-bit VAs, pgdp = 000000005c4e2577
    [  136.772265] [0000000000000000] pgd=0000000000000000
    [  136.777160] Internal error: Oops: 96000004 [#1] PREEMPT SMP
    [  136.782732] Modules linked in: brcmfmac(O) brcmutil(O) cfg80211(O) compat(O)
    [  136.789788] Process wificond (pid: 3175, stack limit = 0x00000000053048fb)
    [  136.796664] CPU: 3 PID: 3175 Comm: wificond Tainted: G           O      4.19.42-00001-g531a5f5 #1
    [  136.805532] Hardware name: Freescale i.MX8MQ EVK (DT)
    [  136.810584] pstate: 60400005 (nZCv daif +PAN -UAO)
    [  136.815429] pc : brcmf_pno_config_sched_scans+0x6cc/0xa80 [brcmfmac]
    [  136.821811] lr : brcmf_pno_config_sched_scans+0x67c/0xa80 [brcmfmac]
    [  136.828162] sp : ffff00000e9a3880
    [  136.831475] x29: ffff00000e9a3890 x28: ffff800020543400
    [  136.836786] x27: ffff8000b1008880 x26: ffff0000012bf6a0
    [  136.842098] x25: ffff80002054345c x24: ffff800088d22400
    [  136.847409] x23: ffff0000012bf638 x22: ffff0000012bf6d8
    [  136.852721] x21: ffff8000aced8fc0 x20: ffff8000ac164400
    [  136.858032] x19: ffff00000e9a3946 x18: 0000000000000000
    [  136.863343] x17: 0000000000000000 x16: 0000000000000000
    [  136.868655] x15: ffff0000093f3b37 x14: 0000000000000050
    [  136.873966] x13: 0000000000003135 x12: 0000000000000000
    [  136.879277] x11: 0000000000000000 x10: ffff000009a61888
    [  136.884589] x9 : 000000000000000f x8 : 0000000000000008
    [  136.889900] x7 : 303a32303d726464 x6 : ffff00000a1f957d
    [  136.895211] x5 : 0000000000000000 x4 : ffff00000e9a3942
    [  136.900523] x3 : 0000000000000000 x2 : ffff0000012cead8
    [  136.905834] x1 : ffff0000012bf6d8 x0 : 0000000000000000
    [  136.911146] Call trace:
    [  136.913623]  brcmf_pno_config_sched_scans+0x6cc/0xa80 [brcmfmac]
    [  136.919658]  brcmf_pno_start_sched_scan+0xa4/0x118 [brcmfmac]
    [  136.925430]  brcmf_cfg80211_sched_scan_start+0x80/0xe0 [brcmfmac]
    [  136.931636]  nl80211_start_sched_scan+0x140/0x308 [cfg80211]
    [  136.937298]  genl_rcv_msg+0x358/0x3f4
    [  136.940960]  netlink_rcv_skb+0xb4/0x118
    [  136.944795]  genl_rcv+0x34/0x48
    [  136.947935]  netlink_unicast+0x264/0x300
    [  136.951856]  netlink_sendmsg+0x2e4/0x33c
    [  136.955781]  __sys_sendto+0x120/0x19c
    
    Signed-off-by: Wright Feng <wright.feng@cypress.com>
    Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
    Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
    Signed-off-by: Alvin Šipraga <alsi@bang-olufsen.dk>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20220722115632.620681-4-alvin@pqrs.dk
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88523acd19414a72e76545a12012c9bdaad9346d
Author: Anna Schumaker <Anna.Schumaker@Netapp.com>
Date:   Tue Sep 13 14:01:50 2022 -0400

    NFSD: Return nfserr_serverfault if splice_ok but buf->pages have data
    
    [ Upstream commit 06981d560606ac48d61e5f4fff6738b925c93173 ]
    
    This was discussed with Chuck as part of this patch set. Returning
    nfserr_resource was decided to not be the best error message here, and
    he suggested changing to nfserr_serverfault instead.
    
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Link: https://lore.kernel.org/linux-nfs/20220907195259.926736-1-anna@kernel.org/T/#t
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6904727db0eb62fb0c2dce1cf331c341d97ee4b7
Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Date:   Tue Sep 20 04:06:57 2022 -0700

    thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to avoid crash
    
    [ Upstream commit 68b99e94a4a2db6ba9b31fe0485e057b9354a640 ]
    
    When CPU 0 is offline and intel_powerclamp is used to inject
    idle, it generates kernel BUG:
    
    BUG: using smp_processor_id() in preemptible [00000000] code: bash/15687
    caller is debug_smp_processor_id+0x17/0x20
    CPU: 4 PID: 15687 Comm: bash Not tainted 5.19.0-rc7+ #57
    Call Trace:
    <TASK>
    dump_stack_lvl+0x49/0x63
    dump_stack+0x10/0x16
    check_preemption_disabled+0xdd/0xe0
    debug_smp_processor_id+0x17/0x20
    powerclamp_set_cur_state+0x7f/0xf9 [intel_powerclamp]
    ...
    ...
    
    Here CPU 0 is the control CPU by default and changed to the current CPU,
    if CPU 0 offlined. This check has to be performed under cpus_read_lock(),
    hence the above warning.
    
    Use get_cpu() instead of smp_processor_id() to avoid this BUG.
    
    Suggested-by: Chen Yu <yu.c.chen@intel.com>
    Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    [ rjw: Subject edits ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4ebba43384722adbd325baec3a12c572d94488eb
Author: Chao Qin <chao.qin@intel.com>
Date:   Tue Sep 20 14:08:26 2022 +0800

    powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue
    
    [ Upstream commit 2d93540014387d1c73b9ccc4d7895320df66d01b ]
    
    When value < time_unit, the parameter of ilog2() will be zero and
    the return value is -1. u64(-1) is too large for shift exponent
    and then will trigger shift-out-of-bounds:
    
    shift exponent 18446744073709551615 is too large for 32-bit type 'int'
    Call Trace:
     rapl_compute_time_window_core
     rapl_write_data_raw
     set_time_window
     store_constraint_time_window_us
    
    Signed-off-by: Chao Qin <chao.qin@intel.com>
    Acked-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 21c1fa5fb0a3eb22994fb91cf531ef60b7ccb96d
Author: Kees Cook <keescook@chromium.org>
Date:   Wed Sep 7 16:05:56 2022 -0700

    MIPS: BCM47XX: Cast memcmp() of function to (void *)
    
    [ Upstream commit 0dedcf6e3301836eb70cfa649052e7ce4fcd13ba ]
    
    Clang is especially sensitive about argument type matching when using
    __overloaded functions (like memcmp(), etc). Help it see that function
    pointers are just "void *". Avoids this error:
    
    arch/mips/bcm47xx/prom.c:89:8: error: no matching function for call to 'memcmp'
                       if (!memcmp(prom_init, prom_init + mem, 32))
                            ^~~~~~
    include/linux/string.h:156:12: note: candidate function not viable: no known conversion from 'void (void)' to 'const void *' for 1st argument extern int memcmp(const void *,const void *,__kernel_size_t);
    
    Cc: Hauke Mehrtens <hauke@hauke-m.de>
    Cc: "Rafał Miłecki" <zajec5@gmail.com>
    Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: linux-mips@vger.kernel.org
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: llvm@lists.linux.dev
    Reported-by: kernel test robot <lkp@intel.com>
    Link: https://lore.kernel.org/lkml/202209080652.sz2d68e5-lkp@intel.com
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 03b854687566d2cb0aef5f7f68fe7aa279d27b40
Author: Arvid Norlander <lkml@vorpal.se>
Date:   Wed Aug 24 20:49:50 2022 +0200

    ACPI: video: Add Toshiba Satellite/Portege Z830 quirk
    
    [ Upstream commit 574160b8548deff8b80b174f03201e94ab8431e2 ]
    
    Toshiba Satellite Z830 needs the quirk video_disable_backlight_sysfs_if
    for proper backlight control after suspend/resume cycles.
    
    Toshiba Portege Z830 is simply the same laptop rebranded for certain
    markets (I looked through the manual to other language sections to confirm
    this) and thus also needs this quirk.
    
    Thanks to Hans de Goede for suggesting this fix.
    
    Link: https://www.spinics.net/lists/platform-driver-x86/msg34394.html
    Suggested-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Arvid Norlander <lkml@vorpal.se>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Tested-by: Arvid Norlander <lkml@vorpal.se>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d967df65e19de75a1acea67aec5f9a347079699f
Author: Zhang Qilong <zhangqilong3@huawei.com>
Date:   Mon Sep 5 12:59:17 2022 +0800

    f2fs: fix race condition on setting FI_NO_EXTENT flag
    
    [ Upstream commit 07725adc55c0a414c10acb5c8c86cea34b95ddef ]
    
    The following scenarios exist.
    process A:               process B:
    ->f2fs_drop_extent_tree  ->f2fs_update_extent_cache_range
                              ->f2fs_update_extent_tree_range
                               ->write_lock
     ->set_inode_flag
                               ->is_inode_flag_set
                               ->__free_extent_tree // Shouldn't
                                                    // have been
                                                    // cleaned up
                                                    // here
      ->write_lock
    
    In this case, the "FI_NO_EXTENT" flag is set between
    f2fs_update_extent_tree_range and is_inode_flag_set
    by other process. it leads to clearing the whole exten
    tree which should not have happened. And we fix it by
    move the setting it to the range of write_lock.
    
    Fixes:5f281fab9b9a3 ("f2fs: disable extent_cache for fcollapse/finsert inodes")
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Reviewed-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 90e483e7f20c32287d2a9da967e122938f52737a
Author: Dan Carpenter <error27@gmail.com>
Date:   Mon Sep 19 09:43:27 2022 +0300

    crypto: cavium - prevent integer overflow loading firmware
    
    [ Upstream commit 2526d6bf27d15054bb0778b2f7bc6625fd934905 ]
    
    The "code_length" value comes from the firmware file.  If your firmware
    is untrusted realistically there is probably very little you can do to
    protect yourself.  Still we try to limit the damage as much as possible.
    Also Smatch marks any data read from the filesystem as untrusted and
    prints warnings if it not capped correctly.
    
    The "ntohl(ucode->code_length) * 2" multiplication can have an
    integer overflow.
    
    Fixes: 9e2c7d99941d ("crypto: cavium - Add Support for Octeon-tx CPT Engine")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1219f5f83eeb089b1efa297e836dd07c9664817
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Tue Sep 13 12:47:20 2022 +0100

    iommu/iova: Fix module config properly
    
    [ Upstream commit 4f58330fcc8482aa90674e1f40f601e82f18ed4a ]
    
    IOMMU_IOVA is intended to be an optional library for users to select as
    and when they desire. Since it can be a module now, this means that
    built-in code which has chosen not to select it should not fail to link
    if it happens to have selected as a module by someone else. Replace
    IS_ENABLED() with IS_REACHABLE() to do the right thing.
    
    CC: Thierry Reding <thierry.reding@gmail.com>
    Reported-by: John Garry <john.garry@huawei.com>
    Fixes: 15bbdec3931e ("iommu: Make the iova library a module")
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Reviewed-by: Thierry Reding <treding@nvidia.com>
    Link: https://lore.kernel.org/r/548c2f683ca379aface59639a8f0cccc3a1ac050.1663069227.git.robin.murphy@arm.com
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 648472df221f2bbffb433b964bcb87baccc586d8
Author: Dan Carpenter <error27@gmail.com>
Date:   Thu Aug 4 17:32:39 2022 +0300

    iommu/omap: Fix buffer overflow in debugfs
    
    [ Upstream commit 184233a5202786b20220acd2d04ddf909ef18f29 ]
    
    There are two issues here:
    
    1) The "len" variable needs to be checked before the very first write.
       Otherwise if omap2_iommu_dump_ctx() with "bytes" less than 32 it is a
       buffer overflow.
    2) The snprintf() function returns the number of bytes that *would* have
       been copied if there were enough space.  But we want to know the
       number of bytes which were *actually* copied so use scnprintf()
       instead.
    
    Fixes: bd4396f09a4a ("iommu/omap: Consolidate OMAP IOMMU modules")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Robin Murphy <robin.murphy@arm.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Link: https://lore.kernel.org/r/YuvYh1JbE3v+abd5@kili
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fc7714544e7882652ecf4814f9da505ea517ecc6
Author: Pali Rohár <pali@kernel.org>
Date:   Fri Sep 2 23:21:02 2022 +0200

    powerpc: Fix SPE Power ISA properties for e500v1 platforms
    
    [ Upstream commit 37b9345ce7f4ab17538ea62def6f6d430f091355 ]
    
    Commit 2eb28006431c ("powerpc/e500v2: Add Power ISA properties to comply
    with ePAPR 1.1") introduced new include file e500v2_power_isa.dtsi and
    should have used it for all e500v2 platforms. But apparently it was used
    also for e500v1 platforms mpc8540, mpc8541, mpc8555 and mpc8560.
    
    e500v1 cores compared to e500v2 do not support double precision floating
    point SPE instructions. Hence power-isa-sp.fd should not be set on e500v1
    platforms, which is in e500v2_power_isa.dtsi include file.
    
    Fix this issue by introducing a new e500v1_power_isa.dtsi include file and
    use it in all e500v1 device tree files.
    
    Fixes: 2eb28006431c ("powerpc/e500v2: Add Power ISA properties to comply with ePAPR 1.1")
    Signed-off-by: Pali Rohár <pali@kernel.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220902212103.22534-1-pali@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1146fc1a1bc56f470436ce9a47e5d616c0f21a74
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Wed Sep 21 11:41:02 2022 +1000

    powerpc/64s: Fix GENERIC_CPU build flags for PPC970 / G5
    
    [ Upstream commit 58ec7f06b74e0d6e76c4110afce367c8b5f0837d ]
    
    Big-endian GENERIC_CPU supports 970, but builds with -mcpu=power5.
    POWER5 is ISA v2.02 whereas 970 is v2.01 plus Altivec. 2.02 added
    the popcntb instruction which a compiler might use.
    
    Use -mcpu=power4.
    
    Fixes: 471d7ff8b51b ("powerpc/64s: Remove POWER4 support")
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Reviewed-by: Segher Boessenkool <segher@kernel.crashing.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220921014103.587954-1-npiggin@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dace2bb4548d7341b75b96301a8f769983a954ed
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Tue Aug 30 15:37:05 2022 +0200

    x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition
    
    [ Upstream commit ea9da788a61e47e7ab9cbad397453e51cd82ac0d ]
    
    Section 1.9 of TLFS v6.0b says:
    
    "All structures are padded in such a way that fields are aligned
    naturally (that is, an 8-byte field is aligned to an offset of 8 bytes
    and so on)".
    
    'struct enlightened_vmcs' has a glitch:
    
    ...
            struct {
                    u32                nested_flush_hypercall:1; /*   836: 0  4 */
                    u32                msr_bitmap:1;         /*   836: 1  4 */
                    u32                reserved:30;          /*   836: 2  4 */
            } hv_enlightenments_control;                     /*   836     4 */
            u32                        hv_vp_id;             /*   840     4 */
            u64                        hv_vm_id;             /*   844     8 */
            u64                        partition_assist_page; /*   852     8 */
    ...
    
    And the observed values in 'partition_assist_page' make no sense at
    all. Fix the layout by padding the structure properly.
    
    Fixes: 68d1eb72ee99 ("x86/hyper-v: define struct hv_enlightened_vmcs and clean field bits")
    Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
    Reviewed-by: Michael Kelley <mikelley@microsoft.com>
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Link: https://lore.kernel.org/r/20220830133737.1539624-2-vkuznets@redhat.com
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cfd2e41d81cdeac4a0da40f096b99952479c8481
Author: Zheng Yongjun <zhengyongjun3@huawei.com>
Date:   Tue Sep 6 14:17:03 2022 +0000

    powerpc/powernv: add missing of_node_put() in opal_export_attrs()
    
    [ Upstream commit 71a92e99c47900cc164620948b3863382cec4f1a ]
    
    After using 'np' returned by of_find_node_by_path(), of_node_put()
    need be called to decrease the refcount.
    
    Fixes: 11fe909d2362 ("powerpc/powernv: Add OPAL exports attributes to sysfs")
    Signed-off-by: Zheng Yongjun <zhengyongjun3@huawei.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220906141703.118192-1-zhengyongjun3@huawei.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 904fb4e1b504041de20d0e7286cc40bf0b905389
Author: Liang He <windhl@126.com>
Date:   Fri Jul 1 21:17:50 2022 +0800

    powerpc/pci_dn: Add missing of_node_put()
    
    [ Upstream commit 110a1fcb6c4d55144d8179983a475f17a1d6f832 ]
    
    In pci_add_device_node_info(), use of_node_put() to drop the reference
    to 'parent' returned by of_get_parent() to keep refcount balance.
    
    Fixes: cca87d303c85 ("powerpc/pci: Refactor pci_dn")
    Co-authored-by: Miaoqian Lin <linmq006@gmail.com>
    Signed-off-by: Liang He <windhl@126.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Reviewed-by: Tyrel Datwyler <tyreld@linux.ibm.com>
    Link: https://lore.kernel.org/r/20220701131750.240170-1-windhl@126.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c3ee7dbdcf515673f58c9cae030b60a6c7e16a76
Author: Liang He <windhl@126.com>
Date:   Mon Jul 4 22:52:33 2022 +0800

    powerpc/sysdev/fsl_msi: Add missing of_node_put()
    
    [ Upstream commit def435c04ee984a5f9ed2711b2bfe946936c6a21 ]
    
    In fsl_setup_msi_irqs(), use of_node_put() to drop the reference
    returned by of_parse_phandle().
    
    Fixes: 895d603f945ba ("powerpc/fsl_msi: add support for the fsl, msi property in PCI nodes")
    Co-authored-by: Miaoqian Lin <linmq006@gmail.com>
    Signed-off-by: Liang He <windhl@126.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220704145233.278539-1-windhl@126.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b081557ac47187ba8ff48ee98cbcf683c443ffd
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Fri Sep 2 18:00:08 2022 +0200

    powerpc/math_emu/efp: Include module.h
    
    [ Upstream commit cfe0d370e0788625ce0df3239aad07a2506c1796 ]
    
    When building with a recent version of clang, there are a couple of
    errors around the call to module_init():
    
      arch/powerpc/math-emu/math_efp.c:927:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
      module_init(spe_mathemu_init);
      ^
      int
      arch/powerpc/math-emu/math_efp.c:927:13: error: a parameter list without types is only allowed in a function definition
      module_init(spe_mathemu_init);
                  ^
      2 errors generated.
    
    module_init() is a macro, which is not getting expanded because module.h
    is not included in this file. Add the include so that the macro can
    expand properly, clearing up the build failure.
    
    Fixes: ac6f120369ff ("powerpc/85xx: Workaroudn e500 CPU erratum A005")
    [chleroy: added fixes tag]
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Link: https://lore.kernel.org/r/8403854a4c187459b2f4da3537f51227b70b9223.1662134272.git.christophe.leroy@csgroup.eu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 83d4f013c17471085a13f8ffba3585f149d395d4
Author: Jack Wang <jinpu.wang@ionos.com>
Date:   Fri Aug 26 12:13:35 2022 +0200

    mailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sg
    
    [ Upstream commit 6b207ce8a96a71e966831e3a13c38143ba9a73c1 ]
    
    dma_map_sg return 0 on error, fix the error check, and return -EIO
    to caller.
    
    Fixes: dbc049eee730 ("mailbox: Add driver for Broadcom FlexRM ring manager")
    Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 25fe7b0d596b343e7a5504ba11767115fff8494f
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Thu Jun 2 07:08:36 2022 +0400

    clk: ti: dra7-atl: Fix reference leak in of_dra7_atl_clk_probe
    
    [ Upstream commit 9c59a01caba26ec06fefd6ca1f22d5fd1de57d63 ]
    
    pm_runtime_get_sync() will increment pm usage counter.
    Forgetting to putting operation will result in reference leak.
    Add missing pm_runtime_put_sync in some error paths.
    
    Fixes: 9ac33b0ce81f ("CLK: TI: Driver for DRA7 ATL (Audio Tracking Logic)")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Link: https://lore.kernel.org/r/20220602030838.52057-1-linmq006@gmail.com
    Reviewed-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 637f609d5e118e650aa0222d67d8cb522b852903
Author: Stefan Wahren <stefan.wahren@i2se.com>
Date:   Sun Sep 4 16:10:37 2022 +0200

    clk: bcm2835: fix bcm2835_clock_rate_from_divisor declaration
    
    [ Upstream commit 0b919a3728691c172312dee99ba654055ccd8c84 ]
    
    The return value of bcm2835_clock_rate_from_divisor is always unsigned
    and also all caller expect this. So fix the declaration accordingly.
    
    Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
    Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
    Link: https://lore.kernel.org/r/20220904141037.38816-1-stefan.wahren@i2se.com
    Reviewed-by: Ivan T. Ivanov <iivanov@suse.de>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2177fa0bb785966d27221896394f249696209bc3
Author: David Collins <collinsd@codeaurora.org>
Date:   Thu Sep 29 17:50:16 2022 -0700

    spmi: pmic-arb: correct duplicate APID to PPID mapping logic
    
    [ Upstream commit 1f1693118c2476cb1666ad357edcf3cf48bf9b16 ]
    
    Correct the way that duplicate PPID mappings are handled for PMIC
    arbiter v5.  The final APID mapped to a given PPID should be the
    one which has write owner = APPS EE, if it exists, or if not
    that, then the first APID mapped to the PPID, if it exists.
    
    Fixes: 40f318f0ed67 ("spmi: pmic-arb: add support for HW version 5")
    Signed-off-by: David Collins <collinsd@codeaurora.org>
    Signed-off-by: Fenglin Wu <quic_fenglinw@quicinc.com>
    Link: https://lore.kernel.org/r/1655004286-11493-7-git-send-email-quic_fenglinw@quicinc.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Link: https://lore.kernel.org/r/20220930005019.2663064-8-sboyd@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f3289eb92e6d660f03d836f508929fa919bccdc5
Author: Dave Jiang <dave.jiang@intel.com>
Date:   Mon Sep 19 09:58:42 2022 -0700

    dmaengine: ioat: stop mod_timer from resurrecting deleted timer in __cleanup()
    
    [ Upstream commit 898ec89dbb55b8294695ad71694a0684e62b2a73 ]
    
    User reports observing timer event report channel halted but no error
    observed in CHANERR register. The driver finished self-test and released
    channel resources. Debug shows that __cleanup() can call
    mod_timer() after the timer has been deleted and thus resurrect the
    timer. While harmless, it causes suprious error message to be emitted.
    Use mod_timer_pending() call to prevent deleted timer from being
    resurrected.
    
    Fixes: 3372de5813e4 ("dmaengine: ioatdma: removal of dma_v3.c and relevant ioat3 references")
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Link: https://lore.kernel.org/r/166360672197.3851724.17040290563764838369.stgit@djiang5-desk3.ch.intel.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb6aaef0e559a66a1bb7244222616e918ee2f6da
Author: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Date:   Tue Sep 13 17:11:12 2022 +0800

    mfd: sm501: Add check for platform_driver_register()
    
    [ Upstream commit 8325a6c24ad78b8c1acc3c42b098ee24105d68e5 ]
    
    As platform_driver_register() can return error numbers,
    it should be better to check platform_driver_register()
    and deal with the exception.
    
    Fixes: b6d6454fdb66 ("[PATCH] mfd: SM501 core driver")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Signed-off-by: Lee Jones <lee@kernel.org>
    Link: https://lore.kernel.org/r/20220913091112.1739138-1-jiasheng@iscas.ac.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ec1c411599a88abf815529ca98330331e89552f
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Jul 31 11:55:38 2022 +0200

    mfd: lp8788: Fix an error handling path in lp8788_irq_init() and lp8788_irq_init()
    
    [ Upstream commit 557244f6284f30613f2d61f14b579303165876c3 ]
    
    In lp8788_irq_init(), if an error occurs after a successful
    irq_domain_add_linear() call, it must be undone by a corresponding
    irq_domain_remove() call.
    
    irq_domain_remove() should also be called in lp8788_irq_exit() for the same
    reason.
    
    Fixes: eea6b7cc53aa ("mfd: Add lp8788 mfd driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Lee Jones <lee@kernel.org>
    Link: https://lore.kernel.org/r/bcd5a72c9c1c383dd6324680116426e32737655a.1659261275.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb7a3ca01e6a2be141f812165c6d6ebf4ea20ed7
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Jul 31 11:55:27 2022 +0200

    mfd: lp8788: Fix an error handling path in lp8788_probe()
    
    [ Upstream commit becfdcd75126b20b8ec10066c5e85b34f8994ad5 ]
    
    Should an error occurs in mfd_add_devices(), some resources need to be
    released, as already done in the .remove() function.
    
    Add an error handling path and a lp8788_irq_exit() call to undo a previous
    lp8788_irq_init().
    
    Fixes: eea6b7cc53aa ("mfd: Add lp8788 mfd driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Lee Jones <lee@kernel.org>
    Link: https://lore.kernel.org/r/18398722da9df9490722d853e4797350189ae79b.1659261275.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit acbed9e8d1147dc0ed7f5fa1617b43b267a9c789
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Jul 31 14:06:23 2022 +0200

    mfd: fsl-imx25: Fix an error handling path in mx25_tsadc_setup_irq()
    
    [ Upstream commit 3fa9e4cfb55da512ebfd57336fde468830719298 ]
    
    If devm_of_platform_populate() fails, some resources need to be
    released.
    
    Introduce a mx25_tsadc_unset_irq() function that undoes
    mx25_tsadc_setup_irq() and call it both from the new error handling path
    of the probe and in the remove function.
    
    Fixes: a55196eff6d6 ("mfd: fsl-imx25: Use devm_of_platform_populate()")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Lee Jones <lee@kernel.org>
    Link: https://lore.kernel.org/r/d404e04828fc06bcfddf81f9f3e9b4babbe35415.1659269156.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f81f6da8da23a581119fdbaee522ae8269e5f25d
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Mon Aug 1 14:42:02 2022 +0300

    mfd: intel_soc_pmic: Fix an error handling path in intel_soc_pmic_i2c_probe()
    
    [ Upstream commit 48749cabba109397b4e7dd556e85718ec0ec114d ]
    
    The commit in Fixes: has added a pwm_add_table() call in the probe() and
    a pwm_remove_table() call in the remove(), but forget to update the error
    handling path of the probe.
    
    Add the missing pwm_remove_table() call.
    
    Fixes: a3aa9a93df9f ("mfd: intel_soc_pmic_core: ADD PWM lookup table for CRC PMIC based PWM")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Lee Jones <lee@kernel.org>
    Link: https://lore.kernel.org/r/20220801114211.36267-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e2db58f780bd5338f353748a491b4696de3189ee
Author: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Date:   Tue Jan 11 15:34:11 2022 +0800

    fsi: core: Check error number after calling ida_simple_get
    
    [ Upstream commit 35af9fb49bc5c6d61ef70b501c3a56fe161cce3e ]
    
    If allocation fails, the ida_simple_get() will return error number.
    So master->idx could be error number and be used in dev_set_name().
    Therefore, it should be better to check it and return error if fails,
    like the ida_simple_get() in __fsi_get_new_minor().
    
    Fixes: 09aecfab93b8 ("drivers/fsi: Add fsi master definition")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Reviewed-by: Eddie James <eajames@linux.ibm.com>
    Link: https://lore.kernel.org/r/20220111073411.614138-1-jiasheng@iscas.ac.cn
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1007f1d14f5a6263f255e7a7556e720c7a2a10a5
Author: Pali Rohár <pali@kernel.org>
Date:   Sat Sep 24 12:43:24 2022 +0200

    serial: 8250: Fix restoring termios speed after suspend
    
    [ Upstream commit 379a33786d489ab81885ff0b3935cfeb36137fea ]
    
    Since commit edc6afc54968 ("tty: switch to ktermios and new framework")
    termios speed is no longer stored only in c_cflag member but also in new
    additional c_ispeed and c_ospeed members. If BOTHER flag is set in c_cflag
    then termios speed is stored only in these new members.
    
    Since commit 027b57170bf8 ("serial: core: Fix initializing and restoring
    termios speed") termios speed is available also in struct console.
    
    So properly restore also c_ispeed and c_ospeed members after suspend to fix
    restoring termios speed which is not represented by Bnnn constant.
    
    Fixes: 4516d50aabed ("serial: 8250: Use canary to restart console after suspend")
    Signed-off-by: Pali Rohár <pali@kernel.org>
    Link: https://lore.kernel.org/r/20220924104324.4035-1-pali@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8eb9c12e12ef0c848d454906713592fa4c990230
Author: Guilherme G. Piccoli <gpiccoli@igalia.com>
Date:   Fri Sep 9 17:07:55 2022 -0300

    firmware: google: Test spinlock on panic path to avoid lockups
    
    [ Upstream commit 3e081438b8e639cc76ef1a5ce0c1bd8a154082c7 ]
    
    Currently the gsmi driver registers a panic notifier as well as
    reboot and die notifiers. The callbacks registered are called in
    atomic and very limited context - for instance, panic disables
    preemption and local IRQs, also all secondary CPUs (not executing
    the panic path) are shutdown.
    
    With that said, taking a spinlock in this scenario is a dangerous
    invitation for lockup scenarios. So, fix that by checking if the
    spinlock is free to acquire in the panic notifier callback - if not,
    bail-out and avoid a potential hang.
    
    Fixes: 74c5b31c6618 ("driver: Google EFI SMI")
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Ard Biesheuvel <ardb@kernel.org>
    Cc: David Gow <davidgow@google.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Julius Werner <jwerner@chromium.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Reviewed-by: Evan Green <evgreen@chromium.org>
    Signed-off-by: Guilherme G. Piccoli <gpiccoli@igalia.com>
    Link: https://lore.kernel.org/r/20220909200755.189679-1-gpiccoli@igalia.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 637672a71f5016a40b0a6c0f3c8ad25eacedc8c3
Author: Nam Cao <namcaov@gmail.com>
Date:   Mon Sep 12 19:04:31 2022 +0200

    staging: vt6655: fix some erroneous memory clean-up loops
    
    [ Upstream commit 2a2db520e3ca5aafba7c211abfd397666c9b5f9d ]
    
    In some initialization functions of this driver, memory is allocated with
    'i' acting as an index variable and increasing from 0. The commit in
    "Fixes" introduces some clean-up codes in case of allocation failure,
    which free memory in reverse order with 'i' decreasing to 0. However,
    there are some problems:
      - The case i=0 is left out. Thus memory is leaked.
      - In case memory allocation fails right from the start, the memory
        freeing loops will start with i=-1 and invalid memory locations will
        be accessed.
    
    One of these loops has been fixed in commit c8ff91535880 ("staging:
    vt6655: fix potential memory leak"). Fix the remaining erroneous loops.
    
    Link: https://lore.kernel.org/linux-staging/Yx9H1zSpxmNqx6Xc@kadam/
    Fixes: 5341ee0adb17 ("staging: vt6655: check for memory allocation failures")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com>
    Signed-off-by: Nam Cao <namcaov@gmail.com>
    Link: https://lore.kernel.org/r/20220912170429.29852-1-namcaov@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4f61b04e729026dd4dbf6052701cb718a403643a
Author: Dongliang Mu <mudongliangabcd@gmail.com>
Date:   Wed Sep 14 13:13:33 2022 +0800

    phy: qualcomm: call clk_disable_unprepare in the error handling
    
    [ Upstream commit c3966ced8eb8dc53b6c8d7f97d32cc8a2107d83e ]
    
    Smatch reports the following error:
    
    drivers/phy/qualcomm/phy-qcom-usb-hsic.c:82 qcom_usb_hsic_phy_power_on()
    warn: 'uphy->cal_clk' from clk_prepare_enable() not released on lines:
    58.
    drivers/phy/qualcomm/phy-qcom-usb-hsic.c:82 qcom_usb_hsic_phy_power_on()
    warn: 'uphy->cal_sleep_clk' from clk_prepare_enable() not released on
    lines: 58.
    drivers/phy/qualcomm/phy-qcom-usb-hsic.c:82 qcom_usb_hsic_phy_power_on()
    warn: 'uphy->phy_clk' from clk_prepare_enable() not released on lines:
    58.
    
    Fix this by calling proper clk_disable_unprepare calls.
    
    Fixes: 0b56e9a7e835 ("phy: Group vendor specific phy drivers")
    Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://lore.kernel.org/r/20220914051334.69282-1-dzm91@hust.edu.cn
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6066bd69ffba3a6abc7c0793ccba1da79b7d77e3
Author: Dan Carpenter <error27@gmail.com>
Date:   Thu Sep 22 14:22:47 2022 +0300

    drivers: serial: jsm: fix some leaks in probe
    
    [ Upstream commit 1d5859ef229e381f4db38dce8ed58e4bf862006b ]
    
    This error path needs to unwind instead of just returning directly.
    
    Fixes: 03a8482c17dd ("drivers: serial: jsm: Enable support for Digi Classic adapters")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/YyxFh1+lOeZ9WfKO@kili
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 565640ded3445737a7a3f7ac7d58d134a6b6303a
Author: Albert Briscoe <albertsbriscoe@gmail.com>
Date:   Sun Sep 11 15:37:55 2022 -0700

    usb: gadget: function: fix dangling pnp_string in f_printer.c
    
    [ Upstream commit 24b7ba2f88e04800b54d462f376512e8c41b8a3c ]
    
    When opts->pnp_string is changed with configfs, new memory is allocated for
    the string. It does not, however, update dev->pnp_string, even though the
    memory is freed. When rquesting the string, the host then gets old or
    corrupted data rather than the new string. The ieee 1284 id string should
    be allowed to change while the device is connected.
    
    The bug was introduced in commit fdc01cc286be ("usb: gadget: printer:
    Remove pnp_string static buffer"), which changed opts->pnp_string from a
    char[] to a char*.
    This patch changes dev->pnp_string from a char* to a char** pointing to
    opts->pnp_string.
    
    Fixes: fdc01cc286be ("usb: gadget: printer: Remove pnp_string static buffer")
    Signed-off-by: Albert Briscoe <albertsbriscoe@gmail.com>
    Link: https://lore.kernel.org/r/20220911223753.20417-1-albertsbriscoe@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c61ccfedc47c21cfd9bb33fde7347f3bc354589
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Wed Sep 21 15:34:47 2022 +0300

    xhci: Don't show warning for reinit on known broken suspend
    
    [ Upstream commit 484d6f7aa3283d082c87654b7fe7a7f725423dfb ]
    
    commit 8b328f8002bc ("xhci: re-initialize the HC during resume if HCE was
    set") introduced a new warning message when the host controller error
    was set and re-initializing.
    
    This is expected behavior on some designs which already set
    `xhci->broken_suspend` so the new warning is alarming to some users.
    
    Modify the code to only show the warning if this was a surprising behavior
    to the XHCI driver.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216470
    Fixes: 8b328f8002bc ("xhci: re-initialize the HC during resume if HCE was set")
    Reported-by: Artem S. Tashkinov <aros@gmx.com>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20220921123450.671459-4-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a51fea345bb605f750fa6e2e0685df7e510aa02f
Author: Logan Gunthorpe <logang@deltatee.com>
Date:   Thu Aug 25 09:46:27 2022 -0600

    md/raid5: Ensure stripe_fill happens on non-read IO with journal
    
    [ Upstream commit e2eed85bc75138a9eeb63863d20f8904ac42a577 ]
    
    When doing degrade/recover tests using the journal a kernel BUG
    is hit at drivers/md/raid5.c:4381 in handle_parity_checks5():
    
      BUG_ON(!test_bit(R5_UPTODATE, &dev->flags));
    
    This was found to occur because handle_stripe_fill() was skipped
    for stripes in the journal due to a condition in that function.
    Thus blocks were not fetched and R5_UPTODATE was not set when
    the code reached handle_parity_checks5().
    
    To fix this, don't skip handle_stripe_fill() unless the stripe is
    for read.
    
    Fixes: 07e83364845e ("md/r5cache: shift complex rmw from read path to write path")
    Link: https://lore.kernel.org/linux-raid/e05c4239-41a9-d2f7-3cfa-4aa9d2cea8c1@deltatee.com/
    Suggested-by: Song Liu <song@kernel.org>
    Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
    Signed-off-by: Song Liu <song@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit be620a6b9bb16e47726cb6f6b7aede33a0d612b7
Author: Niklas Cassel <niklas.cassel@wdc.com>
Date:   Fri Sep 16 14:28:35 2022 +0200

    ata: fix ata_id_has_dipm()
    
    [ Upstream commit 630624cb1b5826d753ac8e01a0e42de43d66dedf ]
    
    ACS-5 section
    7.13.6.36 Word 78: Serial ATA features supported
    states that:
    
    If word 76 is not 0000h or FFFFh, word 78 reports the features supported
    by the device. If this word is not supported, the word shall be cleared
    to zero.
    
    (This text also exists in really old ACS standards, e.g. ACS-3.)
    
    The problem with ata_id_has_dipm() is that the while it performs a
    check against 0 and 0xffff, it performs the check against
    ATA_ID_FEATURE_SUPP (word 78), the same word where the feature bit
    is stored.
    
    Fix this by performing the check against ATA_ID_SATA_CAPABILITY
    (word 76), like required by the spec. The feature bit check itself
    is of course still performed against ATA_ID_FEATURE_SUPP (word 78).
    
    Additionally, move the macro to the other ATA_ID_FEATURE_SUPP macros
    (which already have this check), thus making it more likely that the
    next ATA_ID_FEATURE_SUPP macro that is added will include this check.
    
    Fixes: ca77329fb713 ("[libata] Link power management infrastructure")
    Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 494e8e97b7fc8e59fda8e8dbbdf038fe67801393
Author: Niklas Cassel <niklas.cassel@wdc.com>
Date:   Fri Sep 16 14:28:34 2022 +0200

    ata: fix ata_id_has_ncq_autosense()
    
    [ Upstream commit a5fb6bf853148974dbde092ec1bde553bea5e49f ]
    
    ACS-5 section
    7.13.6.36 Word 78: Serial ATA features supported
    states that:
    
    If word 76 is not 0000h or FFFFh, word 78 reports the features supported
    by the device. If this word is not supported, the word shall be cleared
    to zero.
    
    (This text also exists in really old ACS standards, e.g. ACS-3.)
    
    Additionally, move the macro to the other ATA_ID_FEATURE_SUPP macros
    (which already have this check), thus making it more likely that the
    next ATA_ID_FEATURE_SUPP macro that is added will include this check.
    
    Fixes: 5b01e4b9efa0 ("libata: Implement NCQ autosense")
    Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ce8f1256a4a735a9a957d0496b5631db18e96ef8
Author: Niklas Cassel <niklas.cassel@wdc.com>
Date:   Fri Sep 16 14:28:33 2022 +0200

    ata: fix ata_id_has_devslp()
    
    [ Upstream commit 9c6e09a434e1317e09b78b3b69cd384022ec9a03 ]
    
    ACS-5 section
    7.13.6.36 Word 78: Serial ATA features supported
    states that:
    
    If word 76 is not 0000h or FFFFh, word 78 reports the features supported
    by the device. If this word is not supported, the word shall be cleared
    to zero.
    
    (This text also exists in really old ACS standards, e.g. ACS-3.)
    
    Additionally, move the macro to the other ATA_ID_FEATURE_SUPP macros
    (which already have this check), thus making it more likely that the
    next ATA_ID_FEATURE_SUPP macro that is added will include this check.
    
    Fixes: 65fe1f0f66a5 ("ahci: implement aggressive SATA device sleep support")
    Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5cf465162b25aa29c3dc91f3b5597ab64959043
Author: Niklas Cassel <niklas.cassel@wdc.com>
Date:   Fri Sep 16 14:28:32 2022 +0200

    ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()
    
    [ Upstream commit 690aa8c3ae308bc696ec8b1b357b995193927083 ]
    
    ACS-5 section
    7.13.6.41 Words 85..87, 120: Commands and feature sets supported or enabled
    states that:
    
    If bit 15 of word 86 is set to one, bit 14 of word 119 is set to one,
    and bit 15 of word 119 is cleared to zero, then word 119 is valid.
    
    If bit 15 of word 86 is set to one, bit 14 of word 120 is set to one,
    and bit 15 of word 120 is cleared to zero, then word 120 is valid.
    
    (This text also exists in really old ACS standards, e.g. ACS-3.)
    
    Currently, ata_id_sense_reporting_enabled() and
    ata_id_has_sense_reporting() both check bit 15 of word 86,
    but neither of them check that bit 14 of word 119 is set to one,
    or that bit 15 of word 119 is cleared to zero.
    
    Additionally, make ata_id_sense_reporting_enabled() return false
    if !ata_id_has_sense_reporting(), similar to how e.g.
    ata_id_flush_ext_enabled() returns false if !ata_id_has_flush_ext().
    
    Fixes: e87fd28cf9a2 ("libata: Implement support for sense data reporting")
    Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0013377942fffe0d2e3649ad283a6203a3313e27
Author: William Dean <williamsukatube@gmail.com>
Date:   Fri Jul 22 17:16:44 2022 +0800

    mtd: devices: docg3: check the return value of devm_ioremap() in the probe
    
    [ Upstream commit 26e784433e6c65735cd6d93a8db52531970d9a60 ]
    
    The function devm_ioremap() in docg3_probe() can fail, so
    its return value should be checked.
    
    Fixes: 82402aeb8c81e ("mtd: docg3: Use devm_*() functions")
    Reported-by: Hacash Robot <hacashRobot@santino.com>
    Signed-off-by: William Dean <williamsukatube@gmail.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20220722091644.2937953-1-williamsukatube@163.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3d9fc69424c7f395940b04d764da513d91dc96da
Author: Jim Cromie <jim.cromie@gmail.com>
Date:   Sun Sep 4 15:40:44 2022 -0600

    dyndbg: let query-modname override actual module name
    
    [ Upstream commit e75ef56f74965f426dd819a41336b640ffdd8fbc ]
    
    dyndbg's control-parser: ddebug_parse_query(), requires that search
    terms: module, func, file, lineno, are used only once in a query; a
    thing cannot be named both foo and bar.
    
    The cited commit added an overriding module modname, taken from the
    module loader, which is authoritative.  So it set query.module 1st,
    which disallowed its use in the query-string.
    
    But now, its useful to allow a module-load to enable classes across a
    whole (or part of) a subsystem at once.
    
      # enable (dynamic-debug in) drm only
      modprobe drm dyndbg="class DRM_UT_CORE +p"
    
      # get drm_helper too
      modprobe drm dyndbg="class DRM_UT_CORE module drm* +p"
    
      # get everything that knows DRM_UT_CORE
      modprobe drm dyndbg="class DRM_UT_CORE module * +p"
    
      # also for boot-args:
      drm.dyndbg="class DRM_UT_CORE module * +p"
    
    So convert the override into a default, by filling it only when/after
    the query-string omitted the module.
    
    NB: the query class FOO handling is forthcoming.
    
    Fixes: 8e59b5cfb9a6 dynamic_debug: add modname arg to exec_query callchain
    Acked-by: Jason Baron <jbaron@akamai.com>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
    Link: https://lore.kernel.org/r/20220904214134.408619-8-jim.cromie@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb304d6a0ebbde895d8238685e962ac5afe14f93
Author: Jim Cromie <jim.cromie@gmail.com>
Date:   Sun Sep 4 15:40:39 2022 -0600

    dyndbg: fix module.dyndbg handling
    
    [ Upstream commit 85d6b66d31c35158364058ee98fb69ab5bb6a6b1 ]
    
    For CONFIG_DYNAMIC_DEBUG=N, the ddebug_dyndbg_module_param_cb()
    stub-fn is too permissive:
    
    bash-5.1# modprobe drm JUNKdyndbg
    bash-5.1# modprobe drm dyndbgJUNK
    [   42.933220] dyndbg param is supported only in CONFIG_DYNAMIC_DEBUG builds
    [   42.937484] ACPI: bus type drm_connector registered
    
    This caused no ill effects, because unknown parameters are either
    ignored by default with an "unknown parameter" warning, or ignored
    because dyndbg allows its no-effect use on non-dyndbg builds.
    
    But since the code has an explicit feedback message, it should be
    issued accurately.  Fix with strcmp for exact param-name match.
    
    Fixes: b48420c1d301 dynamic_debug: make dynamic-debug work for module initialization
    Reported-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Acked-by: Jason Baron <jbaron@akamai.com>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
    Link: https://lore.kernel.org/r/20220904214134.408619-3-jim.cromie@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cd2fd5fb02176914e80f7db0b57e433473c2deeb
Author: Zhu Yanjun <yanjun.zhu@linux.dev>
Date:   Sun Aug 21 21:16:14 2022 -0400

    RDMA/rxe: Fix the error caused by qp->sk
    
    [ Upstream commit 548ce2e66725dcba4e27d1e8ac468d5dd17fd509 ]
    
    When sock_create_kern in the function rxe_qp_init_req fails,
    qp->sk is set to NULL.
    
    Then the function rxe_create_qp will call rxe_qp_do_cleanup
    to handle allocated resource.
    
    Before handling qp->sk, this variable should be checked.
    
    Fixes: 8700e3e7c485 ("Soft RoCE driver")
    Link: https://lore.kernel.org/r/20220822011615.805603-3-yanjun.zhu@linux.dev
    Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
    Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
    Reviewed-by: Bob Pearson <rpearsonhpe@gmail.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9c5dd6993c794703e74c6ba17ac78ca0211ef940
Author: Zhu Yanjun <yanjun.zhu@linux.dev>
Date:   Sun Aug 21 21:16:13 2022 -0400

    RDMA/rxe: Fix "kernel NULL pointer dereference" error
    
    [ Upstream commit a625ca30eff806395175ebad3ac1399014bdb280 ]
    
    When rxe_queue_init in the function rxe_qp_init_req fails,
    both qp->req.task.func and qp->req.task.arg are not initialized.
    
    Because of creation of qp fails, the function rxe_create_qp will
    call rxe_qp_do_cleanup to handle allocated resource.
    
    Before calling __rxe_do_task, both qp->req.task.func and
    qp->req.task.arg should be checked.
    
    Fixes: 8700e3e7c485 ("Soft RoCE driver")
    Link: https://lore.kernel.org/r/20220822011615.805603-2-yanjun.zhu@linux.dev
    Reported-by: syzbot+ab99dc4c6e961eed8b8e@syzkaller.appspotmail.com
    Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
    Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
    Reviewed-by: Bob Pearson <rpearsonhpe@gmail.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c38467c3255c428cdbd3cefaccca4662f302dc9
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Wed Jun 1 06:25:14 2022 +0200

    media: xilinx: vipp: Fix refcount leak in xvip_graph_dma_init
    
    [ Upstream commit 1c78f19c3a0ea312a8178a6bfd8934eb93e9b10a ]
    
    of_get_child_by_name() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when not need anymore.
    Add missing of_node_put() to avoid refcount leak.
    
    Fixes: df3305156f98 ("[media] v4l: xilinx: Add Xilinx Video IP core")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5df58a309ebf73efa85590f63e72a6614d01a56b
Author: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Date:   Fri Jul 29 17:17:45 2022 +0530

    tty: xilinx_uartps: Fix the ignore_status
    
    [ Upstream commit b8a6c3b3d4654fba19881cc77da61eac29f57cae ]
    
    Currently the ignore_status is not considered in the isr.
    Add a check to add the ignore_status.
    
    Fixes: 61ec9016988f ("tty/serial: add support for Xilinx PS UART")
    Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
    Link: https://lore.kernel.org/r/20220729114748.18332-5-shubhrajyoti.datta@xilinx.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ebff16306918ff59dc9bbef8f558d5408fc95736
Author: Liang He <windhl@126.com>
Date:   Wed Jul 20 16:30:03 2022 +0200

    media: exynos4-is: fimc-is: Add of_node_put() when breaking out of loop
    
    [ Upstream commit 211f8304fa21aaedc2c247f0c9d6c7f1aaa61ad7 ]
    
    In fimc_is_register_subdevs(), we need to call of_node_put() for
    the reference 'i2c_bus' when breaking out of the
    for_each_compatible_node() which has increased the refcount.
    
    Fixes: 9a761e436843 ("[media] exynos4-is: Add Exynos4x12 FIMC-IS driver")
    Signed-off-by: Liang He <windhl@126.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c837ba2daec8766feb989af85c0d50ff20b7a7a
Author: Jack Wang <jinpu.wang@ionos.com>
Date:   Fri Aug 26 12:12:27 2022 +0200

    HSI: omap_ssi_port: Fix dma_map_sg error check
    
    [ Upstream commit 551e325bbd3fb8b5a686ac1e6cf76e5641461cf2 ]
    
    dma_map_sg return 0 on error, in case of error return -EIO
    to caller.
    
    Cc: Sebastian Reichel <sre@kernel.org>
    Cc: linux-kernel@vger.kernel.org (open list)
    Fixes: b209e047bc74 ("HSI: Introduce OMAP SSI driver")
    Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e8a218c17d7c5c42d5609ef92d339b47f3d11d02
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Mon Apr 4 08:52:32 2022 +0000

    HSI: omap_ssi: Fix refcount leak in ssi_probe
    
    [ Upstream commit 9a2ea132df860177b33c9fd421b26c4e9a0a9396 ]
    
    When returning or breaking early from a
    for_each_available_child_of_node() loop, we need to explicitly call
    of_node_put() on the child node to possibly release the node.
    
    Fixes: b209e047bc74 ("HSI: Introduce OMAP SSI driver")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0172d14f50098f5736b4b272a1529a3e05419bd6
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Mon May 23 19:28:11 2022 +0400

    clk: tegra20: Fix refcount leak in tegra20_clock_init
    
    [ Upstream commit 4e343bafe03ff68a62f48f8235cf98f2c685468b ]
    
    of_find_matching_node() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when not need anymore.
    Add missing of_node_put() to avoid refcount leak.
    
    Fixes: 37c26a906527 ("clk: tegra: add clock support for Tegra20")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Link: https://lore.kernel.org/r/20220523152811.19692-1-linmq006@gmail.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8cc87a9c142ae0e276a3ff9ce50f78a1668da36f
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Mon May 23 18:38:34 2022 +0400

    clk: tegra: Fix refcount leak in tegra114_clock_init
    
    [ Upstream commit db16a80c76ea395766913082b1e3f939dde29b2c ]
    
    of_find_matching_node() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when not need anymore.
    Add missing of_node_put() to avoid refcount leak.
    
    Fixes: 2cb5efefd6f7 ("clk: tegra: Implement clocks for Tegra114")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Link: https://lore.kernel.org/r/20220523143834.7587-1-linmq006@gmail.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ac010ec3484ba95c6ab3d946f9a83560005c13c6
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Mon May 23 18:26:08 2022 +0400

    clk: tegra: Fix refcount leak in tegra210_clock_init
    
    [ Upstream commit 56c78cb1f00a9dde8cd762131ce8f4c5eb046fbb ]
    
    of_find_matching_node() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when not need anymore.
    Add missing of_node_put() to avoid refcount leak.
    
    Fixes: 6b301a059eb2 ("clk: tegra: Add support for Tegra210 clocks")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Link: https://lore.kernel.org/r/20220523142608.65074-1-linmq006@gmail.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ceec447cb29d033f098229c085e3768a43286183
Author: Liang He <windhl@126.com>
Date:   Fri Jul 8 16:49:00 2022 +0800

    clk: berlin: Add of_node_put() for of_get_parent()
    
    [ Upstream commit 37c381b812dcbfde9c3f1f3d3e75fdfc1b40d5bc ]
    
    In berlin2_clock_setup() and berlin2q_clock_setup(), we need to
    call of_node_put() for the reference returned by of_get_parent()
    which has increased the refcount. We should call *_put() in fail
    path or when it is not used anymore.
    
    Fixes: 26b3b6b959b2 ("clk: berlin: prepare simple-mfd conversion")
    Signed-off-by: Liang He <windhl@126.com>
    Link: https://lore.kernel.org/r/20220708084900.311684-1-windhl@126.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60d50ee1a16d19cc81829fb851d8a11472558dde
Author: Liang He <windhl@126.com>
Date:   Tue Jun 28 22:31:55 2022 +0800

    clk: oxnas: Hold reference returned by of_get_parent()
    
    [ Upstream commit 1d6aa08c54cd0e005210ab8e3b1e92ede70f8a4f ]
    
    In oxnas_stdclk_probe(), we need to hold the reference returned by
    of_get_parent() and use it to call of_node_put() for refcount
    balance.
    
    Fixes: 0bbd72b4c64f ("clk: Add Oxford Semiconductor OXNAS Standard Clocks")
    Signed-off-by: Liang He <windhl@126.com>
    Link: https://lore.kernel.org/r/20220628143155.170550-1-windhl@126.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7e1daddd7cfa167d5a517b43596673f7073f9427
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Sun Jun 26 13:29:23 2022 +0100

    iio: ABI: Fix wrong format of differential capacitance channel ABI.
    
    [ Upstream commit 1efc41035f1841acf0af2bab153158e27ce94f10 ]
    
    in_ only occurs once in these attributes.
    
    Fixes: 0baf29d658c7 ("staging:iio:documentation Add abi docs for capacitance adcs.")
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220626122938.582107-3-jic23@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5032b4f4494d342a46cc79e14d3b5e99a215cac3
Author: Nuno Sá <nuno.sa@analog.com>
Date:   Fri Jul 15 14:28:49 2022 +0200

    iio: inkern: only release the device node when done with it
    
    [ Upstream commit 79c3e84874c7d14f04ad58313b64955a0d2e9437 ]
    
    'of_node_put()' can potentially release the memory pointed to by
    'iiospec.np' which would leave us with an invalid pointer (and we would
    still pass it in 'of_xlate()'). Note that it is not guaranteed for the
    of_node lifespan to be attached to the device (to which is attached)
    lifespan so that there is (even though very unlikely) the possibility
    for the node to be freed while the device is still around. Thus, as there
    are indeed some of_xlate users which do access the node, a race is indeed
    possible.
    
    As such, we can only release the node after we are done with it.
    
    Fixes: 17d82b47a215d ("iio: Add OF support")
    Signed-off-by: Nuno Sá <nuno.sa@analog.com>
    Link: https://lore.kernel.org/r/20220715122903.332535-2-nuno.sa@analog.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e9dc9bc8f2917d6204919f8d7a33e4f8bb406c4e
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Wed Aug 3 13:28:38 2022 +0300

    iio: adc: at91-sama5d2_adc: check return status for pressure and touch
    
    [ Upstream commit d84ace944a3b24529798dbae1340dea098473155 ]
    
    Check return status of at91_adc_read_position() and
    at91_adc_read_pressure() in at91_adc_read_info_raw().
    
    Fixes: 6794e23fa3fe ("iio: adc: at91-sama5d2_adc: add support for oversampling resolution")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20220803102855.2191070-3-claudiu.beznea@microchip.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5e777a5b17031923816bda3611117c276bf9ac48
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Wed Aug 3 13:28:37 2022 +0300

    iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX
    
    [ Upstream commit bb73d5d9164c57c4bb916739a98e5cd8e0a5ed8c ]
    
    All ADC HW versions handled by this driver (SAMA5D2, SAM9X60, SAMA7G5)
    have MR.TRACKTIM on 4 bits. Fix AT91_SAMA5D2_MR_TRACKTIM_MAX to reflect
    this.
    
    Fixes: 27e177190891 ("iio:adc:at91_adc8xx: introduce new atmel adc driver")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20220803102855.2191070-2-claudiu.beznea@microchip.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5ff8c4ff606a7607b2393a3c746f56fd72f83e8
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Tue Sep 27 15:05:03 2022 -0700

    ARM: dts: exynos: fix polarity of VBUS GPIO of Origen
    
    [ Upstream commit a08137bd1e0a7ce951dce9ce4a83e39d379b6e1b ]
    
    EHCI Oxynos (drivers/usb/host/ehci-exynos.c) drives VBUS GPIO high when
    trying to power up the bus, therefore the GPIO in DTS must be marked as
    "active high". This will be important when EHCI driver is converted to
    gpiod API that respects declared polarities.
    
    Fixes: 4e8991def565 ("ARM: dts: exynos: Enable AX88760 USB hub on Origen board")
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Link: https://lore.kernel.org/r/20220927220504.3744878-1-dmitry.torokhov@gmail.com
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd2cb2b6075d7c40a191910fbb34ce58240abad5
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Sep 27 15:28:26 2022 +0200

    ARM: Drop CMDLINE_* dependency on ATAGS
    
    [ Upstream commit 136f4b1ec7c962ee37a787e095fd37b058d72bd3 ]
    
    On arm32, the configuration options to specify the kernel command line
    type depend on ATAGS.  However, the actual CMDLINE cofiguration option
    does not depend on ATAGS, and the code that handles this is not specific
    to ATAGS (see drivers/of/fdt.c:early_init_dt_scan_chosen()).
    
    Hence users who desire to override the kernel command line on arm32 must
    enable support for ATAGS, even on a pure-DT system.  Other architectures
    (arm64, loongarch, microblaze, nios2, powerpc, and riscv) do not impose
    such a restriction.
    
    Hence drop the dependency on ATAGS.
    
    Fixes: bd51e2f595580fb6 ("ARM: 7506/1: allow for ATAGS to be configured out when DT support is selected")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Acked-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9303b9372f909f4961e5f43303c7394df3b54580
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Mon Sep 26 12:43:53 2022 +0200

    ARM: dts: exynos: correct s5k6a3 reset polarity on Midas family
    
    [ Upstream commit 3ba2d4bb9592bf7a6a3fe3dbe711ecfc3d004bab ]
    
    According to s5k6a3 driver code, the reset line for the chip appears to
    be active low. This also matches the typical polarity of reset lines in
    general. Let's fix it up as having correct polarity in DTS is important
    when the driver will be switched over to gpiod API.
    
    Fixes: b4fec64758ab ("ARM: dts: Add camera device nodes for Exynos4412 TRATS2 board")
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20220913164104.203957-1-dmitry.torokhov@gmail.com
    Link: https://lore.kernel.org/r/20220926104354.118578-2-krzysztof.kozlowski@linaro.org'
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c72442d10a50dcb9a83f0c72fa6259f0170d44c
Author: Michael Walle <michael@walle.cc>
Date:   Tue Aug 16 02:10:25 2022 +0200

    ARM: dts: kirkwood: lsxl: remove first ethernet port
    
    [ Upstream commit 2d528eda7c96ce5c70f895854ecd5684bd5d80b9 ]
    
    Both the Linkstation LS-CHLv2 and the LS-XHL have only one ethernet
    port. This has always been wrong, i.e. the board code used to set up
    both ports, but the driver will play nice and return -ENODEV if the
    assiciated PHY is not found. Nevertheless, it is wrong. Remove it.
    
    Fixes: 876e23333511 ("ARM: kirkwood: add gigabit ethernet and mvmdio device tree nodes")
    Signed-off-by: Michael Walle <michael@walle.cc>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d7c92e81f97a5ed539e00141bbf778d1feebd058
Author: Michael Walle <michael@walle.cc>
Date:   Tue Aug 16 02:10:24 2022 +0200

    ARM: dts: kirkwood: lsxl: fix serial line
    
    [ Upstream commit 04eabc6ac10fda9424606d9a7ab6ab9a5d95350a ]
    
    Commit 327e15428977 ("ARM: dts: kirkwood: consolidate common pinctrl
    settings") unknowingly broke the serial output on this board. Before
    this commit, the pinmux was still configured by the bootloader and the
    kernel didn't reconfigured it again. This was an oversight by the
    initial board support where the pinmux for the serial line was never
    configured by the kernel. But with this commit, the serial line will be
    reconfigured to the wrong pins. This is especially confusing, because
    the output still works, but the input doesn't. Presumingly, the input is
    reconfigured to MPP10, but the output is connected to both MPP11 and
    MPP5.
    
    Override the pinmux in the board device tree.
    
    Fixes: 327e15428977 ("ARM: dts: kirkwood: consolidate common pinctrl settings")
    Signed-off-by: Michael Walle <michael@walle.cc>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3879c70264118bbb1484b935c7f548103c8eae56
Author: Marek Behún <kabel@kernel.org>
Date:   Wed Jul 27 14:56:10 2022 +0200

    ARM: dts: turris-omnia: Fix mpp26 pin name and comment
    
    [ Upstream commit 49e93898f0dc177e645c22d0664813567fd9ec00 ]
    
    There is a bug in Turris Omnia's schematics, whereupon the MPP[26] pin,
    which is routed to CN11 pin header, is documented as SPI CS1, but
    MPP[26] pin does not support this function. Instead it controls chip
    select 2 if in "spi0" mode.
    
    Fix the name of the pin node in pinctrl node and fix the comment in SPI
    node.
    
    Fixes: 26ca8b52d6e1 ("ARM: dts: add support for Turris Omnia")
    Signed-off-by: Marek Behún <kabel@kernel.org>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 46d6900be074681f6b124aeb615d8f38ac37d301
Author: Liang He <windhl@126.com>
Date:   Thu Jul 21 21:52:17 2022 +0800

    soc: qcom: smem_state: Add refcounting for the 'state->of_node'
    
    [ Upstream commit 90681f53b9381c23ff7762a3b13826d620c272de ]
    
    In qcom_smem_state_register() and qcom_smem_state_release(), we
    should better use of_node_get() and of_node_put() for the reference
    creation and destruction of 'device_node'.
    
    Fixes: 9460ae2ff308 ("soc: qcom: Introduce common SMEM state machine code")
    Signed-off-by: Liang He <windhl@126.com>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20220721135217.1301039-2-windhl@126.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42df28994eba7b56c762f7bbe7efd5611a1cd15b
Author: Liang He <windhl@126.com>
Date:   Thu Jul 21 21:52:16 2022 +0800

    soc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe()
    
    [ Upstream commit af8f6f39b8afd772fda4f8e61823ef8c021bf382 ]
    
    There are two refcount leak bugs in qcom_smsm_probe():
    
    (1) The 'local_node' is escaped out from for_each_child_of_node() as
    the break of iteration, we should call of_node_put() for it in error
    path or when it is not used anymore.
    (2) The 'node' is escaped out from for_each_available_child_of_node()
    as the 'goto', we should call of_node_put() for it in goto target.
    
    Fixes: c97c4090ff72 ("soc: qcom: smsm: Add driver for Qualcomm SMSM")
    Signed-off-by: Liang He <windhl@126.com>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20220721135217.1301039-1-windhl@126.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 68c9c4e6495b825be3a8946df1a0148399555fe4
Author: Liang He <windhl@126.com>
Date:   Tue Jul 19 16:56:39 2022 +0800

    memory: of: Fix refcount leak bug in of_get_ddr_timings()
    
    [ Upstream commit 05215fb32010d4afb68fbdbb4d237df6e2d4567b ]
    
    We should add the of_node_put() when breaking out of
    for_each_child_of_node() as it will automatically increase
    and decrease the refcount.
    
    Fixes: e6b42eb6a66c ("memory: emif: add device tree support to emif driver")
    Signed-off-by: Liang He <windhl@126.com>
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20220719085640.1210583-1-windhl@126.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit de2fbc0dab452865687e484be566a4ce5a3bf41a
Author: Zhang Qilong <zhangqilong3@huawei.com>
Date:   Thu Sep 29 00:01:15 2022 +0800

    ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe
    
    [ Upstream commit fcbb60820cd3008bb44334a0395e5e57ccb77329 ]
    
    The pm_runtime_enable will increase power disable depth. Thus
    a pairing decrement is needed on the error handling path to
    keep it balanced according to context. We fix it by moving
    pm_runtime_enable to the endding of wm5102_probe.
    
    Fixes:93e8791dd34ca ("ASoC: wm5102: Initial driver")
    
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Link: https://lore.kernel.org/r/20220928160116.125020-4-zhangqilong3@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b05f239ba46c2ff5892b24dedb785fd20daa9e5a
Author: Zhang Qilong <zhangqilong3@huawei.com>
Date:   Thu Sep 29 00:01:14 2022 +0800

    ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe
    
    [ Upstream commit 86b46bf1feb83898d89a2b4a8d08d21e9ea277a7 ]
    
    The pm_runtime_enable will increase power disable depth. Thus
    a pairing decrement is needed on the error handling path to
    keep it balanced according to context. We fix it by moving
    pm_runtime_enable to the endding of wm5110_probe.
    
    Fixes:5c6af635fd772 ("ASoC: wm5110: Add audio CODEC driver")
    
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Link: https://lore.kernel.org/r/20220928160116.125020-3-zhangqilong3@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 927490408b4edba85fcd9a4d796fcd2a9553f59d
Author: Zhang Qilong <zhangqilong3@huawei.com>
Date:   Thu Sep 29 00:01:13 2022 +0800

    ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe
    
    [ Upstream commit 41a736ac20602f64773e80f0f5b32cde1830a44a ]
    
    The pm_runtime_enable will increase power disable depth. Thus
    a pairing decrement is needed on the error handling path to
    keep it balanced according to context. We fix it by moving
    pm_runtime_enable to the endding of wm8997_probe
    
    Fixes:40843aea5a9bd ("ASoC: wm8997: Initial CODEC driver")
    
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Link: https://lore.kernel.org/r/20220928160116.125020-2-zhangqilong3@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 31ac867a1b81fbbd26e8cdd2b56a3c04a7dca7eb
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Thu Sep 22 21:06:40 2022 +0200

    mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe()
    
    [ Upstream commit cb58188ad90a61784a56a64f5107faaf2ad323e7 ]
    
    A dma_free_coherent() call is missing in the error handling path of the
    probe, as already done in the remove function.
    
    Fixes: 3a96dff0f828 ("mmc: SD/MMC Host Controller for Wondermedia WM8505/WM8650")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/53fc6ffa5d1c428fefeae7d313cf4a669c3a1e98.1663873255.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6a956425411f587f10d9de3cdb388ee62ecfa33a
Author: Andreas Pape <apape@de.adit-jv.com>
Date:   Mon Sep 26 18:58:13 2022 +0200

    ALSA: dmaengine: increment buffer pointer atomically
    
    [ Upstream commit d1c442019594692c64a70a86ad88eb5b6db92216 ]
    
    Setting pointer and afterwards checking for wraparound leads
    to the possibility of returning the inconsistent pointer position.
    
    This patch increments buffer pointer atomically to avoid this issue.
    
    Fixes: e7f73a1613567a ("ASoC: Add dmaengine PCM helper functions")
    Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
    Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
    Link: https://lore.kernel.org/r/1664211493-11789-1-git-send-email-erosca@de.adit-jv.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 57ff158b9014508be02a369fd2f98f614b13afd2
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Wed Jun 15 15:57:01 2022 +0300

    drm/msm/dpu: index dpu_kms->hw_vbif using vbif_idx
    
    [ Upstream commit 7538f80ae0d98bf51eb89eee5344aec219902d42 ]
    
    Remove loops over hw_vbif. Instead always VBIF's idx as an index in the
    array. This fixes an error in dpu_kms_hw_init(), where we fill
    dpu_kms->hw_vbif[i], but check for an error pointer at
    dpu_kms->hw_vbif[vbif_idx].
    
    Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/489569/
    Link: https://lore.kernel.org/r/20220615125703.24647-1-dmitry.baryshkov@linaro.org
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 59980701127336c52e1511718892197338707dbe
Author: Liang He <windhl@126.com>
Date:   Wed Sep 14 21:43:54 2022 +0800

    ASoC: eureka-tlv320: Hold reference returned from of_find_xxx API
    
    [ Upstream commit bfb735a3ceff0bab6473bac275da96f9b2a06dec ]
    
    In eukrea_tlv320_probe(), we need to hold the reference returned
    from of_find_compatible_node() which has increased the refcount
    and then call of_node_put() with it when done.
    
    Fixes: 66f232908de2 ("ASoC: eukrea-tlv320: Add DT support.")
    Co-authored-by: Kelin Wang <wangkelin2023@163.com>
    Signed-off-by: Liang He <windhl@126.com>
    Link: https://lore.kernel.org/r/20220914134354.3995587-1-windhl@126.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit da39af14e5b16721fe9dc32025e5af0583538b58
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Thu Aug 25 09:33:57 2022 +0200

    mmc: au1xmmc: Fix an error handling path in au1xmmc_probe()
    
    [ Upstream commit 5cbedf52608cc3cbc1c2a9a861fb671620427a20 ]
    
    If clk_prepare_enable() fails, there is no point in calling
    clk_disable_unprepare() in the error handling path.
    
    Move the out_clk label at the right place.
    
    Fixes: b6507596dfd6 ("MIPS: Alchemy: au1xmmc: use clk framework")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/21d99886d07fa7fcbec74992657dabad98c935c4.1661412818.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5bc20bafcd87ba0858ab772cefc7047cb51bc249
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Tue Aug 30 15:34:50 2022 +0800

    drm/bridge: megachips: Fix a null pointer dereference bug
    
    [ Upstream commit 1ff673333d46d2c1b053ebd0c1c7c7c79e36943e ]
    
    When removing the module we will get the following warning:
    
    [   31.911505] i2c-core: driver [stdp2690-ge-b850v3-fw] unregistered
    [   31.912484] general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1] PREEMPT SMP KASAN PTI
    [   31.913338] KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
    [   31.915280] RIP: 0010:drm_bridge_remove+0x97/0x130
    [   31.921825] Call Trace:
    [   31.922533]  stdp4028_ge_b850v3_fw_remove+0x34/0x60 [megachips_stdpxxxx_ge_b850v3_fw]
    [   31.923139]  i2c_device_remove+0x181/0x1f0
    
    The two bridges (stdp2690, stdp4028) do not probe at the same time, so
    the driver does not call ge_b850v3_resgiter() when probing, causing the
    driver to try to remove the object that has not been initialized.
    
    Fix this by checking whether both the bridges are probed.
    
    Fixes: 11632d4aa2b3 ("drm/bridge: megachips: Ensure both bridges are probed before registration")
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Robert Foss <robert.foss@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220830073450.1897020-1-zheyuma97@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 01dbdaa0f9d3a2bedce1231e08be0519b217a148
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Thu Aug 25 16:13:36 2022 +0200

    platform/x86: msi-laptop: Fix resource cleanup
    
    [ Upstream commit 5523632aa10f906dfe2eb714ee748590dc7fc6b1 ]
    
    Fix the input-device not getting free-ed on probe-errors and
    fix the msi_touchpad_dwork not getting cancelled on neither
    probe-errors nor on remove.
    
    Fixes: 143a4c0284dc ("msi-laptop: send out touchpad on/off key")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220825141336.208597-3-hdegoede@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 940c3b9b6642a3d21796b054d166341642476d82
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Thu Aug 25 16:13:34 2022 +0200

    platform/x86: msi-laptop: Fix old-ec check for backlight registering
    
    [ Upstream commit 83ac7a1c2ed5f17caa07cbbc84bad3c05dc3bf22 ]
    
    Commit 2cc6c717799f ("msi-laptop: Port to new backlight interface
    selection API") replaced this check:
    
            if (!quirks->old_ec_model || acpi_video_backlight_support())
                    pr_info("Brightness ignored, ...");
            else
                    do_register();
    
    With:
    
            if (quirks->old_ec_model ||
                acpi_video_get_backlight_type() == acpi_backlight_vendor)
                    do_register();
    
    But since the do_register() part was part of the else branch, the entire
    condition should be inverted.  So not only the 2 statements on either
    side of the || should be inverted, but the || itself should be replaced
    with a &&.
    
    In practice this has likely not been an issue because the new-ec models
    (old_ec_model==false) likely all support ACPI video backlight control,
    making acpi_video_get_backlight_type() return acpi_backlight_video
    turning the second part of the || also false when old_ec_model == false.
    
    Fixes: 2cc6c717799f ("msi-laptop: Port to new backlight interface selection API")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220825141336.208597-1-hdegoede@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 473a734e33cc2fd24b3f28d657e712a72c0c45f3
Author: Rustam Subkhankulov <subkhankulov@ispras.ru>
Date:   Sun Aug 14 01:08:43 2022 +0300

    platform/chrome: fix double-free in chromeos_laptop_prepare()
    
    [ Upstream commit 6ad4194d6a1e1d11b285989cd648ef695b4a93c0 ]
    
    If chromeos_laptop_prepare_i2c_peripherals() fails after allocating memory
    for 'cros_laptop->i2c_peripherals', this memory is freed at 'err_out' label
    and nonzero value is returned. Then chromeos_laptop_destroy() is called,
    resulting in double-free error.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Signed-off-by: Rustam Subkhankulov <subkhankulov@ispras.ru>
    Fixes: 5020cd29d8bf ("platform/chrome: chromeos_laptop - supply properties for ACPI devices")
    Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
    Link: https://lore.kernel.org/r/20220813220843.2373004-1-subkhankulov@ispras.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95ae458209f5a556bba98aff872f933694914eb7
Author: Maxime Ripard <maxime@cerno.tech>
Date:   Mon Jul 11 19:38:31 2022 +0200

    drm/mipi-dsi: Detach devices when removing the host
    
    [ Upstream commit 668a8f17b5290d04ef7343636a5588a0692731a1 ]
    
    Whenever the MIPI-DSI host is unregistered, the code of
    mipi_dsi_host_unregister() loops over every device currently found on that
    bus and will unregister it.
    
    However, it doesn't detach it from the bus first, which leads to all kind
    of resource leaks if the host wants to perform some clean up whenever a
    device is detached.
    
    Fixes: 068a00233969 ("drm: Add MIPI DSI bus support")
    Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20220711173939.1132294-2-maxime@cerno.tech
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4f163f566c92c6d0b39c52830e2c8b4ca8243f75
Author: Alvin Šipraga <alsi@bang-olufsen.dk>
Date:   Sun Jun 12 16:48:53 2022 +0200

    drm: bridge: adv7511: fix CEC power down control register offset
    
    [ Upstream commit 1d22b6033ea113a4c3850dfa2c0770885c81aec8 ]
    
    The ADV7511_REG_CEC_CTRL = 0xE2 register is part of the main register
    map - not the CEC register map. As such, we shouldn't apply an offset to
    the register address. Doing so will cause us to address a bogus register
    for chips with a CEC register map offset (e.g. ADV7533).
    
    Fixes: 3b1b975003e4 ("drm: adv7511/33: add HDMI CEC support")
    Signed-off-by: Alvin Šipraga <alsi@bang-olufsen.dk>
    Reviewed-by: Robert Foss <robert.foss@linaro.org>
    Signed-off-by: Robert Foss <robert.foss@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220612144854.2223873-2-alvin@pqrs.dk
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 84e2394b0be397f7198986aa9a28207f70b29bd4
Author: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Date:   Mon Oct 3 17:19:27 2022 +0100

    net: mvpp2: fix mvpp2 debugfs leak
    
    [ Upstream commit 0152dfee235e87660f52a117fc9f70dc55956bb4 ]
    
    When mvpp2 is unloaded, the driver specific debugfs directory is not
    removed, which technically leads to a memory leak. However, this
    directory is only created when the first device is probed, so the
    hardware is present. Removing the module is only something a developer
    would to when e.g. testing out changes, so the module would be
    reloaded. So this memory leak is minor.
    
    The original attempt in commit fe2c9c61f668 ("net: mvpp2: debugfs: fix
    memory leak when using debugfs_lookup()") that was labelled as a memory
    leak fix was not, it fixed a refcount leak, but in doing so created a
    problem when the module is reloaded - the directory already exists, but
    mvpp2_root is NULL, so we lose all debugfs entries. This fix has been
    reverted.
    
    This is the alternative fix, where we remove the offending directory
    whenever the driver is unloaded.
    
    Fixes: 21da57a23125 ("net: mvpp2: add a debugfs interface for the Header Parser")
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Reviewed-by: Marcin Wojtas <mw@semihalf.com>
    Link: https://lore.kernel.org/r/E1ofOAB-00CzkG-UO@rmk-PC.armlinux.org.uk
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f5686a03b138f6330eeda082ee4f96c8109f56f3
Author: Eric Dumazet <edumazet@google.com>
Date:   Sat Oct 1 13:51:02 2022 -0700

    once: add DO_ONCE_SLOW() for sleepable contexts
    
    [ Upstream commit 62c07983bef9d3e78e71189441e1a470f0d1e653 ]
    
    Christophe Leroy reported a ~80ms latency spike
    happening at first TCP connect() time.
    
    This is because __inet_hash_connect() uses get_random_once()
    to populate a perturbation table which became quite big
    after commit 4c2c8f03a5ab ("tcp: increase source port perturb table to 2^16")
    
    get_random_once() uses DO_ONCE(), which block hard irqs for the duration
    of the operation.
    
    This patch adds DO_ONCE_SLOW() which uses a mutex instead of a spinlock
    for operations where we prefer to stay in process context.
    
    Then __inet_hash_connect() can use get_random_slow_once()
    to populate its perturbation table.
    
    Fixes: 4c2c8f03a5ab ("tcp: increase source port perturb table to 2^16")
    Fixes: 190cc82489f4 ("tcp: change source port randomizarion at connect() time")
    Reported-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Link: https://lore.kernel.org/netdev/CANn89iLAEYBaoYajy0Y9UmGFff5GPxDUoG-ErVB2jDdRNQ5Tug@mail.gmail.com/T/#t
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Willy Tarreau <w@1wt.eu>
    Tested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 70421f9708d4cf14c2bd15de58862a3d22e00bbe
Author: Jianglei Nie <niejianglei2021@163.com>
Date:   Fri Sep 30 14:28:43 2022 +0800

    bnx2x: fix potential memory leak in bnx2x_tpa_stop()
    
    [ Upstream commit b43f9acbb8942b05252be83ac25a81cec70cc192 ]
    
    bnx2x_tpa_stop() allocates a memory chunk from new_data with
    bnx2x_frag_alloc(). The new_data should be freed when gets some error.
    But when "pad + len > fp->rx_buf_size" is true, bnx2x_tpa_stop() returns
    without releasing the new_data, which will lead to a memory leak.
    
    We should free the new_data with bnx2x_frag_free() when "pad + len >
    fp->rx_buf_size" is true.
    
    Fixes: 07b0f00964def8af9321cfd6c4a7e84f6362f728 ("bnx2x: fix possible panic under memory stress")
    Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e3cb25d3ad08f5dbd53ce2b31720cad529944322
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Thu Sep 29 00:25:37 2022 +0900

    net: rds: don't hold sock lock when cancelling work from rds_tcp_reset_callbacks()
    
    [ Upstream commit a91b750fd6629354460282bbf5146c01b05c4859 ]
    
    syzbot is reporting lockdep warning at rds_tcp_reset_callbacks() [1], for
    commit ac3615e7f3cffe2a ("RDS: TCP: Reduce code duplication in
    rds_tcp_reset_callbacks()") added cancel_delayed_work_sync() into a section
    protected by lock_sock() without realizing that rds_send_xmit() might call
    lock_sock().
    
    We don't need to protect cancel_delayed_work_sync() using lock_sock(), for
    even if rds_{send,recv}_worker() re-queued this work while __flush_work()
     from cancel_delayed_work_sync() was waiting for this work to complete,
    retried rds_{send,recv}_worker() is no-op due to the absence of RDS_CONN_UP
    bit.
    
    Link: https://syzkaller.appspot.com/bug?extid=78c55c7bc6f66e53dce2 [1]
    Reported-by: syzbot <syzbot+78c55c7bc6f66e53dce2@syzkaller.appspotmail.com>
    Co-developed-by: Hillf Danton <hdanton@sina.com>
    Signed-off-by: Hillf Danton <hdanton@sina.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Tested-by: syzbot <syzbot+78c55c7bc6f66e53dce2@syzkaller.appspotmail.com>
    Fixes: ac3615e7f3cffe2a ("RDS: TCP: Reduce code duplication in rds_tcp_reset_callbacks()")
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a434d10e7a90e301ea4a1826ee758b53c79d7de8
Author: Neal Cardwell <ncardwell@google.com>
Date:   Wed Sep 28 16:03:31 2022 -0400

    tcp: fix tcp_cwnd_validate() to not forget is_cwnd_limited
    
    [ Upstream commit f4ce91ce12a7c6ead19b128ffa8cff6e3ded2a14 ]
    
    This commit fixes a bug in the tracking of max_packets_out and
    is_cwnd_limited. This bug can cause the connection to fail to remember
    that is_cwnd_limited is true, causing the connection to fail to grow
    cwnd when it should, causing throughput to be lower than it should be.
    
    The following event sequence is an example that triggers the bug:
    
     (a) The connection is cwnd_limited, but packets_out is not at its
         peak due to TSO deferral deciding not to send another skb yet.
         In such cases the connection can advance max_packets_seq and set
         tp->is_cwnd_limited to true and max_packets_out to a small
         number.
    
    (b) Then later in the round trip the connection is pacing-limited (not
         cwnd-limited), and packets_out is larger. In such cases the
         connection would raise max_packets_out to a bigger number but
         (unexpectedly) flip tp->is_cwnd_limited from true to false.
    
    This commit fixes that bug.
    
    One straightforward fix would be to separately track (a) the next
    window after max_packets_out reaches a maximum, and (b) the next
    window after tp->is_cwnd_limited is set to true. But this would
    require consuming an extra u32 sequence number.
    
    Instead, to save space we track only the most important
    information. Specifically, we track the strongest available signal of
    the degree to which the cwnd is fully utilized:
    
    (1) If the connection is cwnd-limited then we remember that fact for
    the current window.
    
    (2) If the connection not cwnd-limited then we track the maximum
    number of outstanding packets in the current window.
    
    In particular, note that the new logic cannot trigger the buggy
    (a)/(b) sequence above because with the new logic a condition where
    tp->packets_out > tp->max_packets_out can only trigger an update of
    tp->is_cwnd_limited if tp->is_cwnd_limited is false.
    
    This first showed up in a testing of a BBRv2 dev branch, but this
    buggy behavior highlighted a general issue with the
    tcp_cwnd_validate() logic that can cause cwnd to fail to increase at
    the proper rate for any TCP congestion control, including Reno or
    CUBIC.
    
    Fixes: ca8a22634381 ("tcp: make cwnd-limited checks measurement-based, and gentler")
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Kevin(Yudong) Yang <yyd@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8fa99a3a11bdd77fef6b4a97f1021eb30b5ba40
Author: Xin Long <lucien.xin@gmail.com>
Date:   Wed Sep 28 14:10:13 2022 -0400

    sctp: handle the error returned from sctp_auth_asoc_init_active_key
    
    [ Upstream commit 022152aaebe116a25c39818a07e175a8cd3c1e11 ]
    
    When it returns an error from sctp_auth_asoc_init_active_key(), the
    active_key is actually not updated. The old sh_key will be freeed
    while it's still used as active key in asoc. Then an use-after-free
    will be triggered when sending patckets, as found by syzbot:
    
      sctp_auth_shkey_hold+0x22/0xa0 net/sctp/auth.c:112
      sctp_set_owner_w net/sctp/socket.c:132 [inline]
      sctp_sendmsg_to_asoc+0xbd5/0x1a20 net/sctp/socket.c:1863
      sctp_sendmsg+0x1053/0x1d50 net/sctp/socket.c:2025
      inet_sendmsg+0x99/0xe0 net/ipv4/af_inet.c:819
      sock_sendmsg_nosec net/socket.c:714 [inline]
      sock_sendmsg+0xcf/0x120 net/socket.c:734
    
    This patch is to fix it by not replacing the sh_key when it returns
    errors from sctp_auth_asoc_init_active_key() in sctp_auth_set_key().
    For sctp_auth_set_active_key(), old active_key_id will be set back
    to asoc->active_key_id when the same thing happens.
    
    Fixes: 58acd1009226 ("sctp: update active_key for asoc when old key is being replaced")
    Reported-by: syzbot+a236dd8e9622ed8954a3@syzkaller.appspotmail.com
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 27f74a47d5b1cf52d48af15993bb1caa31ad8f5b
Author: Duoming Zhou <duoming@zju.edu.cn>
Date:   Wed Sep 28 21:39:38 2022 +0800

    mISDN: fix use-after-free bugs in l1oip timer handlers
    
    [ Upstream commit 2568a7e0832ee30b0a351016d03062ab4e0e0a3f ]
    
    The l1oip_cleanup() traverses the l1oip_ilist and calls
    release_card() to cleanup module and stack. However,
    release_card() calls del_timer() to delete the timers
    such as keep_tl and timeout_tl. If the timer handler is
    running, the del_timer() will not stop it and result in
    UAF bugs. One of the processes is shown below:
    
        (cleanup routine)          |        (timer handler)
    release_card()                 | l1oip_timeout()
     ...                           |
     del_timer()                   | ...
     ...                           |
     kfree(hc) //FREE              |
                                   | hc->timeout_on = 0 //USE
    
    Fix by calling del_timer_sync() in release_card(), which
    makes sure the timer handlers have finished before the
    resources, such as l1oip and so on, have been deallocated.
    
    What's more, the hc->workq and hc->socket_thread can kick
    those timers right back in. We add a bool flag to show
    if card is released. Then, check this flag in hc->workq
    and hc->socket_thread.
    
    Fixes: 3712b42d4b1b ("Add layer1 over IP support")
    Signed-off-by: Duoming Zhou <duoming@zju.edu.cn>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7aac8c63f604e6a6a46560c0f0188cd0332cf320
Author: Junichi Uekawa <uekawa@chromium.org>
Date:   Wed Sep 28 15:45:38 2022 +0900

    vhost/vsock: Use kvmalloc/kvfree for larger packets.
    
    [ Upstream commit 0e3f72931fc47bb81686020cc643cde5d9cd0bb8 ]
    
    When copying a large file over sftp over vsock, data size is usually 32kB,
    and kmalloc seems to fail to try to allocate 32 32kB regions.
    
     vhost-5837: page allocation failure: order:4, mode:0x24040c0
     Call Trace:
      [<ffffffffb6a0df64>] dump_stack+0x97/0xdb
      [<ffffffffb68d6aed>] warn_alloc_failed+0x10f/0x138
      [<ffffffffb68d868a>] ? __alloc_pages_direct_compact+0x38/0xc8
      [<ffffffffb664619f>] __alloc_pages_nodemask+0x84c/0x90d
      [<ffffffffb6646e56>] alloc_kmem_pages+0x17/0x19
      [<ffffffffb6653a26>] kmalloc_order_trace+0x2b/0xdb
      [<ffffffffb66682f3>] __kmalloc+0x177/0x1f7
      [<ffffffffb66e0d94>] ? copy_from_iter+0x8d/0x31d
      [<ffffffffc0689ab7>] vhost_vsock_handle_tx_kick+0x1fa/0x301 [vhost_vsock]
      [<ffffffffc06828d9>] vhost_worker+0xf7/0x157 [vhost]
      [<ffffffffb683ddce>] kthread+0xfd/0x105
      [<ffffffffc06827e2>] ? vhost_dev_set_owner+0x22e/0x22e [vhost]
      [<ffffffffb683dcd1>] ? flush_kthread_worker+0xf3/0xf3
      [<ffffffffb6eb332e>] ret_from_fork+0x4e/0x80
      [<ffffffffb683dcd1>] ? flush_kthread_worker+0xf3/0xf3
    
    Work around by doing kvmalloc instead.
    
    Fixes: 433fc58e6bf2 ("VSOCK: Introduce vhost_vsock.ko")
    Signed-off-by: Junichi Uekawa <uekawa@chromium.org>
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Link: https://lore.kernel.org/r/20220928064538.667678-1-uekawa@chromium.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b22226d4e17a75d63ffafe6c39eebcc7c90216c9
Author: Vincent Whitchurch <vincent.whitchurch@axis.com>
Date:   Tue Sep 27 13:21:17 2022 +0200

    spi: s3c64xx: Fix large transfers with DMA
    
    [ Upstream commit 1224e29572f655facfcd850cf0f0a4784f36a903 ]
    
    The COUNT_VALUE in the PACKET_CNT register is 16-bit so the maximum
    value is 65535.  Asking the driver to transfer a larger size currently
    leads to the DMA transfer timing out.  Implement ->max_transfer_size()
    and have the core split the transfer as needed.
    
    Fixes: 230d42d422e7 ("spi: Add s3c64xx SPI Controller driver")
    Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
    Link: https://lore.kernel.org/r/20220927112117.77599-5-vincent.whitchurch@axis.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 49c636ede6b53a7001bbd1a1bceb40205534f317
Author: Phil Sutter <phil@nwl.cc>
Date:   Wed Sep 21 13:07:31 2022 +0200

    netfilter: nft_fib: Fix for rpath check with VRF devices
    
    [ Upstream commit 2a8a7c0eaa8747c16aa4a48d573aa920d5c00a5c ]
    
    Analogous to commit b575b24b8eee3 ("netfilter: Fix rpfilter
    dropping vrf packets by mistake") but for nftables fib expression:
    Add special treatment of VRF devices so that typical reverse path
    filtering via 'fib saddr . iif oif' expression works as expected.
    
    Fixes: f6d0cbcf09c50 ("netfilter: nf_tables: add fib expression")
    Signed-off-by: Phil Sutter <phil@nwl.cc>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8f0392b18f97ed7d5ab94ec6b969b0509196963
Author: Zhang Qilong <zhangqilong3@huawei.com>
Date:   Sat Sep 24 20:13:09 2022 +0800

    spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe
    
    [ Upstream commit 29f65f2171c85a9633daa380df14009a365f42f2 ]
    
    The pm_runtime_enable will increase power disable depth. Thus
    a pairing decrement is needed on the error handling path to
    keep it balanced according to context.
    
    Fixes:db91841b58f9a ("spi/omap100k: Convert to runtime PM")
    
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Link: https://lore.kernel.org/r/20220924121310.78331-4-zhangqilong3@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e4b17b461c992c30e594d24357a44951cf3cdc18
Author: Lee Jones <lee@kernel.org>
Date:   Mon Sep 12 14:38:55 2022 +0100

    bpf: Ensure correct locking around vulnerable function find_vpid()
    
    [ Upstream commit 83c10cc362d91c0d8d25e60779ee52fdbbf3894d ]
    
    The documentation for find_vpid() clearly states:
    
      "Must be called with the tasklist_lock or rcu_read_lock() held."
    
    Presently we do neither for find_vpid() instance in bpf_task_fd_query().
    Add proper rcu_read_lock/unlock() to fix the issue.
    
    Fixes: 41bdc4b40ed6f ("bpf: introduce bpf subcommand BPF_TASK_FD_QUERY")
    Signed-off-by: Lee Jones <lee@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Yonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/bpf/20220912133855.1218900-1-lee@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aed374b4729b37dd6a6280b69f1277d9494b15d2
Author: Zheng Yongjun <zhengyongjun3@huawei.com>
Date:   Thu Sep 8 13:55:13 2022 +0000

    net: fs_enet: Fix wrong check in do_pd_setup
    
    [ Upstream commit ec3f06b542a960806a81345042e4eee3f8c5dec4 ]
    
    Should check of_iomap return value 'fep->fec.fecp' instead of 'fep->fcc.fccp'
    
    Fixes: 976de6a8c304 ("fs_enet: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set.")
    Signed-off-by: Zheng Yongjun <zhengyongjun3@huawei.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 034f6f3726163513c86c7c01d139c56050b4781f
Author: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Date:   Fri Sep 2 14:48:32 2022 +0300

    wifi: rtl8xxxu: gen2: Fix mistake in path B IQ calibration
    
    [ Upstream commit e963a19c64ac0d2f8785d36a27391abd91ac77aa ]
    
    Found by comparing with the vendor driver. Currently this affects
    only the RTL8192EU, which is the only gen2 chip with 2 TX paths
    supported by this driver. It's unclear what kind of effect the
    mistake had in practice, since I don't have any RTL8192EU devices
    to test it.
    
    Fixes: e1547c535ede ("rtl8xxxu: First stab at adding IQK calibration for 8723bu parts")
    Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/30a59f3a-cfa9-8379-7af0-78a8f4c77cfd@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c14ff132725a5cdafb92774e0cf3c4d537cf255c
Author: Lorenz Bauer <oss@lmb.io>
Date:   Sat Sep 10 11:01:20 2022 +0000

    bpf: btf: fix truncated last_member_type_id in btf_struct_resolve
    
    [ Upstream commit a37a32583e282d8d815e22add29bc1e91e19951a ]
    
    When trying to finish resolving a struct member, btf_struct_resolve
    saves the member type id in a u16 temporary variable. This truncates
    the 32 bit type id value if it exceeds UINT16_MAX.
    
    As a result, structs that have members with type ids > UINT16_MAX and
    which need resolution will fail with a message like this:
    
        [67414] STRUCT ff_device size=120 vlen=12
            effect_owners type_id=67434 bits_offset=960 Member exceeds struct_size
    
    Fix this by changing the type of last_member_type_id to u32.
    
    Fixes: a0791f0df7d2 ("bpf: fix BTF limits")
    Reviewed-by: Stanislav Fomichev <sdf@google.com>
    Signed-off-by: Lorenz Bauer <oss@lmb.io>
    Link: https://lore.kernel.org/r/20220910110120.339242-1-oss@lmb.io
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0a143b329cd9fbd06c7673cfe7505038c1ef47e
Author: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Date:   Wed Aug 31 19:12:36 2022 +0300

    wifi: rtl8xxxu: Fix skb misuse in TX queue selection
    
    [ Upstream commit edd5747aa12ed61a5ecbfa58d3908623fddbf1e8 ]
    
    rtl8xxxu_queue_select() selects the wrong TX queues because it's
    reading memory from the wrong address. It expects to find ieee80211_hdr
    at skb->data, but that's not the case after skb_push(). Move the call
    to rtl8xxxu_queue_select() before the call to skb_push().
    
    Fixes: 26f1fad29ad9 ("New driver: rtl8xxxu (mac80211)")
    Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/7fa4819a-4f20-b2af-b7a6-8ee01ac49295@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0711e18d70faebb5e454970c5b22fbc66f69b27
Author: Xu Qiang <xuqiang36@huawei.com>
Date:   Thu Aug 25 06:53:24 2022 +0000

    spi: qup: add missing clk_disable_unprepare on error in spi_qup_pm_resume_runtime()
    
    [ Upstream commit 494a22765ce479c9f8ad181c5d24cffda9f534bb ]
    
    Add the missing clk_disable_unprepare() before return
    from spi_qup_pm_resume_runtime() in the error handling case.
    
    Fixes: dae1a7700b34 (“spi: qup: Handle clocks in pm_runtime suspend and resume”)
    Signed-off-by: Xu Qiang <xuqiang36@huawei.com>
    Link: https://lore.kernel.org/r/20220825065324.68446-2-xuqiang36@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23663a3048d4e24fc43efe489047abf772b872ca
Author: Xu Qiang <xuqiang36@huawei.com>
Date:   Thu Aug 25 06:53:23 2022 +0000

    spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume()
    
    [ Upstream commit 70034320fdc597b8f58b4a43bb547f17c4c5557a ]
    
    Add the missing clk_disable_unprepare() before return
    from spi_qup_resume() in the error handling case.
    
    Fixes: 64ff247a978f (“spi: Add Qualcomm QUP SPI controller support”)
    Signed-off-by: Xu Qiang <xuqiang36@huawei.com>
    Link: https://lore.kernel.org/r/20220825065324.68446-1-xuqiang36@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a01b56a6a802a0955db8467f8c0c945460e1a1a1
Author: Dan Carpenter <error27@gmail.com>
Date:   Fri Aug 19 08:22:32 2022 +0300

    wifi: rtl8xxxu: tighten bounds checking in rtl8xxxu_read_efuse()
    
    [ Upstream commit 620d5eaeb9059636864bda83ca1c68c20ede34a5 ]
    
    There some bounds checking to ensure that "map_addr" is not out of
    bounds before the start of the loop.  But the checking needs to be
    done as we iterate through the loop because "map_addr" gets larger as
    we iterate.
    
    Fixes: 26f1fad29ad9 ("New driver: rtl8xxxu (mac80211)")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Jes Sorensen <Jes.Sorensen@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/Yv8eGLdBslLAk3Ct@kili
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 269f650a0b26067092873308117e0bf0c6ec8289
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat Aug 27 13:42:07 2022 +0200

    spi: mt7621: Fix an error message in mt7621_spi_probe()
    
    [ Upstream commit 2b2bf6b7faa9010fae10dc7de76627a3fdb525b3 ]
    
    'status' is known to be 0 at this point. The expected error code is
    PTR_ERR(clk).
    
    Switch to dev_err_probe() in order to display the expected error code (in a
    human readable way).
    This also filters -EPROBE_DEFER cases, should it happen.
    
    Fixes: 1ab7f2a43558 ("staging: mt7621-spi: add mt7621 support")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
    Link: https://lore.kernel.org/r/928f3fb507d53ba0774df27cea0bbba4b055993b.1661599671.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff80b97fa4964513dc6e01a7d1856cd4c6aa275f
Author: Lam Thai <lamthai@arista.com>
Date:   Wed Aug 24 15:59:00 2022 -0700

    bpftool: Fix a wrong type cast in btf_dumper_int
    
    [ Upstream commit 7184aef9c0f7a81db8fd18d183ee42481d89bf35 ]
    
    When `data` points to a boolean value, casting it to `int *` is problematic
    and could lead to a wrong value being passed to `jsonw_bool`. Change the
    cast to `bool *` instead.
    
    Fixes: b12d6ec09730 ("bpf: btf: add btf print functionality")
    Signed-off-by: Lam Thai <lamthai@arista.com>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Reviewed-by: Quentin Monnet <quentin@isovalent.com>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    Link: https://lore.kernel.org/bpf/20220824225859.9038-1-lamthai@arista.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b194686e1e9320c931006ed6854bd4a4ab38b88
Author: Hari Chandrakanthan <quic_haric@quicinc.com>
Date:   Wed Jul 27 12:02:29 2022 +0530

    wifi: mac80211: allow bw change during channel switch in mesh
    
    [ Upstream commit 6b75f133fe05c36c52d691ff21545d5757fff721 ]
    
    From 'IEEE Std 802.11-2020 section 11.8.8.4.1':
      The mesh channel switch may be triggered by the need to avoid
      interference to a detected radar signal, or to reassign mesh STA
      channels to ensure the MBSS connectivity.
    
      A 20/40 MHz MBSS may be changed to a 20 MHz MBSS and a 20 MHz
      MBSS may be changed to a 20/40 MHz MBSS.
    
    Since the standard allows the change of bandwidth during
    the channel switch in mesh, remove the bandwidth check present in
    ieee80211_set_csa_beacon.
    
    Fixes: c6da674aff94 ("{nl,cfg,mac}80211: enable the triggering of CSA frame in mesh")
    Signed-off-by: Hari Chandrakanthan <quic_haric@quicinc.com>
    Link: https://lore.kernel.org/r/1658903549-21218-1-git-send-email-quic_haric@quicinc.com
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f12fc305c127bd07bb50373e29c6037696f916a8
Author: Wen Gong <quic_wgong@quicinc.com>
Date:   Mon Aug 1 10:19:30 2022 -0400

    wifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state()
    
    [ Upstream commit f020d9570a04df0762a2ac5c50cf1d8c511c9164 ]
    
    When peer delete failed in a disconnect operation, use-after-free
    detected by KFENCE in below log. It is because for each vdev_id and
    address, it has only one struct ath10k_peer, it is allocated in
    ath10k_peer_map_event(). When connected to an AP, it has more than
    one HTT_T2H_MSG_TYPE_PEER_MAP reported from firmware, then the
    array peer_map of struct ath10k will be set muti-elements to the
    same ath10k_peer in ath10k_peer_map_event(). When peer delete failed
    in ath10k_sta_state(), the ath10k_peer will be free for the 1st peer
    id in array peer_map of struct ath10k, and then use-after-free happened
    for the 2nd peer id because they map to the same ath10k_peer.
    
    And clean up all peers in array peer_map for the ath10k_peer, then
    user-after-free disappeared
    
    peer map event log:
    [  306.911021] wlan0: authenticate with b0:2a:43:e6:75:0e
    [  306.957187] ath10k_pci 0000:01:00.0: mac vdev 0 peer create b0:2a:43:e6:75:0e (new sta) sta 1 / 32 peer 1 / 33
    [  306.957395] ath10k_pci 0000:01:00.0: htt peer map vdev 0 peer b0:2a:43:e6:75:0e id 246
    [  306.957404] ath10k_pci 0000:01:00.0: htt peer map vdev 0 peer b0:2a:43:e6:75:0e id 198
    [  306.986924] ath10k_pci 0000:01:00.0: htt peer map vdev 0 peer b0:2a:43:e6:75:0e id 166
    
    peer unmap event log:
    [  435.715691] wlan0: deauthenticating from b0:2a:43:e6:75:0e by local choice (Reason: 3=DEAUTH_LEAVING)
    [  435.716802] ath10k_pci 0000:01:00.0: mac vdev 0 peer delete b0:2a:43:e6:75:0e sta ffff990e0e9c2b50 (sta gone)
    [  435.717177] ath10k_pci 0000:01:00.0: htt peer unmap vdev 0 peer b0:2a:43:e6:75:0e id 246
    [  435.717186] ath10k_pci 0000:01:00.0: htt peer unmap vdev 0 peer b0:2a:43:e6:75:0e id 198
    [  435.717193] ath10k_pci 0000:01:00.0: htt peer unmap vdev 0 peer b0:2a:43:e6:75:0e id 166
    
    use-after-free log:
    [21705.888627] wlan0: deauthenticating from d0:76:8f:82:be:75 by local choice (Reason: 3=DEAUTH_LEAVING)
    [21713.799910] ath10k_pci 0000:01:00.0: failed to delete peer d0:76:8f:82:be:75 for vdev 0: -110
    [21713.799925] ath10k_pci 0000:01:00.0: found sta peer d0:76:8f:82:be:75 (ptr 0000000000000000 id 102) entry on vdev 0 after it was supposedly removed
    [21713.799968] ==================================================================
    [21713.799991] BUG: KFENCE: use-after-free read in ath10k_sta_state+0x265/0xb8a [ath10k_core]
    [21713.799991]
    [21713.799997] Use-after-free read at 0x00000000abe1c75e (in kfence-#69):
    [21713.800010]  ath10k_sta_state+0x265/0xb8a [ath10k_core]
    [21713.800041]  drv_sta_state+0x115/0x677 [mac80211]
    [21713.800059]  __sta_info_destroy_part2+0xb1/0x133 [mac80211]
    [21713.800076]  __sta_info_flush+0x11d/0x162 [mac80211]
    [21713.800093]  ieee80211_set_disassoc+0x12d/0x2f4 [mac80211]
    [21713.800110]  ieee80211_mgd_deauth+0x26c/0x29b [mac80211]
    [21713.800137]  cfg80211_mlme_deauth+0x13f/0x1bb [cfg80211]
    [21713.800153]  nl80211_deauthenticate+0xf8/0x121 [cfg80211]
    [21713.800161]  genl_rcv_msg+0x38e/0x3be
    [21713.800166]  netlink_rcv_skb+0x89/0xf7
    [21713.800171]  genl_rcv+0x28/0x36
    [21713.800176]  netlink_unicast+0x179/0x24b
    [21713.800181]  netlink_sendmsg+0x3a0/0x40e
    [21713.800187]  sock_sendmsg+0x72/0x76
    [21713.800192]  ____sys_sendmsg+0x16d/0x1e3
    [21713.800196]  ___sys_sendmsg+0x95/0xd1
    [21713.800200]  __sys_sendmsg+0x85/0xbf
    [21713.800205]  do_syscall_64+0x43/0x55
    [21713.800210]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [21713.800213]
    [21713.800219] kfence-#69: 0x000000009149b0d5-0x000000004c0697fb, size=1064, cache=kmalloc-2k
    [21713.800219]
    [21713.800224] allocated by task 13 on cpu 0 at 21705.501373s:
    [21713.800241]  ath10k_peer_map_event+0x7e/0x154 [ath10k_core]
    [21713.800254]  ath10k_htt_t2h_msg_handler+0x586/0x1039 [ath10k_core]
    [21713.800265]  ath10k_htt_htc_t2h_msg_handler+0x12/0x28 [ath10k_core]
    [21713.800277]  ath10k_htc_rx_completion_handler+0x14c/0x1b5 [ath10k_core]
    [21713.800283]  ath10k_pci_process_rx_cb+0x195/0x1df [ath10k_pci]
    [21713.800294]  ath10k_ce_per_engine_service+0x55/0x74 [ath10k_core]
    [21713.800305]  ath10k_ce_per_engine_service_any+0x76/0x84 [ath10k_core]
    [21713.800310]  ath10k_pci_napi_poll+0x49/0x144 [ath10k_pci]
    [21713.800316]  net_rx_action+0xdc/0x361
    [21713.800320]  __do_softirq+0x163/0x29a
    [21713.800325]  asm_call_irq_on_stack+0x12/0x20
    [21713.800331]  do_softirq_own_stack+0x3c/0x48
    [21713.800337]  __irq_exit_rcu+0x9b/0x9d
    [21713.800342]  common_interrupt+0xc9/0x14d
    [21713.800346]  asm_common_interrupt+0x1e/0x40
    [21713.800351]  ksoftirqd_should_run+0x5/0x16
    [21713.800357]  smpboot_thread_fn+0x148/0x211
    [21713.800362]  kthread+0x150/0x15f
    [21713.800367]  ret_from_fork+0x22/0x30
    [21713.800370]
    [21713.800374] freed by task 708 on cpu 1 at 21713.799953s:
    [21713.800498]  ath10k_sta_state+0x2c6/0xb8a [ath10k_core]
    [21713.800515]  drv_sta_state+0x115/0x677 [mac80211]
    [21713.800532]  __sta_info_destroy_part2+0xb1/0x133 [mac80211]
    [21713.800548]  __sta_info_flush+0x11d/0x162 [mac80211]
    [21713.800565]  ieee80211_set_disassoc+0x12d/0x2f4 [mac80211]
    [21713.800581]  ieee80211_mgd_deauth+0x26c/0x29b [mac80211]
    [21713.800598]  cfg80211_mlme_deauth+0x13f/0x1bb [cfg80211]
    [21713.800614]  nl80211_deauthenticate+0xf8/0x121 [cfg80211]
    [21713.800619]  genl_rcv_msg+0x38e/0x3be
    [21713.800623]  netlink_rcv_skb+0x89/0xf7
    [21713.800628]  genl_rcv+0x28/0x36
    [21713.800632]  netlink_unicast+0x179/0x24b
    [21713.800637]  netlink_sendmsg+0x3a0/0x40e
    [21713.800642]  sock_sendmsg+0x72/0x76
    [21713.800646]  ____sys_sendmsg+0x16d/0x1e3
    [21713.800651]  ___sys_sendmsg+0x95/0xd1
    [21713.800655]  __sys_sendmsg+0x85/0xbf
    [21713.800659]  do_syscall_64+0x43/0x55
    [21713.800663]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Tested-on: QCA6174 hw3.2 PCI WLAN.RM.4.4.1-00288-QCARMSWPZ-1
    
    Fixes: d0eeafad1189 ("ath10k: Clean up peer when sta goes away.")
    Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20220801141930.16794-1-quic_wgong@quicinc.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34ef078113599dff962e295ed7e13f4785700a23
Author: Kees Cook <keescook@chromium.org>
Date:   Wed Sep 7 16:40:44 2022 -0700

    sh: machvec: Use char[] for section boundaries
    
    [ Upstream commit c5783af354688b24abd359f7086c282ec74de993 ]
    
    As done for other sections, define the extern as a character array,
    which relaxes many of the compiler-time object size checks, which would
    otherwise assume it's a single long. Solves the following build error:
    
    arch/sh/kernel/machvec.c: error: array subscript 'struct sh_machine_vector[0]' is partly outside array bounds of 'long int[1]' [-Werror=array-bounds]:  => 105:33
    
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Rich Felker <dalias@libc.org>
    Cc: linux-sh@vger.kernel.org
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Link: https://lore.kernel.org/lkml/alpine.DEB.2.22.394.2209050944290.964530@ramsan.of.borg/
    Fixes: 9655ad03af2d ("sh: Fixup machvec support.")
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Acked-by: Rich Felker <dalias@libc.org>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4311da9fb0e86c8545d7bd453c2b91345513166d
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Sep 20 19:12:52 2022 +0200

    selinux: use "grep -E" instead of "egrep"
    
    commit c969bb8dbaf2f3628927eae73e7c579a74cf1b6e upstream.
    
    The latest version of grep claims that egrep is now obsolete so the build
    now contains warnings that look like:
            egrep: warning: egrep is obsolescent; using grep -E
    fix this by using "grep -E" instead.
    
    Cc: Paul Moore <paul@paul-moore.com>
    Cc: Stephen Smalley <stephen.smalley.work@gmail.com>
    Cc: Eric Paris <eparis@parisplace.org>
    Cc: selinux@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [PM: tweak to remove vdso reference, cleanup subj line]
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5cea9cd9f42903f18cfc1e1ae835692dcfbfbc93
Author: Sean Christopherson <seanjc@google.com>
Date:   Tue Aug 30 23:15:48 2022 +0000

    KVM: nVMX: Unconditionally purge queued/injected events on nested "exit"
    
    commit d953540430c5af57f5de97ea9e36253908204027 upstream.
    
    Drop pending exceptions and events queued for re-injection when leaving
    nested guest mode, even if the "exit" is due to VM-Fail, SMI, or forced
    by host userspace.  Failure to purge events could result in an event
    belonging to L2 being injected into L1.
    
    This _should_ never happen for VM-Fail as all events should be blocked by
    nested_run_pending, but it's possible if KVM, not the L1 hypervisor, is
    the source of VM-Fail when running vmcs02.
    
    SMI is a nop (barring unknown bugs) as recognition of SMI and thus entry
    to SMM is blocked by pending exceptions and re-injected events.
    
    Forced exit is definitely buggy, but has likely gone unnoticed because
    userspace probably follows the forced exit with KVM_SET_VCPU_EVENTS (or
    some other ioctl() that purges the queue).
    
    Fixes: 4f350c6dbcb9 ("kvm: nVMX: Handle deferred early VMLAUNCH/VMRESUME failure properly")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Reviewed-by: Jim Mattson <jmattson@google.com>
    Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
    Link: https://lore.kernel.org/r/20220830231614.3580124-2-seanjc@google.com
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a609d24afb1b3b9f52e92fa84b241e3121ce0e8
Author: Michal Luczaj <mhal@rbox.co>
Date:   Mon Aug 22 00:06:47 2022 +0200

    KVM: x86/emulator: Fix handing of POP SS to correctly set interruptibility
    
    commit 6aa5c47c351b22c21205c87977c84809cd015fcf upstream.
    
    The emulator checks the wrong variable while setting the CPU
    interruptibility state, the target segment is embedded in the instruction
    opcode, not the ModR/M register.  Fix the condition.
    
    Signed-off-by: Michal Luczaj <mhal@rbox.co>
    Fixes: a5457e7bcf9a ("KVM: emulate: POP SS triggers a MOV SS shadow too")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/all/20220821215900.1419215-1-mhal@rbox.co
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e642bd051706d1174fbeb6ec0da8a1fc2189264
Author: Steven Rostedt (Google) <rostedt@goodmis.org>
Date:   Thu Sep 29 10:49:09 2022 -0400

    ring-buffer: Fix race between reset page and reading page
    
    commit a0fcaaed0c46cf9399d3a2d6e0c87ddb3df0e044 upstream.
    
    The ring buffer is broken up into sub buffers (currently of page size).
    Each sub buffer has a pointer to its "tail" (the last event written to the
    sub buffer). When a new event is requested, the tail is locally
    incremented to cover the size of the new event. This is done in a way that
    there is no need for locking.
    
    If the tail goes past the end of the sub buffer, the process of moving to
    the next sub buffer takes place. After setting the current sub buffer to
    the next one, the previous one that had the tail go passed the end of the
    sub buffer needs to be reset back to the original tail location (before
    the new event was requested) and the rest of the sub buffer needs to be
    "padded".
    
    The race happens when a reader takes control of the sub buffer. As readers
    do a "swap" of sub buffers from the ring buffer to get exclusive access to
    the sub buffer, it replaces the "head" sub buffer with an empty sub buffer
    that goes back into the writable portion of the ring buffer. This swap can
    happen as soon as the writer moves to the next sub buffer and before it
    updates the last sub buffer with padding.
    
    Because the sub buffer can be released to the reader while the writer is
    still updating the padding, it is possible for the reader to see the event
    that goes past the end of the sub buffer. This can cause obvious issues.
    
    To fix this, add a few memory barriers so that the reader definitely sees
    the updates to the sub buffer, and also waits until the writer has put
    back the "tail" of the sub buffer back to the last event that was written
    on it.
    
    To be paranoid, it will only spin for 1 second, otherwise it will
    warn and shutdown the ring buffer code. 1 second should be enough as
    the writer does have preemption disabled. If the writer doesn't move
    within 1 second (with preemption disabled) something is horribly
    wrong. No interrupt should last 1 second!
    
    Link: https://lore.kernel.org/all/20220830120854.7545-1-jiazi.li@transsion.com/
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216369
    Link: https://lkml.kernel.org/r/20220929104909.0650a36c@gandalf.local.home
    
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: stable@vger.kernel.org
    Fixes: c7b0930857e22 ("ring-buffer: prevent adding write in discarded area")
    Reported-by: Jiazi.Li <jiazi.li@transsion.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d3e7f0407d7618baeca9f3f8bb098dfff78e803
Author: Steven Rostedt (Google) <rostedt@goodmis.org>
Date:   Tue Sep 27 19:15:25 2022 -0400

    ring-buffer: Check pending waiters when doing wake ups as well
    
    commit ec0bbc5ec5664dcee344f79373852117dc672c86 upstream.
    
    The wake up waiters only checks the "wakeup_full" variable and not the
    "full_waiters_pending". The full_waiters_pending is set when a waiter is
    added to the wait queue. The wakeup_full is only set when an event is
    triggered, and it clears the full_waiters_pending to avoid multiple calls
    to irq_work_queue().
    
    The irq_work callback really needs to check both wakeup_full as well as
    full_waiters_pending such that this code can be used to wake up waiters
    when a file is closed that represents the ring buffer and the waiters need
    to be woken up.
    
    Link: https://lkml.kernel.org/r/20220927231824.209460321@goodmis.org
    
    Cc: stable@vger.kernel.org
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Fixes: 15693458c4bc0 ("tracing/ring-buffer: Move poll wake ups into ring buffer code")
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d3485b6b95d144776cd3ea6a67cbfd6c3c8546d
Author: Steven Rostedt (Google) <rostedt@goodmis.org>
Date:   Tue Sep 27 14:43:17 2022 -0400

    ring-buffer: Allow splice to read previous partially read pages
    
    commit fa8f4a89736b654125fb254b0db753ac68a5fced upstream.
    
    If a page is partially read, and then the splice system call is run
    against the ring buffer, it will always fail to read, no matter how much
    is in the ring buffer. That's because the code path for a partial read of
    the page does will fail if the "full" flag is set.
    
    The splice system call wants full pages, so if the read of the ring buffer
    is not yet full, it should return zero, and the splice will block. But if
    a previous read was done, where the beginning has been consumed, it should
    still be given to the splice caller if the rest of the page has been
    written to.
    
    This caused the splice command to never consume data in this scenario, and
    let the ring buffer just fill up and lose events.
    
    Link: https://lkml.kernel.org/r/20220927144317.46be6b80@gandalf.local.home
    
    Cc: stable@vger.kernel.org
    Fixes: 8789a9e7df6bf ("ring-buffer: read page interface")
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d369d54f731888c58bfcab42b7d3c2b8fd185fce
Author: Zheng Yejian <zhengyejian1@huawei.com>
Date:   Mon Sep 26 15:20:08 2022 +0000

    ftrace: Properly unset FTRACE_HASH_FL_MOD
    
    commit 0ce0638edf5ec83343302b884fa208179580700a upstream.
    
    When executing following commands like what document said, but the log
    "#### all functions enabled ####" was not shown as expect:
      1. Set a 'mod' filter:
        $ echo 'write*:mod:ext3' > /sys/kernel/tracing/set_ftrace_filter
      2. Invert above filter:
        $ echo '!write*:mod:ext3' >> /sys/kernel/tracing/set_ftrace_filter
      3. Read the file:
        $ cat /sys/kernel/tracing/set_ftrace_filter
    
    By some debugging, I found that flag FTRACE_HASH_FL_MOD was not unset
    after inversion like above step 2 and then result of ftrace_hash_empty()
    is incorrect.
    
    Link: https://lkml.kernel.org/r/20220926152008.2239274-1-zhengyejian1@huawei.com
    
    Cc: <mingo@redhat.com>
    Cc: stable@vger.kernel.org
    Fixes: 8c08f0d5c6fb ("ftrace: Have cached module filters be an active filter")
    Signed-off-by: Zheng Yejian <zhengyejian1@huawei.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1af414bf3b795328b4ce1b5c451cb4f9f5787c00
Author: Rik van Riel <riel@surriel.com>
Date:   Mon Aug 8 15:00:19 2022 -0400

    livepatch: fix race between fork and KLP transition
    
    commit 747f7a2901174c9afa805dddfb7b24db6f65e985 upstream.
    
    The KLP transition code depends on the TIF_PATCH_PENDING and
    the task->patch_state to stay in sync. On a normal (forward)
    transition, TIF_PATCH_PENDING will be set on every task in
    the system, while on a reverse transition (after a failed
    forward one) first TIF_PATCH_PENDING will be cleared from
    every task, followed by it being set on tasks that need to
    be transitioned back to the original code.
    
    However, the fork code copies over the TIF_PATCH_PENDING flag
    from the parent to the child early on, in dup_task_struct and
    setup_thread_stack. Much later, klp_copy_process will set
    child->patch_state to match that of the parent.
    
    However, the parent's patch_state may have been changed by KLP loading
    or unloading since it was initially copied over into the child.
    
    This results in the KLP code occasionally hitting this warning in
    klp_complete_transition:
    
            for_each_process_thread(g, task) {
                    WARN_ON_ONCE(test_tsk_thread_flag(task, TIF_PATCH_PENDING));
                    task->patch_state = KLP_UNDEFINED;
            }
    
    Set, or clear, the TIF_PATCH_PENDING flag in the child task
    depending on whether or not it is needed at the time
    klp_copy_process is called, at a point in copy_process where the
    tasklist_lock is held exclusively, preventing races with the KLP
    code.
    
    The KLP code does have a few places where the state is changed
    without the tasklist_lock held, but those should not cause
    problems because klp_update_patch_state(current) cannot be
    called while the current task is in the middle of fork,
    klp_check_and_switch_task() which is called under the pi_lock,
    which prevents rescheduling, and manipulation of the patch
    state of idle tasks, which do not fork.
    
    This should prevent this warning from triggering again in the
    future, and close the race for both normal and reverse transitions.
    
    Signed-off-by: Rik van Riel <riel@surriel.com>
    Reported-by: Breno Leitao <leitao@debian.org>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
    Fixes: d83a7cb375ee ("livepatch: change to a per-task consistency model")
    Cc: stable@kernel.org
    Signed-off-by: Petr Mladek <pmladek@suse.com>
    Link: https://lore.kernel.org/r/20220808150019.03d6a67b@imladris.surriel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5c8ebb8b32dbbcdc241dac732c82dcd7068661a7
Author: Jinke Han <hanjinke.666@bytedance.com>
Date:   Sat Sep 3 09:24:29 2022 +0800

    ext4: place buffer head allocation before handle start
    
    commit d1052d236eddf6aa851434db1897b942e8db9921 upstream.
    
    In our product environment, we encounter some jbd hung waiting handles to
    stop while several writters were doing memory reclaim for buffer head
    allocation in delay alloc write path. Ext4 do buffer head allocation with
    holding transaction handle which may be blocked too long if the reclaim
    works not so smooth. According to our bcc trace, the reclaim time in
    buffer head allocation can reach 258s and the jbd transaction commit also
    take almost the same time meanwhile. Except for these extreme cases,
    we often see several seconds delays for cgroup memory reclaim on our
    servers. This is more likely to happen considering docker environment.
    
    One thing to note, the allocation of buffer heads is as often as page
    allocation or more often when blocksize less than page size. Just like
    page cache allocation, we should also place the buffer head allocation
    before startting the handle.
    
    Cc: stable@kernel.org
    Signed-off-by: Jinke Han <hanjinke.666@bytedance.com>
    Link: https://lore.kernel.org/r/20220903012429.22555-1-hanjinke.666@bytedance.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90e99fb5d2090a71d54410559675528f711632a0
Author: Lalith Rajendran <lalithkraj@google.com>
Date:   Thu Aug 18 21:40:49 2022 +0000

    ext4: make ext4_lazyinit_thread freezable
    
    commit 3b575495ab8dbb4dbe85b4ac7f991693c3668ff5 upstream.
    
    ext4_lazyinit_thread is not set freezable. Hence when the thread calls
    try_to_freeze it doesn't freeze during suspend and continues to send
    requests to the storage during suspend, resulting in suspend failures.
    
    Cc: stable@kernel.org
    Signed-off-by: Lalith Rajendran <lalithkraj@google.com>
    Link: https://lore.kernel.org/r/20220818214049.1519544-1-lalithkraj@google.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 947264e00c46de19a016fd81218118c708fed2f3
Author: Baokun Li <libaokun1@huawei.com>
Date:   Fri Aug 5 20:39:47 2022 +0800

    ext4: fix null-ptr-deref in ext4_write_info
    
    commit f9c1f248607d5546075d3f731e7607d5571f2b60 upstream.
    
    I caught a null-ptr-deref bug as follows:
    ==================================================================
    KASAN: null-ptr-deref in range [0x0000000000000068-0x000000000000006f]
    CPU: 1 PID: 1589 Comm: umount Not tainted 5.10.0-02219-dirty #339
    RIP: 0010:ext4_write_info+0x53/0x1b0
    [...]
    Call Trace:
     dquot_writeback_dquots+0x341/0x9a0
     ext4_sync_fs+0x19e/0x800
     __sync_filesystem+0x83/0x100
     sync_filesystem+0x89/0xf0
     generic_shutdown_super+0x79/0x3e0
     kill_block_super+0xa1/0x110
     deactivate_locked_super+0xac/0x130
     deactivate_super+0xb6/0xd0
     cleanup_mnt+0x289/0x400
     __cleanup_mnt+0x16/0x20
     task_work_run+0x11c/0x1c0
     exit_to_user_mode_prepare+0x203/0x210
     syscall_exit_to_user_mode+0x5b/0x3a0
     do_syscall_64+0x59/0x70
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
     ==================================================================
    
    Above issue may happen as follows:
    -------------------------------------
    exit_to_user_mode_prepare
     task_work_run
      __cleanup_mnt
       cleanup_mnt
        deactivate_super
         deactivate_locked_super
          kill_block_super
           generic_shutdown_super
            shrink_dcache_for_umount
             dentry = sb->s_root
             sb->s_root = NULL              <--- Here set NULL
            sync_filesystem
             __sync_filesystem
              sb->s_op->sync_fs > ext4_sync_fs
               dquot_writeback_dquots
                sb->dq_op->write_info > ext4_write_info
                 ext4_journal_start(d_inode(sb->s_root), EXT4_HT_QUOTA, 2)
                  d_inode(sb->s_root)
                   s_root->d_inode          <--- Null pointer dereference
    
    To solve this problem, we use ext4_journal_start_sb directly
    to avoid s_root being used.
    
    Cc: stable@kernel.org
    Signed-off-by: Baokun Li <libaokun1@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20220805123947.565152-1-libaokun1@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59b108630a4987f71e1dc1dc50b8062e992b49c6
Author: Jan Kara <jack@suse.cz>
Date:   Wed Jul 27 17:57:53 2022 +0200

    ext4: avoid crash when inline data creation follows DIO write
    
    commit 4bb26f2885ac6930984ee451b952c5a6042f2c0e upstream.
    
    When inode is created and written to using direct IO, there is nothing
    to clear the EXT4_STATE_MAY_INLINE_DATA flag. Thus when inode gets
    truncated later to say 1 byte and written using normal write, we will
    try to store the data as inline data. This confuses the code later
    because the inode now has both normal block and inline data allocated
    and the confusion manifests for example as:
    
    kernel BUG at fs/ext4/inode.c:2721!
    invalid opcode: 0000 [#1] PREEMPT SMP KASAN
    CPU: 0 PID: 359 Comm: repro Not tainted 5.19.0-rc8-00001-g31ba1e3b8305-dirty #15
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.0-1.fc36 04/01/2014
    RIP: 0010:ext4_writepages+0x363d/0x3660
    RSP: 0018:ffffc90000ccf260 EFLAGS: 00010293
    RAX: ffffffff81e1abcd RBX: 0000008000000000 RCX: ffff88810842a180
    RDX: 0000000000000000 RSI: 0000008000000000 RDI: 0000000000000000
    RBP: ffffc90000ccf650 R08: ffffffff81e17d58 R09: ffffed10222c680b
    R10: dfffe910222c680c R11: 1ffff110222c680a R12: ffff888111634128
    R13: ffffc90000ccf880 R14: 0000008410000000 R15: 0000000000000001
    FS:  00007f72635d2640(0000) GS:ffff88811b000000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000565243379180 CR3: 000000010aa74000 CR4: 0000000000150eb0
    Call Trace:
     <TASK>
     do_writepages+0x397/0x640
     filemap_fdatawrite_wbc+0x151/0x1b0
     file_write_and_wait_range+0x1c9/0x2b0
     ext4_sync_file+0x19e/0xa00
     vfs_fsync_range+0x17b/0x190
     ext4_buffered_write_iter+0x488/0x530
     ext4_file_write_iter+0x449/0x1b90
     vfs_write+0xbcd/0xf40
     ksys_write+0x198/0x2c0
     __x64_sys_write+0x7b/0x90
     do_syscall_64+0x3d/0x90
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
     </TASK>
    
    Fix the problem by clearing EXT4_STATE_MAY_INLINE_DATA when we are doing
    direct IO write to a file.
    
    Cc: stable@kernel.org
    Reported-by: Tadeusz Struk <tadeusz.struk@linaro.org>
    Reported-by: syzbot+bd13648a53ed6933ca49@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=a1e89d09bbbcbd5c4cb45db230ee28c822953984
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Lukas Czerner <lczerner@redhat.com>
    Tested-by: Tadeusz Struk<tadeusz.struk@linaro.org>
    Link: https://lore.kernel.org/r/20220727155753.13969-1-jack@suse.cz
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfc82a26545b5f61a64d51ca2179773706fb028f
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Tue Oct 4 00:05:19 2022 +0900

    nilfs2: fix use-after-free bug of struct nilfs_root
    
    commit d325dc6eb763c10f591c239550b8c7e5466a5d09 upstream.
    
    If the beginning of the inode bitmap area is corrupted on disk, an inode
    with the same inode number as the root inode can be allocated and fail
    soon after.  In this case, the subsequent call to nilfs_clear_inode() on
    that bogus root inode will wrongly decrement the reference counter of
    struct nilfs_root, and this will erroneously free struct nilfs_root,
    causing kernel oopses.
    
    This fixes the problem by changing nilfs_new_inode() to skip reserved
    inode numbers while repairing the inode bitmap.
    
    Link: https://lkml.kernel.org/r/20221003150519.39789-1-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+b8c672b0e22615c80fe0@syzkaller.appspotmail.com
    Reported-by: Khalid Masum <khalid.masum.92@gmail.com>
    Tested-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c00cbba504883a90d3d4abc3916278dae26668fc
Author: Aurelien Jarno <aurelien@aurel32.net>
Date:   Wed Jan 26 18:14:42 2022 +0100

    riscv: fix build with binutils 2.38
    
    commit 6df2a016c0c8a3d0933ef33dd192ea6606b115e3 upstream.
    
    From version 2.38, binutils default to ISA spec version 20191213. This
    means that the csr read/write (csrr*/csrw*) instructions and fence.i
    instruction has separated from the `I` extension, become two standalone
    extensions: Zicsr and Zifencei. As the kernel uses those instruction,
    this causes the following build failure:
    
      CC      arch/riscv/kernel/vdso/vgettimeofday.o
      <<BUILDDIR>>/arch/riscv/include/asm/vdso/gettimeofday.h: Assembler messages:
      <<BUILDDIR>>/arch/riscv/include/asm/vdso/gettimeofday.h:71: Error: unrecognized opcode `csrr a5,0xc01'
      <<BUILDDIR>>/arch/riscv/include/asm/vdso/gettimeofday.h:71: Error: unrecognized opcode `csrr a5,0xc01'
      <<BUILDDIR>>/arch/riscv/include/asm/vdso/gettimeofday.h:71: Error: unrecognized opcode `csrr a5,0xc01'
      <<BUILDDIR>>/arch/riscv/include/asm/vdso/gettimeofday.h:71: Error: unrecognized opcode `csrr a5,0xc01'
    
    The fix is to specify those extensions explicitely in -march. However as
    older binutils version do not support this, we first need to detect
    that.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Tested-by: Alexandre Ghiti <alexandre.ghiti@canonical.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [Conor: converted to the 4.19 style of march string generation]
    Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

commit c97f6d528c3f1c83a6b792a8a7928c236c80b8fe
Author: Filipe Manana <fdmanana@suse.com>
Date:   Tue Aug 23 12:45:42 2022 +0100

    btrfs: fix race between quota enable and quota rescan ioctl
    
    commit 331cd9461412e103d07595a10289de90004ac890 upstream.
    
    When enabling quotas, at btrfs_quota_enable(), after committing the
    transaction, we change fs_info->quota_root to point to the quota root we
    created and set BTRFS_FS_QUOTA_ENABLED at fs_info->flags. Then we try
    to start the qgroup rescan worker, first by initializing it with a call
    to qgroup_rescan_init() - however if that fails we end up freeing the
    quota root but we leave fs_info->quota_root still pointing to it, this
    can later result in a use-after-free somewhere else.
    
    We have previously set the flags BTRFS_FS_QUOTA_ENABLED and
    BTRFS_QGROUP_STATUS_FLAG_ON, so we can only fail with -EINPROGRESS at
    btrfs_quota_enable(), which is possible if someone already called the
    quota rescan ioctl, and therefore started the rescan worker.
    
    So fix this by ignoring an -EINPROGRESS and asserting we can't get any
    other error.
    
    Reported-by: Ye Bin <yebin10@huawei.com>
    Link: https://lore.kernel.org/linux-btrfs/20220823015931.421355-1-yebin10@huawei.com/
    CC: stable@vger.kernel.org # 4.19+
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d8dbefc4de96d35d68c723e2e75b5a23173c08c
Author: Hyunwoo Kim <imv4bel@gmail.com>
Date:   Sun Sep 25 06:32:43 2022 -0700

    fbdev: smscufx: Fix use-after-free in ufx_ops_open()
    
    commit 5610bcfe8693c02e2e4c8b31427f1bdbdecc839c upstream.
    
    A race condition may occur if the user physically removes the
    USB device while calling open() for this device node.
    
    This is a race condition between the ufx_ops_open() function and
    the ufx_usb_disconnect() function, which may eventually result in UAF.
    
    So, add a mutex to the ufx_ops_open() and ufx_usb_disconnect() functions
    to avoid race contidion of krefs.
    
    Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae0dde87d5fffe0f74251d081d02d076df1ee14d
Author: Maciej W. Rozycki <macro@orcam.me.uk>
Date:   Wed Sep 21 20:49:16 2022 +0100

    PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge
    
    commit 0e32818397426a688f598f35d3bc762eca6d7592 upstream.
    
    When pci_assign_resource() is unable to assign resources to a BAR, it uses
    pci_revert_fw_address() to fall back to a firmware assignment (if any).
    Previously pci_revert_fw_address() assumed all addresses could reach the
    device, but this is not true if the device is below a bridge that only
    forwards addresses within its windows.
    
    This problem was observed on a Tyan Tomcat IV S1564D system where the BIOS
    did not assign valid addresses to several bridges and USB devices:
    
      pci 0000:00:11.0: PCI-to-PCIe bridge to [bus 01-ff]
      pci 0000:00:11.0:   bridge window [io  0xe000-0xefff]
      pci 0000:01:00.0: PCIe Upstream Port to [bus 02-ff]
      pci 0000:01:00.0:   bridge window [io  0x0000-0x0fff]   # unreachable
      pci 0000:02:02.0: PCIe Downstream Port to [bus 05-ff]
      pci 0000:02:02.0:   bridge window [io  0x0000-0x0fff]   # unreachable
      pci 0000:05:00.0: PCIe-to-PCI bridge to [bus 06-ff]
      pci 0000:05:00.0:   bridge window [io  0x0000-0x0fff]   # unreachable
      pci 0000:06:08.0: USB UHCI 1.1
      pci 0000:06:08.0: BAR 4: [io  0xfce0-0xfcff]            # unreachable
      pci 0000:06:08.1: USB UHCI 1.1
      pci 0000:06:08.1: BAR 4: [io  0xfce0-0xfcff]            # unreachable
      pci 0000:06:08.0: can't claim BAR 4 [io  0xfce0-0xfcff]: no compatible bridge window
      pci 0000:06:08.1: can't claim BAR 4 [io  0xfce0-0xfcff]: no compatible bridge window
    
    During the first pass of assigning unassigned resources, there was not
    enough I/O space available, so we couldn't assign the 06:08.0 BAR and
    reverted to the firmware assignment (still unreachable).  Reverting the
    06:08.1 assignment failed because it conflicted with 06:08.0:
    
      pci 0000:00:11.0:   bridge window [io  0xe000-0xefff]
      pci 0000:01:00.0: no space for bridge window [io  size 0x2000]
      pci 0000:02:02.0: no space for bridge window [io  size 0x1000]
      pci 0000:05:00.0: no space for bridge window [io  size 0x1000]
      pci 0000:06:08.0: BAR 4: no space for [io  size 0x0020]
      pci 0000:06:08.0: BAR 4: trying firmware assignment [io  0xfce0-0xfcff]
      pci 0000:06:08.1: BAR 4: no space for [io  size 0x0020]
      pci 0000:06:08.1: BAR 4: trying firmware assignment [io  0xfce0-0xfcff]
      pci 0000:06:08.1: BAR 4: [io  0xfce0-0xfcff] conflicts with 0000:06:08.0 [io  0xfce0-0xfcff]
    
    A subsequent pass assigned valid bridge windows and a valid 06:08.1 BAR,
    but left the 06:08.0 BAR alone, so the UHCI device was still unusable:
    
      pci 0000:00:11.0:   bridge window [io  0xe000-0xefff] released
      pci 0000:00:11.0:   bridge window [io  0x1000-0x2fff]   # reassigned
      pci 0000:01:00.0:   bridge window [io  0x1000-0x2fff]   # reassigned
      pci 0000:02:02.0:   bridge window [io  0x2000-0x2fff]   # reassigned
      pci 0000:05:00.0:   bridge window [io  0x2000-0x2fff]   # reassigned
      pci 0000:06:08.0: BAR 4: assigned [io  0xfce0-0xfcff]   # left alone
      pci 0000:06:08.1: BAR 4: assigned [io  0x2000-0x201f]
      ...
      uhci_hcd 0000:06:08.0: host system error, PCI problems?
      uhci_hcd 0000:06:08.0: host controller process error, something bad happened!
      uhci_hcd 0000:06:08.0: host controller halted, very bad!
      uhci_hcd 0000:06:08.0: HCRESET not completed yet!
      uhci_hcd 0000:06:08.0: HC died; cleaning up
    
    If the address assigned by firmware is not reachable because it's not
    within upstream bridge windows, fail instead of assigning the unusable
    address from firmware.
    
    [bhelgaas: commit log, use pci_upstream_bridge()]
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=16263
    Link: https://lore.kernel.org/r/alpine.DEB.2.21.2203012338460.46819@angie.orcam.me.uk
    Link: https://lore.kernel.org/r/alpine.DEB.2.21.2209211921250.29493@angie.orcam.me.uk
    Fixes: 58c84eda0756 ("PCI: fall back to original BIOS BAR addresses")
    Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Cc: stable@vger.kernel.org # v2.6.35+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 844748412be03a236dcf4a208b588162a275e189
Author: Huacai Chen <chenhuacai@kernel.org>
Date:   Tue Jul 12 15:52:55 2022 +0800

    UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
    
    commit 16c546e148fa6d14a019431436a6f7b4087dbccd upstream.
    
    When CONFIG_CPUMASK_OFFSTACK and CONFIG_DEBUG_PER_CPU_MAPS is selected,
    cpu_max_bits_warn() generates a runtime warning similar as below while
    we show /proc/cpuinfo. Fix this by using nr_cpu_ids (the runtime limit)
    instead of NR_CPUS to iterate CPUs.
    
    [    3.052463] ------------[ cut here ]------------
    [    3.059679] WARNING: CPU: 3 PID: 1 at include/linux/cpumask.h:108 show_cpuinfo+0x5e8/0x5f0
    [    3.070072] Modules linked in: efivarfs autofs4
    [    3.076257] CPU: 0 PID: 1 Comm: systemd Not tainted 5.19-rc5+ #1052
    [    3.099465] Stack : 9000000100157b08 9000000000f18530 9000000000cf846c 9000000100154000
    [    3.109127]         9000000100157a50 0000000000000000 9000000100157a58 9000000000ef7430
    [    3.118774]         90000001001578e8 0000000000000040 0000000000000020 ffffffffffffffff
    [    3.128412]         0000000000aaaaaa 1ab25f00eec96a37 900000010021de80 900000000101c890
    [    3.138056]         0000000000000000 0000000000000000 0000000000000000 0000000000aaaaaa
    [    3.147711]         ffff8000339dc220 0000000000000001 0000000006ab4000 0000000000000000
    [    3.157364]         900000000101c998 0000000000000004 9000000000ef7430 0000000000000000
    [    3.167012]         0000000000000009 000000000000006c 0000000000000000 0000000000000000
    [    3.176641]         9000000000d3de08 9000000001639390 90000000002086d8 00007ffff0080286
    [    3.186260]         00000000000000b0 0000000000000004 0000000000000000 0000000000071c1c
    [    3.195868]         ...
    [    3.199917] Call Trace:
    [    3.203941] [<90000000002086d8>] show_stack+0x38/0x14c
    [    3.210666] [<9000000000cf846c>] dump_stack_lvl+0x60/0x88
    [    3.217625] [<900000000023d268>] __warn+0xd0/0x100
    [    3.223958] [<9000000000cf3c90>] warn_slowpath_fmt+0x7c/0xcc
    [    3.231150] [<9000000000210220>] show_cpuinfo+0x5e8/0x5f0
    [    3.238080] [<90000000004f578c>] seq_read_iter+0x354/0x4b4
    [    3.245098] [<90000000004c2e90>] new_sync_read+0x17c/0x1c4
    [    3.252114] [<90000000004c5174>] vfs_read+0x138/0x1d0
    [    3.258694] [<90000000004c55f8>] ksys_read+0x70/0x100
    [    3.265265] [<9000000000cfde9c>] do_syscall+0x7c/0x94
    [    3.271820] [<9000000000202fe4>] handle_syscall+0xc4/0x160
    [    3.281824] ---[ end trace 8b484262b4b8c24c ]---
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2933602739e0f316e4eaf68fdbe187204b583aa
Author: Andrew Bresticker <abrestic@rivosinc.com>
Date:   Thu Sep 15 15:37:02 2022 -0400

    riscv: Allow PROT_WRITE-only mmap()
    
    commit 9e2e6042a7ec6504fe8e366717afa2f40cf16488 upstream.
    
    Commit 2139619bcad7 ("riscv: mmap with PROT_WRITE but no PROT_READ is
    invalid") made mmap() return EINVAL if PROT_WRITE was set wihtout
    PROT_READ with the justification that a write-only PTE is considered a
    reserved PTE permission bit pattern in the privileged spec. This check
    is unnecessary since we let VM_WRITE imply VM_READ on RISC-V, and it is
    inconsistent with other architectures that don't support write-only PTEs,
    creating a potential software portability issue. Just remove the check
    altogether and let PROT_WRITE imply PROT_READ as is the case on other
    architectures.
    
    Note that this also allows PROT_WRITE|PROT_EXEC mappings which were
    disallowed prior to the aforementioned commit; PROT_READ is implied in
    such mappings as well.
    
    Fixes: 2139619bcad7 ("riscv: mmap with PROT_WRITE but no PROT_READ is invalid")
    Reviewed-by: Atish Patra <atishp@rivosinc.com>
    Signed-off-by: Andrew Bresticker <abrestic@rivosinc.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20220915193702.2201018-3-abrestic@rivosinc.com/
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 929c8764837843d9698c4de10f432ec02b883d22
Author: Helge Deller <deller@gmx.de>
Date:   Fri Oct 14 10:13:55 2022 +0200

    parisc: fbdev/stifb: Align graphics memory size to 4MB
    
    commit aca7c13d3bee81a968337a5515411409ae9d095d upstream.
    
    Independend of the current graphics resolution, adjust the reported
    graphics card memory size to the next 4MB boundary.
    This fixes the fbtest program which expects a naturally aligned size.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d43e94b8daf009694d709c5919d67067936577a
Author: Sasha Levin <sashal@kernel.org>
Date:   Sat Oct 15 07:18:38 2022 -0400

    Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
    
    This reverts commit fd0a6e99b61e6c08fa5cf585d54fd956f70c73a6.
    
    Which was upstream commit 97ef77c52b789ec1411d360ed99dca1efe4b2c81.
    
    The commit is missing dependencies and breaks NFS tests, remove it for
    now.
    
    Reported-by: Saeed Mirzamohammadi <saeed.mirzamohammadi@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a51d884cc3acd50f211780e61a06674ca404e30a
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Fri Sep 9 13:25:29 2022 +0200

    regulator: qcom_rpm: Fix circular deferral regression
    
    commit 8478ed5844588703a1a4c96a004b1525fbdbdd5e upstream.
    
    On recent kernels, the PM8058 L16 (or any other PM8058 LDO-regulator)
    does not come up if they are supplied by an SMPS-regulator. This
    is not very strange since the regulators are registered in a long
    array and the L-regulators are registered before the S-regulators,
    and if an L-regulator defers, it will never get around to registering
    the S-regulator that it needs.
    
    See arch/arm/boot/dts/qcom-apq8060-dragonboard.dts:
    
    pm8058-regulators {
        (...)
        vdd_l13_l16-supply = <&pm8058_s4>;
        (...)
    
    Ooops.
    
    Fix this by moving the PM8058 S-regulators first in the array.
    
    Do the same for the PM8901 S-regulators (though this is currently
    not causing any problems with out device trees) so that the pattern
    of registration order is the same on all PMnnnn chips.
    
    Fixes: 087a1b5cdd55 ("regulator: qcom: Rework to single platform device")
    Cc: stable@vger.kernel.org
    Cc: Andy Gross <agross@kernel.org>
    Cc: Bjorn Andersson <andersson@kernel.org>
    Cc: Konrad Dybcio <konrad.dybcio@somainline.org>
    Cc: linux-arm-msm@vger.kernel.org
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20220909112529.239143-1-linus.walleij@linaro.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8df10590286703fc15e9605cc6827fb8e3428761
Author: Zhihao Cheng <chengzhihao1@huawei.com>
Date:   Fri Sep 23 21:45:52 2022 +0800

    quota: Check next/prev free block number after reading from quota file
    
    commit 6c8ea8b8cd4722efd419f91ca46a2dc81b7d89a3 upstream.
    
    Following process:
     Init: v2_read_file_info: <3> dqi_free_blk 0 dqi_free_entry 5 dqi_blks 6
    
     Step 1. chown bin f_a -> dquot_acquire -> v2_write_dquot:
      qtree_write_dquot
       do_insert_tree
        find_free_dqentry
         get_free_dqblk
          write_blk(info->dqi_blocks) // info->dqi_blocks = 6, failure. The
               content in physical block (corresponding to blk 6) is random.
    
     Step 2. chown root f_a -> dquot_transfer -> dqput_all -> dqput ->
             ext4_release_dquot -> v2_release_dquot -> qtree_delete_dquot:
      dquot_release
       remove_tree
        free_dqentry
         put_free_dqblk(6)
          info->dqi_free_blk = blk    // info->dqi_free_blk = 6
    
     Step 3. drop cache (buffer head for block 6 is released)
    
     Step 4. chown bin f_b -> dquot_acquire -> commit_dqblk -> v2_write_dquot:
      qtree_write_dquot
       do_insert_tree
        find_free_dqentry
         get_free_dqblk
          dh = (struct qt_disk_dqdbheader *)buf
          blk = info->dqi_free_blk     // 6
          ret = read_blk(info, blk, buf)  // The content of buf is random
          info->dqi_free_blk = le32_to_cpu(dh->dqdh_next_free)  // random blk
    
     Step 5. chown bin f_c -> notify_change -> ext4_setattr -> dquot_transfer:
      dquot = dqget -> acquire_dquot -> ext4_acquire_dquot -> dquot_acquire ->
              commit_dqblk -> v2_write_dquot -> dq_insert_tree:
       do_insert_tree
        find_free_dqentry
         get_free_dqblk
          blk = info->dqi_free_blk    // If blk < 0 and blk is not an error
                                         code, it will be returned as dquot
    
      transfer_to[USRQUOTA] = dquot  // A random negative value
      __dquot_transfer(transfer_to)
       dquot_add_inodes(transfer_to[cnt])
        spin_lock(&dquot->dq_dqb_lock)  // page fault
    
    , which will lead to kernel page fault:
     Quota error (device sda): qtree_write_dquot: Error -8000 occurred
     while creating quota
     BUG: unable to handle page fault for address: ffffffffffffe120
     #PF: supervisor write access in kernel mode
     #PF: error_code(0x0002) - not-present page
     Oops: 0002 [#1] PREEMPT SMP
     CPU: 0 PID: 5974 Comm: chown Not tainted 6.0.0-rc1-00004
     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996)
     RIP: 0010:_raw_spin_lock+0x3a/0x90
     Call Trace:
      dquot_add_inodes+0x28/0x270
      __dquot_transfer+0x377/0x840
      dquot_transfer+0xde/0x540
      ext4_setattr+0x405/0x14d0
      notify_change+0x68e/0x9f0
      chown_common+0x300/0x430
      __x64_sys_fchownat+0x29/0x40
    
    In order to avoid accessing invalid quota memory address, this patch adds
    block number checking of next/prev free block read from quota file.
    
    Fetch a reproducer in [Link].
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216372
    Fixes: 1da177e4c3f4152 ("Linux-2.6.12-rc2")
    CC: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20220923134555.2623931-2-chengzhihao1@huawei.com
    Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 202068359bd38e66cb959a6f7e441b543c15ae87
Author: Andri Yngvason <andri@yngvason.is>
Date:   Wed Sep 7 15:01:59 2022 +0000

    HID: multitouch: Add memory barriers
    
    commit be6e2b5734a425941fcdcdbd2a9337be498ce2cf upstream.
    
    This fixes broken atomic checks which cause a race between the
    release-timer and processing of hid input.
    
    I noticed that contacts were sometimes sticking, even with the "sticky
    fingers" quirk enabled. This fixes that problem.
    
    Cc: stable@vger.kernel.org
    Fixes: 9609827458c3 ("HID: multitouch: optimize the sticky fingers timer")
    Signed-off-by: Andri Yngvason <andri@yngvason.is>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Link: https://lore.kernel.org/r/20220907150159.2285460-1-andri@yngvason.is
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c985722e09ff4e6af7b35a9a9507e65fc120cca
Author: Alexander Aring <aahringo@redhat.com>
Date:   Mon Aug 15 15:43:15 2022 -0400

    fs: dlm: handle -EBUSY first in lock arg validation
    
    commit 44637ca41d551d409a481117b07fa209b330fca9 upstream.
    
    During lock arg validation, first check for -EBUSY cases, then for
    -EINVAL cases. The -EINVAL checks look at lkb state variables
    which are not stable when an lkb is busy and would cause an
    -EBUSY result, e.g. lkb->lkb_grmode.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1ae006b485151888559b6beef3e0d153b86214b
Author: Alexander Aring <aahringo@redhat.com>
Date:   Mon Aug 15 15:43:14 2022 -0400

    fs: dlm: fix race between test_bit() and queue_work()
    
    commit eef6ec9bf390e836a6c4029f3620fe49528aa1fe upstream.
    
    This patch fixes a race by using ls_cb_mutex around the bit
    operations and conditional code blocks for LSFL_CB_DELAY.
    
    The function dlm_callback_stop() expects to stop all callbacks and
    flush all currently queued onces. The set_bit() is not enough because
    there can still be queue_work() after the workqueue was flushed.
    To avoid queue_work() after set_bit(), surround both by ls_cb_mutex.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6aeb500bb07af24fc6d4cdfba2bebc7cbf8d00a1
Author: Anssi Hannula <anssi.hannula@bitwise.fi>
Date:   Mon Oct 10 17:08:29 2022 +0200

    can: kvaser_usb_leaf: Fix CAN state after restart
    
    commit 0be1a655fe68c8e6dcadbcbddb69cf2fb29881f5 upstream.
    
    can_restart() expects CMD_START_CHIP to set the error state to
    ERROR_ACTIVE as it calls netif_carrier_on() immediately afterwards.
    
    Otherwise the user may immediately trigger restart again and hit a
    BUG_ON() in can_restart().
    
    Fix kvaser_usb_leaf set_mode(CMD_START_CHIP) to set the expected state.
    
    Cc: stable@vger.kernel.org
    Fixes: 080f40a6fa28 ("can: kvaser_usb: Add support for Kvaser CAN/USB devices")
    Tested-by: Jimmy Assarsson <extja@kvaser.com>
    Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
    Signed-off-by: Jimmy Assarsson <extja@kvaser.com>
    Link: https://lore.kernel.org/all/20221010150829.199676-5-extja@kvaser.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b888bd0e7ef8483ec5e736ee5882bb58484e39c
Author: Anssi Hannula <anssi.hannula@bitwise.fi>
Date:   Mon Oct 10 17:08:28 2022 +0200

    can: kvaser_usb_leaf: Fix TX queue out of sync after restart
    
    commit 455561fb618fde40558776b5b8435f9420f335db upstream.
    
    The TX queue seems to be implicitly flushed by the hardware during
    bus-off or bus-off recovery, but the driver does not reset the TX
    bookkeeping.
    
    Despite not resetting TX bookkeeping the driver still re-enables TX
    queue unconditionally, leading to "cannot find free context" /
    NETDEV_TX_BUSY errors if the TX queue was full at bus-off time.
    
    Fix that by resetting TX bookkeeping on CAN restart.
    
    Tested with 0bfd:0124 Kvaser Mini PCI Express 2xHS FW 4.18.778.
    
    Cc: stable@vger.kernel.org
    Fixes: 080f40a6fa28 ("can: kvaser_usb: Add support for Kvaser CAN/USB devices")
    Tested-by: Jimmy Assarsson <extja@kvaser.com>
    Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
    Signed-off-by: Jimmy Assarsson <extja@kvaser.com>
    Link: https://lore.kernel.org/all/20221010150829.199676-4-extja@kvaser.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd3fdc51e24f6bb02caba08539d5dee546b147a8
Author: Anssi Hannula <anssi.hannula@bitwise.fi>
Date:   Mon Oct 10 17:08:26 2022 +0200

    can: kvaser_usb_leaf: Fix overread with an invalid command
    
    commit 1499ecaea9d2ba68d5e18d80573b4561a8dc4ee7 upstream.
    
    For command events read from the device,
    kvaser_usb_leaf_read_bulk_callback() verifies that cmd->len does not
    exceed the size of the received data, but the actual kvaser_cmd handlers
    will happily read any kvaser_cmd fields without checking for cmd->len.
    
    This can cause an overread if the last cmd in the buffer is shorter than
    expected for the command type (with cmd->len showing the actual short
    size).
    
    Maximum overread seems to be 22 bytes (CMD_LEAF_LOG_MESSAGE), some of
    which are delivered to userspace as-is.
    
    Fix that by verifying the length of command before handling it.
    
    This issue can only occur after RX URBs have been set up, i.e. the
    interface has been opened at least once.
    
    Cc: stable@vger.kernel.org
    Fixes: 080f40a6fa28 ("can: kvaser_usb: Add support for Kvaser CAN/USB devices")
    Tested-by: Jimmy Assarsson <extja@kvaser.com>
    Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
    Signed-off-by: Jimmy Assarsson <extja@kvaser.com>
    Link: https://lore.kernel.org/all/20221010150829.199676-2-extja@kvaser.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42a0b26dd5f268b514d65215887e633f6937d56f
Author: Anssi Hannula <anssi.hannula@bitwise.fi>
Date:   Mon Oct 10 17:08:27 2022 +0200

    can: kvaser_usb: Fix use of uninitialized completion
    
    commit cd7f30e174d09a02ca2afa5ef093fb0f0352e0d8 upstream.
    
    flush_comp is initialized when CMD_FLUSH_QUEUE is sent to the device and
    completed when the device sends CMD_FLUSH_QUEUE_RESP.
    
    This causes completion of uninitialized completion if the device sends
    CMD_FLUSH_QUEUE_RESP before CMD_FLUSH_QUEUE is ever sent (e.g. as a
    response to a flush by a previously bound driver, or a misbehaving
    device).
    
    Fix that by initializing flush_comp in kvaser_usb_init_one() like the
    other completions.
    
    This issue is only triggerable after RX URBs have been set up, i.e. the
    interface has been opened at least once.
    
    Cc: stable@vger.kernel.org
    Fixes: aec5fb2268b7 ("can: kvaser_usb: Add support for Kvaser USB hydra family")
    Tested-by: Jimmy Assarsson <extja@kvaser.com>
    Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
    Signed-off-by: Jimmy Assarsson <extja@kvaser.com>
    Link: https://lore.kernel.org/all/20221010150829.199676-3-extja@kvaser.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d7e35fee4e7a59d3ea86bdef45d12b3658ae2dc
Author: Jean-Francois Le Fillatre <jflf_kernel@gmx.com>
Date:   Tue Sep 27 09:34:07 2022 +0200

    usb: add quirks for Lenovo OneLink+ Dock
    
    commit 37d49519b41405b08748392c6a7f193d9f77ecd2 upstream.
    
    The Lenovo OneLink+ Dock contains two VL812 USB3.0 controllers:
    17ef:1018 upstream
    17ef:1019 downstream
    
    These hubs suffer from two separate problems:
    
    1) After the host system was suspended and woken up, the hubs appear to
       be in a random state. Some downstream ports (both internal to the
       built-in audio and network controllers, and external to USB sockets)
       may no longer be functional. The exact list of disabled ports (if
       any) changes from wakeup to wakeup. Ports remain in that state until
       the dock is power-cycled, or until the laptop is rebooted.
    
       Wakeup sources connected to the hubs (keyboard, WoL on the integrated
       gigabit controller) will wake the system up from suspend, but they
       may no longer work after wakeup (and in that case will no longer work
       as wakeup source in a subsequent suspend-wakeup cycle).
    
       This issue appears in the logs with messages such as:
    
         usb 1-6.1-port4: cannot disable (err = -71)
         usb 1-6-port2: cannot disable (err = -71)
         usb 1-6.1: clear tt 1 (80c0) error -71
         usb 1-6-port4: cannot disable (err = -71)
         usb 1-6.4: PM: dpm_run_callback(): usb_dev_resume+0x0/0x10 [usbcore] returns -71
         usb 1-6.4: PM: failed to resume async: error -71
         usb 1-7: reset full-speed USB device number 5 using xhci_hcd
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: Cannot enable. Maybe the USB cable is bad?
         usb 1-6.1-port1: cannot disable (err = -71)
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: cannot reset (err = -71)
         usb 1-6.1-port1: Cannot enable. Maybe the USB cable is bad?
         usb 1-6.1-port1: cannot disable (err = -71)
    
    2) Some USB devices cannot be enumerated properly. So far I have only
       seen the issue with USB 3.0 devices. The same devices work without
       problem directly connected to the host system, to other systems or to
       other hubs (even when those hubs are connected to the OneLink+ dock).
    
       One very reliable reproducer is this USB 3.0 HDD enclosure:
       152d:9561 JMicron Technology Corp. / JMicron USA Technology Corp. Mobius
    
       I have seen it happen sporadically with other USB 3.0 enclosures,
       with controllers from different manufacturers, all self-powered.
    
       Typical messages in the logs:
    
         xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
         xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
         usb 2-1.4: device not accepting address 6, error -62
         xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
         xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
         usb 2-1.4: device not accepting address 7, error -62
         usb 2-1-port4: attempt power cycle
         xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
         xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
         usb 2-1.4: device not accepting address 8, error -62
         xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
         xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
         usb 2-1.4: device not accepting address 9, error -62
         usb 2-1-port4: unable to enumerate USB device
    
    Through trial and error, I found that the USB_QUIRK_RESET_RESUME solved
    the second issue. Further testing then uncovered the first issue. Test
    results are summarized in this table:
    
    =======================================================================================
    Settings                        USB2 hotplug    USB3 hotplug    State after waking up
    ---------------------------------------------------------------------------------------
    
    power/control=auto              works           fails           broken
    
    usbcore.autosuspend=-1          works           works           broken
    OR power/control=on
    
    power/control=auto              works (1)       works (1)       works
    and USB_QUIRK_RESET_RESUME
    
    power/control=on                works           works           works
    and USB_QUIRK_RESET_RESUME
    
    HUB_QUIRK_DISABLE_AUTOSUSPEND   works           works           works
    and USB_QUIRK_RESET_RESUME
    
    =======================================================================================
    
    In those results, the power/control settings are applied to both hubs,
    both on the USB2 and USB3 side, before each test.
    
    From those results, USB_QUIRK_RESET_RESUME is required to reset the hubs
    properly after a suspend-wakeup cycle, and the hubs must not autosuspend
    to work around the USB3 issue.
    
    A secondary effect of USB_QUIRK_RESET_RESUME is to prevent the hubs'
    upstream links from suspending (the downstream ports can still suspend).
    This secondary effect is used in results (1). It is enough to solve the
    USB3 problem.
    
    Setting USB_QUIRK_RESET_RESUME on those hubs is the smallest patch that
    solves both issues.
    
    Prior to creating this patch, I have used the USB_QUIRK_RESET_RESUME via
    the kernel command line for over a year without noticing any side
    effect.
    
    Thanks to Oliver Neukum @Suse for explanations of the operations of
    USB_QUIRK_RESET_RESUME, and requesting more testing.
    
    Signed-off-by: Jean-Francois Le Fillatre <jflf_kernel@gmx.com>
    Cc: stable <stable@kernel.org>
    Link: https://lore.kernel.org/r/20220927073407.5672-1-jflf_kernel@gmx.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0454bb7b627faeaa031ca2dda00915e98bbe3322
Author: Michael Hennerich <michael.hennerich@analog.com>
Date:   Tue Sep 13 09:34:12 2022 +0200

    iio: dac: ad5593r: Fix i2c read protocol requirements
    
    commit 558a25f903b4af6361b7fbeea08a6446a0745653 upstream.
    
    For reliable operation across the full range of supported
    interface rates, the AD5593R needs a STOP condition between
    address write, and data read (like show in the datasheet Figure 40)
    so in turn i2c_smbus_read_word_swapped cannot be used.
    
    While at it, a simple helper was added to make the code simpler.
    
    Fixes: 56ca9db862bf ("iio: dac: Add support for the AD5592R/AD5593R ADCs/DACs")
    Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
    Signed-off-by: Nuno Sá <nuno.sa@analog.com>
    Cc: <Stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220913073413.140475-2-nuno.sa@analog.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 069c9992ae39ac6be8f0ae398a89896b78b101b1
Author: Tudor Ambarus <tudor.ambarus@microchip.com>
Date:   Thu Jul 28 10:40:14 2022 +0300

    mtd: rawnand: atmel: Unmap streaming DMA mappings
    
    commit 1161703c9bd664da5e3b2eb1a3bb40c210e026ea upstream.
    
    Every dma_map_single() call should have its dma_unmap_single() counterpart,
    because the DMA address space is a shared resource and one could render the
    machine unusable by consuming all DMA addresses.
    
    Link: https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/
    Cc: stable@vger.kernel.org
    Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver")
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Acked-by: Alexander Dahl <ada@thorsis.com>
    Reported-by: Peter Rosin <peda@axentia.se>
    Tested-by: Alexander Dahl <ada@thorsis.com>
    Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
    Tested-by: Peter Rosin <peda@axentia.se>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20220728074014.145406-1-tudor.ambarus@microchip.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3830f0e31aa20ffe0ed519ef2c92e98f4deaa8b5
Author: Callum Osmotherly <callum.osmotherly@gmail.com>
Date:   Wed Oct 5 17:44:16 2022 +1030

    ALSA: hda/realtek: remove ALC289_FIXUP_DUAL_SPK for Dell 5530
    
    commit 417b9c51f59734d852e47252476fadc293ad994a upstream.
    
    After some feedback from users with Dell Precision 5530 machines, this
    patch reverts the previous change to add ALC289_FIXUP_DUAL_SPK.
    While it improved the speaker output quality, it caused the headphone
    jack to have an audible "pop" sound when power saving was toggled.
    
    Fixes: 1885ff13d4c4 ("ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop")
    Signed-off-by: Callum Osmotherly <callum.osmotherly@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/Yz0uyN1zwZhnyRD6@piranha
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 315e770ec767d4bc614976d25dfad5e1efbd83de
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Sep 30 12:01:29 2022 +0200

    ALSA: usb-audio: Fix NULL dererence at error path
    
    commit 568be8aaf8a535f79c4db76cabe17b035aa2584d upstream.
    
    At an error path to release URB buffers and contexts, the driver might
    hit a NULL dererence for u->urb pointer, when u->buffer_size has been
    already set but the actual URB allocation failed.
    
    Fix it by adding the NULL check of urb.  Also, make sure that
    buffer_size is cleared after the error path or the close.
    
    Cc: <stable@vger.kernel.org>
    Reported-by: Sabri N. Ferreiro <snferreiro1@gmail.com>
    Link: https://lore.kernel.org/r/CAKG+3NRjTey+fFfUEGwuxL-pi_=T4cUskYG9OzpzHytF+tzYng@mail.gmail.com
    Link: https://lore.kernel.org/r/20220930100129.19445-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46f0aed47673e275d682af60ed26dcc28add8eae
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Sep 30 12:01:51 2022 +0200

    ALSA: usb-audio: Fix potential memory leaks
    
    commit 6382da0828995af87aa8b8bef28cc61aceb4aff3 upstream.
    
    When the driver hits -ENOMEM at allocating a URB or a buffer, it
    aborts and goes to the error path that releases the all previously
    allocated resources.  However, when -ENOMEM hits at the middle of the
    sync EP URB allocation loop, the partially allocated URBs might be
    left without released, because ep->nurbs is still zero at that point.
    
    Fix it by setting ep->nurbs at first, so that the error handler loops
    over the full URB list.
    
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220930100151.19461-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b033ac7abde6cbc59f32a6209af1d7713d159d5b
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Oct 11 09:01:46 2022 +0200

    ALSA: rawmidi: Drop register_mutex in snd_rawmidi_free()
    
    commit a70aef7982b012e86dfd39fbb235e76a21ae778a upstream.
    
    The register_mutex taken around the dev_unregister callback call in
    snd_rawmidi_free() may potentially lead to a mutex deadlock, when OSS
    emulation and a hot unplug are involved.
    
    Since the mutex doesn't protect the actual race (as the registration
    itself is already protected by another means), let's drop it.
    
    Link: https://lore.kernel.org/r/CAB7eexJP7w1B0mVgDF0dQ+gWor7UdkiwPczmL7pn91xx8xpzOA@mail.gmail.com
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20221011070147.7611-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4049dbabf24206074e50ed071276d67f70410fad
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Oct 11 09:01:47 2022 +0200

    ALSA: oss: Fix potential deadlock at unregistration
    
    commit 97d917879d7f92df09c3f21fd54609a8bcd654b2 upstream.
    
    We took sound_oss_mutex around the calls of unregister_sound_special()
    at unregistering OSS devices.  This may, however, lead to a deadlock,
    because we manage the card release via the card's device object, and
    the release may happen at unregister_sound_special() call -- which
    will take sound_oss_mutex again in turn.
    
    Although the deadlock might be fixed by relaxing the rawmidi mutex in
    the previous commit, it's safer to move unregister_sound_special()
    calls themselves out of the sound_oss_mutex, too.  The call is
    race-safe as the function has a spinlock protection by itself.
    
    Link: https://lore.kernel.org/r/CAB7eexJP7w1B0mVgDF0dQ+gWor7UdkiwPczmL7pn91xx8xpzOA@mail.gmail.com
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20221011070147.7611-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3024d1bd817014bf53656b324db6e413a9e46a3
Author: Cameron Gutman <aicommander@gmail.com>
Date:   Thu Aug 18 17:44:09 2022 +0200

    Input: xpad - fix wireless 360 controller breaking after suspend
    
    commit a17b9841152e7f4621619902b347e2cc39c32996 upstream.
    
    Suspending and resuming the system can sometimes cause the out
    URB to get hung after a reset_resume. This causes LED setting
    and force feedback to break on resume. To avoid this, just drop
    the reset_resume callback so the USB core rebinds xpad to the
    wireless pads on resume if a reset happened.
    
    A nice side effect of this change is the LED ring on wireless
    controllers is now set correctly on system resume.
    
    Cc: stable@vger.kernel.org
    Fixes: 4220f7db1e42 ("Input: xpad - workaround dead irq_out after suspend/ resume")
    Signed-off-by: Cameron Gutman <aicommander@gmail.com>
    Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
    Link: https://lore.kernel.org/r/20220818154411.510308-3-rojtberg@gmail.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bbaa74b35e5bf3df3f743daede9e03aff1ea728b
Author: Pavel Rojtberg <rojtberg@gmail.com>
Date:   Thu Aug 18 17:44:08 2022 +0200

    Input: xpad - add supported devices as contributed on github
    
    commit b382c5e37344883dc97525d05f1f6b788f549985 upstream.
    
    This is based on multiple commits at https://github.com/paroj/xpad
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Jasper Poppe <jgpoppe@gmail.com>
    Signed-off-by: Jeremy Palmer <jpalmer@linz.govt.nz>
    Signed-off-by: Ruineka <ruinairas1992@gmail.com>
    Signed-off-by: Cleber de Mattos Casali <clebercasali@gmail.com>
    Signed-off-by: Kyle Gospodnetich <me@kylegospodneti.ch>
    Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
    Link: https://lore.kernel.org/r/20220818154411.510308-2-rojtberg@gmail.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 965923b85037bfeb8652c908626cbb32afdcb906
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Oct 5 15:10:09 2022 +0200

    wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
    
    commit 1833b6f46d7e2830251a063935ab464256defe22 upstream.
    
    If the tool on the other side (e.g. wmediumd) gets confused
    about the rate, we hit a warning in mac80211. Silence that
    by effectively duplicating the check here and dropping the
    frame silently (in mac80211 it's dropped with the warning).
    
    Reported-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
    Tested-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40d0a9feff21e5599a5392a842a052acabec0d79
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Thu Sep 22 18:46:04 2022 +0200

    random: use expired timer rather than wq for mixing fast pool
    
    commit 748bc4dd9e663f23448d8ad7e58c011a67ea1eca upstream.
    
    Previously, the fast pool was dumped into the main pool periodically in
    the fast pool's hard IRQ handler. This worked fine and there weren't
    problems with it, until RT came around. Since RT converts spinlocks into
    sleeping locks, problems cropped up. Rather than switching to raw
    spinlocks, the RT developers preferred we make the transformation from
    originally doing:
    
        do_some_stuff()
        spin_lock()
        do_some_other_stuff()
        spin_unlock()
    
    to doing:
    
        do_some_stuff()
        queue_work_on(some_other_stuff_worker)
    
    This is an ordinary pattern done all over the kernel. However, Sherry
    noticed a 10% performance regression in qperf TCP over a 40gbps
    InfiniBand card. Quoting her message:
    
    > MT27500 Family [ConnectX-3] cards:
    > Infiniband device 'mlx4_0' port 1 status:
    > default gid: fe80:0000:0000:0000:0010:e000:0178:9eb1
    > base lid: 0x6
    > sm lid: 0x1
    > state: 4: ACTIVE
    > phys state: 5: LinkUp
    > rate: 40 Gb/sec (4X QDR)
    > link_layer: InfiniBand
    >
    > Cards are configured with IP addresses on private subnet for IPoIB
    > performance testing.
    > Regression identified in this bug is in TCP latency in this stack as reported
    > by qperf tcp_lat metric:
    >
    > We have one system listen as a qperf server:
    > [root@yourQperfServer ~]# qperf
    >
    > Have the other system connect to qperf server as a client (in this
    > case, it’s X7 server with Mellanox card):
    > [root@yourQperfClient ~]# numactl -m0 -N0 qperf 20.20.20.101 -v -uu -ub --time 60 --wait_server 20 -oo msg_size:4K:1024K:*2 tcp_lat
    
    Rather than incur the scheduling latency from queue_work_on, we can
    instead switch to running on the next timer tick, on the same core. This
    also batches things a bit more -- once per jiffy -- which is okay now
    that mix_interrupt_randomness() can credit multiple bits at once.
    
    Reported-by: Sherry Yang <sherry.yang@oracle.com>
    Tested-by: Paul Webb <paul.x.webb@oracle.com>
    Cc: Sherry Yang <sherry.yang@oracle.com>
    Cc: Phillip Goerl <phillip.goerl@oracle.com>
    Cc: Jack Vogel <jack.vogel@oracle.com>
    Cc: Nicky Veitch <nicky.veitch@oracle.com>
    Cc: Colm Harrington <colm.harrington@oracle.com>
    Cc: Ramanan Govindarajan <ramanan.govindarajan@oracle.com>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Dominik Brodowski <linux@dominikbrodowski.net>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Sultan Alsawaf <sultan@kerneltoast.com>
    Cc: stable@vger.kernel.org
    Fixes: 58340f8e952b ("random: defer fast pool mixing to worker")
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d3afaa495dfe5018dab5c86fa241583d6fc4f58
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Thu Sep 22 18:46:04 2022 +0200

    random: avoid reading two cache lines on irq randomness
    
    commit 9ee0507e896b45af6d65408c77815800bce30008 upstream.
    
    In order to avoid reading and dirtying two cache lines on every IRQ,
    move the work_struct to the bottom of the fast_pool struct. add_
    interrupt_randomness() always touches .pool and .count, which are
    currently split, because .mix pushes everything down. Instead, move .mix
    to the bottom, so that .pool and .count are always in the first cache
    line, since .mix is only accessed when the pool is full.
    
    Fixes: 58340f8e952b ("random: defer fast pool mixing to worker")
    Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 34e9ae783d63d758a1e8cd365cd3a04ec188d96a
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Thu Sep 8 16:14:00 2022 +0200

    random: restore O_NONBLOCK support
    
    commit cd4f24ae9404fd31fc461066e57889be3b68641b upstream.
    
    Prior to 5.6, when /dev/random was opened with O_NONBLOCK, it would
    return -EAGAIN if there was no entropy. When the pools were unified in
    5.6, this was lost. The post 5.6 behavior of blocking until the pool is
    initialized, and ignoring O_NONBLOCK in the process, went unnoticed,
    with no reports about the regression received for two and a half years.
    However, eventually this indeed did break somebody's userspace.
    
    So we restore the old behavior, by returning -EAGAIN if the pool is not
    initialized. Unlike the old /dev/random, this can only occur during
    early boot, after which it never blocks again.
    
    In order to make this O_NONBLOCK behavior consistent with other
    expectations, also respect users reading with preadv2(RWF_NOWAIT) and
    similar.
    
    Fixes: 30c08efec888 ("random: make /dev/random be almost like /dev/urandom")
    Reported-by: Guozihua <guozihua@huawei.com>
    Reported-by: Zhongguohua <zhongguohua1@huawei.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Theodore Ts'o <tytso@mit.edu>
    Cc: Andrew Lutomirski <luto@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7950203eb68b8d440e213487479042e3da21a1c
Author: Frank Wunderlich <frank-w@public-files.de>
Date:   Mon Sep 26 17:07:39 2022 +0200

    USB: serial: qcserial: add new usb-id for Dell branded EM7455
    
    commit eee48781ea199e32c1d0c4732641c494833788ca upstream.
    
    Add support for Dell 5811e (EM7455) with USB-id 0x413c:0x81c2.
    
    Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a99c5e38dc6c3dc3da28489b78db09a4b9ffc8c3
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Fri Sep 9 08:54:47 2022 +0200

    scsi: stex: Properly zero out the passthrough command structure
    
    commit 6022f210461fef67e6e676fd8544ca02d1bcfa7a upstream.
    
    The passthrough structure is declared off of the stack, so it needs to be
    set to zero before copied back to userspace to prevent any unintentional
    data leakage.  Switch things to be statically allocated which will fill the
    unused fields with 0 automatically.
    
    Link: https://lore.kernel.org/r/YxrjN3OOw2HHl9tx@kroah.com
    Cc: stable@kernel.org
    Cc: "James E.J. Bottomley" <jejb@linux.ibm.com>
    Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Reported-by: hdthky <hdthky0@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eecd1b4df168464254a6ef2e856c77994c2423e8
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sat Oct 1 16:21:24 2022 +0200

    ALSA: hda: Fix position reporting on Poulsbo
    
    commit 56e696c0f0c71b77fff921fc94b58a02f0445b2c upstream.
    
    Hans reported that his Sony VAIO VPX11S1E showed the broken sound
    behavior at the start of the stream for a couple of seconds, and it
    turned out that the position_fix=1 option fixes the issue.  It implies
    that the position reporting is inaccurate, and very likely hitting on
    all Poulsbo devices.
    
    The patch applies the workaround for Poulsbo generically to switch to
    LPIB mode instead of the default position buffer.
    
    Reported-and-tested-by: Hans de Goede <hdegoede@redhat.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/3e8697e1-87c6-7a7b-d2e8-b21f1d2f181b@redhat.com
    Link: https://lore.kernel.org/r/20221001142124.7241-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7f053774b61d23b3a308b2335f549d9be1f032f
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Fri Sep 23 02:42:51 2022 +0200

    random: clamp credited irq bits to maximum mixed
    
    commit e78a802a7b4febf53f2a92842f494b01062d85a8 upstream.
    
    Since the most that's mixed into the pool is sizeof(long)*2, don't
    credit more than that many bytes of entropy.
    
    Fixes: e3e33fc2ea7f ("random: do not use input pool from hard IRQs")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f9597a30b1702323dbd4df31ced3f77eed28728d
Author: Hu Weiwen <sehuww@mail.scut.edu.cn>
Date:   Fri Jul 1 10:52:27 2022 +0800

    ceph: don't truncate file in atomic_open
    
    commit 7cb9994754f8a36ae9e5ec4597c5c4c2d6c03832 upstream.
    
    Clear O_TRUNC from the flags sent in the MDS create request.
    
    `atomic_open' is called before permission check. We should not do any
    modification to the file here. The caller will do the truncation
    afterward.
    
    Fixes: 124e68e74099 ("ceph: file operations")
    Signed-off-by: Hu Weiwen <sehuww@mail.scut.edu.cn>
    Reviewed-by: Xiubo Li <xiubli@redhat.com>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    [Xiubo: fixed a trivial conflict for 5.10 backport]
    Signed-off-by: Xiubo Li <xiubli@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf98be80cbe3b4e6c86c36ed00457389aca3eb15
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Thu Sep 29 21:33:30 2022 +0900

    nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure
    
    commit 723ac751208f6d6540191689cfbf6c77135a7a1b upstream.
    
    If creation or finalization of a checkpoint fails due to anomalies in the
    checkpoint metadata on disk, a kernel warning is generated.
    
    This patch replaces the WARN_ONs by nilfs_error, so that a kernel, booted
    with panic_on_warn, does not panic.  A nilfs_error is appropriate here to
    handle the abnormal filesystem condition.
    
    This also replaces the detected error codes with an I/O error so that
    neither of the internal error codes is returned to callers.
    
    Link: https://lkml.kernel.org/r/20220929123330.19658-1-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+fbb3e0b24e8dae5a16ee@syzkaller.appspotmail.com
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b748ef0f2afadd31c914623daa610f26385a4dc
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Fri Oct 7 17:52:26 2022 +0900

    nilfs2: fix leak of nilfs_root in case of writer thread creation failure
    
    commit d0d51a97063db4704a5ef6bc978dddab1636a306 upstream.
    
    If nilfs_attach_log_writer() failed to create a log writer thread, it
    frees a data structure of the log writer without any cleanup.  After
    commit e912a5b66837 ("nilfs2: use root object to get ifile"), this causes
    a leak of struct nilfs_root, which started to leak an ifile metadata inode
    and a kobject on that struct.
    
    In addition, if the kernel is booted with panic_on_warn, the above
    ifile metadata inode leak will cause the following panic when the
    nilfs2 kernel module is removed:
    
      kmem_cache_destroy nilfs2_inode_cache: Slab cache still has objects when
      called from nilfs_destroy_cachep+0x16/0x3a [nilfs2]
      WARNING: CPU: 8 PID: 1464 at mm/slab_common.c:494 kmem_cache_destroy+0x138/0x140
      ...
      RIP: 0010:kmem_cache_destroy+0x138/0x140
      Code: 00 20 00 00 e8 a9 55 d8 ff e9 76 ff ff ff 48 8b 53 60 48 c7 c6 20 70 65 86 48 c7 c7 d8 69 9c 86 48 8b 4c 24 28 e8 ef 71 c7 00 <0f> 0b e9 53 ff ff ff c3 48 81 ff ff 0f 00 00 77 03 31 c0 c3 53 48
      ...
      Call Trace:
       <TASK>
       ? nilfs_palloc_freev.cold.24+0x58/0x58 [nilfs2]
       nilfs_destroy_cachep+0x16/0x3a [nilfs2]
       exit_nilfs_fs+0xa/0x1b [nilfs2]
        __x64_sys_delete_module+0x1d9/0x3a0
       ? __sanitizer_cov_trace_pc+0x1a/0x50
       ? syscall_trace_enter.isra.19+0x119/0x190
       do_syscall_64+0x34/0x80
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
       ...
       </TASK>
      Kernel panic - not syncing: panic_on_warn set ...
    
    This patch fixes these issues by calling nilfs_detach_log_writer() cleanup
    function if spawning the log writer thread fails.
    
    Link: https://lkml.kernel.org/r/20221007085226.57667-1-konishi.ryusuke@gmail.com
    Fixes: e912a5b66837 ("nilfs2: use root object to get ifile")
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+7381dc4ad60658ca4c05@syzkaller.appspotmail.com
    Tested-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe8015680f383ea1dadec76972894dfabf8aefaa
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Sun Oct 2 12:08:04 2022 +0900

    nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level()
    
    commit 21a87d88c2253350e115029f14fe2a10a7e6c856 upstream.
    
    If the i_mode field in inode of metadata files is corrupted on disk, it
    can cause the initialization of bmap structure, which should have been
    called from nilfs_read_inode_common(), not to be called.  This causes a
    lockdep warning followed by a NULL pointer dereference at
    nilfs_bmap_lookup_at_level().
    
    This patch fixes these issues by adding a missing sanitiy check for the
    i_mode field of metadata file's inode.
    
    Link: https://lkml.kernel.org/r/20221002030804.29978-1-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+2b32eb36c1a825b7a74c@syzkaller.appspotmail.com
    Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Tested-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a4762141cabf5f15ea73707eccf69983e5e289c
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Thu May 19 09:33:28 2022 +0200

    rpmsg: qcom: glink: replace strncpy() with strscpy_pad()
    
    commit 766279a8f85df32345dbda03b102ca1ee3d5ddea upstream.
    
    The use of strncpy() is considered deprecated for NUL-terminated
    strings[1]. Replace strncpy() with strscpy_pad(), to keep existing
    pad-behavior of strncpy, similarly to commit 08de420a8014 ("rpmsg:
    glink: Replace strncpy() with strscpy_pad()").  This fixes W=1 warning:
    
      In function ‘qcom_glink_rx_close’,
        inlined from ‘qcom_glink_work’ at ../drivers/rpmsg/qcom_glink_native.c:1638:4:
      drivers/rpmsg/qcom_glink_native.c:1549:17: warning: ‘strncpy’ specified bound 32 equals destination size [-Wstringop-truncation]
       1549 |                 strncpy(chinfo.name, channel->name, sizeof(chinfo.name));
    
    [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20220519073330.7187-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Andrew Chernyakov <acherniakov@astralinux.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 871d9a6a42a399e75846d82e1ec232a7b49df0dc
Author: Brian Norris <briannorris@chromium.org>
Date:   Tue Sep 13 18:40:10 2022 -0700

    mmc: core: Terminate infinite loop in SD-UHS voltage switch
    
    commit e9233917a7e53980664efbc565888163c0a33c3f upstream.
    
    This loop intends to retry a max of 10 times, with some implicit
    termination based on the SD_{R,}OCR_S18A bit. Unfortunately, the
    termination condition depends on the value reported by the SD card
    (*rocr), which may or may not correctly reflect what we asked it to do.
    
    Needless to say, it's not wise to rely on the card doing what we expect;
    we should at least terminate the loop regardless. So, check both the
    input and output values, so we ensure we will terminate regardless of
    the SD card behavior.
    
    Note that SDIO learned a similar retry loop in commit 0797e5f1453b
    ("mmc: core: Fixup signal voltage switch"), but that used the 'ocr'
    result, and so the current pre-terminating condition looks like:
    
        rocr & ocr & R4_18V_PRESENT
    
    (i.e., it doesn't have the same bug.)
    
    This addresses a number of crash reports seen on ChromeOS that look
    like the following:
    
        ... // lots of repeated: ...
        <4>[13142.846061] mmc1: Skipping voltage switch
        <4>[13143.406087] mmc1: Skipping voltage switch
        <4>[13143.964724] mmc1: Skipping voltage switch
        <4>[13144.526089] mmc1: Skipping voltage switch
        <4>[13145.086088] mmc1: Skipping voltage switch
        <4>[13145.645941] mmc1: Skipping voltage switch
        <3>[13146.153969] INFO: task halt:30352 blocked for more than 122 seconds.
        ...
    
    Fixes: f2119df6b764 ("mmc: sd: add support for signal voltage switch procedure")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20220914014010.2076169-1-briannorris@chromium.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 809f108c8f1995ea25f3c06307bf71ecbb08edc2
Author: ChanWoo Lee <cw9316.lee@samsung.com>
Date:   Wed Jul 6 09:48:40 2022 +0900

    mmc: core: Replace with already defined values for readability
    
    commit e427266460826bea21b70f9b2bb29decfb2c2620 upstream.
    
    SD_ROCR_S18A is already defined and is used to check the rocr value, so
    let's replace with already defined values for readability.
    
    Signed-off-by: ChanWoo Lee <cw9316.lee@samsung.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20220706004840.24812-1-cw9316.lee@samsung.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae63f7a9a6aee86c11e2d9252632b9c8a66de84a
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Sep 13 16:53:12 2022 +0200

    USB: serial: ftdi_sio: fix 300 bps rate for SIO
    
    commit 7bd7ad3c310cd6766f170927381eea0aa6f46c69 upstream.
    
    The 300 bps rate of SIO devices has been mapped to 9600 bps since
    2003... Let's fix the regression.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf7e2cee3899ede4c7c6548f28159ee3775fb67f
Author: Tadeusz Struk <tadeusz.struk@linaro.org>
Date:   Mon Sep 19 14:59:57 2022 -0700

    usb: mon: make mmapped memory read only
    
    commit a659daf63d16aa883be42f3f34ff84235c302198 upstream.
    
    Syzbot found an issue in usbmon module, where the user space client can
    corrupt the monitor's internal memory, causing the usbmon module to
    crash the kernel with segfault, UAF, etc.
    
    The reproducer mmaps the /dev/usbmon memory to user space, and
    overwrites it with arbitrary data, which causes all kinds of issues.
    
    Return an -EPERM error from mon_bin_mmap() if the flag VM_WRTIE is set.
    Also clear VM_MAYWRITE to make it impossible to change it to writable
    later.
    
    Cc: "Dmitry Vyukov" <dvyukov@google.com>
    Cc: stable <stable@kernel.org>
    Fixes: 6f23ee1fefdc ("USB: add binary API to usbmon")
    Suggested-by: PaX Team <pageexec@freemail.hu>   # for the VM_MAYRITE portion
    Link: https://syzkaller.appspot.com/bug?id=2eb1f35d6525fa4a74d75b4244971e5b1411c95a
    Reported-by: syzbot+23f57c5ae902429285d7@syzkaller.appspotmail.com
    Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
    Link: https://lore.kernel.org/r/20220919215957.205681-1-tadeusz.struk@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5d0bc3d58e2faa71bc0cfe23554fe2eafd28b5e
Author: Lukas Straub <lukasstraub2@web.de>
Date:   Fri Aug 26 15:29:31 2022 +0000

    um: Cleanup compiler warning in arch/x86/um/tls_32.c
    
    [ Upstream commit d27fff3499671dc23a08efd01cdb8b3764a391c4 ]
    
    arch.tls_array is statically allocated so checking for NULL doesn't
    make sense. This causes the compiler warning below.
    
    Remove the checks to silence these warnings.
    
    ../arch/x86/um/tls_32.c: In function 'get_free_idx':
    ../arch/x86/um/tls_32.c:68:13: warning: the comparison will always evaluate as 'true' for the address of 'tls_array' will never be NULL [-Waddress]
       68 |         if (!t->arch.tls_array)
          |             ^
    In file included from ../arch/x86/um/asm/processor.h:10,
                     from ../include/linux/rcupdate.h:30,
                     from ../include/linux/rculist.h:11,
                     from ../include/linux/pid.h:5,
                     from ../include/linux/sched.h:14,
                     from ../arch/x86/um/tls_32.c:7:
    ../arch/x86/um/asm/processor_32.h:22:31: note: 'tls_array' declared here
       22 |         struct uml_tls_struct tls_array[GDT_ENTRY_TLS_ENTRIES];
          |                               ^~~~~~~~~
    ../arch/x86/um/tls_32.c: In function 'get_tls_entry':
    ../arch/x86/um/tls_32.c:243:13: warning: the comparison will always evaluate as 'true' for the address of 'tls_array' will never be NULL [-Waddress]
      243 |         if (!t->arch.tls_array)
          |             ^
    ../arch/x86/um/asm/processor_32.h:22:31: note: 'tls_array' declared here
       22 |         struct uml_tls_struct tls_array[GDT_ENTRY_TLS_ENTRIES];
          |                               ^~~~~~~~~
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8690a1266219c785524eeb74787da2a4df28e3a0
Author: Lukas Straub <lukasstraub2@web.de>
Date:   Fri Aug 26 15:29:27 2022 +0000

    um: Cleanup syscall_handler_t cast in syscalls_32.h
    
    [ Upstream commit 61670b4d270c71219def1fbc9441debc2ac2e6e9 ]
    
    Like in f4f03f299a56ce4d73c5431e0327b3b6cb55ebb9
    "um: Cleanup syscall_handler_t definition/cast, fix warning",
    remove the cast to to fix the compiler warning.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 65d7f77be7e91cd1c5d6e677f59f5c0de9b36bba
Author: Haimin Zhang <tcs.kernel@gmail.com>
Date:   Thu Sep 8 20:19:27 2022 +0800

    net/ieee802154: fix uninit value bug in dgram_sendmsg
    
    [ Upstream commit 94160108a70c8af17fa1484a37e05181c0e094af ]
    
    There is uninit value bug in dgram_sendmsg function in
    net/ieee802154/socket.c when the length of valid data pointed by the
    msg->msg_name isn't verified.
    
    We introducing a helper function ieee802154_sockaddr_check_size to
    check namelen. First we check there is addr_type in ieee802154_addr_sa.
    Then, we check namelen according to addr_type.
    
    Also fixed in raw_bind, dgram_bind, dgram_connect.
    
    Signed-off-by: Haimin Zhang <tcs_kernel@tencent.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60a860d12dd3187eac56a49f9ab48c99d5c08152
Author: Letu Ren <fantasquex@gmail.com>
Date:   Fri Nov 12 20:06:41 2021 +0800

    scsi: qedf: Fix a UAF bug in __qedf_probe()
    
    [ Upstream commit fbfe96869b782364caebae0445763969ddb6ea67 ]
    
    In __qedf_probe(), if qedf->cdev is NULL which means
    qed_ops->common->probe() failed, then the program will goto label err1, and
    scsi_host_put() will free lport->host pointer. Because the memory qedf
    points to is allocated by libfc_host_alloc(), it will be freed by
    scsi_host_put(). However, the if statement below label err0 only checks
    whether qedf is NULL but doesn't check whether the memory has been freed.
    So a UAF bug can occur.
    
    There are two ways to reach the statements below err0. The first one is
    described as before, "qedf" should be set to NULL. The second one is goto
    "err0" directly. In the latter scenario qedf hasn't been changed and it has
    the initial value NULL. As a result the if statement is not reachable in
    any situation.
    
    The KASAN logs are as follows:
    
    [    2.312969] BUG: KASAN: use-after-free in __qedf_probe+0x5dcf/0x6bc0
    [    2.312969]
    [    2.312969] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    [    2.312969] Call Trace:
    [    2.312969]  dump_stack_lvl+0x59/0x7b
    [    2.312969]  print_address_description+0x7c/0x3b0
    [    2.312969]  ? __qedf_probe+0x5dcf/0x6bc0
    [    2.312969]  __kasan_report+0x160/0x1c0
    [    2.312969]  ? __qedf_probe+0x5dcf/0x6bc0
    [    2.312969]  kasan_report+0x4b/0x70
    [    2.312969]  ? kobject_put+0x25d/0x290
    [    2.312969]  kasan_check_range+0x2ca/0x310
    [    2.312969]  __qedf_probe+0x5dcf/0x6bc0
    [    2.312969]  ? selinux_kernfs_init_security+0xdc/0x5f0
    [    2.312969]  ? trace_rpm_return_int_rcuidle+0x18/0x120
    [    2.312969]  ? rpm_resume+0xa5c/0x16e0
    [    2.312969]  ? qedf_get_generic_tlv_data+0x160/0x160
    [    2.312969]  local_pci_probe+0x13c/0x1f0
    [    2.312969]  pci_device_probe+0x37e/0x6c0
    
    Link: https://lore.kernel.org/r/20211112120641.16073-1-fantasquex@gmail.com
    Reported-by: Zheyu Ma <zheyuma97@gmail.com>
    Acked-by: Saurav Kashyap <skashyap@marvell.com>
    Co-developed-by: Wende Tan <twd2.me@gmail.com>
    Signed-off-by: Wende Tan <twd2.me@gmail.com>
    Signed-off-by: Letu Ren <fantasquex@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 69a11c49e9980ec6062ae343471a0c2b7449da2e
Author: Sergei Antonov <saproj@gmail.com>
Date:   Wed Sep 7 20:53:41 2022 +0300

    ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer
    
    [ Upstream commit 02181e68275d28cab3c3f755852770367f1bc229 ]
    
    Driver moxart-mmc.c has .compatible = "moxa,moxart-mmc".
    
    But moxart .dts/.dtsi and the documentation file moxa,moxart-dma.txt
    contain compatible = "moxa,moxart-sdhci".
    
    Change moxart .dts/.dtsi files and moxa,moxart-dma.txt to match the driver.
    
    Replace 'sdhci' with 'mmc' in names too, since SDHCI is a different
    controller from FTSDC010.
    
    Suggested-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sergei Antonov <saproj@gmail.com>
    Cc: Jonas Jensen <jonas.jensen@gmail.com>
    Link: https://lore.kernel.org/r/20220907175341.1477383-1-saproj@gmail.com'
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ee494d5b152d9872e5688eaeea153424b974c933
Author: Swati Agarwal <swati.agarwal@xilinx.com>
Date:   Wed Aug 17 11:41:25 2022 +0530

    dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API failure
    
    [ Upstream commit 8f2b6bc79c32f0fa60df000ae387a790ec80eae9 ]
    
    The driver does not handle the failure case while calling
    dma_set_mask_and_coherent API.
    
    In case of failure, capture the return value of API and then report an
    error.
    
    Addresses-coverity: Unchecked return value (CHECKED_RETURN)
    
    Signed-off-by: Swati Agarwal <swati.agarwal@xilinx.com>
    Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
    Link: https://lore.kernel.org/r/20220817061125.4720-4-swati.agarwal@xilinx.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e53df3bf0c5ffc5c5f5180e4d4d892a5d28ac86
Author: Swati Agarwal <swati.agarwal@xilinx.com>
Date:   Wed Aug 17 11:41:24 2022 +0530

    dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property
    
    [ Upstream commit 462bce790e6a7e68620a4ce260cc38f7ed0255d5 ]
    
    Free the allocated resources for missing xlnx,num-fstores property.
    
    Signed-off-by: Swati Agarwal <swati.agarwal@xilinx.com>
    Link: https://lore.kernel.org/r/20220817061125.4720-3-swati.agarwal@xilinx.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 644c776d86fc21e663087fdfce35d27af78cb509
Author: Cristian Marussi <cristian.marussi@arm.com>
Date:   Wed Aug 17 18:27:31 2022 +0100

    firmware: arm_scmi: Add SCMI PM driver remove routine
    
    [ Upstream commit dea796fcab0a219830831c070b8dc367d7e0f708 ]
    
    Currently, when removing the SCMI PM driver not all the resources
    registered with genpd subsystem are properly de-registered.
    
    As a side effect of this after a driver unload/load cycle you get a
    splat with a few warnings like this:
    
     | debugfs: Directory 'BIG_CPU0' with parent 'pm_genpd' already present!
     | debugfs: Directory 'BIG_CPU1' with parent 'pm_genpd' already present!
     | debugfs: Directory 'LITTLE_CPU0' with parent 'pm_genpd' already present!
     | debugfs: Directory 'LITTLE_CPU1' with parent 'pm_genpd' already present!
     | debugfs: Directory 'LITTLE_CPU2' with parent 'pm_genpd' already present!
     | debugfs: Directory 'LITTLE_CPU3' with parent 'pm_genpd' already present!
     | debugfs: Directory 'BIG_SSTOP' with parent 'pm_genpd' already present!
     | debugfs: Directory 'LITTLE_SSTOP' with parent 'pm_genpd' already present!
     | debugfs: Directory 'DBGSYS' with parent 'pm_genpd' already present!
     | debugfs: Directory 'GPUTOP' with parent 'pm_genpd' already present!
    
    Add a proper scmi_pm_domain_remove callback to the driver in order to
    take care of all the needed cleanups not handled by devres framework.
    
    Link: https://lore.kernel.org/r/20220817172731.1185305-7-cristian.marussi@arm.com
    Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
    Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ec2aab115eb38ac4992ea2fcc2a02fbe7af5cf48
Author: Dongliang Mu <mudongliangabcd@gmail.com>
Date:   Tue Aug 16 12:08:58 2022 +0800

    fs: fix UAF/GPF bug in nilfs_mdt_destroy
    
    commit 2e488f13755ffbb60f307e991b27024716a33b29 upstream.
    
    In alloc_inode, inode_init_always() could return -ENOMEM if
    security_inode_alloc() fails, which causes inode->i_private
    uninitialized. Then nilfs_is_metadata_file_inode() returns
    true and nilfs_free_inode() wrongly calls nilfs_mdt_destroy(),
    which frees the uninitialized inode->i_private
    and leads to crashes(e.g., UAF/GPF).
    
    Fix this by moving security_inode_alloc just prior to
    this_cpu_inc(nr_inodes)
    
    Link: https://lkml.kernel.org/r/CAFcO6XOcf1Jj2SeGt=jJV59wmhESeSKpfR0omdFRq+J9nD1vfQ@mail.gmail.com
    Reported-by: butt3rflyh4ck <butterflyhuangxx@gmail.com>
    Reported-by: Hao Sun <sunhao.th@gmail.com>
    Reported-by: Jiacheng Xu <stitch@zju.edu.cn>
    Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org>
    Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4625741e20b8d039c4d91e705d7e0a271c41bf50
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Tue Apr 23 17:09:38 2019 +0100

    ARM: fix function graph tracer and unwinder dependencies
    
    commit 503621628b32782a07b2318e4112bd4372aa3401 upstream.
    
    Naresh Kamboju recently reported that the function-graph tracer crashes
    on ARM. The function-graph tracer assumes that the kernel is built with
    frame pointers.
    
    We explicitly disabled the function-graph tracer when building Thumb2,
    since the Thumb2 ABI doesn't have frame pointers.
    
    We recently changed the way the unwinder method was selected, which
    seems to have made it more likely that we can end up with the function-
    graph tracer enabled but without the kernel built with frame pointers.
    
    Fix up the function graph tracer dependencies so the option is not
    available when we have no possibility of having frame pointers, and
    adjust the dependencies on the unwinder option to hide the non-frame
    pointer unwinder options if the function-graph tracer is enabled.
    
    Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
    Tested-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Reported-by: Danilo Cezar Zanella <danilo.zanella@iag.usp.br>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f47d6db0a31fb59aebd8bd8bd9171d42085a0610
Author: Shuah Khan <skhan@linuxfoundation.org>
Date:   Thu Sep 1 15:23:19 2022 -0600

    docs: update mediator information in CoC docs
    
    commit 8bfdfa0d6b929ede7b6189e0e546ceb6a124d05d upstream.
    
    Update mediator information in the CoC interpretation document.
    
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/20220901212319.56644-1-skhan@linuxfoundation.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Jonathan Corbet <corbet@lwn.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c98cbc2519365b645176601e98f8af29e96c1e0b
Author: Sami Tolvanen <samitolvanen@google.com>
Date:   Fri Sep 30 20:33:10 2022 +0000

    Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
    
    commit 2120635108b35ecad9c59c8b44f6cbdf4f98214e upstream.
    
    We enable -Wcast-function-type globally in the kernel to warn about
    mismatching types in function pointer casts. Compilers currently
    warn only about ABI incompability with this flag, but Clang 16 will
    enable a stricter version of the check by default that checks for an
    exact type match. This will be very noisy in the kernel, so disable
    -Wcast-function-type-strict without W=1 until the new warnings have
    been addressed.
    
    Cc: stable@vger.kernel.org
    Link: https://reviews.llvm.org/D134831
    Link: https://github.com/ClangBuiltLinux/linux/issues/1724
    Suggested-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Link: https://lore.kernel.org/r/20220930203310.4010564-1-samitolvanen@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>