commit f03c8bbaf6d9cbebee390e8353c5df75293aff7c
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Apr 5 11:14:22 2023 +0200

    Linux 4.14.312
    
    Link: https://lore.kernel.org/r/20230403140351.636471867@linuxfoundation.org
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Chris Paterson (CIP) <chris.paterson2@renesas.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a15fce1f17435e8b3ad7329fbd22ff4a2cb87093
Author: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Date:   Mon Mar 6 11:18:24 2023 -0800

    ca8210: Fix unsigned mac_len comparison with zero in ca8210_skb_tx()
    
    commit 748b2f5e82d17480404b3e2895388fc2925f7caf upstream.
    
    mac_len is of type unsigned, which can never be less than zero.
    
            mac_len = ieee802154_hdr_peek_addrs(skb, &header);
            if (mac_len < 0)
                    return mac_len;
    
    Change this to type int as ieee802154_hdr_peek_addrs() can return negative
    integers, this is found by static analysis with smatch.
    
    Fixes: 6c993779ea1d ("ca8210: fix mac_len negative array access")
    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Acked-by: Alexander Aring <aahringo@redhat.com>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Link: https://lore.kernel.org/r/20230306191824.4115839-1-harshit.m.mogalapalli@oracle.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4b1e702dc841a79664c5b8000fd99ffe9b3e9c2
Author: Jamal Hadi Salim <jhs@mojatatu.com>
Date:   Sun Jan 1 16:57:44 2023 -0500

    net: sched: cbq: dont intepret cls results when asked to drop
    
    commit caa4b35b4317d5147b3ab0fbdc9c075c7d2e9c12 upstream.
    
    If asked to drop a packet via TC_ACT_SHOT it is unsafe to assume that
    res.class contains a valid pointer
    
    Sample splat reported by Kyle Zeng
    
    [    5.405624] 0: reclassify loop, rule prio 0, protocol 800
    [    5.406326] ==================================================================
    [    5.407240] BUG: KASAN: slab-out-of-bounds in cbq_enqueue+0x54b/0xea0
    [    5.407987] Read of size 1 at addr ffff88800e3122aa by task poc/299
    [    5.408731]
    [    5.408897] CPU: 0 PID: 299 Comm: poc Not tainted 5.10.155+ #15
    [    5.409516] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
    BIOS 1.15.0-1 04/01/2014
    [    5.410439] Call Trace:
    [    5.410764]  dump_stack+0x87/0xcd
    [    5.411153]  print_address_description+0x7a/0x6b0
    [    5.411687]  ? vprintk_func+0xb9/0xc0
    [    5.411905]  ? printk+0x76/0x96
    [    5.412110]  ? cbq_enqueue+0x54b/0xea0
    [    5.412323]  kasan_report+0x17d/0x220
    [    5.412591]  ? cbq_enqueue+0x54b/0xea0
    [    5.412803]  __asan_report_load1_noabort+0x10/0x20
    [    5.413119]  cbq_enqueue+0x54b/0xea0
    [    5.413400]  ? __kasan_check_write+0x10/0x20
    [    5.413679]  __dev_queue_xmit+0x9c0/0x1db0
    [    5.413922]  dev_queue_xmit+0xc/0x10
    [    5.414136]  ip_finish_output2+0x8bc/0xcd0
    [    5.414436]  __ip_finish_output+0x472/0x7a0
    [    5.414692]  ip_finish_output+0x5c/0x190
    [    5.414940]  ip_output+0x2d8/0x3c0
    [    5.415150]  ? ip_mc_finish_output+0x320/0x320
    [    5.415429]  __ip_queue_xmit+0x753/0x1760
    [    5.415664]  ip_queue_xmit+0x47/0x60
    [    5.415874]  __tcp_transmit_skb+0x1ef9/0x34c0
    [    5.416129]  tcp_connect+0x1f5e/0x4cb0
    [    5.416347]  tcp_v4_connect+0xc8d/0x18c0
    [    5.416577]  __inet_stream_connect+0x1ae/0xb40
    [    5.416836]  ? local_bh_enable+0x11/0x20
    [    5.417066]  ? lock_sock_nested+0x175/0x1d0
    [    5.417309]  inet_stream_connect+0x5d/0x90
    [    5.417548]  ? __inet_stream_connect+0xb40/0xb40
    [    5.417817]  __sys_connect+0x260/0x2b0
    [    5.418037]  __x64_sys_connect+0x76/0x80
    [    5.418267]  do_syscall_64+0x31/0x50
    [    5.418477]  entry_SYSCALL_64_after_hwframe+0x61/0xc6
    [    5.418770] RIP: 0033:0x473bb7
    [    5.418952] Code: 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00
    00 00 90 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 2a 00 00
    00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 18 89 54 24 0c 48 89 34
    24 89
    [    5.420046] RSP: 002b:00007fffd20eb0f8 EFLAGS: 00000246 ORIG_RAX:
    000000000000002a
    [    5.420472] RAX: ffffffffffffffda RBX: 00007fffd20eb578 RCX: 0000000000473bb7
    [    5.420872] RDX: 0000000000000010 RSI: 00007fffd20eb110 RDI: 0000000000000007
    [    5.421271] RBP: 00007fffd20eb150 R08: 0000000000000001 R09: 0000000000000004
    [    5.421671] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
    [    5.422071] R13: 00007fffd20eb568 R14: 00000000004fc740 R15: 0000000000000002
    [    5.422471]
    [    5.422562] Allocated by task 299:
    [    5.422782]  __kasan_kmalloc+0x12d/0x160
    [    5.423007]  kasan_kmalloc+0x5/0x10
    [    5.423208]  kmem_cache_alloc_trace+0x201/0x2e0
    [    5.423492]  tcf_proto_create+0x65/0x290
    [    5.423721]  tc_new_tfilter+0x137e/0x1830
    [    5.423957]  rtnetlink_rcv_msg+0x730/0x9f0
    [    5.424197]  netlink_rcv_skb+0x166/0x300
    [    5.424428]  rtnetlink_rcv+0x11/0x20
    [    5.424639]  netlink_unicast+0x673/0x860
    [    5.424870]  netlink_sendmsg+0x6af/0x9f0
    [    5.425100]  __sys_sendto+0x58d/0x5a0
    [    5.425315]  __x64_sys_sendto+0xda/0xf0
    [    5.425539]  do_syscall_64+0x31/0x50
    [    5.425764]  entry_SYSCALL_64_after_hwframe+0x61/0xc6
    [    5.426065]
    [    5.426157] The buggy address belongs to the object at ffff88800e312200
    [    5.426157]  which belongs to the cache kmalloc-128 of size 128
    [    5.426955] The buggy address is located 42 bytes to the right of
    [    5.426955]  128-byte region [ffff88800e312200, ffff88800e312280)
    [    5.427688] The buggy address belongs to the page:
    [    5.427992] page:000000009875fabc refcount:1 mapcount:0
    mapping:0000000000000000 index:0x0 pfn:0xe312
    [    5.428562] flags: 0x100000000000200(slab)
    [    5.428812] raw: 0100000000000200 dead000000000100 dead000000000122
    ffff888007843680
    [    5.429325] raw: 0000000000000000 0000000000100010 00000001ffffffff
    ffff88800e312401
    [    5.429875] page dumped because: kasan: bad access detected
    [    5.430214] page->mem_cgroup:ffff88800e312401
    [    5.430471]
    [    5.430564] Memory state around the buggy address:
    [    5.430846]  ffff88800e312180: fc fc fc fc fc fc fc fc fc fc fc fc
    fc fc fc fc
    [    5.431267]  ffff88800e312200: 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 fc
    [    5.431705] >ffff88800e312280: fc fc fc fc fc fc fc fc fc fc fc fc
    fc fc fc fc
    [    5.432123]                                   ^
    [    5.432391]  ffff88800e312300: 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 fc
    [    5.432810]  ffff88800e312380: fc fc fc fc fc fc fc fc fc fc fc fc
    fc fc fc fc
    [    5.433229] ==================================================================
    [    5.433648] Disabling lock debugging due to kernel taint
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: Kyle Zeng <zengyhkyle@gmail.com>
    Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 896cba70d0457af680fa00ef501f2d11a91fd42f
Author: Ye Bin <yebin10@huawei.com>
Date:   Tue Dec 6 22:41:34 2022 +0800

    ext4: fix kernel BUG in 'ext4_write_inline_data_end()'
    
    commit 5c099c4fdc438014d5893629e70a8ba934433ee8 upstream.
    
    Syzbot report follow issue:
    ------------[ cut here ]------------
    kernel BUG at fs/ext4/inline.c:227!
    invalid opcode: 0000 [#1] PREEMPT SMP KASAN
    CPU: 1 PID: 3629 Comm: syz-executor212 Not tainted 6.1.0-rc5-syzkaller-00018-g59d0d52c30d4 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
    RIP: 0010:ext4_write_inline_data+0x344/0x3e0 fs/ext4/inline.c:227
    RSP: 0018:ffffc90003b3f368 EFLAGS: 00010293
    RAX: 0000000000000000 RBX: ffff8880704e16c0 RCX: 0000000000000000
    RDX: ffff888021763a80 RSI: ffffffff821e31a4 RDI: 0000000000000006
    RBP: 000000000006818e R08: 0000000000000006 R09: 0000000000068199
    R10: 0000000000000079 R11: 0000000000000000 R12: 000000000000000b
    R13: 0000000000068199 R14: ffffc90003b3f408 R15: ffff8880704e1c82
    FS:  000055555723e3c0(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007fffe8ac9080 CR3: 0000000079f81000 CR4: 0000000000350ee0
    Call Trace:
     <TASK>
     ext4_write_inline_data_end+0x2a3/0x12f0 fs/ext4/inline.c:768
     ext4_write_end+0x242/0xdd0 fs/ext4/inode.c:1313
     ext4_da_write_end+0x3ed/0xa30 fs/ext4/inode.c:3063
     generic_perform_write+0x316/0x570 mm/filemap.c:3764
     ext4_buffered_write_iter+0x15b/0x460 fs/ext4/file.c:285
     ext4_file_write_iter+0x8bc/0x16e0 fs/ext4/file.c:700
     call_write_iter include/linux/fs.h:2191 [inline]
     do_iter_readv_writev+0x20b/0x3b0 fs/read_write.c:735
     do_iter_write+0x182/0x700 fs/read_write.c:861
     vfs_iter_write+0x74/0xa0 fs/read_write.c:902
     iter_file_splice_write+0x745/0xc90 fs/splice.c:686
     do_splice_from fs/splice.c:764 [inline]
     direct_splice_actor+0x114/0x180 fs/splice.c:931
     splice_direct_to_actor+0x335/0x8a0 fs/splice.c:886
     do_splice_direct+0x1ab/0x280 fs/splice.c:974
     do_sendfile+0xb19/0x1270 fs/read_write.c:1255
     __do_sys_sendfile64 fs/read_write.c:1323 [inline]
     __se_sys_sendfile64 fs/read_write.c:1309 [inline]
     __x64_sys_sendfile64+0x1d0/0x210 fs/read_write.c:1309
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    ---[ end trace 0000000000000000 ]---
    
    Above issue may happens as follows:
    ext4_da_write_begin
      ext4_da_write_inline_data_begin
        ext4_da_convert_inline_data_to_extent
          ext4_clear_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA);
    ext4_da_write_end
    
    ext4_run_li_request
      ext4_mb_prefetch
        ext4_read_block_bitmap_nowait
          ext4_validate_block_bitmap
            ext4_mark_group_bitmap_corrupted(sb, block_group, EXT4_GROUP_INFO_BBITMAP_CORRUPT)
             percpu_counter_sub(&sbi->s_freeclusters_counter,grp->bb_free);
              -> sbi->s_freeclusters_counter become zero
    ext4_da_write_begin
      if (ext4_nonda_switch(inode->i_sb)) -> As freeclusters_counter is zero will return true
        *fsdata = (void *)FALL_BACK_TO_NONDELALLOC;
        ext4_write_begin
    ext4_da_write_end
      if (write_mode == FALL_BACK_TO_NONDELALLOC)
        ext4_write_end
          if (inline_data)
            ext4_write_inline_data_end
              ext4_write_inline_data
                BUG_ON(pos + len > EXT4_I(inode)->i_inline_size);
               -> As inode is already convert to extent, so 'pos + len' > inline_size
               -> then trigger BUG.
    
    To solve this issue, instead of checking ext4_has_inline_data() which
    is only cleared after data has been written back, check the
    EXT4_STATE_MAY_INLINE_DATA flag in ext4_write_end().
    
    Fixes: f19d5870cbf7 ("ext4: add normal write support for inline data")
    Reported-by: syzbot+4faa160fa96bfba639f8@syzkaller.appspotmail.com
    Reported-by: Jun Nie <jun.nie@linaro.org>
    Signed-off-by: Ye Bin <yebin10@huawei.com>
    Link: https://lore.kernel.org/r/20221206144134.1919987-1-yebin@huaweicloud.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@kernel.org
    [ta: Fix conflict in if expression and use the local variable inline_data
    as it is initialized with ext4_has_inline_data(inode) anyway.]
    Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c9a463693f9b99c0ac4e4bda511de6975e4cd78
Author: Dan Carpenter <error27@gmail.com>
Date:   Sat Aug 17 09:55:20 2019 +0300

    usb: host: ohci-pxa27x: Fix and & vs | typo
    
    commit 0709831a50d31b3caf2237e8d7fe89e15b0d919d upstream.
    
    The code is supposed to clear the RH_A_NPS and RH_A_PSM bits, but it's
    a no-op because of the & vs | typo.  This bug predates git and it was
    only discovered using static analysis so it must not affect too many
    people in real life.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Link: https://lore.kernel.org/r/20190817065520.GA29951@mwanda
    Signed-off-by: Nobuhiro Iwamatsu (CIP) <nobuhiro1.iwamatsu@toshiba.co.jp>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0fcb038adc8fdf0f0e1ac44bbe36b0eeb825b04a
Author: Heiko Carstens <hca@linux.ibm.com>
Date:   Thu Mar 23 13:09:16 2023 +0100

    s390/uaccess: add missing earlyclobber annotations to __clear_user()
    
    commit 89aba4c26fae4e459f755a18912845c348ee48f3 upstream.
    
    Add missing earlyclobber annotation to size, to, and tmp2 operands of the
    __clear_user() inline assembly since they are modified or written to before
    the last usage of all input operands. This can lead to incorrect register
    allocation for the inline assembly.
    
    Fixes: 6c2a9e6df604 ("[S390] Use alternative user-copy operations for new hardware.")
    Reported-by: Mark Rutland <mark.rutland@arm.com>
    Link: https://lore.kernel.org/all/20230321122514.1743889-3-mark.rutland@arm.com/
    Cc: stable@vger.kernel.org
    Reviewed-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c9544fbc9794e2e1ab548b1801b0f4ef82933df
Author: Lucas Stach <l.stach@pengutronix.de>
Date:   Fri Feb 24 18:21:54 2023 +0100

    drm/etnaviv: fix reference leak when mmaping imported buffer
    
    commit 963b2e8c428f79489ceeb058e8314554ec9cbe6f upstream.
    
    drm_gem_prime_mmap() takes a reference on the GEM object, but before that
    drm_gem_mmap_obj() already takes a reference, which will be leaked as only
    one reference is dropped when the mapping is closed. Drop the extra
    reference when dma_buf_mmap() succeeds.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a795f95e63e5a60db653a946e3a6f0ed21daecac
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Mar 24 08:50:05 2023 +0100

    ALSA: usb-audio: Fix regression on detection of Roland VS-100
    
    commit fa4e7a6fa12b1132340785e14bd439cbe95b7a5a upstream.
    
    It's been reported that the recent kernel can't probe the PCM devices
    on Roland VS-100 properly, and it turned out to be a regression by the
    recent addition of the bit shift range check for the format bits.
    In the old code, we just did bit-shift and it resulted in zero, which
    is then corrected to the standard PCM format, while the new code
    explicitly returns an error in such a case.
    
    For addressing the regression, relax the check and fallback to the
    standard PCM type (with the info output).
    
    Fixes: 43d5ca88dfcd ("ALSA: usb-audio: Fix potential out-of-bounds shift")
    Cc: <stable@vger.kernel.org>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=217084
    Link: https://lore.kernel.org/r/20230324075005.19403-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36bfbaa295507e74bc0b038959b653ea733f5edb
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Mar 20 15:09:54 2023 +0100

    ALSA: hda/conexant: Partial revert of a quirk for Lenovo
    
    commit b871cb971c683f7f212e7ca3c9a6709a75785116 upstream.
    
    The recent commit f83bb2592482 ("ALSA: hda/conexant: Add quirk for
    LENOVO 20149 Notebook model") introduced a quirk for the device with
    17aa:3977, but this caused a regression on another model (Lenovo
    Ideadpad U31) with the very same PCI SSID.  And, through skimming over
    the net, it seems that this PCI SSID is used for multiple different
    models, so it's no good idea to apply the quirk with the SSID.
    
    Although we may take a different ID check (e.g. the codec SSID instead
    of the PCI SSID), unfortunately, the original patch author couldn't
    identify the hardware details any longer as the machine was returned,
    and we can't develop the further proper fix.
    
    In this patch, instead, we partially revert the change so that the
    quirk won't be applied as default for addressing the regression.
    Meanwhile, the quirk function itself is kept, and it's now made to be
    applicable via the explicit model=lenovo-20149 option.
    
    Fixes: f83bb2592482 ("ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model")
    Reported-by: Jetro Jormalainen <jje-lxkl@jetro.fi>
    Link: https://lore.kernel.org/r/20230308215009.4d3e58a6@mopti
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20230320140954.31154-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4fa1654a0344cb1471e6d51f8829112c759ac82
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Fri Feb 24 14:08:28 2023 +0100

    pinctrl: at91-pio4: fix domain name assignment
    
    commit 7bb97e360acdd38b68ad0a1defb89c6e89c85596 upstream.
    
    Since commit d59f6617eef0 ("genirq: Allow fwnode to carry name
    information only") an IRQ domain is always given a name during
    allocation (e.g. used for the debugfs entry).
    
    Drop the no longer valid name assignment, which would lead to an attempt
    to free a string constant when removing the domain on late probe
    failures (e.g. probe deferral).
    
    Fixes: d59f6617eef0 ("genirq: Allow fwnode to carry name information only")
    Cc: stable@vger.kernel.org      # 4.13
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Tested-by: Claudiu Beznea <claudiu.beznea@microchip.com> # on SAMA7G5
    Link: https://lore.kernel.org/r/20230224130828.27985-1-johan+linaro@kernel.org
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a982b86cad1d99a49dddb65315c024bf327da18e
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Mar 27 10:36:45 2023 +0200

    xen/netback: don't do grant copy across page boundary
    
    commit 05310f31ca74673a96567fb14637b7d5d6c82ea5 upstream.
    
    Fix xenvif_get_requests() not to do grant copy operations across local
    page boundaries. This requires to double the maximum number of copy
    operations per queue, as each copy could now be split into 2.
    
    Make sure that struct xenvif_tx_cb doesn't grow too large.
    
    Cc: stable@vger.kernel.org
    Fixes: ad7f402ae4f4 ("xen/netback: Ensure protocol headers don't fall in the non-linear area")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Paul Durrant <paul@xen.org>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8cd7dbc9c46d51e00a0a8372e07cc1cbb8d24a77
Author: David Disseldorp <ddiss@suse.de>
Date:   Wed Mar 29 22:24:06 2023 +0200

    cifs: fix DFS traversal oops without CONFIG_CIFS_DFS_UPCALL
    
    commit 179a88a8558bbf42991d361595281f3e45d7edfc upstream.
    
    When compiled with CONFIG_CIFS_DFS_UPCALL disabled, cifs_dfs_d_automount
    is NULL. cifs.ko logic for mapping CIFS_FATTR_DFS_REFERRAL attributes to
    S_AUTOMOUNT and corresponding dentry flags is retained regardless of
    CONFIG_CIFS_DFS_UPCALL, leading to a NULL pointer dereference in
    VFS follow_automount() when traversing a DFS referral link:
      BUG: kernel NULL pointer dereference, address: 0000000000000000
      ...
      Call Trace:
       <TASK>
       __traverse_mounts+0xb5/0x220
       ? cifs_revalidate_mapping+0x65/0xc0 [cifs]
       step_into+0x195/0x610
       ? lookup_fast+0xe2/0xf0
       path_lookupat+0x64/0x140
       filename_lookup+0xc2/0x140
       ? __create_object+0x299/0x380
       ? kmem_cache_alloc+0x119/0x220
       ? user_path_at_empty+0x31/0x50
       user_path_at_empty+0x31/0x50
       __x64_sys_chdir+0x2a/0xd0
       ? exit_to_user_mode_prepare+0xca/0x100
       do_syscall_64+0x42/0x90
       entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    This fix adds an inline cifs_dfs_d_automount() {return -EREMOTE} handler
    when CONFIG_CIFS_DFS_UPCALL is disabled. An alternative would be to
    avoid flagging S_AUTOMOUNT, etc. without CONFIG_CIFS_DFS_UPCALL. This
    approach was chosen as it provides more control over the error path.
    
    Signed-off-by: David Disseldorp <ddiss@suse.de>
    Cc: stable@vger.kernel.org
    Reviewed-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
    Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6171c70c61c02c14b5851322a13b9d8d4a48e90c
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sun Mar 19 21:36:36 2023 -0700

    Input: focaltech - use explicitly signed char type
    
    commit 8980f190947ba29f23110408e712444884b74251 upstream.
    
    The recent change of -funsigned-char causes additions of negative
    numbers to become additions of large positive numbers, leading to wrong
    calculations of mouse movement. Change these casts to be explicitly
    signed, to take into account negative offsets.
    
    Fixes: 3bc753c06dd0 ("kbuild: treat char as always unsigned")
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Cc: stable@vger.kernel.org
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=217211
    Link: https://lore.kernel.org/r/20230318133010.1285202-1-Jason@zx2c4.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 888b802b369435e19afd8d7da8d19a2299dfeff9
Author: Radoslaw Tyl <radoslawx.tyl@intel.com>
Date:   Tue Mar 28 10:26:59 2023 -0700

    i40e: fix registers dump after run ethtool adapter self test
    
    [ Upstream commit c5cff16f461a4a434a9915a7be7ac9ced861a8a4 ]
    
    Fix invalid registers dump from ethtool -d ethX after adapter self test
    by ethtool -t ethY. It causes invalid data display.
    
    The problem was caused by overwriting i40e_reg_list[].elements
    which is common for ethtool self test and dump.
    
    Fixes: 22dd9ae8afcc ("i40e: Rework register diagnostic")
    Signed-off-by: Radoslaw Tyl <radoslawx.tyl@intel.com>
    Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Tested-by: Arpana Arland <arpanax.arland@intel.com> (A Contingent worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Link: https://lore.kernel.org/r/20230328172659.3906413-1-anthony.l.nguyen@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3fa0f1e0e31b1b73cdf59d4c36c7242e6ef821be
Author: Ivan Orlov <ivan.orlov0322@gmail.com>
Date:   Tue Mar 14 16:04:45 2023 +0400

    can: bcm: bcm_tx_setup(): fix KMSAN uninit-value in vfs_write
    
    [ Upstream commit 2b4c99f7d9a57ecd644eda9b1fb0a1072414959f ]
    
    Syzkaller reported the following issue:
    
    =====================================================
    BUG: KMSAN: uninit-value in aio_rw_done fs/aio.c:1520 [inline]
    BUG: KMSAN: uninit-value in aio_write+0x899/0x950 fs/aio.c:1600
     aio_rw_done fs/aio.c:1520 [inline]
     aio_write+0x899/0x950 fs/aio.c:1600
     io_submit_one+0x1d1c/0x3bf0 fs/aio.c:2019
     __do_sys_io_submit fs/aio.c:2078 [inline]
     __se_sys_io_submit+0x293/0x770 fs/aio.c:2048
     __x64_sys_io_submit+0x92/0xd0 fs/aio.c:2048
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Uninit was created at:
     slab_post_alloc_hook mm/slab.h:766 [inline]
     slab_alloc_node mm/slub.c:3452 [inline]
     __kmem_cache_alloc_node+0x71f/0xce0 mm/slub.c:3491
     __do_kmalloc_node mm/slab_common.c:967 [inline]
     __kmalloc+0x11d/0x3b0 mm/slab_common.c:981
     kmalloc_array include/linux/slab.h:636 [inline]
     bcm_tx_setup+0x80e/0x29d0 net/can/bcm.c:930
     bcm_sendmsg+0x3a2/0xce0 net/can/bcm.c:1351
     sock_sendmsg_nosec net/socket.c:714 [inline]
     sock_sendmsg net/socket.c:734 [inline]
     sock_write_iter+0x495/0x5e0 net/socket.c:1108
     call_write_iter include/linux/fs.h:2189 [inline]
     aio_write+0x63a/0x950 fs/aio.c:1600
     io_submit_one+0x1d1c/0x3bf0 fs/aio.c:2019
     __do_sys_io_submit fs/aio.c:2078 [inline]
     __se_sys_io_submit+0x293/0x770 fs/aio.c:2048
     __x64_sys_io_submit+0x92/0xd0 fs/aio.c:2048
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    CPU: 1 PID: 5034 Comm: syz-executor350 Not tainted 6.2.0-rc6-syzkaller-80422-geda666ff2276 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/12/2023
    =====================================================
    
    We can follow the call chain and find that 'bcm_tx_setup' function
    calls 'memcpy_from_msg' to copy some content to the newly allocated
    frame of 'op->frames'. After that the 'len' field of copied structure
    being compared with some constant value (64 or 8). However, if
    'memcpy_from_msg' returns an error, we will compare some uninitialized
    memory. This triggers 'uninit-value' issue.
    
    This patch will add 'memcpy_from_msg' possible errors processing to
    avoid uninit-value issue.
    
    Tested via syzkaller
    
    Reported-by: syzbot+c9bfd85eca611ebf5db1@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=47f897f8ad958bbde5790ebf389b5e7e0a345089
    Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com>
    Fixes: 6f3b911d5f29b ("can: bcm: add support for CAN FD frames")
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Link: https://lore.kernel.org/all/20230314120445.12407-1-ivan.orlov0322@gmail.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2260925a2c8a3e8ac4fed30e6bb826a96db0b770
Author: Tomas Henzl <thenzl@redhat.com>
Date:   Fri Mar 24 16:01:34 2023 +0100

    scsi: megaraid_sas: Fix crash after a double completion
    
    [ Upstream commit 2309df27111a51734cb9240b4d3c25f2f3c6ab06 ]
    
    When a physical disk is attached directly "without JBOD MAP support" (see
    megasas_get_tm_devhandle()) then there is no real error handling in the
    driver.  Return FAILED instead of SUCCESS.
    
    Fixes: 18365b138508 ("megaraid_sas: Task management support")
    Signed-off-by: Tomas Henzl <thenzl@redhat.com>
    Link: https://lore.kernel.org/r/20230324150134.14696-1-thenzl@redhat.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fc9e8828257697fa86b438fe8bf6fb3e8f251fce
Author: Wei Chen <harperchen1110@gmail.com>
Date:   Wed Mar 15 09:22:54 2023 +0000

    fbdev: au1200fb: Fix potential divide by zero
    
    [ Upstream commit 44a3b36b42acfc433aaaf526191dd12fbb919fdb ]
    
    var->pixclock can be assigned to zero by user. Without
    proper check, divide by zero would occur when invoking
    macro PICOS2KHZ in au1200fb_fb_check_var.
    
    Error out if var->pixclock is zero.
    
    Signed-off-by: Wei Chen <harperchen1110@gmail.com>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cba63eac8bd16c497f3564778b1e9e7af8442655
Author: Wei Chen <harperchen1110@gmail.com>
Date:   Wed Mar 15 09:05:18 2023 +0000

    fbdev: lxfb: Fix potential divide by zero
    
    [ Upstream commit 61ac4b86a4c047c20d5cb423ddd87496f14d9868 ]
    
    var->pixclock can be assigned to zero by user. Without proper
    check, divide by zero would occur in lx_set_clock.
    
    Error out if var->pixclock is zero.
    
    Signed-off-by: Wei Chen <harperchen1110@gmail.com>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0f768e4790a67f5e15b52eaa16058966b75bbbf3
Author: Wei Chen <harperchen1110@gmail.com>
Date:   Wed Mar 15 08:33:47 2023 +0000

    fbdev: intelfb: Fix potential divide by zero
    
    [ Upstream commit d823685486a3446d061fed7c7d2f80af984f119a ]
    
    Variable var->pixclock is controlled by user and can be assigned
    to zero. Without proper check, divide by zero would occur in
    intelfbhw_validate_mode and intelfbhw_mode_to_hw.
    
    Error out if var->pixclock is zero.
    
    Signed-off-by: Wei Chen <harperchen1110@gmail.com>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1d2902675025e3d92712d58938e836a2b1a1e107
Author: Wei Chen <harperchen1110@gmail.com>
Date:   Wed Mar 15 07:18:31 2023 +0000

    fbdev: nvidia: Fix potential divide by zero
    
    [ Upstream commit 92e2a00f2987483e1f9253625828622edd442e61 ]
    
    variable var->pixclock can be set by user. In case it
    equals to zero, divide by zero would occur in nvidiafb_set_par.
    
    Similar crashes have happened in other fbdev drivers. There
    is no check and modification on var->pixclock along the call
    chain to nvidia_check_var and nvidiafb_set_par. We believe it
    could also be triggered in driver nvidia from user site.
    
    Signed-off-by: Wei Chen <harperchen1110@gmail.com>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e8c280f3ab49dfad859f1027a9dd35545f0351a5
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Mar 14 19:32:38 2023 -0700

    sched_getaffinity: don't assume 'cpumask_size()' is fully initialized
    
    [ Upstream commit 6015b1aca1a233379625385feb01dd014aca60b5 ]
    
    The getaffinity() system call uses 'cpumask_size()' to decide how big
    the CPU mask is - so far so good.  It is indeed the allocation size of a
    cpumask.
    
    But the code also assumes that the whole allocation is initialized
    without actually doing so itself.  That's wrong, because we might have
    fixed-size allocations (making copying and clearing more efficient), but
    not all of it is then necessarily used if 'nr_cpu_ids' is smaller.
    
    Having checked other users of 'cpumask_size()', they all seem to be ok,
    either using it purely for the allocation size, or explicitly zeroing
    the cpumask before using the size in bytes to copy it.
    
    See for example the ublk_ctrl_get_queue_affinity() function that uses
    the proper 'zalloc_cpumask_var()' to make sure that the whole mask is
    cleared, whether the storage is on the stack or if it was an external
    allocation.
    
    Fix this by just zeroing the allocation before using it.  Do the same
    for the compat version of sched_getaffinity(), which had the same logic.
    
    Also, for consistency, make sched_getaffinity() use 'cpumask_bits()' to
    access the bits.  For a cpumask_var_t, it ends up being a pointer to the
    same data either way, but it's just a good idea to treat it like you
    would a 'cpumask_t'.  The compat case already did that.
    
    Reported-by: Ryan Roberts <ryan.roberts@arm.com>
    Link: https://lore.kernel.org/lkml/7d026744-6bd6-6827-0471-b5e8eae0be3f@arm.com/
    Cc: Yury Norov <yury.norov@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e4b357b30b01c08e987316048baac10b9d8b19d
Author: Wei Chen <harperchen1110@gmail.com>
Date:   Tue Mar 7 13:08:56 2023 +0000

    fbdev: tgafb: Fix potential divide by zero
    
    [ Upstream commit f90bd245de82c095187d8c2cabb8b488a39eaecc ]
    
    fb_set_var would by called when user invokes ioctl with cmd
    FBIOPUT_VSCREENINFO. User-provided data would finally reach
    tgafb_check_var. In case var->pixclock is assigned to zero,
    divide by zero would occur when checking whether reciprocal
    of var->pixclock is too high.
    
    Similar crashes have happened in other fbdev drivers. There
    is no check and modification on var->pixclock along the call
    chain to tgafb_check_var. We believe it could also be triggered
    in driver tgafb from user site.
    
    Signed-off-by: Wei Chen <harperchen1110@gmail.com>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff5e8b49348f6a550c136b74efaf8b3c1d3ceaea
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Mon Mar 13 00:50:28 2023 +0000

    ALSA: hda/ca0132: fixup buffer overrun at tuning_ctl_set()
    
    [ Upstream commit 98e5eb110095ec77cb6d775051d181edbf9cd3cf ]
    
    tuning_ctl_set() might have buffer overrun at (X) if it didn't break
    from loop by matching (A).
    
            static int tuning_ctl_set(...)
            {
                    for (i = 0; i < TUNING_CTLS_COUNT; i++)
    (A)                     if (nid == ca0132_tuning_ctls[i].nid)
                                    break;
    
                    snd_hda_power_up(...);
    (X)             dspio_set_param(..., ca0132_tuning_ctls[i].mid, ...);
                    snd_hda_power_down(...);                ^
    
                    return 1;
            }
    
    We will get below error by cppcheck
    
            sound/pci/hda/patch_ca0132.c:4229:2: note: After for loop, i has value 12
             for (i = 0; i < TUNING_CTLS_COUNT; i++)
             ^
            sound/pci/hda/patch_ca0132.c:4234:43: note: Array index out of bounds
             dspio_set_param(codec, ca0132_tuning_ctls[i].mid, 0x20,
                                                       ^
    This patch cares non match case.
    
    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/87sfe9eap7.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c984fe5a1eb500bd338d43c8bcabc15dc42326f
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Mon Mar 13 00:49:24 2023 +0000

    ALSA: asihpi: check pao in control_message()
    
    [ Upstream commit 9026c0bf233db53b86f74f4c620715e94eb32a09 ]
    
    control_message() might be called with pao = NULL.
    Here indicates control_message() as sample.
    
    (B)     static void control_message(struct hpi_adapter_obj *pao, ...)
            {                                                   ^^^
                    struct hpi_hw_obj *phw = pao->priv;
                    ...                      ^^^
            }
    
    (A)     void _HPI_6205(struct hpi_adapter_obj *pao, ...)
            {                                      ^^^
                    ...
                    case HPI_OBJ_CONTROL:
    (B)                     control_message(pao, phm, phr);
                            break;          ^^^
                    ...
            }
    
            void HPI_6205(...)
            {
                    ...
    (A)             _HPI_6205(NULL, phm, phr);
                    ...       ^^^^
            }
    
    Therefore, We will get too many warning via cppcheck, like below
    
            sound/pci/asihpi/hpi6205.c:238:27: warning: Possible null pointer dereference: pao [nullPointer]
                     struct hpi_hw_obj *phw = pao->priv;
                                              ^
            sound/pci/asihpi/hpi6205.c:433:13: note: Calling function '_HPI_6205', 1st argument 'NULL' value is 0
                      _HPI_6205(NULL, phm, phr);
                                ^
            sound/pci/asihpi/hpi6205.c:401:20: note: Calling function 'control_message', 1st argument 'pao' value is 0
               control_message(pao, phm, phr);
                               ^
    Set phr->error like many functions doing, and don't call _HPI_6205()
    with NULL.
    
    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/87ttypeaqz.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 04cdafeb356ed2841226ddf3ac683417b703ee7a
Author: NeilBrown <neilb@suse.de>
Date:   Mon Mar 6 09:36:25 2023 +1100

    md: avoid signed overflow in slot_store()
    
    [ Upstream commit 3bc57292278a0b6ac4656cad94c14f2453344b57 ]
    
    slot_store() uses kstrtouint() to get a slot number, but stores the
    result in an "int" variable (by casting a pointer).
    This can result in a negative slot number if the unsigned int value is
    very large.
    
    A negative number means that the slot is empty, but setting a negative
    slot number this way will not remove the device from the array.  I don't
    think this is a serious problem, but it could cause confusion and it is
    best to fix it.
    
    Reported-by: Dan Carpenter <error27@gmail.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Song Liu <song@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1629f6f522b2d058019710466a84b240683bbee3
Author: Jan Kara via Ocfs2-devel <ocfs2-devel@oss.oracle.com>
Date:   Thu Mar 2 16:38:43 2023 +0100

    ocfs2: fix data corruption after failed write
    
    commit 90410bcf873cf05f54a32183afff0161f44f9715 upstream.
    
    When buffered write fails to copy data into underlying page cache page,
    ocfs2_write_end_nolock() just zeroes out and dirties the page.  This can
    leave dirty page beyond EOF and if page writeback tries to write this page
    before write succeeds and expands i_size, page gets into inconsistent
    state where page dirty bit is clear but buffer dirty bits stay set
    resulting in page data never getting written and so data copied to the
    page is lost.  Fix the problem by invalidating page beyond EOF after
    failed write.
    
    Link: https://lkml.kernel.org/r/20230302153843.18499-1-jack@suse.cz
    Fixes: 6dbf7bb55598 ("fs: Don't invalidate page buffers in block_write_full_page()")
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Gang He <ghe@suse.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    [ replace block_invalidate_folio to block_invalidatepage ]
    Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d26b74599ef561b41c5bd1785520f65fbd15725
Author: Vincent Guittot <vincent.guittot@linaro.org>
Date:   Fri Mar 17 17:08:10 2023 +0100

    sched/fair: Sanitize vruntime of entity being migrated
    
    commit a53ce18cacb477dd0513c607f187d16f0fa96f71 upstream.
    
    Commit 829c1651e9c4 ("sched/fair: sanitize vruntime of entity being placed")
    fixes an overflowing bug, but ignore a case that se->exec_start is reset
    after a migration.
    
    For fixing this case, we delay the reset of se->exec_start after
    placing the entity which se->exec_start to detect long sleeping task.
    
    In order to take into account a possible divergence between the clock_task
    of 2 rqs, we increase the threshold to around 104 days.
    
    Fixes: 829c1651e9c4 ("sched/fair: sanitize vruntime of entity being placed")
    Originally-by: Zhang Qiao <zhangqiao22@huawei.com>
    Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Tested-by: Zhang Qiao <zhangqiao22@huawei.com>
    Link: https://lore.kernel.org/r/20230317160810.107988-1-vincent.guittot@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 53ab79e0ba7245e443411f2a1a230ebb0010cf03
Author: Zhang Qiao <zhangqiao22@huawei.com>
Date:   Mon Jan 30 13:22:16 2023 +0100

    sched/fair: sanitize vruntime of entity being placed
    
    commit 829c1651e9c4a6f78398d3e67651cef9bb6b42cc upstream.
    
    When a scheduling entity is placed onto cfs_rq, its vruntime is pulled
    to the base level (around cfs_rq->min_vruntime), so that the entity
    doesn't gain extra boost when placed backwards.
    
    However, if the entity being placed wasn't executed for a long time, its
    vruntime may get too far behind (e.g. while cfs_rq was executing a
    low-weight hog), which can inverse the vruntime comparison due to s64
    overflow.  This results in the entity being placed with its original
    vruntime way forwards, so that it will effectively never get to the cpu.
    
    To prevent that, ignore the vruntime of the entity being placed if it
    didn't execute for much longer than the characteristic sheduler time
    scale.
    
    [rkagan: formatted, adjusted commit log, comments, cutoff value]
    Signed-off-by: Zhang Qiao <zhangqiao22@huawei.com>
    Co-developed-by: Roman Kagan <rkagan@amazon.de>
    Signed-off-by: Roman Kagan <rkagan@amazon.de>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/20230130122216.3555094-1-rkagan@amazon.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e87cd83f70504f1cd2e428966f353c007d6d2d7f
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Mon Mar 6 11:17:58 2023 -0500

    dm crypt: add cond_resched() to dmcrypt_write()
    
    commit fb294b1c0ba982144ca467a75e7d01ff26304e2b upstream.
    
    The loop in dmcrypt_write may be running for unbounded amount of time,
    thus we need cond_resched() in it.
    
    This commit fixes the following warning:
    
    [ 3391.153255][   C12] watchdog: BUG: soft lockup - CPU#12 stuck for 23s! [dmcrypt_write/2:2897]
    ...
    [ 3391.387210][   C12] Call trace:
    [ 3391.390338][   C12]  blk_attempt_bio_merge.part.6+0x38/0x158
    [ 3391.395970][   C12]  blk_attempt_plug_merge+0xc0/0x1b0
    [ 3391.401085][   C12]  blk_mq_submit_bio+0x398/0x550
    [ 3391.405856][   C12]  submit_bio_noacct+0x308/0x380
    [ 3391.410630][   C12]  dmcrypt_write+0x1e4/0x208 [dm_crypt]
    [ 3391.416005][   C12]  kthread+0x130/0x138
    [ 3391.419911][   C12]  ret_from_fork+0x10/0x18
    
    Reported-by: yangerkun <yangerkun@huawei.com>
    Fixes: dc2676210c42 ("dm crypt: offload writes to thread")
    Cc: stable@vger.kernel.org
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2287d7b721471a3d58bcd829250336e3cdf1635e
Author: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Date:   Thu Mar 16 14:55:06 2023 +0800

    dm stats: check for and propagate alloc_percpu failure
    
    commit d3aa3e060c4a80827eb801fc448debc9daa7c46b upstream.
    
    Check alloc_precpu()'s return value and return an error from
    dm_stats_init() if it fails. Update alloc_dev() to fail if
    dm_stats_init() does.
    
    Otherwise, a NULL pointer dereference will occur in dm_stats_cleanup()
    even if dm-stats isn't being actively used.
    
    Fixes: fd2ed4d25270 ("dm: add statistics support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8cb50c68c87f2c4a1d65df9275073e9c94aef5e
Author: Wei Chen <harperchen1110@gmail.com>
Date:   Tue Mar 14 16:54:21 2023 +0000

    i2c: xgene-slimpro: Fix out-of-bounds bug in xgene_slimpro_i2c_xfer()
    
    commit 92fbb6d1296f81f41f65effd7f5f8c0f74943d15 upstream.
    
    The data->block[0] variable comes from user and is a number between
    0-255. Without proper check, the variable may be very large to cause
    an out-of-bounds when performing memcpy in slimpro_i2c_blkwr.
    
    Fix this bug by checking the value of writelen.
    
    Fixes: f6505fbabc42 ("i2c: add SLIMpro I2C device driver on APM X-Gene platform")
    Signed-off-by: Wei Chen <harperchen1110@gmail.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a94932381e8dae4117e9129b3c1282e18aa97b05
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Tue Mar 7 17:55:48 2023 +0900

    nilfs2: fix kernel-infoleak in nilfs_ioctl_wrap_copy()
    
    commit 003587000276f81d0114b5ce773d80c119d8cb30 upstream.
    
    The ioctl helper function nilfs_ioctl_wrap_copy(), which exchanges a
    metadata array to/from user space, may copy uninitialized buffer regions
    to user space memory for read-only ioctl commands NILFS_IOCTL_GET_SUINFO
    and NILFS_IOCTL_GET_CPINFO.
    
    This can occur when the element size of the user space metadata given by
    the v_size member of the argument nilfs_argv structure is larger than the
    size of the metadata element (nilfs_suinfo structure or nilfs_cpinfo
    structure) on the file system side.
    
    KMSAN-enabled kernels detect this issue as follows:
    
     BUG: KMSAN: kernel-infoleak in instrument_copy_to_user
     include/linux/instrumented.h:121 [inline]
     BUG: KMSAN: kernel-infoleak in _copy_to_user+0xc0/0x100 lib/usercopy.c:33
      instrument_copy_to_user include/linux/instrumented.h:121 [inline]
      _copy_to_user+0xc0/0x100 lib/usercopy.c:33
      copy_to_user include/linux/uaccess.h:169 [inline]
      nilfs_ioctl_wrap_copy+0x6fa/0xc10 fs/nilfs2/ioctl.c:99
      nilfs_ioctl_get_info fs/nilfs2/ioctl.c:1173 [inline]
      nilfs_ioctl+0x2402/0x4450 fs/nilfs2/ioctl.c:1290
      nilfs_compat_ioctl+0x1b8/0x200 fs/nilfs2/ioctl.c:1343
      __do_compat_sys_ioctl fs/ioctl.c:968 [inline]
      __se_compat_sys_ioctl+0x7dd/0x1000 fs/ioctl.c:910
      __ia32_compat_sys_ioctl+0x93/0xd0 fs/ioctl.c:910
      do_syscall_32_irqs_on arch/x86/entry/common.c:112 [inline]
      __do_fast_syscall_32+0xa2/0x100 arch/x86/entry/common.c:178
      do_fast_syscall_32+0x37/0x80 arch/x86/entry/common.c:203
      do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:246
      entry_SYSENTER_compat_after_hwframe+0x70/0x82
    
     Uninit was created at:
      __alloc_pages+0x9f6/0xe90 mm/page_alloc.c:5572
      alloc_pages+0xab0/0xd80 mm/mempolicy.c:2287
      __get_free_pages+0x34/0xc0 mm/page_alloc.c:5599
      nilfs_ioctl_wrap_copy+0x223/0xc10 fs/nilfs2/ioctl.c:74
      nilfs_ioctl_get_info fs/nilfs2/ioctl.c:1173 [inline]
      nilfs_ioctl+0x2402/0x4450 fs/nilfs2/ioctl.c:1290
      nilfs_compat_ioctl+0x1b8/0x200 fs/nilfs2/ioctl.c:1343
      __do_compat_sys_ioctl fs/ioctl.c:968 [inline]
      __se_compat_sys_ioctl+0x7dd/0x1000 fs/ioctl.c:910
      __ia32_compat_sys_ioctl+0x93/0xd0 fs/ioctl.c:910
      do_syscall_32_irqs_on arch/x86/entry/common.c:112 [inline]
      __do_fast_syscall_32+0xa2/0x100 arch/x86/entry/common.c:178
      do_fast_syscall_32+0x37/0x80 arch/x86/entry/common.c:203
      do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:246
      entry_SYSENTER_compat_after_hwframe+0x70/0x82
    
     Bytes 16-127 of 3968 are uninitialized
     ...
    
    This eliminates the leak issue by initializing the page allocated as
    buffer using get_zeroed_page().
    
    Link: https://lkml.kernel.org/r/20230307085548.6290-1-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+132fdd2f1e1805fdc591@syzkaller.appspotmail.com
      Link: https://lkml.kernel.org/r/000000000000a5bd2d05f63f04ae@google.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 3c1772c8cedf29254d7b46124d59651d5f41dc3f
Author: Xu Yang <xu.yang_2@nxp.com>
Date:   Fri Mar 17 14:15:16 2023 +0800

    usb: chipidea: core: fix possible concurrent when switch role
    
    commit 451b15ed138ec15bffbebb58a00ebdd884c3e659 upstream.
    
    The user may call role_store() when driver is handling
    ci_handle_id_switch() which is triggerred by otg event or power lost
    event. Unfortunately, the controller may go into chaos in this case.
    Fix this by protecting it with mutex lock.
    
    Fixes: a932a8041ff9 ("usb: chipidea: core: add sysfs group")
    cc: <stable@vger.kernel.org>
    Acked-by: Peter Chen <peter.chen@kernel.org>
    Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
    Link: https://lore.kernel.org/r/20230317061516.2451728-2-xu.yang_2@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 377b6102e408cb8b869e89bc9dde8d3ae5fe28ce
Author: Xu Yang <xu.yang_2@nxp.com>
Date:   Fri Mar 17 14:15:15 2023 +0800

    usb: chipdea: core: fix return -EINVAL if request role is the same with current role
    
    commit 3670de80678961eda7fa2220883fc77c16868951 upstream.
    
    It should not return -EINVAL if the request role is the same with current
    role, return non-error and without do anything instead.
    
    Fixes: a932a8041ff9 ("usb: chipidea: core: add sysfs group")
    cc: <stable@vger.kernel.org>
    Acked-by: Peter Chen <peter.chen@kernel.org>
    Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
    Link: https://lore.kernel.org/r/20230317061516.2451728-1-xu.yang_2@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0dabb72b923e17cb3b4ac99ea1adc9ef35116930
Author: Lin Ma <linma@zju.edu.cn>
Date:   Tue Mar 7 23:29:17 2023 +0800

    igb: revert rtnl_lock() that causes deadlock
    
    commit 65f69851e44d71248b952a687e44759a7abb5016 upstream.
    
    The commit 6faee3d4ee8b ("igb: Add lock to avoid data race") adds
    rtnl_lock to eliminate a false data race shown below
    
     (FREE from device detaching)      |   (USE from netdev core)
    igb_remove                         |  igb_ndo_get_vf_config
     igb_disable_sriov                 |  vf >= adapter->vfs_allocated_count?
      kfree(adapter->vf_data)          |
      adapter->vfs_allocated_count = 0 |
                                       |    memcpy(... adapter->vf_data[vf]
    
    The above race will never happen and the extra rtnl_lock causes deadlock
    below
    
    [  141.420169]  <TASK>
    [  141.420672]  __schedule+0x2dd/0x840
    [  141.421427]  schedule+0x50/0xc0
    [  141.422041]  schedule_preempt_disabled+0x11/0x20
    [  141.422678]  __mutex_lock.isra.13+0x431/0x6b0
    [  141.423324]  unregister_netdev+0xe/0x20
    [  141.423578]  igbvf_remove+0x45/0xe0 [igbvf]
    [  141.423791]  pci_device_remove+0x36/0xb0
    [  141.423990]  device_release_driver_internal+0xc1/0x160
    [  141.424270]  pci_stop_bus_device+0x6d/0x90
    [  141.424507]  pci_stop_and_remove_bus_device+0xe/0x20
    [  141.424789]  pci_iov_remove_virtfn+0xba/0x120
    [  141.425452]  sriov_disable+0x2f/0xf0
    [  141.425679]  igb_disable_sriov+0x4e/0x100 [igb]
    [  141.426353]  igb_remove+0xa0/0x130 [igb]
    [  141.426599]  pci_device_remove+0x36/0xb0
    [  141.426796]  device_release_driver_internal+0xc1/0x160
    [  141.427060]  driver_detach+0x44/0x90
    [  141.427253]  bus_remove_driver+0x55/0xe0
    [  141.427477]  pci_unregister_driver+0x2a/0xa0
    [  141.428296]  __x64_sys_delete_module+0x141/0x2b0
    [  141.429126]  ? mntput_no_expire+0x4a/0x240
    [  141.429363]  ? syscall_trace_enter.isra.19+0x126/0x1a0
    [  141.429653]  do_syscall_64+0x5b/0x80
    [  141.429847]  ? exit_to_user_mode_prepare+0x14d/0x1c0
    [  141.430109]  ? syscall_exit_to_user_mode+0x12/0x30
    [  141.430849]  ? do_syscall_64+0x67/0x80
    [  141.431083]  ? syscall_exit_to_user_mode_prepare+0x183/0x1b0
    [  141.431770]  ? syscall_exit_to_user_mode+0x12/0x30
    [  141.432482]  ? do_syscall_64+0x67/0x80
    [  141.432714]  ? exc_page_fault+0x64/0x140
    [  141.432911]  entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    Since the igb_disable_sriov() will call pci_disable_sriov() before
    releasing any resources, the netdev core will synchronize the cleanup to
    avoid any races. This patch removes the useless rtnl_(un)lock to guarantee
    correctness.
    
    CC: stable@vger.kernel.org
    Fixes: 6faee3d4ee8b ("igb: Add lock to avoid data race")
    Reported-by: Corinna Vinschen <vinschen@redhat.com>
    Link: https://lore.kernel.org/intel-wired-lan/ZAcJvkEPqWeJHO2r@calimero.vinschen.de/
    Signed-off-by: Lin Ma <linma@zju.edu.cn>
    Tested-by: Corinna Vinschen <vinschen@redhat.com>
    Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e016ef2e72da93a2ea7afbb45de1b481b44d761
Author: Alvin Šipraga <alsi@bang-olufsen.dk>
Date:   Thu Mar 2 17:36:47 2023 +0100

    usb: gadget: u_audio: don't let userspace block driver unbind
    
    commit 6c67ed9ad9b83e453e808f9b31a931a20a25629b upstream.
    
    In the unbind callback for f_uac1 and f_uac2, a call to snd_card_free()
    via g_audio_cleanup() will disconnect the card and then wait for all
    resources to be released, which happens when the refcount falls to zero.
    Since userspace can keep the refcount incremented by not closing the
    relevant file descriptor, the call to unbind may block indefinitely.
    This can cause a deadlock during reboot, as evidenced by the following
    blocked task observed on my machine:
    
      task:reboot  state:D stack:0   pid:2827  ppid:569    flags:0x0000000c
      Call trace:
       __switch_to+0xc8/0x140
       __schedule+0x2f0/0x7c0
       schedule+0x60/0xd0
       schedule_timeout+0x180/0x1d4
       wait_for_completion+0x78/0x180
       snd_card_free+0x90/0xa0
       g_audio_cleanup+0x2c/0x64
       afunc_unbind+0x28/0x60
       ...
       kernel_restart+0x4c/0xac
       __do_sys_reboot+0xcc/0x1ec
       __arm64_sys_reboot+0x28/0x30
       invoke_syscall+0x4c/0x110
       ...
    
    The issue can also be observed by opening the card with arecord and
    then stopping the process through the shell before unbinding:
    
      # arecord -D hw:UAC2Gadget -f S32_LE -c 2 -r 48000 /dev/null
      Recording WAVE '/dev/null' : Signed 32 bit Little Endian, Rate 48000 Hz, Stereo
      ^Z[1]+  Stopped                    arecord -D hw:UAC2Gadget -f S32_LE -c 2 -r 48000 /dev/null
      # echo gadget.0 > /sys/bus/gadget/drivers/configfs-gadget/unbind
      (observe that the unbind command never finishes)
    
    Fix the problem by using snd_card_free_when_closed() instead, which will
    still disconnect the card as desired, but defer the task of freeing the
    resources to the core once userspace closes its file descriptor.
    
    Fixes: 132fcb460839 ("usb: gadget: Add Audio Class 2.0 Driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Alvin Šipraga <alsi@bang-olufsen.dk>
    Reviewed-by: Ruslan Bilovol <ruslan.bilovol@gmail.com>
    Reviewed-by: John Keeping <john@metanate.com>
    Link: https://lore.kernel.org/r/20230302163648.3349669-1-alvin@pqrs.dk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 678c8f14cb76759f5531d804ead0374377cf2d7e
Author: Joel Selvaraj <joelselvaraj.oss@gmail.com>
Date:   Sun Mar 12 23:14:02 2023 -0500

    scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR
    
    commit a204b490595de71016b2360a1886ec8c12d0afac upstream.
    
    Xiaomi Poco F1 (qcom/sdm845-xiaomi-beryllium*.dts) comes with a SKhynix
    H28U74301AMR UFS. The sd_read_cpr() operation leads to a 120 second
    timeout, making the device bootup very slow:
    
    [  121.457736] sd 0:0:0:1: [sdb] tag#23 timing out command, waited 120s
    
    Setting the BLIST_SKIP_VPD_PAGES allows the device to skip the failing
    sd_read_cpr operation and boot normally.
    
    Signed-off-by: Joel Selvaraj <joelselvaraj.oss@gmail.com>
    Link: https://lore.kernel.org/r/20230313041402.39330-1-joelselvaraj.oss@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8990c79c88cc398af9556dc9135a96803d97474f
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Mon Mar 6 01:20:30 2023 +0000

    sh: sanitize the flags on sigreturn
    
    [ Upstream commit 573b22ccb7ce9ab7f0539a2e11a9d3609a8783f5 ]
    
    We fetch %SR value from sigframe; it might have been modified by signal
    handler, so we can't trust it with any bits that are not modifiable in
    user mode.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Rich Felker <dalias@libc.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1ca982d7be903aeb8aeea730002125442d3db3ad
Author: Enrico Sau <enrico.sau@gmail.com>
Date:   Mon Mar 6 13:05:28 2023 +0100

    net: usb: qmi_wwan: add Telit 0x1080 composition
    
    [ Upstream commit 382e363d5bed0cec5807b35761d14e55955eee63 ]
    
    Add the following Telit FE990 composition:
    
    0x1080: tty, adb, rmnet, tty, tty, tty, tty
    
    Signed-off-by: Enrico Sau <enrico.sau@gmail.com>
    Link: https://lore.kernel.org/r/20230306120528.198842-1-enrico.sau@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 149674a952989816d91de0a44d8ad70939c4282f
Author: Enrico Sau <enrico.sau@gmail.com>
Date:   Mon Mar 6 12:59:33 2023 +0100

    net: usb: cdc_mbim: avoid altsetting toggling for Telit FE990
    
    [ Upstream commit 418383e6ed6b4624a54ec05c535f13d184fbf33b ]
    
    Add quirk CDC_MBIM_FLAG_AVOID_ALTSETTING_TOGGLE for Telit FE990
    0x1081 composition in order to avoid bind error.
    
    Signed-off-by: Enrico Sau <enrico.sau@gmail.com>
    Link: https://lore.kernel.org/r/20230306115933.198259-1-enrico.sau@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 327e84fcfd6d821c109615af8fcc59c4adfdf634
Author: Adrien Thierry <athierry@redhat.com>
Date:   Mon Feb 20 09:07:40 2023 -0500

    scsi: ufs: core: Add soft dependency on governor_simpleondemand
    
    [ Upstream commit 2ebe16155dc8bd4e602cad5b5f65458d2eaa1a75 ]
    
    The ufshcd driver uses simpleondemand governor for devfreq. Add it to the
    list of ufshcd softdeps to allow userspace initramfs tools like dracut to
    automatically pull the governor module into the initramfs together with UFS
    drivers.
    
    Link: https://lore.kernel.org/r/20230220140740.14379-1-athierry@redhat.com
    Signed-off-by: Adrien Thierry <athierry@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c0cf2df8f8868c479e161dd4649449a566cb230
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Tue Feb 14 15:15:56 2023 +0100

    scsi: target: iscsi: Fix an error message in iscsi_check_key()
    
    [ Upstream commit 6cc55c969b7ce8d85e09a636693d4126c3676c11 ]
    
    The first half of the error message is printed by pr_err(), the second half
    is printed by pr_debug(). The user will therefore see only the first part
    of the message and will miss some useful information.
    
    Link: https://lore.kernel.org/r/20230214141556.762047-1-mlombard@redhat.com
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Reviewed-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1a6059f5ed57f48edfe7159404ff7d538d9d405b
Author: Michael Schmitz <schmitzmic@gmail.com>
Date:   Wed Mar 1 15:11:07 2023 +1300

    m68k: Only force 030 bus error if PC not in exception table
    
    [ Upstream commit e36a82bebbf7da814530d5a179bef9df5934b717 ]
    
    __get_kernel_nofault() does copy data in supervisor mode when
    forcing a task backtrace log through /proc/sysrq_trigger.
    This is expected cause a bus error exception on e.g. NULL
    pointer dereferencing when logging a kernel task has no
    workqueue associated. This bus error ought to be ignored.
    
    Our 030 bus error handler is ill equipped to deal with this:
    
    Whenever ssw indicates a kernel mode access on a data fault,
    we don't even attempt to handle the fault and instead always
    send a SEGV signal (or panic). As a result, the check
    for exception handling at the fault PC (buried in
    send_sig_fault() which gets called from do_page_fault()
    eventually) is never used.
    
    In contrast, both 040 and 060 access error handlers do not
    care whether a fault happened on supervisor mode access,
    and will call do_page_fault() on those, ultimately honoring
    the exception table.
    
    Add a check in bus_error030 to call do_page_fault() in case
    we do have an entry for the fault PC in our exception table.
    
    I had attempted a fix for this earlier in 2019 that did rely
    on testing pagefault_disabled() (see link below) to achieve
    the same thing, but this patch should be more generic.
    
    Tested on 030 Atari Falcon.
    
    Reported-by: Eero Tamminen <oak@helsinkinet.fi>
    Link: https://lore.kernel.org/r/alpine.LNX.2.21.1904091023540.25@nippy.intranet
    Link: https://lore.kernel.org/r/63130691-1984-c423-c1f2-73bfd8d3dcd3@gmail.com
    Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
    Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Link: https://lore.kernel.org/r/20230301021107.26307-1-schmitzmic@gmail.com
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 55d836f75778d2e2cafe37e023f9c106400bad4b
Author: Alexander Aring <aahringo@redhat.com>
Date:   Thu Feb 16 23:25:04 2023 -0500

    ca8210: fix mac_len negative array access
    
    [ Upstream commit 6c993779ea1d0cccdb3a5d7d45446dd229e610a3 ]
    
    This patch fixes a buffer overflow access of skb->data if
    ieee802154_hdr_peek_addrs() fails.
    
    Reported-by: lianhui tang <bluetlh@gmail.com>
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Link: https://lore.kernel.org/r/20230217042504.3303396-1-aahringo@redhat.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 737ffbe1a07a282b85d0072aa921b102e39048c4
Author: Alexandre Ghiti <alex@ghiti.fr>
Date:   Tue Mar 16 15:34:20 2021 -0400

    riscv: Bump COMMAND_LINE_SIZE value to 1024
    
    [ Upstream commit 61fc1ee8be26bc192d691932b0a67eabee45d12f ]
    
    Increase COMMAND_LINE_SIZE as the current default value is too low
    for syzbot kernel command line.
    
    There has been considerable discussion on this patch that has led to a
    larger patch set removing COMMAND_LINE_SIZE from the uapi headers on all
    ports.  That's not quite done yet, but it's gotten far enough we're
    confident this is not a uABI change so this is safe.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
    Link: https://lore.kernel.org/r/20210316193420.904-1-alex@ghiti.fr
    [Palmer: it's not uabi]
    Link: https://lore.kernel.org/linux-riscv/874b8076-b0d1-4aaa-bcd8-05d523060152@app.fastmail.com/#t
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 64455ea0fff3dfb01f0985411979216e9879367b
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Fri Mar 10 11:20:49 2023 -0600

    thunderbolt: Use const qualifier for `ring_interrupt_index`
    
    commit 1716efdb07938bd6510e1127d02012799112c433 upstream.
    
    `ring_interrupt_index` doesn't change the data for `ring` so mark it as
    const. This is needed by the following patch that disables interrupt
    auto clear for rings.
    
    Cc: Sanju Mehta <Sanju.Mehta@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b3b180a3060e27660b5d5e06a05d72cac776367
Author: Yaroslav Furman <yaro330@gmail.com>
Date:   Sun Mar 12 11:07:45 2023 +0200

    uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS583Gen 2
    
    commit a37eb61b6ec064ac794b8a1e89fd33eb582fe51d upstream.
    
    Just like other JMicron JMS5xx enclosures, it chokes on report-opcodes,
    let's avoid them.
    
    Signed-off-by: Yaroslav Furman <yaro330@gmail.com>
    Cc: stable <stable@kernel.org>
    Link: https://lore.kernel.org/r/20230312090745.47962-1-yaro330@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3c29c13c3533e87763e73196dc5d4f34b5e61b4f
Author: Frank Crawford <frank@crawford.emu.id.au>
Date:   Sat Mar 18 19:05:42 2023 +1100

    hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs
    
    [ Upstream commit 968b66ffeb7956acc72836a7797aeb7b2444ec51 ]
    
    Fix voltage scaling for chips that have 10.9mV ADCs, where scaling was
    not performed.
    
    Fixes: ead8080351c9 ("hwmon: (it87) Add support for IT8732F")
    Signed-off-by: Frank Crawford <frank@crawford.emu.id.au>
    Link: https://lore.kernel.org/r/20230318080543.1226700-2-frank@crawford.emu.id.au
    [groeck: Update subject and description to focus on bug fix]
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95eacef5692545f199fae4e52abfbfa273acb351
Author: Zheng Wang <zyytlz.wz@163.com>
Date:   Thu Mar 9 16:07:39 2023 +0800

    Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work
    
    [ Upstream commit 1e9ac114c4428fdb7ff4635b45d4f46017e8916f ]
    
    In btsdio_probe, &data->work was bound with btsdio_work.In
    btsdio_send_frame, it was started by schedule_work.
    
    If we call btsdio_remove with an unfinished job, there may
    be a race condition and cause UAF bug on hdev.
    
    Fixes: ddbaf13e3609 ("[Bluetooth] Add generic driver for Bluetooth SDIO devices")
    Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f4c5c88878b20bca427e33e2f649b154824076c
Author: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Date:   Wed Mar 8 14:31:55 2023 +0100

    Bluetooth: btqcomsmd: Fix command timeout after setting BD address
    
    [ Upstream commit 5d44ab9e204200a78ad55cdf185aa2bb109b5950 ]
    
    On most devices using the btqcomsmd driver (e.g. the DragonBoard 410c
    and other devices based on the Qualcomm MSM8916/MSM8909/... SoCs)
    the Bluetooth firmware seems to become unresponsive for a while after
    setting the BD address. On recent kernel versions (at least 5.17+)
    this often causes timeouts for subsequent commands, e.g. the HCI reset
    sent by the Bluetooth core during initialization:
    
        Bluetooth: hci0: Opcode 0x c03 failed: -110
    
    Unfortunately this behavior does not seem to be documented anywhere.
    Experimentation suggests that the minimum necessary delay to avoid
    the problem is ~150us. However, to be sure add a sleep for > 1ms
    in case it is a bit longer on other firmware versions.
    
    Older kernel versions are likely also affected, although perhaps with
    slightly different errors or less probability. Side effects can easily
    hide the issue in most cases, e.g. unrelated incoming interrupts that
    cause the necessary delay.
    
    Fixes: 1511cc750c3d ("Bluetooth: Introduce Qualcomm WCNSS SMD based HCI driver")
    Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f403f90c60b9cc7095c82d4650d834035286bd22
Author: Liang He <windhl@126.com>
Date:   Wed Mar 22 14:20:57 2023 +0800

    net: mdio: thunder: Add missing fwnode_handle_put()
    
    [ Upstream commit b1de5c78ebe9858ccec9d49af2f76724f1d47e3e ]
    
    In device_for_each_child_node(), we should add fwnode_handle_put()
    when break out of the iteration device_for_each_child_node()
    as it will automatically increase and decrease the refcounter.
    
    Fixes: 379d7ac7ca31 ("phy: mdio-thunder: Add driver for Cavium Thunder SoC MDIO buses.")
    Signed-off-by: Liang He <windhl@126.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38d976de63159c44f077215c344e363243caac69
Author: Roger Pau Monne <roger.pau@citrix.com>
Date:   Wed Nov 30 16:09:11 2022 +0100

    hvc/xen: prevent concurrent accesses to the shared ring
    
    [ Upstream commit 6214894f49a967c749ee6c07cb00f9cede748df4 ]
    
    The hvc machinery registers both a console and a tty device based on
    the hv ops provided by the specific implementation.  Those two
    interfaces however have different locks, and there's no single locks
    that's shared between the tty and the console implementations, hence
    the driver needs to protect itself against concurrent accesses.
    Otherwise concurrent calls using the split interfaces are likely to
    corrupt the ring indexes, leaving the console unusable.
    
    Introduce a lock to xencons_info to serialize accesses to the shared
    ring.  This is only required when using the shared memory console,
    concurrent accesses to the hypercall based console implementation are
    not an issue.
    
    Note the conditional logic in domU_read_console() is slightly modified
    so the notify_daemon() call can be done outside of the locked region:
    it's an hypercall and there's no need for it to be done with the lock
    held.
    
    Fixes: b536b4b96230 ('xen: use the hvc console infrastructure for Xen console')
    Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Link: https://lore.kernel.org/r/20221130150919.13935-1-roger.pau@citrix.com
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 93732645b4edc8e8aab2aeefdb77b605e28099d1
Author: Li Zetao <lizetao1@huawei.com>
Date:   Mon Mar 20 14:33:18 2023 +0000

    atm: idt77252: fix kmemleak when rmmod idt77252
    
    [ Upstream commit 4fe3c88552a3fbe1944426a4506a18cdeb457b5a ]
    
    There are memory leaks reported by kmemleak:
    
      unreferenced object 0xffff888106500800 (size 128):
        comm "modprobe", pid 1017, jiffies 4297787785 (age 67.152s)
        hex dump (first 32 bytes):
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        backtrace:
          [<00000000970ce626>] __kmem_cache_alloc_node+0x20c/0x380
          [<00000000fb5f78d9>] kmalloc_trace+0x2f/0xb0
          [<000000000e947e2a>] idt77252_init_one+0x2847/0x3c90 [idt77252]
          [<000000006efb048e>] local_pci_probe+0xeb/0x1a0
        ...
    
      unreferenced object 0xffff888106500b00 (size 128):
        comm "modprobe", pid 1017, jiffies 4297787785 (age 67.152s)
        hex dump (first 32 bytes):
          00 20 3d 01 80 88 ff ff 00 20 3d 01 80 88 ff ff  . =...... =.....
          f0 23 3d 01 80 88 ff ff 00 20 3d 01 00 00 00 00  .#=...... =.....
        backtrace:
          [<00000000970ce626>] __kmem_cache_alloc_node+0x20c/0x380
          [<00000000fb5f78d9>] kmalloc_trace+0x2f/0xb0
          [<00000000f451c5be>] alloc_scq.constprop.0+0x4a/0x400 [idt77252]
          [<00000000e6313849>] idt77252_init_one+0x28cf/0x3c90 [idt77252]
    
    The root cause is traced to the vc_maps which alloced in open_card_oam()
    are not freed in close_card_oam(). The vc_maps are used to record
    open connections, so when close a vc_map in close_card_oam(), the memory
    should be freed. Moreover, the ubr0 is not closed when close a idt77252
    device, leading to the memory leak of vc_map and scq_info.
    
    Fix them by adding kfree in close_card_oam() and implementing new
    close_card_ubr0() to close ubr0.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Li Zetao <lizetao1@huawei.com>
    Reviewed-by: Francois Romieu <romieu@fr.zoreil.com>
    Link: https://lore.kernel.org/r/20230320143318.2644630-1-lizetao1@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 19626e07d2d7980a34d67d02a8bec61cea45bd85
Author: Maher Sanalla <msanalla@nvidia.com>
Date:   Wed Mar 15 11:04:38 2023 +0200

    net/mlx5: Read the TC mapping of all priorities on ETS query
    
    [ Upstream commit 44d553188c38ac74b799dfdcebafef2f7bb70942 ]
    
    When ETS configurations are queried by the user to get the mapping
    assignment between packet priority and traffic class, only priorities up
    to maximum TCs are queried from QTCT register in FW to retrieve their
    assigned TC, leaving the rest of the priorities mapped to the default
    TC #0 which might be misleading.
    
    Fix by querying the TC mapping of all priorities on each ETS query,
    regardless of the maximum number of TCs configured in FW.
    
    Fixes: 820c2c5e773d ("net/mlx5e: Read ETS settings directly from firmware")
    Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
    Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 374ed036309fce73f9db04c3054018a71912d46b
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Mon Mar 20 15:37:25 2023 +0100

    bpf: Adjust insufficient default bpf_jit_limit
    
    [ Upstream commit 10ec8ca8ec1a2f04c4ed90897225231c58c124a7 ]
    
    We've seen recent AWS EKS (Kubernetes) user reports like the following:
    
      After upgrading EKS nodes from v20230203 to v20230217 on our 1.24 EKS
      clusters after a few days a number of the nodes have containers stuck
      in ContainerCreating state or liveness/readiness probes reporting the
      following error:
    
        Readiness probe errored: rpc error: code = Unknown desc = failed to
        exec in container: failed to start exec "4a11039f730203ffc003b7[...]":
        OCI runtime exec failed: exec failed: unable to start container process:
        unable to init seccomp: error loading seccomp filter into kernel:
        error loading seccomp filter: errno 524: unknown
    
      However, we had not been seeing this issue on previous AMIs and it only
      started to occur on v20230217 (following the upgrade from kernel 5.4 to
      5.10) with no other changes to the underlying cluster or workloads.
    
      We tried the suggestions from that issue (sysctl net.core.bpf_jit_limit=452534528)
      which helped to immediately allow containers to be created and probes to
      execute but after approximately a day the issue returned and the value
      returned by cat /proc/vmallocinfo | grep bpf_jit | awk '{s+=$2} END {print s}'
      was steadily increasing.
    
    I tested bpf tree to observe bpf_jit_charge_modmem, bpf_jit_uncharge_modmem
    their sizes passed in as well as bpf_jit_current under tcpdump BPF filter,
    seccomp BPF and native (e)BPF programs, and the behavior all looks sane
    and expected, that is nothing "leaking" from an upstream perspective.
    
    The bpf_jit_limit knob was originally added in order to avoid a situation
    where unprivileged applications loading BPF programs (e.g. seccomp BPF
    policies) consuming all the module memory space via BPF JIT such that loading
    of kernel modules would be prevented. The default limit was defined back in
    2018 and while good enough back then, we are generally seeing far more BPF
    consumers today.
    
    Adjust the limit for the BPF JIT pool from originally 1/4 to now 1/2 of the
    module memory space to better reflect today's needs and avoid more users
    running into potentially hard to debug issues.
    
    Fixes: fdadd04931c2 ("bpf: fix bpf_jit_limit knob for PAGE_SIZE >= 64K")
    Reported-by: Stephen Haynes <sh@synk.net>
    Reported-by: Lefteris Alexakis <lefteris.alexakis@kpn.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://github.com/awslabs/amazon-eks-ami/issues/1179
    Link: https://github.com/awslabs/amazon-eks-ami/issues/1219
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://lore.kernel.org/r/20230320143725.8394-1-daniel@iogearbox.net
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c707ad366eadafc2c26c05eb5625781d0b8d0145
Author: Geoff Levand <geoff@infradead.org>
Date:   Sat Mar 18 17:39:16 2023 +0000

    net/ps3_gelic_net: Use dma_mapping_error
    
    [ Upstream commit bebe933d35a63d4f042fbf4dce4f22e689ba0fcd ]
    
    The current Gelic Etherenet driver was checking the return value of its
    dma_map_single call, and not using the dma_mapping_error() routine.
    
    Fixes runtime problems like these:
    
      DMA-API: ps3_gelic_driver sb_05: device driver failed to check map error
      WARNING: CPU: 0 PID: 0 at kernel/dma/debug.c:1027 .check_unmap+0x888/0x8dc
    
    Fixes: 02c1889166b4 ("ps3: gigabit ethernet driver for PS3, take3")
    Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
    Signed-off-by: Geoff Levand <geoff@infradead.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0779fe4af241a27d550379bc59d802726f82b70
Author: Geoff Levand <geoff@infradead.org>
Date:   Sat Mar 18 17:39:16 2023 +0000

    net/ps3_gelic_net: Fix RX sk_buff length
    
    [ Upstream commit 19b3bb51c3bc288b3f2c6f8c4450b0f548320625 ]
    
    The Gelic Ethernet device needs to have the RX sk_buffs aligned to
    GELIC_NET_RXBUF_ALIGN, and also the length of the RX sk_buffs must
    be a multiple of GELIC_NET_RXBUF_ALIGN.
    
    The current Gelic Ethernet driver was not allocating sk_buffs large
    enough to allow for this alignment.
    
    Also, correct the maximum and minimum MTU sizes, and add a new
    preprocessor macro for the maximum frame size, GELIC_NET_MAX_FRAME.
    
    Fixes various randomly occurring runtime network errors.
    
    Fixes: 02c1889166b4 ("ps3: gigabit ethernet driver for PS3, take3")
    Signed-off-by: Geoff Levand <geoff@infradead.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aee129c0096e479eae92e2127f96f9d08f16ad8f
Author: Zheng Wang <zyytlz.wz@163.com>
Date:   Sat Mar 18 16:05:26 2023 +0800

    net: qcom/emac: Fix use after free bug in emac_remove due to race condition
    
    [ Upstream commit 6b6bc5b8bd2d4ca9e1efa9ae0f98a0b0687ace75 ]
    
    In emac_probe, &adpt->work_thread is bound with
    emac_work_thread. Then it will be started by timeout
    handler emac_tx_timeout or a IRQ handler emac_isr.
    
    If we remove the driver which will call emac_remove
      to make cleanup, there may be a unfinished work.
    
    The possible sequence is as follows:
    
    Fix it by finishing the work before cleanup in the emac_remove
    and disable timeout response.
    
    CPU0                  CPU1
    
                        |emac_work_thread
    emac_remove         |
    free_netdev         |
    kfree(netdev);      |
                        |emac_reinit_locked
                        |emac_mac_down
                        |//use netdev
    Fixes: b9b17debc69d ("net: emac: emac gigabit ethernet controller driver")
    Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fe7eebebca51d56b900331c3052a6342731f1117
Author: Zheng Wang <zyytlz.wz@163.com>
Date:   Fri Mar 17 00:15:26 2023 +0800

    xirc2ps_cs: Fix use after free bug in xirc2ps_detach
    
    [ Upstream commit e8d20c3ded59a092532513c9bd030d1ea66f5f44 ]
    
    In xirc2ps_probe, the local->tx_timeout_task was bounded
    with xirc2ps_tx_timeout_task. When timeout occurs,
    it will call xirc_tx_timeout->schedule_work to start the
    work.
    
    When we call xirc2ps_detach to remove the driver, there
    may be a sequence as follows:
    
    Stop responding to timeout tasks and complete scheduled
    tasks before cleanup in xirc2ps_detach, which will fix
    the problem.
    
    CPU0                  CPU1
    
                        |xirc2ps_tx_timeout_task
    xirc2ps_detach      |
      free_netdev       |
        kfree(dev);     |
                        |
                        | do_reset
                        |   //use dev
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7bd0037822fd04da13721f77a42ee5a077d4c5fb
Author: Daniil Tatianin <d-tatianin@yandex-team.ru>
Date:   Thu Mar 16 13:29:21 2023 +0300

    qed/qed_sriov: guard against NULL derefs from qed_iov_get_vf_info
    
    [ Upstream commit 25143b6a01d0cc5319edd3de22ffa2578b045550 ]
    
    We have to make sure that the info returned by the helper is valid
    before using it.
    
    Found by Linux Verification Center (linuxtesting.org) with the SVACE
    static analysis tool.
    
    Fixes: f990c82c385b ("qed*: Add support for ndo_set_vf_trust")
    Fixes: 733def6a04bf ("qed*: IOV link control")
    Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>
    Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 733580e268a53db1cd01f2251419da91866378f6
Author: Szymon Heidrich <szymon.heidrich@gmail.com>
Date:   Thu Mar 16 11:19:54 2023 +0100

    net: usb: smsc95xx: Limit packet length to skb->len
    
    [ Upstream commit ff821092cf02a70c2bccd2d19269f01e29aa52cf ]
    
    Packet length retrieved from descriptor may be larger than
    the actual socket buffer length. In such case the cloned
    skb passed up the network stack will leak kernel memory contents.
    
    Fixes: 2f7ca802bdae ("net: Add SMSC LAN9500 USB2.0 10/100 ethernet adapter driver")
    Signed-off-by: Szymon Heidrich <szymon.heidrich@gmail.com>
    Reviewed-by: Jakub Kicinski <kuba@kernel.org>
    Link: https://lore.kernel.org/r/20230316101954.75836-1-szymon.heidrich@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 123483df146492ca22b503ae6dacc2ce7c3a3974
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Wed Mar 15 14:21:54 2023 +0800

    scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate()
    
    [ Upstream commit a13faca032acbf2699293587085293bdfaafc8ae ]
    
    If alua_rtpg_queue() failed from alua_activate(), then 'qdata' is not
    freed, which will cause following memleak:
    
    unreferenced object 0xffff88810b2c6980 (size 32):
      comm "kworker/u16:2", pid 635322, jiffies 4355801099 (age 1216426.076s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        40 39 24 c1 ff ff ff ff 00 f8 ea 0a 81 88 ff ff  @9$.............
      backtrace:
        [<0000000098f3a26d>] alua_activate+0xb0/0x320
        [<000000003b529641>] scsi_dh_activate+0xb2/0x140
        [<000000007b296db3>] activate_path_work+0xc6/0xe0 [dm_multipath]
        [<000000007adc9ace>] process_one_work+0x3c5/0x730
        [<00000000c457a985>] worker_thread+0x93/0x650
        [<00000000cb80e628>] kthread+0x1ba/0x210
        [<00000000a1e61077>] ret_from_fork+0x22/0x30
    
    Fix the problem by freeing 'qdata' in error path.
    
    Fixes: 625fe857e4fa ("scsi: scsi_dh_alua: Check scsi_device_get() return value")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Link: https://lore.kernel.org/r/20230315062154.668812-1-yukuai1@huaweicloud.com
    Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34b179b1d7f0c0739b01bc9549b857e074c22fd9
Author: Alexander Stein <alexander.stein@ew.tq-group.com>
Date:   Mon Jan 30 16:32:47 2023 +0100

    i2c: imx-lpi2c: check only for enabled interrupt flags
    
    [ Upstream commit 1c7885004567e8951d65a983be095f254dd20bef ]
    
    When reading from I2C, the Tx watermark is set to 0. Unfortunately the
    TDF (transmit data flag) is enabled when Tx FIFO entries is equal or less
    than watermark. So it is set in every case, hence the reset default of 1.
    This results in the MSR_RDF _and_ MSR_TDF flags to be set thus trying
    to send Tx data on a read message.
    Mask the IRQ status to filter for wanted flags only.
    
    Fixes: a55fa9d0e42e ("i2c: imx-lpi2c: add low power i2c bus driver")
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Tested-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2a75fef8ced36f79f6074ea49899eda3778a2afe
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date:   Thu Dec 1 19:20:03 2022 +0900

    igbvf: Regard vf reset nack as success
    
    [ Upstream commit 02c83791ef969c6a8a150b4927193d0d0e50fb23 ]
    
    vf reset nack actually represents the reset operation itself is
    performed but no address is assigned. Therefore, e1000_reset_hw_vf
    should fill the "perm_addr" with the zero address and return success on
    such an occasion. This prevents its callers in netdev.c from saying PF
    still resetting, and instead allows them to correctly report that no
    address is assigned.
    
    Fixes: 6ddbc4cf1f4d ("igb: Indicate failure on vf reset for empty mac address")
    Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Tested-by: Marek Szlosek <marek.szlosek@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d560c3053f63036bba88fc488d3e0d33330ba0fa
Author: Gaosheng Cui <cuigaosheng1@huawei.com>
Date:   Tue Nov 22 10:28:52 2022 +0800

    intel/igbvf: free irq on the error path in igbvf_request_msix()
    
    [ Upstream commit 85eb39bb39cbb5c086df1e19ba67cc1366693a77 ]
    
    In igbvf_request_msix(), irqs have not been freed on the err path,
    we need to free it. Fix it.
    
    Fixes: d4e0fe01a38a ("igbvf: add new driver to support 82576 virtual functions")
    Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
    Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
    Tested-by: Marek Szlosek <marek.szlosek@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5a78beeea3fbeddaf280e53c26d3df5942ee4fb9
Author: Alexander Lobakin <aleksander.lobakin@intel.com>
Date:   Wed Mar 1 12:59:07 2023 +0100

    iavf: fix inverted Rx hash condition leading to disabled hash
    
    [ Upstream commit 32d57f667f871bc5a8babbe27ea4c5e668ee0ea8 ]
    
    Condition, which checks whether the netdev has hashing enabled is
    inverted. Basically, the tagged commit effectively disabled passing flow
    hash from descriptor to skb, unless user *disables* it via Ethtool.
    Commit a876c3ba59a6 ("i40e/i40evf: properly report Rx packet hash")
    fixed this problem, but only for i40e.
    Invert the condition now in iavf and unblock passing hash to skbs again.
    
    Fixes: 857942fd1aa1 ("i40e: Fix Rx hash reported to the stack by our driver")
    Reviewed-by: Larysa Zaremba <larysa.zaremba@intel.com>
    Reviewed-by: Michal Kubiak <michal.kubiak@intel.com>
    Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bbf45f079f41efcf1e51bb65a0a45d2b31061bd5
Author: Zheng Wang <zyytlz.wz@163.com>
Date:   Sun Mar 12 01:46:50 2023 +0800

    power: supply: da9150: Fix use after free bug in da9150_charger_remove due to race condition
    
    [ Upstream commit 06615d11cc78162dfd5116efb71f29eb29502d37 ]
    
    In da9150_charger_probe, &charger->otg_work is bound with
    da9150_charger_otg_work. da9150_charger_otg_ncb may be
    called to start the work.
    
    If we remove the module which will call da9150_charger_remove
    to make cleanup, there may be a unfinished work. The possible
    sequence is as follows:
    
    Fix it by canceling the work before cleanup in the da9150_charger_remove
    
    CPU0                  CPUc1
    
                        |da9150_charger_otg_work
    da9150_charger_remove      |
    power_supply_unregister  |
    device_unregister   |
    power_supply_dev_release|
    kfree(psy)          |
                        |
                        |   power_supply_changed(charger->usb);
                        |   //use
    
    Fixes: c1a281e34dae ("power: Add support for DA9150 Charger")
    Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
