commit f2b499c27a959d062db9ea5c3036052d90110ee4
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Jun 21 15:44:12 2023 +0200

    Linux 5.4.248
    
    Link: https://lore.kernel.org/r/20230619102132.808972458@linuxfoundation.org
    Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Tested-by: Chris Paterson (CIP) <chris.paterson2@renesas.com>
    Tested-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1cdc48aaff1837adcee715e3fd4a8d0831eb3cae
Author: Christian Loehle <CLoehle@hyperstone.com>
Date:   Wed Apr 26 16:59:39 2023 +0000

    mmc: block: ensure error propagation for non-blk
    
    commit 003fb0a51162d940f25fc35e70b0996a12c9e08a upstream.
    
    Requests to the mmc layer usually come through a block device IO.
    The exceptions are the ioctl interface, RPMB chardev ioctl
    and debugfs, which issue their own blk_mq requests through
    blk_execute_rq and do not query the BLK_STS error but the
    mmcblk-internal drv_op_result. This patch ensures that drv_op_result
    defaults to an error and has to be overwritten by the operation
    to be considered successful.
    
    The behavior leads to a bug where the request never propagates
    the error, e.g. by directly erroring out at mmc_blk_mq_issue_rq if
    mmc_blk_part_switch fails. The ioctl caller of the rpmb chardev then
    can never see an error (BLK_STS_IOERR, but drv_op_result is unchanged)
    and thus may assume that their call executed successfully when it did not.
    
    While always checking the blk_execute_rq return value would be
    advised, let's eliminate the error by always setting
    drv_op_result as -EIO to be overwritten on success (or other error)
    
    Fixes: 614f0388f580 ("mmc: block: move single ioctl() commands to block requests")
    Signed-off-by: Christian Loehle <cloehle@hyperstone.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/59c17ada35664b818b7bd83752119b2d@hyperstone.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Christian Loehle <cloehle@hyperstone.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de517032ee39acb148427fd6aa17c2d976a95ef7
Author: Alexander Kapshuk <alexander.kapshuk@gmail.com>
Date:   Tue Oct 13 15:47:25 2020 +0300

    drm/nouveau/kms: Fix NULL pointer dereference in nouveau_connector_detect_depth
    
    commit 630f512280604eecae0ddc2b3f8402f7931c56fd upstream.
    
    This oops manifests itself on the following hardware:
    01:00.0 VGA compatible controller: NVIDIA Corporation G98M [GeForce G 103M] (rev a1)
    
    Oct 09 14:17:46 lp-sasha kernel: BUG: kernel NULL pointer dereference, address: 0000000000000000
    Oct 09 14:17:46 lp-sasha kernel: #PF: supervisor read access in kernel mode
    Oct 09 14:17:46 lp-sasha kernel: #PF: error_code(0x0000) - not-present page
    Oct 09 14:17:46 lp-sasha kernel: PGD 0 P4D 0
    Oct 09 14:17:46 lp-sasha kernel: Oops: 0000 [#1] SMP PTI
    Oct 09 14:17:46 lp-sasha kernel: CPU: 1 PID: 191 Comm: systemd-udevd Not tainted 5.9.0-rc8-next-20201009 #38
    Oct 09 14:17:46 lp-sasha kernel: Hardware name: Hewlett-Packard Compaq Presario CQ61 Notebook PC/306A, BIOS F.03 03/23/2009
    Oct 09 14:17:46 lp-sasha kernel: RIP: 0010:nouveau_connector_detect_depth+0x71/0xc0 [nouveau]
    Oct 09 14:17:46 lp-sasha kernel: Code: 0a 00 00 48 8b 49 48 c7 87 b8 00 00 00 06 00 00 00 80 b9 4d 0a 00 00 00 75 1e 83 fa 41 75 05 48 85 c0 75 29 8b 81 10 0d 00 00 <39> 06 7c 25 f6 81 14 0d 00 00 02 75 b7 c3 80 b9 0c 0d 00 00 00 75
    Oct 09 14:17:46 lp-sasha kernel: RSP: 0018:ffffc9000028f8c0 EFLAGS: 00010297
    Oct 09 14:17:46 lp-sasha kernel: RAX: 0000000000014c08 RBX: ffff8880369d4000 RCX: ffff8880369d3000
    Oct 09 14:17:46 lp-sasha kernel: RDX: 0000000000000040 RSI: 0000000000000000 RDI: ffff8880369d4000
    Oct 09 14:17:46 lp-sasha kernel: RBP: ffff88800601cc00 R08: ffff8880051da298 R09: ffffffff8226201a
    Oct 09 14:17:46 lp-sasha kernel: R10: ffff88800469aa80 R11: ffff888004c84ff8 R12: 0000000000000000
    Oct 09 14:17:46 lp-sasha kernel: R13: ffff8880051da000 R14: 0000000000002000 R15: 0000000000000003
    Oct 09 14:17:46 lp-sasha kernel: FS:  00007fd0192b3440(0000) GS:ffff8880bc900000(0000) knlGS:0000000000000000
    Oct 09 14:17:46 lp-sasha kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    Oct 09 14:17:46 lp-sasha kernel: CR2: 0000000000000000 CR3: 0000000004976000 CR4: 00000000000006e0
    Oct 09 14:17:46 lp-sasha kernel: Call Trace:
    Oct 09 14:17:46 lp-sasha kernel:  nouveau_connector_get_modes+0x1e6/0x240 [nouveau]
    Oct 09 14:17:46 lp-sasha kernel:  ? kfree+0xb9/0x240
    Oct 09 14:17:46 lp-sasha kernel:  ? drm_connector_list_iter_next+0x7c/0xa0
    Oct 09 14:17:46 lp-sasha kernel:  drm_helper_probe_single_connector_modes+0x1ba/0x7c0
    Oct 09 14:17:46 lp-sasha kernel:  drm_client_modeset_probe+0x27e/0x1360
    Oct 09 14:17:46 lp-sasha kernel:  ? nvif_object_sclass_put+0xc/0x20 [nouveau]
    Oct 09 14:17:46 lp-sasha kernel:  ? nouveau_cli_init+0x3cc/0x440 [nouveau]
    Oct 09 14:17:46 lp-sasha kernel:  ? ktime_get_mono_fast_ns+0x49/0xa0
    Oct 09 14:17:46 lp-sasha kernel:  ? nouveau_drm_open+0x4e/0x180 [nouveau]
    Oct 09 14:17:46 lp-sasha kernel:  __drm_fb_helper_initial_config_and_unlock+0x3f/0x4a0
    Oct 09 14:17:46 lp-sasha kernel:  ? drm_file_alloc+0x18f/0x260
    Oct 09 14:17:46 lp-sasha kernel:  ? mutex_lock+0x9/0x40
    Oct 09 14:17:46 lp-sasha kernel:  ? drm_client_init+0x110/0x160
    Oct 09 14:17:46 lp-sasha kernel:  nouveau_fbcon_init+0x14d/0x1c0 [nouveau]
    Oct 09 14:17:46 lp-sasha kernel:  nouveau_drm_device_init+0x1c0/0x880 [nouveau]
    Oct 09 14:17:46 lp-sasha kernel:  nouveau_drm_probe+0x11a/0x1e0 [nouveau]
    Oct 09 14:17:46 lp-sasha kernel:  pci_device_probe+0xcd/0x140
    Oct 09 14:17:46 lp-sasha kernel:  really_probe+0xd8/0x400
    Oct 09 14:17:46 lp-sasha kernel:  driver_probe_device+0x4a/0xa0
    Oct 09 14:17:46 lp-sasha kernel:  device_driver_attach+0x9c/0xc0
    Oct 09 14:17:46 lp-sasha kernel:  __driver_attach+0x6f/0x100
    Oct 09 14:17:46 lp-sasha kernel:  ? device_driver_attach+0xc0/0xc0
    Oct 09 14:17:46 lp-sasha kernel:  bus_for_each_dev+0x75/0xc0
    Oct 09 14:17:46 lp-sasha kernel:  bus_add_driver+0x106/0x1c0
    Oct 09 14:17:46 lp-sasha kernel:  driver_register+0x86/0xe0
    Oct 09 14:17:46 lp-sasha kernel:  ? 0xffffffffa044e000
    Oct 09 14:17:46 lp-sasha kernel:  do_one_initcall+0x48/0x1e0
    Oct 09 14:17:46 lp-sasha kernel:  ? _cond_resched+0x11/0x60
    Oct 09 14:17:46 lp-sasha kernel:  ? kmem_cache_alloc_trace+0x19c/0x1e0
    Oct 09 14:17:46 lp-sasha kernel:  do_init_module+0x57/0x220
    Oct 09 14:17:46 lp-sasha kernel:  __do_sys_finit_module+0xa0/0xe0
    Oct 09 14:17:46 lp-sasha kernel:  do_syscall_64+0x33/0x40
    Oct 09 14:17:46 lp-sasha kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    Oct 09 14:17:46 lp-sasha kernel: RIP: 0033:0x7fd01a060d5d
    Oct 09 14:17:46 lp-sasha kernel: Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d e3 70 0c 00 f7 d8 64 89 01 48
    Oct 09 14:17:46 lp-sasha kernel: RSP: 002b:00007ffc8ad38a98 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
    Oct 09 14:17:46 lp-sasha kernel: RAX: ffffffffffffffda RBX: 0000563f6e7fd530 RCX: 00007fd01a060d5d
    Oct 09 14:17:46 lp-sasha kernel: RDX: 0000000000000000 RSI: 00007fd01a19f95d RDI: 000000000000000f
    Oct 09 14:17:46 lp-sasha kernel: RBP: 0000000000020000 R08: 0000000000000000 R09: 0000000000000007
    Oct 09 14:17:46 lp-sasha kernel: R10: 000000000000000f R11: 0000000000000246 R12: 00007fd01a19f95d
    Oct 09 14:17:46 lp-sasha kernel: R13: 0000000000000000 R14: 0000563f6e7fbc10 R15: 0000563f6e7fd530
    Oct 09 14:17:46 lp-sasha kernel: Modules linked in: nouveau(+) ttm xt_string xt_mark xt_LOG vgem v4l2_dv_timings uvcvideo ulpi udf ts_kmp ts_fsm ts_bm snd_aloop sil164 qat_dh895xccvf nf_nat_sip nf_nat_irc nf_nat_ftp nf_nat nf_log_ipv6 nf_log_ipv4 nf_log_common ltc2990 lcd intel_qat input_leds i2c_mux gspca_main videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev mc drivetemp cuse fuse crc_itu_t coretemp ch7006 ath5k ath algif_hash
    Oct 09 14:17:46 lp-sasha kernel: CR2: 0000000000000000
    Oct 09 14:17:46 lp-sasha kernel: ---[ end trace 0ddafe218ad30017 ]---
    Oct 09 14:17:46 lp-sasha kernel: RIP: 0010:nouveau_connector_detect_depth+0x71/0xc0 [nouveau]
    Oct 09 14:17:46 lp-sasha kernel: Code: 0a 00 00 48 8b 49 48 c7 87 b8 00 00 00 06 00 00 00 80 b9 4d 0a 00 00 00 75 1e 83 fa 41 75 05 48 85 c0 75 29 8b 81 10 0d 00 00 <39> 06 7c 25 f6 81 14 0d 00 00 02 75 b7 c3 80 b9 0c 0d 00 00 00 75
    Oct 09 14:17:46 lp-sasha kernel: RSP: 0018:ffffc9000028f8c0 EFLAGS: 00010297
    Oct 09 14:17:46 lp-sasha kernel: RAX: 0000000000014c08 RBX: ffff8880369d4000 RCX: ffff8880369d3000
    Oct 09 14:17:46 lp-sasha kernel: RDX: 0000000000000040 RSI: 0000000000000000 RDI: ffff8880369d4000
    Oct 09 14:17:46 lp-sasha kernel: RBP: ffff88800601cc00 R08: ffff8880051da298 R09: ffffffff8226201a
    Oct 09 14:17:46 lp-sasha kernel: R10: ffff88800469aa80 R11: ffff888004c84ff8 R12: 0000000000000000
    Oct 09 14:17:46 lp-sasha kernel: R13: ffff8880051da000 R14: 0000000000002000 R15: 0000000000000003
    Oct 09 14:17:46 lp-sasha kernel: FS:  00007fd0192b3440(0000) GS:ffff8880bc900000(0000) knlGS:0000000000000000
    Oct 09 14:17:46 lp-sasha kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    Oct 09 14:17:46 lp-sasha kernel: CR2: 0000000000000000 CR3: 0000000004976000 CR4: 00000000000006e0
    
    The disassembly:
    Code: 0a 00 00 48 8b 49 48 c7 87 b8 00 00 00 06 00 00 00 80 b9 4d 0a 00 00 00 75 1e 83 fa 41 75 05 48 85 c0 75 29 8b 81 10 0d 00 00 <39> 06 7c 25 f6 81 14 0d 00 00 02 75 b7 c3 80 b9 0c 0d 00 00 00 75
    All code
    ========
       0:   0a 00                   or     (%rax),%al
       2:   00 48 8b                add    %cl,-0x75(%rax)
       5:   49                      rex.WB
       6:   48 c7 87 b8 00 00 00    movq   $0x6,0xb8(%rdi)
       d:   06 00 00 00
      11:   80 b9 4d 0a 00 00 00    cmpb   $0x0,0xa4d(%rcx)
      18:   75 1e                   jne    0x38
      1a:   83 fa 41                cmp    $0x41,%edx
      1d:   75 05                   jne    0x24
      1f:   48 85 c0                test   %rax,%rax
      22:   75 29                   jne    0x4d
      24:   8b 81 10 0d 00 00       mov    0xd10(%rcx),%eax
      2a:*  39 06                   cmp    %eax,(%rsi)              <-- trapping instruction
      2c:   7c 25                   jl     0x53
      2e:   f6 81 14 0d 00 00 02    testb  $0x2,0xd14(%rcx)
      35:   75 b7                   jne    0xffffffffffffffee
      37:   c3                      retq
      38:   80 b9 0c 0d 00 00 00    cmpb   $0x0,0xd0c(%rcx)
      3f:   75                      .byte 0x75
    
    Code starting with the faulting instruction
    ===========================================
       0:   39 06                   cmp    %eax,(%rsi)
       2:   7c 25                   jl     0x29
       4:   f6 81 14 0d 00 00 02    testb  $0x2,0xd14(%rcx)
       b:   75 b7                   jne    0xffffffffffffffc4
       d:   c3                      retq
       e:   80 b9 0c 0d 00 00 00    cmpb   $0x0,0xd0c(%rcx)
      15:   75                      .byte 0x75
    
    objdump -SF --disassemble=nouveau_connector_detect_depth
    [...]
            if (nv_connector->edid &&
       c85e1:       83 fa 41                cmp    $0x41,%edx
       c85e4:       75 05                   jne    c85eb <nouveau_connector_detect_depth+0x6b> (File Offset: 0xc866b)
       c85e6:       48 85 c0                test   %rax,%rax
       c85e9:       75 29                   jne    c8614 <nouveau_connector_detect_depth+0x94> (File Offset: 0xc8694)
                nv_connector->type == DCB_CONNECTOR_LVDS_SPWG)
                    duallink = ((u8 *)nv_connector->edid)[121] == 2;
            else
                    duallink = mode->clock >= bios->fp.duallink_transition_clk;
    
            if ((!duallink && (bios->fp.strapless_is_24bit & 1)) ||
       c85eb:       8b 81 10 0d 00 00       mov    0xd10(%rcx),%eax
       c85f1:       39 06                   cmp    %eax,(%rsi)
       c85f3:       7c 25                   jl     c861a <nouveau_connector_detect_depth+0x9a> (File Offset: 0xc869a)
                ( duallink && (bios->fp.strapless_is_24bit & 2)))
       c85f5:       f6 81 14 0d 00 00 02    testb  $0x2,0xd14(%rcx)
       c85fc:       75 b7                   jne    c85b5 <nouveau_connector_detect_depth+0x35> (File Offset: 0xc8635)
                    connector->display_info.bpc = 8;
    [...]
    
    % scripts/faddr2line /lib/modules/5.9.0-rc8-next-20201009/kernel/drivers/gpu/drm/nouveau/nouveau.ko nouveau_connector_detect_depth+0x71/0xc0
    nouveau_connector_detect_depth+0x71/0xc0:
    nouveau_connector_detect_depth at /home/sasha/linux-next/drivers/gpu/drm/nouveau/nouveau_connector.c:891
    
    It is actually line 889. See the disassembly below.
    889                     duallink = mode->clock >= bios->fp.duallink_transition_clk;
    
    The NULL pointer being dereferenced is mode.
    
    Git bisect has identified the following commit as bad:
    f28e32d3906e drm/nouveau/kms: Don't change EDID when it hasn't actually changed
    
    Here is the chain of events that causes the oops.
    On entry to nouveau_connector_detect_lvds, edid is set to NULL.  The call
    to nouveau_connector_detect sets nv_connector->edid to valid memory,
    with status set to connector_status_connected and the flow of execution
    branching to the out label.
    
    The subsequent call to nouveau_connector_set_edid erronously clears
    nv_connector->edid, via the local edid pointer which remains set to NULL.
    
    Fix this by setting edid to the value of the just acquired
    nv_connector->edid and executing the body of nouveau_connector_set_edid
    only if nv_connector->edid and edid point to different memory addresses
    thus preventing nv_connector->edid from being turned into a dangling
    pointer.
    
    Fixes: f28e32d3906e ("drm/nouveau/kms: Don't change EDID when it hasn't actually changed")
    Signed-off-by: Alexander Kapshuk <alexander.kapshuk@gmail.com>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3f7f557d8a279890be379fcfc5589a187429e2a
Author: Leon Romanovsky <leon@kernel.org>
Date:   Wed Mar 8 11:23:13 2023 +0200

    neighbour: delete neigh_lookup_nodev as not used
    
    commit 76b9bf965c98c9b53ef7420b3b11438dbd764f92 upstream.
    
    neigh_lookup_nodev isn't used in the kernel after removal
    of DECnet. So let's remove it.
    
    Fixes: 1202cdd66531 ("Remove DECnet support from kernel")
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
    Link: https://lore.kernel.org/r/eb5656200d7964b2d177a36b77efa3c597d6d72d.1678267343.git.leonro@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a433b85d1750fc11233021f71d8928353f0f4bf6
Author: Gaosheng Cui <cuigaosheng1@huawei.com>
Date:   Thu Sep 22 16:38:57 2022 +0800

    net: Remove unused inline function dst_hold_and_use()
    
    commit 0b81882ddf8ac2743f657afb001beec7fc3929af upstream.
    
    All uses of dst_hold_and_use() have
    been removed since commit 1202cdd66531 ("Remove DECnet support
    from kernel"), so remove it.
    
    Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fbc0209ae3a7aa526ba2482d33273a2f588ac31f
Author: Gaosheng Cui <cuigaosheng1@huawei.com>
Date:   Thu Sep 22 16:38:55 2022 +0800

    neighbour: Remove unused inline function neigh_key_eq16()
    
    commit c8f01a4a54473f88f8cc0d9046ec9eb5a99815d5 upstream.
    
    All uses of neigh_key_eq16() have
    been removed since commit 1202cdd66531 ("Remove DECnet support
    from kernel"), so remove it.
    
    Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc1ea55bf1cff895cc953753137080bbacff0c24
Author: David Howells <dhowells@redhat.com>
Date:   Fri Jun 16 22:39:39 2023 +0100

    afs: Fix vlserver probe RTT handling
    
    [ Upstream commit ba00b190670809c1a89326d80de96d714f6004f2 ]
    
    In the same spirit as commit ca57f02295f1 ("afs: Fix fileserver probe
    RTT handling"), don't rule out using a vlserver just because there
    haven't been enough packets yet to calculate a real rtt.  Always set the
    server's probe rtt from the estimate provided by rxrpc_kernel_get_srtt,
    which is capped at 1 second.
    
    This could lead to EDESTADDRREQ errors when accessing a cell for the
    first time, even though the vl servers are known and have responded to a
    probe.
    
    Fixes: 1d4adfaf6574 ("rxrpc: Make rxrpc_kernel_get_srtt() indicate validity")
    Signed-off-by: Marc Dionne <marc.dionne@auristor.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: linux-afs@lists.infradead.org
    Link: http://lists.infradead.org/pipermail/linux-afs/2023-June/006746.html
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 98acd5f0ce10a011861f0ff4fb4a67acfb108588
Author: Alex Maftei <alex.maftei@amd.com>
Date:   Thu Jun 15 09:34:04 2023 +0100

    selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET
    
    [ Upstream commit 76a4c8b82938bc5020b67663db41f451684bf327 ]
    
    Previously, timestamps were printed using "%lld.%u" which is incorrect
    for nanosecond values lower than 100,000,000 as they're fractional
    digits, therefore leading zeros are meaningful.
    
    This patch changes the format strings to "%lld.%09u" in order to add
    leading zeros to the nanosecond value.
    
    Fixes: 568ebc5985f5 ("ptp: add the PTP_SYS_OFFSET ioctl to the testptp program")
    Fixes: 4ec54f95736f ("ptp: Fix compiler warnings in the testptp utility")
    Fixes: 6ab0e475f1f3 ("Documentation: fix misc. warnings")
    Signed-off-by: Alex Maftei <alex.maftei@amd.com>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Link: https://lore.kernel.org/r/20230615083404.57112-1-alex.maftei@amd.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1140f8bc29c2cc50dfb059d294548152a757d187
Author: Lin Ma <linma@zju.edu.cn>
Date:   Wed Jun 14 20:06:04 2023 +0800

    net: tipc: resize nlattr array to correct size
    
    [ Upstream commit 44194cb1b6045dea33ae9a0d54fb7e7cd93a2e09 ]
    
    According to nla_parse_nested_deprecated(), the tb[] is supposed to the
    destination array with maxtype+1 elements. In current
    tipc_nl_media_get() and __tipc_nl_media_set(), a larger array is used
    which is unnecessary. This patch resize them to a proper size.
    
    Fixes: 1e55417d8fc6 ("tipc: add media set to new netlink api")
    Fixes: 46f15c6794fb ("tipc: add media get/dump to new netlink api")
    Signed-off-by: Lin Ma <linma@zju.edu.cn>
    Reviewed-by: Florian Westphal <fw@strlen.de>
    Reviewed-by: Tung Nguyen <tung.q.nguyen@dektech.com.au>
    Link: https://lore.kernel.org/r/20230614120604.1196377-1-linma@zju.edu.cn
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b83f86ba414ca2843323457539ddde2f630ac05e
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jun 14 16:18:02 2023 +0000

    net: lapbether: only support ethernet devices
    
    [ Upstream commit 9eed321cde22fc1afd76eac563ce19d899e0d6b2 ]
    
    It probbaly makes no sense to support arbitrary network devices
    for lapbether.
    
    syzbot reported:
    
    skbuff: skb_under_panic: text:ffff80008934c100 len:44 put:40 head:ffff0000d18dd200 data:ffff0000d18dd1ea tail:0x16 end:0x140 dev:bond1
    kernel BUG at net/core/skbuff.c:200 !
    Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 0 PID: 5643 Comm: dhcpcd Not tainted 6.4.0-rc5-syzkaller-g4641cff8e810 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/25/2023
    pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    pc : skb_panic net/core/skbuff.c:196 [inline]
    pc : skb_under_panic+0x13c/0x140 net/core/skbuff.c:210
    lr : skb_panic net/core/skbuff.c:196 [inline]
    lr : skb_under_panic+0x13c/0x140 net/core/skbuff.c:210
    sp : ffff8000973b7260
    x29: ffff8000973b7270 x28: ffff8000973b7360 x27: dfff800000000000
    x26: ffff0000d85d8150 x25: 0000000000000016 x24: ffff0000d18dd1ea
    x23: ffff0000d18dd200 x22: 000000000000002c x21: 0000000000000140
    x20: 0000000000000028 x19: ffff80008934c100 x18: ffff8000973b68a0
    x17: 0000000000000000 x16: ffff80008a43bfbc x15: 0000000000000202
    x14: 0000000000000000 x13: 0000000000000001 x12: 0000000000000001
    x11: 0000000000000201 x10: 0000000000000000 x9 : f22f7eb937cced00
    x8 : f22f7eb937cced00 x7 : 0000000000000001 x6 : 0000000000000001
    x5 : ffff8000973b6b78 x4 : ffff80008df9ee80 x3 : ffff8000805974f4
    x2 : 0000000000000001 x1 : 0000000100000201 x0 : 0000000000000086
    Call trace:
    skb_panic net/core/skbuff.c:196 [inline]
    skb_under_panic+0x13c/0x140 net/core/skbuff.c:210
    skb_push+0xf0/0x108 net/core/skbuff.c:2409
    ip6gre_header+0xbc/0x738 net/ipv6/ip6_gre.c:1383
    dev_hard_header include/linux/netdevice.h:3137 [inline]
    lapbeth_data_transmit+0x1c4/0x298 drivers/net/wan/lapbether.c:257
    lapb_data_transmit+0x8c/0xb0 net/lapb/lapb_iface.c:447
    lapb_transmit_buffer+0x178/0x204 net/lapb/lapb_out.c:149
    lapb_send_control+0x220/0x320 net/lapb/lapb_subr.c:251
    lapb_establish_data_link+0x94/0xec
    lapb_device_event+0x348/0x4e0
    notifier_call_chain+0x1a4/0x510 kernel/notifier.c:93
    raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:461
    __dev_notify_flags+0x2bc/0x544
    dev_change_flags+0xd0/0x15c net/core/dev.c:8643
    devinet_ioctl+0x858/0x17e4 net/ipv4/devinet.c:1150
    inet_ioctl+0x2ac/0x4d8 net/ipv4/af_inet.c:979
    sock_do_ioctl+0x134/0x2dc net/socket.c:1201
    sock_ioctl+0x4ec/0x858 net/socket.c:1318
    vfs_ioctl fs/ioctl.c:51 [inline]
    __do_sys_ioctl fs/ioctl.c:870 [inline]
    __se_sys_ioctl fs/ioctl.c:856 [inline]
    __arm64_sys_ioctl+0x14c/0x1c8 fs/ioctl.c:856
    __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
    invoke_syscall+0x98/0x2c0 arch/arm64/kernel/syscall.c:52
    el0_svc_common+0x138/0x244 arch/arm64/kernel/syscall.c:142
    do_el0_svc+0x64/0x198 arch/arm64/kernel/syscall.c:191
    el0_svc+0x4c/0x160 arch/arm64/kernel/entry-common.c:647
    el0t_64_sync_handler+0x84/0xfc arch/arm64/kernel/entry-common.c:665
    el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:591
    Code: aa1803e6 aa1903e7 a90023f5 947730f5 (d4210000)
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ec694ad393cca494f7a730499a8c6990d5a59527
Author: Vlad Buslov <vladbu@nvidia.com>
Date:   Mon Jun 12 11:34:26 2023 +0200

    net/sched: cls_api: Fix lockup on flushing explicitly created chain
    
    [ Upstream commit c9a82bec02c339cdda99b37c5e62b3b71fc4209c ]
    
    Mingshuai Ren reports:
    
    When a new chain is added by using tc, one soft lockup alarm will be
     generated after delete the prio 0 filter of the chain. To reproduce
     the problem, perform the following steps:
    (1) tc qdisc add dev eth0 root handle 1: htb default 1
    (2) tc chain add dev eth0
    (3) tc filter del dev eth0 chain 0 parent 1: prio 0
    (4) tc filter add dev eth0 chain 0 parent 1:
    
    Fix the issue by accounting for additional reference to chains that are
    explicitly created by RTM_NEWCHAIN message as opposed to implicitly by
    RTM_NEWTFILTER message.
    
    Fixes: 726d061286ce ("net: sched: prevent insertion of new classifiers during chain flush")
    Reported-by: Mingshuai Ren <renmingshuai@huawei.com>
    Closes: https://lore.kernel.org/lkml/87legswvi3.fsf@nvidia.com/T/
    Signed-off-by: Vlad Buslov <vladbu@nvidia.com>
    Link: https://lore.kernel.org/r/20230612093426.2867183-1-vladbu@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0456f470fa023e9c31e0bc78e8c31eccfbea0f91
Author: Natalia Petrova <n.petrova@fintech.ru>
Date:   Fri May 12 13:33:20 2023 +0300

    drm/nouveau: add nv_encoder pointer check for NULL
    
    [ Upstream commit 55b94bb8c42464bad3d2217f6874aa1a85664eac ]
    
    Pointer nv_encoder could be dereferenced at nouveau_connector.c
    in case it's equal to NULL by jumping to goto label.
    This patch adds a NULL-check to avoid it.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: 3195c5f9784a ("drm/nouveau: set encoder for lvds")
    Signed-off-by: Natalia Petrova <n.petrova@fintech.ru>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    [Fixed patch title]
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230512103320.82234-1-n.petrova@fintech.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b1d76d16af2a2bc8946cc6fe0668b21b03d5f0ca
Author: Lyude Paul <lyude@redhat.com>
Date:   Wed Aug 26 14:24:54 2020 -0400

    drm/nouveau/kms: Don't change EDID when it hasn't actually changed
    
    [ Upstream commit f28e32d3906eac2e1cb3291b448f0d528ec93996 ]
    
    Currently in nouveau_connector_ddc_detect() and
    nouveau_connector_detect_lvds(), we start the connector probing process
    by releasing the previous EDID and informing DRM of the change. However,
    since commit 5186421cbfe2 ("drm: Introduce epoch counter to
    drm_connector") drm_connector_update_edid_property() actually checks
    whether the new EDID we've specified is different from the previous one,
    and updates the connector's epoch accordingly if it is. But, because we
    always set the EDID to NULL first in nouveau_connector_ddc_detect() and
    nouveau_connector_detect_lvds() we end up making DRM think that the EDID
    changes every single time we do a connector probe - which isn't needed.
    
    So, let's fix this by not clearing the EDID at the start of the
    connector probing process, and instead simply changing or removing it
    once near the end of the probing process. This will help prevent us from
    sending unneeded hotplug events to userspace when nothing has actually
    changed.
    
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200826182456.322681-19-lyude@redhat.com
    Stable-dep-of: 55b94bb8c424 ("drm/nouveau: add nv_encoder pointer check for NULL")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f654b8a1325f6986c2253925b680dfbeb74f3514
Author: Natalia Petrova <n.petrova@fintech.ru>
Date:   Fri May 12 14:15:26 2023 +0300

    drm/nouveau/dp: check for NULL nv_connector->native_mode
    
    [ Upstream commit 20a2ce87fbaf81e4c3dcb631d738e423959eb320 ]
    
    Add checking for NULL before calling nouveau_connector_detect_depth() in
    nouveau_connector_get_modes() function because nv_connector->native_mode
    could be dereferenced there since connector pointer passed to
    nouveau_connector_detect_depth() and the same value of
    nv_connector->native_mode is used there.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: d4c2c99bdc83 ("drm/nouveau/dp: remove broken display depth function, use the improved one")
    
    Signed-off-by: Natalia Petrova <n.petrova@fintech.ru>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230512111526.82408-1-n.petrova@fintech.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2ac7be7718a1a1dfe2501000fb4cf03e4e556f84
Author: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Date:   Tue Apr 25 17:44:14 2023 +0200

    igb: fix nvm.ops.read() error handling
    
    [ Upstream commit 48a821fd58837800750ec1b3962f0f799630a844 ]
    
    Add error handling into igb_set_eeprom() function, in case
    nvm.ops.read() fails just quit with error code asap.
    
    Fixes: 9d5c824399de ("igb: PCI-Express 82575 Gigabit Ethernet driver")
    Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 44008337f80eb31090218dc7602a5aaae19b04f5
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Fri Jun 9 14:05:19 2023 +0300

    sctp: fix an error code in sctp_sf_eat_auth()
    
    [ Upstream commit 75e6def3b26736e7ff80639810098c9074229737 ]
    
    The sctp_sf_eat_auth() function is supposed to enum sctp_disposition
    values and returning a kernel error code will cause issues in the
    caller.  Change -ENOMEM to SCTP_DISPOSITION_NOMEM.
    
    Fixes: 65b07e5d0d09 ("[SCTP]: API updates to suport SCTP-AUTH extensions.")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Acked-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 edd3d3dc484995bd55938c04aecf6e2432fd276c
Author: Hangbin Liu <liuhangbin@gmail.com>
Date:   Fri Jun 9 17:15:02 2023 +0800

    ipvlan: fix bound dev checking for IPv6 l3s mode
    
    [ Upstream commit ce57adc222aba32431c42632b396e9213d0eb0b8 ]
    
    The commit 59a0b022aa24 ("ipvlan: Make skb->skb_iif track skb->dev for l3s
    mode") fixed ipvlan bonded dev checking by updating skb skb_iif. This fix
    works for IPv4, as in raw_v4_input() the dif is from inet_iif(skb), which
    is skb->skb_iif when there is no route.
    
    But for IPv6, the fix is not enough, because in ipv6_raw_deliver() ->
    raw_v6_match(), the dif is inet6_iif(skb), which is returns IP6CB(skb)->iif
    instead of skb->skb_iif if it's not a l3_slave. To fix the IPv6 part
    issue. Let's set IP6CB(skb)->iif to correct ifindex.
    
    BTW, ipvlan handles NS/NA specifically. Since it works fine, I will not
    reset IP6CB(skb)->iif when addr->atype is IPVL_ICMPV6.
    
    Fixes: c675e06a98a4 ("ipvlan: decouple l3s mode dependencies from other modes")
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=2196710
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Reviewed-by: Larysa Zaremba <larysa.zaremba@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6718478c18a4f4923d86b81dc7e51363e1a60b03
Author: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
Date:   Tue Jun 6 03:25:31 2023 -0700

    IB/isert: Fix incorrect release of isert connection
    
    [ Upstream commit 699826f4e30ab76a62c238c86fbef7e826639c8d ]
    
    The ib_isert module is releasing the isert connection both in
    isert_wait_conn() handler as well as isert_free_conn() handler.
    In isert_wait_conn() handler, it is expected to wait for iSCSI
    session logout operation to complete. It should free the isert
    connection only in isert_free_conn() handler.
    
    When a bunch of iSER target is cleared, this issue can lead to
    use-after-free memory issue as isert conn is twice released
    
    Fixes: b02efbfc9a05 ("iser-target: Fix implicit termination of connections")
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Link: https://lore.kernel.org/r/20230606102531.162967-4-saravanan.vajravel@broadcom.com
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f8a91a024ab9ac9986be39154099ff09316c7892
Author: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
Date:   Tue Jun 6 03:25:30 2023 -0700

    IB/isert: Fix possible list corruption in CMA handler
    
    [ Upstream commit 7651e2d6c5b359a28c2d4c904fec6608d1021ca8 ]
    
    When ib_isert module receives connection error event, it is
    releasing the isert session and removes corresponding list
    node but it doesn't take appropriate mutex lock to remove
    the list node.  This can lead to linked  list corruption
    
    Fixes: bd3792205aae ("iser-target: Fix pending connections handling in target stack shutdown sequnce")
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
    Link: https://lore.kernel.org/r/20230606102531.162967-3-saravanan.vajravel@broadcom.com
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8a867ab71302df2c9976b1905a1f6e5ac0b23fcd
Author: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
Date:   Tue Jun 6 03:25:29 2023 -0700

    IB/isert: Fix dead lock in ib_isert
    
    [ Upstream commit 691b0480933f0ce88a81ed1d1a0aff340ff6293a ]
    
    - When a iSER session is released, ib_isert module is taking a mutex
      lock and releasing all pending connections. As part of this, ib_isert
      is destroying rdma cm_id. To destroy cm_id, rdma_cm module is sending
      CM events to CMA handler of ib_isert. This handler is taking same
      mutex lock. Hence it leads to deadlock between ib_isert & rdma_cm
      modules.
    
    - For fix, created local list of pending connections and release the
      connection outside of mutex lock.
    
    Calltrace:
    ---------
    [ 1229.791410] INFO: task kworker/10:1:642 blocked for more than 120 seconds.
    [ 1229.791416]       Tainted: G           OE    --------- -  - 4.18.0-372.9.1.el8.x86_64 #1
    [ 1229.791418] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [ 1229.791419] task:kworker/10:1    state:D stack:    0 pid:  642 ppid:     2 flags:0x80004000
    [ 1229.791424] Workqueue: ib_cm cm_work_handler [ib_cm]
    [ 1229.791436] Call Trace:
    [ 1229.791438]  __schedule+0x2d1/0x830
    [ 1229.791445]  ? select_idle_sibling+0x23/0x6f0
    [ 1229.791449]  schedule+0x35/0xa0
    [ 1229.791451]  schedule_preempt_disabled+0xa/0x10
    [ 1229.791453]  __mutex_lock.isra.7+0x310/0x420
    [ 1229.791456]  ? select_task_rq_fair+0x351/0x990
    [ 1229.791459]  isert_cma_handler+0x224/0x330 [ib_isert]
    [ 1229.791463]  ? ttwu_queue_wakelist+0x159/0x170
    [ 1229.791466]  cma_cm_event_handler+0x25/0xd0 [rdma_cm]
    [ 1229.791474]  cma_ib_handler+0xa7/0x2e0 [rdma_cm]
    [ 1229.791478]  cm_process_work+0x22/0xf0 [ib_cm]
    [ 1229.791483]  cm_work_handler+0xf4/0xf30 [ib_cm]
    [ 1229.791487]  ? move_linked_works+0x6e/0xa0
    [ 1229.791490]  process_one_work+0x1a7/0x360
    [ 1229.791491]  ? create_worker+0x1a0/0x1a0
    [ 1229.791493]  worker_thread+0x30/0x390
    [ 1229.791494]  ? create_worker+0x1a0/0x1a0
    [ 1229.791495]  kthread+0x10a/0x120
    [ 1229.791497]  ? set_kthread_struct+0x40/0x40
    [ 1229.791499]  ret_from_fork+0x1f/0x40
    
    [ 1229.791739] INFO: task targetcli:28666 blocked for more than 120 seconds.
    [ 1229.791740]       Tainted: G           OE    --------- -  - 4.18.0-372.9.1.el8.x86_64 #1
    [ 1229.791741] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [ 1229.791742] task:targetcli       state:D stack:    0 pid:28666 ppid:  5510 flags:0x00004080
    [ 1229.791743] Call Trace:
    [ 1229.791744]  __schedule+0x2d1/0x830
    [ 1229.791746]  schedule+0x35/0xa0
    [ 1229.791748]  schedule_preempt_disabled+0xa/0x10
    [ 1229.791749]  __mutex_lock.isra.7+0x310/0x420
    [ 1229.791751]  rdma_destroy_id+0x15/0x20 [rdma_cm]
    [ 1229.791755]  isert_connect_release+0x115/0x130 [ib_isert]
    [ 1229.791757]  isert_free_np+0x87/0x140 [ib_isert]
    [ 1229.791761]  iscsit_del_np+0x74/0x120 [iscsi_target_mod]
    [ 1229.791776]  lio_target_np_driver_store+0xe9/0x140 [iscsi_target_mod]
    [ 1229.791784]  configfs_write_file+0xb2/0x110
    [ 1229.791788]  vfs_write+0xa5/0x1a0
    [ 1229.791792]  ksys_write+0x4f/0xb0
    [ 1229.791794]  do_syscall_64+0x5b/0x1a0
    [ 1229.791798]  entry_SYSCALL_64_after_hwframe+0x65/0xca
    
    Fixes: bd3792205aae ("iser-target: Fix pending connections handling in target stack shutdown sequnce")
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
    Link: https://lore.kernel.org/r/20230606102531.162967-2-saravanan.vajravel@broadcom.com
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 22125be516ef0491f6aa7d38ee81e1f929ab36d5
Author: Yishai Hadas <yishaih@nvidia.com>
Date:   Mon Jun 5 13:33:25 2023 +0300

    IB/uverbs: Fix to consider event queue closing also upon non-blocking mode
    
    [ Upstream commit 62fab312fa1683e812e605db20d4f22de3e3fb2f ]
    
    Fix ib_uverbs_event_read() to consider event queue closing also upon
    non-blocking mode.
    
    Once the queue is closed (e.g. hot-plug flow) all the existing events
    are cleaned-up as part of ib_uverbs_free_event_queue().
    
    An application that uses the non-blocking FD mode should get -EIO in
    that case to let it knows that the device was removed already.
    
    Otherwise, it can loose the indication that the device was removed and
    won't recover.
    
    As part of that, refactor the code to have a single flow with regards to
    'is_closed' for both blocking and non-blocking modes.
    
    Fixes: 14e23bd6d221 ("RDMA/core: Fix locking in ib_uverbs_event_read")
    Reviewed-by: Maor Gottlieb <maorg@nvidia.com>
    Signed-off-by: Yishai Hadas <yishaih@nvidia.com>
    Link: https://lore.kernel.org/r/97b00116a1e1e13f8dc4ec38a5ea81cf8c030210.1685960567.git.leon@kernel.org
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ea4cf04d3f19a7a7325cd3bb1a9a3eca876f73a9
Author: Ahmed Zaki <ahmed.zaki@intel.com>
Date:   Thu Jun 8 13:02:26 2023 -0700

    iavf: remove mask from iavf_irq_enable_queues()
    
    [ Upstream commit c37cf54c12cfaa51e7aaf88708167b0d3259e64e ]
    
    Enable more than 32 IRQs by removing the u32 bit mask in
    iavf_irq_enable_queues(). There is no need for the mask as there are no
    callers that select individual IRQs through the bitmask. Also, if the PF
    allocates more than 32 IRQs, this mask will prevent us from using all of
    them.
    
    Modify the comment in iavf_register.h to show that the maximum number
    allowed for the IRQ index is 63 as per the iAVF standard 1.0 [1].
    
    link: [1] https://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/ethernet-adaptive-virtual-function-hardware-spec.pdf
    Fixes: 5eae00c57f5e ("i40evf: main driver core")
    Signed-off-by: Ahmed Zaki <ahmed.zaki@intel.com>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Link: https://lore.kernel.org/r/20230608200226.451861-1-anthony.l.nguyen@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 19a500f530c21b4910269d97c308d24682ff62aa
Author: Zhu Yanjun <yanjun.zhu@linux.dev>
Date:   Fri Jun 2 11:54:08 2023 +0800

    RDMA/rxe: Fix the use-before-initialization error of resp_pkts
    
    [ Upstream commit 2a62b6210ce876c596086ab8fd4c8a0c3d10611a ]
    
    In the following:
    
      Call Trace:
       <TASK>
       __dump_stack lib/dump_stack.c:88 [inline]
       dump_stack_lvl+0xd9/0x150 lib/dump_stack.c:106
       assign_lock_key kernel/locking/lockdep.c:982 [inline]
       register_lock_class+0xdb6/0x1120 kernel/locking/lockdep.c:1295
       __lock_acquire+0x10a/0x5df0 kernel/locking/lockdep.c:4951
       lock_acquire kernel/locking/lockdep.c:5691 [inline]
       lock_acquire+0x1b1/0x520 kernel/locking/lockdep.c:5656
       __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
       _raw_spin_lock_irqsave+0x3d/0x60 kernel/locking/spinlock.c:162
       skb_dequeue+0x20/0x180 net/core/skbuff.c:3639
       drain_resp_pkts drivers/infiniband/sw/rxe/rxe_comp.c:555 [inline]
       rxe_completer+0x250d/0x3cc0 drivers/infiniband/sw/rxe/rxe_comp.c:652
       rxe_qp_do_cleanup+0x1be/0x820 drivers/infiniband/sw/rxe/rxe_qp.c:761
       execute_in_process_context+0x3b/0x150 kernel/workqueue.c:3473
       __rxe_cleanup+0x21e/0x370 drivers/infiniband/sw/rxe/rxe_pool.c:233
       rxe_create_qp+0x3f6/0x5f0 drivers/infiniband/sw/rxe/rxe_verbs.c:583
    
    This is a use-before-initialization problem.
    
    It happens because rxe_qp_do_cleanup is called during error unwind before
    the struct has been fully initialized.
    
    Move the initialization of the skb earlier.
    
    Fixes: 8700e3e7c485 ("Soft RoCE driver")
    Link: https://lore.kernel.org/r/20230602035408.741534-1-yanjun.zhu@intel.com
    Reported-by: syzbot+eba589d8f49c73d356da@syzkaller.appspotmail.com
    Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42ab73534583690d25e9e23ce902aafaa60ff70b
Author: Bob Pearson <rpearsonhpe@gmail.com>
Date:   Fri Oct 21 15:01:04 2022 -0500

    RDMA/rxe: Removed unused name from rxe_task struct
    
    [ Upstream commit de669ae8af49ceed0eed44f5b3d51dc62affc5e4 ]
    
    The name field in struct rxe_task is never used. This patch removes it.
    
    Link: https://lore.kernel.org/r/20221021200118.2163-4-rpearsonhpe@gmail.com
    Signed-off-by: Ian Ziemba <ian.ziemba@hpe.com>
    Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Stable-dep-of: 2a62b6210ce8 ("RDMA/rxe: Fix the use-before-initialization error of resp_pkts")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

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

    RDMA/rxe: Remove the unused variable obj
    
    [ Upstream commit f07853582d1f6ed282f8d9a0b1209a87dd761f58 ]
    
    The member variable obj in struct rxe_task is not needed.
    So remove it to save memory.
    
    Link: https://lore.kernel.org/r/20220822011615.805603-4-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>
    Stable-dep-of: 2a62b6210ce8 ("RDMA/rxe: Fix the use-before-initialization error of resp_pkts")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 46305daf8064598a4008af1728651296815a74ed
Author: Lee Jones <lee@kernel.org>
Date:   Thu Jun 8 08:29:03 2023 +0100

    net/sched: cls_u32: Fix reference counter leak leading to overflow
    
    [ Upstream commit 04c55383fa5689357bcdd2c8036725a55ed632bc ]
    
    In the event of a failure in tcf_change_indev(), u32_set_parms() will
    immediately return without decrementing the recently incremented
    reference counter.  If this happens enough times, the counter will
    rollover and the reference freed, leading to a double free which can be
    used to do 'bad things'.
    
    In order to prevent this, move the point of possible failure above the
    point where the reference counter is incremented.  Also save any
    meaningful return values to be applied to the return data at the
    appropriate point in time.
    
    This issue was caught with KASAN.
    
    Fixes: 705c7091262d ("net: sched: cls_u32: no need to call tcf_exts_change for newly allocated struct")
    Suggested-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Lee Jones <lee@kernel.org>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88d6c1958bc0798092bbd6877237fcd012e3c064
Author: Guillaume Nault <gnault@redhat.com>
Date:   Wed Jun 7 18:05:02 2023 +0200

    ping6: Fix send to link-local addresses with VRF.
    
    [ Upstream commit 91ffd1bae1dafbb9e34b46813f5b058581d9144d ]
    
    Ping sockets can't send packets when they're bound to a VRF master
    device and the output interface is set to a slave device.
    
    For example, when net.ipv4.ping_group_range is properly set, so that
    ping6 can use ping sockets, the following kind of commands fails:
      $ ip vrf exec red ping6 fe80::854:e7ff:fe88:4bf1%eth1
    
    What happens is that sk->sk_bound_dev_if is set to the VRF master
    device, but 'oif' is set to the real output device. Since both are set
    but different, ping_v6_sendmsg() sees their value as inconsistent and
    fails.
    
    Fix this by allowing 'oif' to be a slave device of ->sk_bound_dev_if.
    
    This fixes the following kselftest failure:
      $ ./fcnal-test.sh -t ipv6_ping
      [...]
      TEST: ping out, vrf device+address bind - ns-B IPv6 LLA        [FAIL]
    
    Reported-by: Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
    Closes: https://lore.kernel.org/netdev/b6191f90-ffca-dbca-7d06-88a9788def9c@alu.unizg.hr/
    Tested-by: Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
    Fixes: 5e457896986e ("net: ipv6: Fix ping to link-local addresses.")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/r/6c8b53108816a8d0d5705ae37bdc5a8322b5e3d9.1686153846.git.gnault@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 474e0adf29cf8a84dd9d6794ce53847642dd79ae
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Thu Jun 8 00:19:12 2023 +0200

    netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM
    
    [ Upstream commit a1a64a151dae8ac3581c1cbde44b672045cb658b ]
    
    If caller reports ENOMEM, then stop iterating over the batch and send a
    single netlink message to userspace to report OOM.
    
    Fixes: cbb8125eb40b ("netfilter: nfnetlink: deliver netlink errors on batch completion")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 67cafcd3e6612d9e23859b80655a8995d91f02f6
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Tue May 30 01:34:02 2023 +0300

    spi: fsl-dspi: avoid SCK glitches with continuous transfers
    
    [ Upstream commit c5c31fb71f16ba75bad4ade208abbae225305b65 ]
    
    The DSPI controller has configurable timing for
    
    (a) tCSC: the interval between the assertion of the chip select and the
        first clock edge
    
    (b) tASC: the interval between the last clock edge and the deassertion
        of the chip select
    
    What is a bit surprising, but is documented in the figure "Example of
    continuous transfer (CPHA=1, CONT=1)" in the datasheet, is that when the
    chip select stays asserted between multiple TX FIFO writes, the tCSC and
    tASC times still apply. With CONT=1, chip select remains asserted, but
    SCK takes a break and goes to the idle state for tASC + tCSC ns.
    
    In other words, the default values (of 0 and 0 ns) result in SCK
    glitches where the SCK transition to the idle state, as well as the SCK
    transition from the idle state, will have no delay in between, and it
    may appear that a SCK cycle has simply gone missing. The resulting
    timing violation might cause data corruption in many peripherals, as
    their chip select is asserted.
    
    The driver has device tree bindings for tCSC ("fsl,spi-cs-sck-delay")
    and tASC ("fsl,spi-sck-cs-delay"), but these are only specified to apply
    when the chip select toggles in the first place, and this timing
    characteristic depends on each peripheral. Many peripherals do not have
    explicit timing requirements, so many device trees do not have these
    properties present at all.
    
    Nonetheless, the lack of SCK glitches is a common sense requirement, and
    since the SCK stays in the idle state during transfers for tCSC+tASC ns,
    and that in itself should look like half a cycle, then let's ensure that
    tCSC and tASC are at least a quarter of a SCK period, such that their
    sum is at least half of one.
    
    Fixes: 95bf15f38641 ("spi: fsl-dspi: Add ~50ns delay between cs and sck")
    Reported-by: Lisa Chen (陈敏捷) <minjie.chen@geekplus.com>
    Debugged-by: Lisa Chen (陈敏捷) <minjie.chen@geekplus.com>
    Tested-by: Lisa Chen (陈敏捷) <minjie.chen@geekplus.com>
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://lore.kernel.org/r/20230529223402.1199503-1-vladimir.oltean@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8231594e21d1ecd842408fbec3cb70d5497dde94
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Thu Mar 5 00:00:34 2020 +0200

    spi: spi-fsl-dspi: Remove unused chip->void_write_data
    
    [ Upstream commit 6d6af5796e5d9a88ae83c9c753023bba61deb18b ]
    
    This variable has been present since the initial submission of the
    driver, and held, for some reason, the value of zero, to be sent on the
    wire in the case there wasn't any TX buffer for the current transfer.
    
    Since quite a while now, however, it isn't doing anything at all.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://lore.kernel.org/r/20200304220044.11193-3-olteanv@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Stable-dep-of: c5c31fb71f16 ("spi: fsl-dspi: avoid SCK glitches with continuous transfers")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9d8b388a24c68693df6cfcea52f8eb101ab5b457
Author: Elson Roy Serrao <quic_eserrao@quicinc.com>
Date:   Thu Jun 1 14:27:30 2023 -0700

    usb: dwc3: gadget: Reset num TRBs before giving back the request
    
    commit 00f8205ffcf112dcef14f8151d78075d38d22c08 upstream.
    
    Consider a scenario where cable disconnect happens when there is an active
    usb reqest queued to the UDC. As part of the disconnect we would issue an
    end transfer with no interrupt-on-completion before giving back this
    request. Since we are giving back the request without skipping TRBs the
    num_trbs field of dwc3_request still holds the stale value previously used.
    Function drivers re-use same request for a given bind-unbind session and
    hence their dwc3_request context gets preserved across cable
    disconnect/connect. When such a request gets re-queued after cable connect,
    we would increase the num_trbs field on top of the previous stale value
    thus incorrectly representing the number of TRBs used. Fix this by
    resetting num_trbs field before giving back the request.
    
    Fixes: 09fe1f8d7e2f ("usb: dwc3: gadget: track number of TRBs per request")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Elson Roy Serrao <quic_eserrao@quicinc.com>
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Message-ID: <1685654850-8468-1-git-send-email-quic_eserrao@quicinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94e52fac15196facd5d0a60c186e4081ca27b666
Author: Bernhard Seibold <mail@bernhard-seibold.de>
Date:   Fri Jun 2 15:30:29 2023 +0200

    serial: lantiq: add missing interrupt ack
    
    commit 306320034e8fbe7ee1cc4f5269c55658b4612048 upstream.
    
    Currently, the error interrupt is never acknowledged, so once active it
    will stay active indefinitely, causing the handler to be called in an
    infinite loop.
    
    Fixes: 2f0fc4159a6a ("SERIAL: Lantiq: Add driver for MIPS Lantiq SOCs.")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Bernhard Seibold <mail@bernhard-seibold.de>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Message-ID: <20230602133029.546-1-mail@bernhard-seibold.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b577b74f8f83905e331cb04e25837979639cae63
Author: Jerry Meng <jerry-meng@foxmail.com>
Date:   Wed May 31 11:51:16 2023 +0800

    USB: serial: option: add Quectel EM061KGL series
    
    commit f1832e2b5e498e258b090af3b065b85cf8cc5161 upstream.
    
    Add support for Quectel EM061KGL series which are based on Qualcomm
    SDX12 chip:
    
    EM061KGL_LTA(0x2c7c / 0x0123): MBIM + GNSS + DIAG + NMEA + AT + QDSS + DPL
    EM061KGL_LMS(0x2c7c / 0x0124): MBIM + GNSS + DIAG + NMEA + AT + QDSS + DPL
    EM061KGL_LWW(0x2c7c / 0x6008): MBIM + GNSS + DIAG + NMEA + AT + QDSS + DPL
    EM061KGL_LCN(0x2c7c / 0x6009): MBIM + GNSS + DIAG + NMEA + AT + QDSS + DPL
    
    Above products use the exact same interface layout and
    option driver is for interfaces DIAG, NMEA and AT.
    
    T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  5 Spd=480  MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=2c7c ProdID=6008 Rev= 5.04
    S:  Manufacturer=Quectel
    S:  Product=Quectel EM061K-GL
    S:  SerialNumber=f6fa08b6
    C:* #Ifs= 8 Cfg#= 1 Atr=a0 MxPwr=500mA
    A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
    I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
    E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=32ms
    I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=32ms
    I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=40 Driver=option
    E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
    E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none)
    E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 7 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=80 Driver=(none)
    E:  Ad=8f(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Signed-off-by: Jerry Meng <jerry-meng@foxmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b1203ae83c3d07bad90b6f38ebf2e4d5998dd28
Author: Stephen Hemminger <stephen@networkplumber.org>
Date:   Wed Aug 17 17:43:21 2022 -0700

    Remove DECnet support from kernel
    
    commit 1202cdd665315c525b5237e96e0bedc76d7e754f upstream.
    
    DECnet is an obsolete network protocol that receives more attention
    from kernel janitors than users. It belongs in computer protocol
    history museum not in Linux kernel.
    
    It has been "Orphaned" in kernel since 2010. The iproute2 support
    for DECnet was dropped in 5.0 release. The documentation link on
    Sourceforge says it is abandoned there as well.
    
    Leave the UAPI alone to keep userspace programs compiling.
    This means that there is still an empty neighbour table
    for AF_DECNET.
    
    The table of /proc/sys/net entries was updated to match
    current directories and reformatted to be alphabetical.
    
    Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
    Acked-by: David Ahern <dsahern@kernel.org>
    Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aad6addc17aeef79b10954c5cded3d20f926bdd0
Author: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
Date:   Fri Jun 9 17:10:58 2023 -0300

    ALSA: hda/realtek: Add a quirk for Compaq N14JP6
    
    commit a2a871483161014f1bcc4e9a04354b01aa77cedb upstream.
    
    Add a quirk for Compaq N14JP6 to fixup ALC897 headset MIC no sound.
    
    Signed-off-by: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20230609201058.523499-1-edson.drosdeck@gmail.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit def7e17c98f7996f2196a895c1a320f59e0feed8
Author: Wes Huang <wes.huang@moxa.com>
Date:   Thu Jun 8 11:01:42 2023 +0800

    net: usb: qmi_wwan: add support for Compal RXM-G1
    
    commit 863199199713908afaa47ba09332b87621c12496 upstream.
    
    Add support for Compal RXM-G1 which is based on Qualcomm SDX55 chip.
    This patch adds support for two compositions:
    
    0x9091: DIAG + MODEM + QMI_RMNET + ADB
    0x90db: DIAG + DUN + RMNET + DPL + QDSS(Trace) + ADB
    
    T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
    D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
    P:  Vendor=05c6 ProdID=9091 Rev= 4.14
    S:  Manufacturer=QCOM
    S:  Product=SDXPRAIRIE-MTP _SN:719AB680
    S:  SerialNumber=719ab680
    C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=896mA
    I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
    E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    E:  Ad=84(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    
    T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
    D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
    P:  Vendor=05c6 ProdID=90db Rev= 4.14
    S:  Manufacturer=QCOM
    S:  Product=SDXPRAIRIE-MTP _SN:719AB680
    S:  SerialNumber=719ab680
    C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=896mA
    I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
    E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    E:  Ad=84(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E:  Ad=8f(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 4 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E:  Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Wes Huang <wes.huang@moxa.com>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Link: https://lore.kernel.org/r/20230608030141.3546-1-wes.huang@moxa.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 74bd537373726245c21d44a76b909fcfe2789e32
Author: Edward Srouji <edwards@nvidia.com>
Date:   Mon Jun 5 13:33:24 2023 +0300

    RDMA/uverbs: Restrict usage of privileged QKEYs
    
    commit 0cadb4db79e1d9eea66711c4031e435c2191907e upstream.
    
    According to the IB specification rel-1.6, section 3.5.3:
    "QKEYs with the most significant bit set are considered controlled
    QKEYs, and a HCA does not allow a consumer to arbitrarily specify a
    controlled QKEY."
    
    Thus, block non-privileged users from setting such a QKEY.
    
    Cc: stable@vger.kernel.org
    Fixes: bc38a6abdd5a ("[PATCH] IB uverbs: core implementation")
    Signed-off-by: Edward Srouji <edwards@nvidia.com>
    Link: https://lore.kernel.org/r/c00c809ddafaaf87d6f6cb827978670989a511b3.1685960567.git.leon@kernel.org
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8997ffad3592ad529c4ca6f8c596224e843e065
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Jun 15 12:22:11 2023 +1000

    nouveau: fix client work fence deletion race
    
    commit c8a5d5ea3ba6a18958f8d76430e4cd68eea33943 upstream.
    
    This seems to have existed for ever but is now more apparant after
    commit 9bff18d13473 ("drm/ttm: use per BO cleanup workers")
    
    My analysis: two threads are running, one in the irq signalling the
    fence, in dma_fence_signal_timestamp_locked, it has done the
    DMA_FENCE_FLAG_SIGNALLED_BIT setting, but hasn't yet reached the
    callbacks.
    
    The second thread in nouveau_cli_work_ready, where it sees the fence is
    signalled, so then puts the fence, cleanups the object and frees the
    work item, which contains the callback.
    
    Thread one goes again and tries to call the callback and causes the
    use-after-free.
    
    Proposed fix: lock the fence signalled check in nouveau_cli_work_ready,
    so either the callbacks are done or the memory is freed.
    
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Fixes: 11e451e74050 ("drm/nouveau: remove fence wait code from deferred client work handler")
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Link: https://lore.kernel.org/dri-devel/20230615024008.1600281-1-airlied@gmail.com/
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 01fd784b0762754593bf51600b93053fe64e1238
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Fri May 19 16:47:38 2023 +0200

    powerpc/purgatory: remove PGO flags
    
    commit 20188baceb7a1463dc0bcb0c8678b69c2f447df6 upstream.
    
    If profile-guided optimization is enabled, the purgatory ends up with
    multiple .text sections.  This is not supported by kexec and crashes the
    system.
    
    Link: https://lkml.kernel.org/r/20230321-kexec_clang16-v7-3-b05c520b7296@chromium.org
    Fixes: 930457057abe ("kernel/kexec_file.c: split up __kexec_load_puragory")
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: <stable@vger.kernel.org>
    Cc: Albert Ou <aou@eecs.berkeley.edu>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov (AMD) <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Palmer Dabbelt <palmer@rivosinc.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Philipp Rudo <prudo@redhat.com>
    Cc: Ross Zwisler <zwisler@google.com>
    Cc: Simon Horman <horms@kernel.org>
    Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tom Rix <trix@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b16bf76b382810257e3fb6278663a9d131b70197
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Fri May 19 16:47:36 2023 +0200

    kexec: support purgatories with .text.hot sections
    
    commit 8652d44f466ad5772e7d1756e9457046189b0dfc upstream.
    
    Patch series "kexec: Fix kexec_file_load for llvm16 with PGO", v7.
    
    When upreving llvm I realised that kexec stopped working on my test
    platform.
    
    The reason seems to be that due to PGO there are multiple .text sections
    on the purgatory, and kexec does not supports that.
    
    
    This patch (of 4):
    
    Clang16 links the purgatory text in two sections when PGO is in use:
    
      [ 1] .text             PROGBITS         0000000000000000  00000040
           00000000000011a1  0000000000000000  AX       0     0     16
      [ 2] .rela.text        RELA             0000000000000000  00003498
           0000000000000648  0000000000000018   I      24     1     8
      ...
      [17] .text.hot.        PROGBITS         0000000000000000  00003220
           000000000000020b  0000000000000000  AX       0     0     1
      [18] .rela.text.hot.   RELA             0000000000000000  00004428
           0000000000000078  0000000000000018   I      24    17     8
    
    And both of them have their range [sh_addr ... sh_addr+sh_size] on the
    area pointed by `e_entry`.
    
    This causes that image->start is calculated twice, once for .text and
    another time for .text.hot. The second calculation leaves image->start
    in a random location.
    
    Because of this, the system crashes immediately after:
    
    kexec_core: Starting new kernel
    
    Link: https://lkml.kernel.org/r/20230321-kexec_clang16-v7-0-b05c520b7296@chromium.org
    Link: https://lkml.kernel.org/r/20230321-kexec_clang16-v7-1-b05c520b7296@chromium.org
    Fixes: 930457057abe ("kernel/kexec_file.c: split up __kexec_load_puragory")
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Reviewed-by: Ross Zwisler <zwisler@google.com>
    Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Reviewed-by: Philipp Rudo <prudo@redhat.com>
    Cc: Albert Ou <aou@eecs.berkeley.edu>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov (AMD) <bp@alien8.de>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Palmer Dabbelt <palmer@rivosinc.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Simon Horman <horms@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tom Rix <trix@redhat.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 b27a5fbe3c8764d89ebabc8691f02a6464f7cef0
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Wed May 24 18:43:48 2023 +0900

    nilfs2: fix possible out-of-bounds segment allocation in resize ioctl
    
    commit fee5eaecca86afa544355569b831c1f90f334b85 upstream.
    
    Syzbot reports that in its stress test for resize ioctl, the log writing
    function nilfs_segctor_do_construct hits a WARN_ON in
    nilfs_segctor_truncate_segments().
    
    It turned out that there is a problem with the current implementation of
    the resize ioctl, which changes the writable range on the device (the
    range of allocatable segments) at the end of the resize process.
    
    This order is necessary for file system expansion to avoid corrupting the
    superblock at trailing edge.  However, in the case of a file system
    shrink, if log writes occur after truncating out-of-bounds trailing
    segments and before the resize is complete, segments may be allocated from
    the truncated space.
    
    The userspace resize tool was fine as it limits the range of allocatable
    segments before performing the resize, but it can run into this issue if
    the resize ioctl is called alone.
    
    Fix this issue by changing nilfs_sufile_resize() to update the range of
    allocatable segments immediately after successful truncation of segment
    space in case of file system shrink.
    
    Link: https://lkml.kernel.org/r/20230524094348.3784-1-konishi.ryusuke@gmail.com
    Fixes: 4e33f9eab07e ("nilfs2: implement resize ioctl")
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+33494cd0df2ec2931851@syzkaller.appspotmail.com
    Closes: https://lkml.kernel.org/r/0000000000005434c405fbbafdc5@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 0dd2d8331eb45357a69c523333b48622907e7757
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Sat May 13 19:24:28 2023 +0900

    nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key()
    
    commit 2f012f2baca140c488e43d27a374029c1e59098d upstream.
    
    A syzbot fault injection test reported that nilfs_btnode_create_block, a
    helper function that allocates a new node block for b-trees, causes a
    kernel BUG for disk images where the file system block size is smaller
    than the page size.
    
    This was due to unexpected flags on the newly allocated buffer head, and
    it turned out to be because the buffer flags were not cleared by
    nilfs_btnode_abort_change_key() after an error occurred during a b-tree
    update operation and the buffer was later reused in that state.
    
    Fix this issue by using nilfs_btnode_delete() to abandon the unused
    preallocated buffer in nilfs_btnode_abort_change_key().
    
    Link: https://lkml.kernel.org/r/20230513102428.10223-1-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: syzbot+b0a35a5c1f7e846d3b09@syzkaller.appspotmail.com
    Closes: https://lkml.kernel.org/r/000000000000d1d6c205ebc4d512@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 e1fb47f13970063557c4723e420d57291aeb12e1
Author: Janne Grunau <j@jannau.net>
Date:   Sun Feb 12 13:16:32 2023 +0100

    nios2: dts: Fix tse_mac "max-frame-size" property
    
    commit 85041e12418fd0c08ff972b7729f7971afb361f8 upstream.
    
    The given value of 1518 seems to refer to the layer 2 ethernet frame
    size without 802.1Q tag. Actual use of the "max-frame-size" including in
    the consumer of the "altr,tse-1.0" compatible is the MTU.
    
    Fixes: 95acd4c7b69c ("nios2: Device tree support")
    Fixes: 61c610ec61bb ("nios2: Add Max10 device tree")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Janne Grunau <j@jannau.net>
    Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e531f448e5a59978e76f83c889ed367e3f5bd65
Author: Luís Henriques <ocfs2-devel@oss.oracle.com>
Date:   Mon May 29 16:26:45 2023 +0100

    ocfs2: check new file size on fallocate call
    
    commit 26a6ffff7de5dd369cdb12e38ba11db682f1dec0 upstream.
    
    When changing a file size with fallocate() the new size isn't being
    checked.  In particular, the FSIZE ulimit isn't being checked, which makes
    fstest generic/228 fail.  Simply adding a call to inode_newsize_ok() fixes
    this issue.
    
    Link: https://lkml.kernel.org/r/20230529152645.32680-1-lhenriques@suse.de
    Signed-off-by: Luís Henriques <lhenriques@suse.de>
    Reviewed-by: Mark Fasheh <mark@fasheh.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6878da39f47e58d915aad072ccbd0591383c226
Author: Luís Henriques <ocfs2-devel@oss.oracle.com>
Date:   Mon May 22 11:21:12 2023 +0100

    ocfs2: fix use-after-free when unmounting read-only filesystem
    
    commit 50d927880e0f90d5cb25e897e9d03e5edacc79a8 upstream.
    
    It's trivial to trigger a use-after-free bug in the ocfs2 quotas code using
    fstest generic/452.  After a read-only remount, quotas are suspended and
    ocfs2_mem_dqinfo is freed through ->ocfs2_local_free_info().  When unmounting
    the filesystem, an UAF access to the oinfo will eventually cause a crash.
    
    BUG: KASAN: slab-use-after-free in timer_delete+0x54/0xc0
    Read of size 8 at addr ffff8880389a8208 by task umount/669
    ...
    Call Trace:
     <TASK>
     ...
     timer_delete+0x54/0xc0
     try_to_grab_pending+0x31/0x230
     __cancel_work_timer+0x6c/0x270
     ocfs2_disable_quotas.isra.0+0x3e/0xf0 [ocfs2]
     ocfs2_dismount_volume+0xdd/0x450 [ocfs2]
     generic_shutdown_super+0xaa/0x280
     kill_block_super+0x46/0x70
     deactivate_locked_super+0x4d/0xb0
     cleanup_mnt+0x135/0x1f0
     ...
     </TASK>
    
    Allocated by task 632:
     kasan_save_stack+0x1c/0x40
     kasan_set_track+0x21/0x30
     __kasan_kmalloc+0x8b/0x90
     ocfs2_local_read_info+0xe3/0x9a0 [ocfs2]
     dquot_load_quota_sb+0x34b/0x680
     dquot_load_quota_inode+0xfe/0x1a0
     ocfs2_enable_quotas+0x190/0x2f0 [ocfs2]
     ocfs2_fill_super+0x14ef/0x2120 [ocfs2]
     mount_bdev+0x1be/0x200
     legacy_get_tree+0x6c/0xb0
     vfs_get_tree+0x3e/0x110
     path_mount+0xa90/0xe10
     __x64_sys_mount+0x16f/0x1a0
     do_syscall_64+0x43/0x90
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    Freed by task 650:
     kasan_save_stack+0x1c/0x40
     kasan_set_track+0x21/0x30
     kasan_save_free_info+0x2a/0x50
     __kasan_slab_free+0xf9/0x150
     __kmem_cache_free+0x89/0x180
     ocfs2_local_free_info+0x2ba/0x3f0 [ocfs2]
     dquot_disable+0x35f/0xa70
     ocfs2_susp_quotas.isra.0+0x159/0x1a0 [ocfs2]
     ocfs2_remount+0x150/0x580 [ocfs2]
     reconfigure_super+0x1a5/0x3a0
     path_mount+0xc8a/0xe10
     __x64_sys_mount+0x16f/0x1a0
     do_syscall_64+0x43/0x90
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    
    Link: https://lkml.kernel.org/r/20230522102112.9031-1-lhenriques@suse.de
    Signed-off-by: Luís Henriques <lhenriques@suse.de>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Tested-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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 82173fde61c732152f24d660607db8d6b9d73f74
Author: Sukrut Bellary <sukrut.bellary@linux.com>
Date:   Wed May 3 16:15:07 2023 -0700

    drm:amd:amdgpu: Fix missing buffer object unlock in failure path
    
    [ Upstream commit 60ecaaf54886b0642d5c4744f7fbf1ff0d6b3e42 ]
    
    smatch warning -
    1) drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c:3615 gfx_v9_0_kiq_resume()
    warn: inconsistent returns 'ring->mqd_obj->tbo.base.resv'.
    
    2) drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:6901 gfx_v10_0_kiq_resume()
    warn: inconsistent returns 'ring->mqd_obj->tbo.base.resv'.
    
    Signed-off-by: Sukrut Bellary <sukrut.bellary@linux.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 63afd766211b6fb33b948dede51db3a36addc614
Author: Ross Lagerwall <ross.lagerwall@citrix.com>
Date:   Wed Apr 26 17:40:05 2023 +0100

    xen/blkfront: Only check REQ_FUA for writes
    
    [ Upstream commit b6ebaa8100090092aa602530d7e8316816d0c98d ]
    
    The existing code silently converts read operations with the
    REQ_FUA bit set into write-barrier operations. This results in data
    loss as the backend scribbles zeroes over the data instead of returning
    it.
    
    While the REQ_FUA bit doesn't make sense on a read operation, at least
    one well-known out-of-tree kernel module does set it and since it
    results in data loss, let's be safe here and only look at REQ_FUA for
    writes.
    
    Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
    Acked-by: Juergen Gross <jgross@suse.com>
    Link: https://lore.kernel.org/r/20230426164005.2213139-1-ross.lagerwall@citrix.com
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 27447dada0b5afc986c18764cdbceb5a02e64128
Author: Liviu Dudau <liviu@dudau.co.uk>
Date:   Tue May 9 18:29:21 2023 +0100

    mips: Move initrd_start check after initrd address sanitisation.
    
    [ Upstream commit 4897a898a216058dec55e5e5902534e6e224fcdf ]
    
    PAGE_OFFSET is technically a virtual address so when checking the value of
    initrd_start against it we should make sure that it has been sanitised from
    the values passed by the bootloader. Without this change, even with a bootloader
    that passes correct addresses for an initrd, we are failing to load it on MT7621
    boards, for example.
    
    Signed-off-by: Liviu Dudau <liviu@dudau.co.uk>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a365600bba27c35d0d93fd490b01919fbd7d4848
Author: Manuel Lauss <manuel.lauss@gmail.com>
Date:   Thu May 11 17:30:10 2023 +0200

    MIPS: Alchemy: fix dbdma2
    
    [ Upstream commit 2d645604f69f3a772d58ead702f9a8e84ab2b342 ]
    
    Various fixes for the Au1200/Au1550/Au1300 DBDMA2 code:
    
    - skip cache invalidation if chip has working coherency circuitry.
    - invalidate KSEG0-portion of the (physical) data address.
    - force the dma channel doorbell write out to bus immediately with
      a sync.
    
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b39b06b8d5bee99b12dfaaed32323ee34a46377
Author: Helge Deller <deller@gmx.de>
Date:   Wed May 17 15:54:40 2023 +0200

    parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory()
    
    [ Upstream commit d703797380c540bbeac03f104ebcfc364eaf47cc ]
    
    Flush caches after changing gatt entries and calculate entry according
    to SBA requirements.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit de873bce06a8bd196677832c7065a86fd287db79
Author: Helge Deller <deller@gmx.de>
Date:   Wed May 17 15:52:30 2023 +0200

    parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu()
    
    [ Upstream commit 59fa12646d9f56c842b4d5b6418ed77af625c588 ]
    
    Add comment in arch_sync_dma_for_device() and handle the direction flag in
    arch_sync_dma_for_cpu().
    
    When receiving data from the device (DMA_FROM_DEVICE) unconditionally
    purge the data cache in arch_sync_dma_for_cpu().
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28850d25a62c5e304168e9c6c03fba61adbe6b5f
Author: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Date:   Thu May 4 13:58:13 2023 +0200

    btrfs: handle memory allocation failure in btrfs_csum_one_bio
    
    [ Upstream commit 806570c0bb7b4847828c22c4934fcf2dc8fc572f ]
    
    Since f8a53bb58ec7 ("btrfs: handle checksum generation in the storage
    layer") the failures of btrfs_csum_one_bio() are handled via
    bio_end_io().
    
    This means, we can return BLK_STS_RESOURCE from btrfs_csum_one_bio() in
    case the allocation of the ordered sums fails.
    
    This also fixes a syzkaller report, where injecting a failure into the
    kvzalloc() call results in a BUG_ON().
    
    Reported-by: syzbot+d8941552e21eac774778@syzkaller.appspotmail.com
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Anand Jain <anand.jain@oracle.com>
    Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b31586747bae34b81425042c9c046da831451457
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Tue May 16 13:25:40 2023 -0500

    power: supply: Fix logic checking if system is running from battery
    
    [ Upstream commit 95339f40a8b652b5b1773def31e63fc53c26378a ]
    
    The logic used for power_supply_is_system_supplied() counts all power
    supplies and assumes that the system is running from AC if there is
    either a non-battery power-supply reporting to be online or if no
    power-supplies exist at all.
    
    The second rule is for desktop systems, that don't have any
    battery/charger devices. These systems will incorrectly report to be
    powered from battery once a device scope power-supply is registered
    (e.g. a HID device), since these power-supplies increase the counter.
    
    Apart from HID devices, recent dGPUs provide UCSI power supplies on a
    desktop systems. The dGPU by default doesn't have anything plugged in so
    it's 'offline'. This makes power_supply_is_system_supplied() return 0
    with a count of 1 meaning all drivers that use this get a wrong judgement.
    
    To fix this case adjust the logic to also examine the scope of the power
    supply. If the power supply is deemed a device power supply, then don't
    count it.
    
    Cc: Evan Quan <Evan.Quan@amd.com>
    Suggested-by: Lijo Lazar <Lijo.Lazar@amd.com>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dd8804117d4b18335e952349df944186c1abc4cb
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Fri May 12 18:45:06 2023 +0200

    irqchip/meson-gpio: Mark OF related data as maybe unused
    
    [ Upstream commit 14130211be5366a91ec07c3284c183b75d8fba17 ]
    
    The driver can be compile tested with !CONFIG_OF making certain data
    unused:
    
      drivers/irqchip/irq-meson-gpio.c:153:34: error: ‘meson_irq_gpio_matches’ defined but not used [-Werror=unused-const-variable=]
    
    Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230512164506.212267-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30ade27dbe66fe081bf5d8dd149768e473d8386f
Author: Osama Muhammad <osmtendev@gmail.com>
Date:   Mon May 15 22:29:38 2023 +0500

    regulator: Fix error checking for debugfs_create_dir
    
    [ Upstream commit 2bf1c45be3b8f3a3f898d0756c1282f09719debd ]
    
    This patch fixes the error checking in core.c in debugfs_create_dir.
    The correct way to check if an error occurred is 'IS_ERR' inline function.
    
    Signed-off-by: Osama Muhammad <osmtendev@gmail.com
    Suggested-by: Ivan Orlov <ivan.orlov0322@gmail.com
    Link: https://lore.kernel.org/r/20230515172938.13338-1-osmtendev@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a12155f0b1b6473f2ce0f0132e20c57b8310a705
Author: Alexandru Sorodoc <ealex95@gmail.com>
Date:   Fri May 12 13:15:17 2023 +0300

    platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0
    
    [ Upstream commit 362c1f2ec82cb65940e1c73e15a395a7a891fc6f ]
    
    On ASUS GU604V the key 0x7B is issued when the charger is connected or
    disconnected, and key 0xC0 is issued when an external display is
    connected or disconnected.
    
    This commit maps them to KE_IGNORE to slience kernel messages about
    unknown keys, such as:
    
        kernel: asus_wmi: Unknown key code 0x7b
    
    Signed-off-by: Alexandru Sorodoc <ealex95@gmail.com>
    Link: https://lore.kernel.org/r/20230512101517.47416-1-ealex95@gmail.com
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d26edc403c0a7fc6a56a221c50e7e47e69f235a9
Author: Marek Vasut <marex@denx.de>
Date:   Sun Mar 5 21:52:26 2023 +0100

    power: supply: Ratelimit no data debug output
    
    [ Upstream commit 155c45a25679f571c2ae57d10db843a9dfc63430 ]
    
    Reduce the amount of output this dev_dbg() statement emits into logs,
    otherwise if system software polls the sysfs entry for data and keeps
    getting -ENODATA, it could end up filling the logs up.
    
    This does in fact make systemd journald choke, since during boot the
    sysfs power supply entries are polled and if journald starts at the
    same time, the journal is just being repeatedly filled up, and the
    system stops on trying to start journald without booting any further.
    
    Signed-off-by: Marek Vasut <marex@denx.de>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af44b2ddfc08c59fc5d883d0634bec698baf4249
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Sun Apr 23 17:08:37 2023 +0200

    ARM: dts: vexpress: add missing cache properties
    
    [ Upstream commit 328acc5657c6197753238d7ce0a6924ead829347 ]
    
    As all level 2 and level 3 caches are unified, add required
    cache-unified property to fix warnings like:
    
      vexpress-v2p-ca5s.dtb: cache-controller@2c0f0000: 'cache-unified' is a required property
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20230423150837.118466-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd725832eb50bc5a60120fb6d3e822f773911eea
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Apr 15 20:23:39 2023 +0200

    power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule()
    
    [ Upstream commit 59dddea9879713423c7b2ade43c423bb71e0d216 ]
    
    Use mod_delayed_work() instead of separate cancel_delayed_work_sync() +
    schedule_delayed_work() calls.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 82bfd14f13598934412603143d38bb94d96e56eb
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Apr 15 18:07:32 2023 +0200

    power: supply: sc27xx: Fix external_power_changed race
    
    [ Upstream commit 4d5c129d6c8993fe96e9ae712141eedcb9ca68c2 ]
    
    sc27xx_fgu_external_power_changed() dereferences data->battery,
    which gets sets in ab8500_btemp_probe() like this:
    
            data->battery = devm_power_supply_register(dev, &sc27xx_fgu_desc,
                                                       &fgu_cfg);
    
    As soon as devm_power_supply_register() has called device_add()
    the external_power_changed callback can get called. So there is a window
    where sc27xx_fgu_external_power_changed() may get called while
    data->battery has not been set yet leading to a NULL pointer dereference.
    
    Fixing this is easy. The external_power_changed callback gets passed
    the power_supply which will eventually get stored in data->battery,
    so sc27xx_fgu_external_power_changed() can simply directly use
    the passed in psy argument which is always valid.
    
    After this change sc27xx_fgu_external_power_changed() is reduced to just
    "power_supply_changed(psy);" and it has the same prototype. While at it
    simply replace it with making the external_power_changed callback
    directly point to power_supply_changed.
    
    Cc: Orson Zhai <orsonzhai@gmail.com>
    Cc: Chunyan Zhang <zhang.lyra@gmail.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 66d5882dcc9f28d54de4dd58b438044815d76ddd
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Apr 15 18:07:29 2023 +0200

    power: supply: ab8500: Fix external_power_changed race
    
    [ Upstream commit a5299ce4e96f3e8930e9c051b28d8093ada87b08 ]
    
    ab8500_btemp_external_power_changed() dereferences di->btemp_psy,
    which gets sets in ab8500_btemp_probe() like this:
    
            di->btemp_psy = devm_power_supply_register(dev, &ab8500_btemp_desc,
                                                       &psy_cfg);
    
    As soon as devm_power_supply_register() has called device_add()
    the external_power_changed callback can get called. So there is a window
    where ab8500_btemp_external_power_changed() may get called while
    di->btemp_psy has not been set yet leading to a NULL pointer dereference.
    
    Fixing this is easy. The external_power_changed callback gets passed
    the power_supply which will eventually get stored in di->btemp_psy,
    so ab8500_btemp_external_power_changed() can simply directly use
    the passed in psy argument which is always valid.
    
    And the same applies to ab8500_fg_external_power_changed().
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8f286bfbc71c856747352f43b1ab2fb74a72e6b
Author: Jan Höppner <hoeppner@linux.ibm.com>
Date:   Fri Jun 9 17:37:50 2023 +0200

    s390/dasd: Use correct lock while counting channel queue length
    
    [ Upstream commit ccc45cb4e7271c74dbb27776ae8f73d84557f5c6 ]
    
    The lock around counting the channel queue length in the BIODASDINFO
    ioctl was incorrectly changed to the dasd_block->queue_lock with commit
    583d6535cb9d ("dasd: remove dead code"). This can lead to endless list
    iterations and a subsequent crash.
    
    The queue_lock is supposed to be used only for queue lists belonging to
    dasd_block. For dasd_device related queue lists the ccwdev lock must be
    used.
    
    Fix the mentioned issues by correctly using the ccwdev lock instead of
    the queue lock.
    
    Fixes: 583d6535cb9d ("dasd: remove dead code")
    Cc: stable@vger.kernel.org # v5.0+
    Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
    Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
    Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
    Link: https://lore.kernel.org/r/20230609153750.1258763-2-sth@linux.ibm.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d60be47f435791bdc7782ca4ad1f1682ff5e7702
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue May 19 16:22:58 2020 +0200

    dasd: refactor dasd_ioctl_information
    
    [ Upstream commit 9353848c6589ffe6373d03f3a58feaeda1009641 ]
    
    Prepare for in-kernel callers of this functionality.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    [sth@de.ibm.com: remove leftover kfree]
    Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
    Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
    Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Stable-dep-of: ccc45cb4e727 ("s390/dasd: Use correct lock while counting channel queue length")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7f3bb75a0484b5035b02bce36d43c876fda9d6be
Author: Roberto Sassu <roberto.sassu@huawei.com>
Date:   Thu Dec 8 10:56:46 2022 +0100

    KEYS: asymmetric: Copy sig and digest in public_key_verify_signature()
    
    [ Upstream commit c3d03e8e35e005e1a614e51bb59053eeb5857f76 ]
    
    Commit ac4e97abce9b8 ("scatterlist: sg_set_buf() argument must be in linear
    mapping") checks that both the signature and the digest reside in the
    linear mapping area.
    
    However, more recently commit ba14a194a434c ("fork: Add generic vmalloced
    stack support") made it possible to move the stack in the vmalloc area,
    which is not contiguous, and thus not suitable for sg_set_buf() which needs
    adjacent pages.
    
    Always make a copy of the signature and digest in the same buffer used to
    store the key and its parameters, and pass them to sg_init_one(). Prefer it
    to conditionally doing the copy if necessary, to keep the code simple. The
    buffer allocated with kmalloc() is in the linear mapping area.
    
    Cc: stable@vger.kernel.org # 4.9.x
    Fixes: ba14a194a434 ("fork: Add generic vmalloced stack support")
    Link: https://lore.kernel.org/linux-integrity/Y4pIpxbjBdajymBJ@sol.localdomain/
    Suggested-by: Eric Biggers <ebiggers@kernel.org>
    Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
    Reviewed-by: Eric Biggers <ebiggers@google.com>
    Tested-by: Stefan Berger <stefanb@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 75d9e00f65cd2e0f2ce9ceeb395f821976773489
Author: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
Date:   Tue May 9 10:47:47 2023 +0200

    test_firmware: fix a memory leak with reqs buffer
    
    [ Upstream commit be37bed754ed90b2655382f93f9724b3c1aae847 ]
    
    Dan Carpenter spotted that test_fw_config->reqs will be leaked if
    trigger_batched_requests_store() is called two or more times.
    The same appears with trigger_batched_requests_async_store().
    
    This bug wasn't trigger by the tests, but observed by Dan's visual
    inspection of the code.
    
    The recommended workaround was to return -EBUSY if test_fw_config->reqs
    is already allocated.
    
    Fixes: 7feebfa487b92 ("test_firmware: add support for request_firmware_into_buf")
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Russ Weight <russell.h.weight@intel.com>
    Cc: Tianfei Zhang <tianfei.zhang@intel.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Colin Ian King <colin.i.king@gmail.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: linux-kselftest@vger.kernel.org
    Cc: stable@vger.kernel.org # v5.4
    Suggested-by: Dan Carpenter <error27@gmail.com>
    Suggested-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
    Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
    Acked-by: Luis Chamberlain <mcgrof@kernel.org>
    Link: https://lore.kernel.org/r/20230509084746.48259-2-mirsad.todorovac@alu.unizg.hr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>