commit 2570bb2729c7cbcecf9a4abc1e740b02a722b6e6
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Feb 1 17:24:40 2022 +0100

    Linux 5.4.176
    
    Link: https://lore.kernel.org/r/20220131105215.644174521@linuxfoundation.org
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e2a4d02252fb374f4c32ca52bf0fc503634a555
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Mon Nov 22 14:21:38 2021 +0100

    mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip()
    
    commit 33a0da68fb073360d36ce1a0e852f75fede7c21e upstream.
    
    drivers/mtd/nand/raw/mpc5121_nfc.c: In function ‘ads5121_select_chip’:
    drivers/mtd/nand/raw/mpc5121_nfc.c:294:19: warning: unused variable ‘mtd’ [-Wunused-variable]
      294 |  struct mtd_info *mtd = nand_to_mtd(nand);
          |                   ^~~
    
    Fixes: 758b56f58b66bebc ("mtd: rawnand: Pass a nand_chip object to chip->select_chip()")
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20211122132138.3899138-1-geert@linux-m68k.org
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6cbf4c731d7812518cd857c2cfc3da9fd120f6ae
Author: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Date:   Sun Jan 9 18:36:43 2022 +0900

    block: Fix wrong offset in bio_truncate()
    
    commit 3ee859e384d453d6ac68bfd5971f630d9fa46ad3 upstream.
    
    bio_truncate() clears the buffer outside of last block of bdev, however
    current bio_truncate() is using the wrong offset of page. So it can
    return the uninitialized data.
    
    This happened when both of truncated/corrupted FS and userspace (via
    bdev) are trying to read the last of bdev.
    
    Reported-by: syzbot+ac94ae5f68b84197f41c@syzkaller.appspotmail.com
    Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/875yqt1c9g.fsf@mail.parknet.co.jp
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33a9ba52d5ea55a1e80f61022857bb705074aaf8
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Thu Jan 20 23:53:04 2022 +0200

    fsnotify: invalidate dcache before IN_DELETE event
    
    commit a37d9a17f099072fe4d3a9048b0321978707a918 upstream.
    
    Apparently, there are some applications that use IN_DELETE event as an
    invalidation mechanism and expect that if they try to open a file with
    the name reported with the delete event, that it should not contain the
    content of the deleted file.
    
    Commit 49246466a989 ("fsnotify: move fsnotify_nameremove() hook out of
    d_delete()") moved the fsnotify delete hook before d_delete() so fsnotify
    will have access to a positive dentry.
    
    This allowed a race where opening the deleted file via cached dentry
    is now possible after receiving the IN_DELETE event.
    
    To fix the regression, create a new hook fsnotify_delete() that takes
    the unlinked inode as an argument and use a helper d_delete_notify() to
    pin the inode, so we can pass it to fsnotify_delete() after d_delete().
    
    Backporting hint: this regression is from v5.3. Although patch will
    apply with only trivial conflicts to v5.4 and v5.10, it won't build,
    because fsnotify_delete() implementation is different in each of those
    versions (see fsnotify_link()).
    
    A follow up patch will fix the fsnotify_unlink/rmdir() calls in pseudo
    filesystem that do not need to call d_delete().
    
    Link: https://lore.kernel.org/r/20220120215305.282577-1-amir73il@gmail.com
    Reported-by: Ivan Delalande <colona@arista.com>
    Link: https://lore.kernel.org/linux-fsdevel/YeNyzoDM5hP5LtGW@visor/
    Fixes: 49246466a989 ("fsnotify: move fsnotify_nameremove() hook out of d_delete()")
    Cc: stable@vger.kernel.org # v5.3+
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b52103cbb659551963c0a788e0d49ff31593c311
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Fri Jan 14 18:47:41 2022 +0100

    dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config
    
    commit 17a30422621c0e04cb6060d20d7edcefd7463347 upstream.
    
    This tcan4x5x only comes with 2K of MRAM, a RX FIFO with a dept of 32
    doesn't fit into the MRAM. Use a depth of 16 instead.
    
    Fixes: 4edd396a1911 ("dt-bindings: can: tcan4x5x: Add DT bindings for TCAN4x5X driver")
    Link: https://lore.kernel.org/all/20220119062951.2939851-1-mkl@pengutronix.de
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e913171594eaee25fbac9cce13771d616df69f82
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 26 17:34:04 2022 -0800

    ipv4: remove sparse error in ip_neigh_gw4()
    
    [ Upstream commit 3c42b2019863b327caa233072c50739d4144dd16 ]
    
    ./include/net/route.h:373:48: warning: incorrect type in argument 2 (different base types)
    ./include/net/route.h:373:48:    expected unsigned int [usertype] key
    ./include/net/route.h:373:48:    got restricted __be32 [usertype] daddr
    
    Fixes: 5c9f7c1dfc2e ("ipv4: Add helpers for neigh lookup for nexthop")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/r/20220127013404.1279313-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c30ecdba9e5ada4b00946146c581b83d719f251f
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 26 17:10:21 2022 -0800

    ipv4: tcp: send zero IPID in SYNACK messages
    
    [ Upstream commit 970a5a3ea86da637471d3cd04d513a0755aba4bf ]
    
    In commit 431280eebed9 ("ipv4: tcp: send zero IPID for RST and
    ACK sent in SYN-RECV and TIME-WAIT state") we took care of some
    ctl packets sent by TCP.
    
    It turns out we need to use a similar strategy for SYNACK packets.
    
    By default, they carry IP_DF and IPID==0, but there are ways
    to ask them to use the hashed IP ident generator and thus
    be used to build off-path attacks.
    (Ref: Off-Path TCP Exploits of the Mixed IPID Assignment)
    
    One of this way is to force (before listener is started)
    echo 1 >/proc/sys/net/ipv4/ip_no_pmtu_disc
    
    Another way is using forged ICMP ICMP_FRAG_NEEDED
    with a very small MTU (like 68) to force a false return from
    ip_dont_fragment()
    
    In this patch, ip_build_and_send_pkt() uses the following
    heuristics.
    
    1) Most SYNACK packets are smaller than IPV4_MIN_MTU and therefore
    can use IP_DF regardless of the listener or route pmtu setting.
    
    2) In case the SYNACK packet is bigger than IPV4_MIN_MTU,
    we use prandom_u32() generator instead of the IPv4 hashed ident one.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Ray Che <xijiache@gmail.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Cc: Geoff Alexander <alexandg@cs.unm.edu>
    Cc: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 51dde4ae5a377d642afdb141ff700f2a0573cdfc
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 26 16:51:16 2022 -0800

    ipv4: raw: lock the socket in raw_bind()
    
    [ Upstream commit 153a0d187e767c68733b8e9f46218eb1f41ab902 ]
    
    For some reason, raw_bind() forgot to lock the socket.
    
    BUG: KCSAN: data-race in __ip4_datagram_connect / raw_bind
    
    write to 0xffff8881170d4308 of 4 bytes by task 5466 on cpu 0:
     raw_bind+0x1b0/0x250 net/ipv4/raw.c:739
     inet_bind+0x56/0xa0 net/ipv4/af_inet.c:443
     __sys_bind+0x14b/0x1b0 net/socket.c:1697
     __do_sys_bind net/socket.c:1708 [inline]
     __se_sys_bind net/socket.c:1706 [inline]
     __x64_sys_bind+0x3d/0x50 net/socket.c:1706
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    read to 0xffff8881170d4308 of 4 bytes by task 5468 on cpu 1:
     __ip4_datagram_connect+0xb7/0x7b0 net/ipv4/datagram.c:39
     ip4_datagram_connect+0x2a/0x40 net/ipv4/datagram.c:89
     inet_dgram_connect+0x107/0x190 net/ipv4/af_inet.c:576
     __sys_connect_file net/socket.c:1900 [inline]
     __sys_connect+0x197/0x1b0 net/socket.c:1917
     __do_sys_connect net/socket.c:1927 [inline]
     __se_sys_connect net/socket.c:1924 [inline]
     __x64_sys_connect+0x3d/0x50 net/socket.c:1924
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    value changed: 0x00000000 -> 0x0003007f
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 1 PID: 5468 Comm: syz-executor.5 Not tainted 5.17.0-rc1-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2d334469c29ea6b72620171038b3c50319ec7bf0
Author: Yufeng Mo <moyufeng@huawei.com>
Date:   Tue Jan 25 15:03:12 2022 +0800

    net: hns3: handle empty unknown interrupt for VF
    
    [ Upstream commit 2f61353cd2f789a4229b6f5c1c24a40a613357bb ]
    
    Since some interrupt states may be cleared by hardware, the driver
    may receive an empty interrupt. Currently, the VF driver directly
    disables the vector0 interrupt in this case. As a result, the VF
    is unavailable. Therefore, the vector0 interrupt should be enabled
    in this case.
    
    Fixes: b90fcc5bd904 ("net: hns3: add reset handling for VF when doing Core/Global/IMP reset")
    Signed-off-by: Yufeng Mo <moyufeng@huawei.com>
    Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7afc09c8915b0735203ebcb8d766d7db37b794c0
Author: Hangyu Hua <hbh25y@gmail.com>
Date:   Mon Jan 24 11:29:54 2022 +0800

    yam: fix a memory leak in yam_siocdevprivate()
    
    [ Upstream commit 29eb31542787e1019208a2e1047bb7c76c069536 ]
    
    ym needs to be free when ym->cmd != SIOCYAMSMCS.
    
    Fixes: 0781168e23a2 ("yam: fix a missing-check bug")
    Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 51edc483af6c663a5373d50015c7b85347f27769
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Fri Jan 7 08:50:22 2022 +0000

    drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
    
    [ Upstream commit 774fe0cd838d1b1419d41ab4ea0613c80d4ecbd7 ]
    
    The reference taken by 'of_find_device_by_node()' must be released when
    not needed anymore.
    Add the corresponding 'put_device()' in the error handling path.
    
    Fixes: e00012b256d4 ("drm/msm/hdmi: Make HDMI core get its PHY")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20220107085026.23831-1-linmq006@gmail.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a15ed3e9887fa9160a8333fb5f29ec851adf5782
Author: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
Date:   Fri Jan 21 18:59:20 2022 -0800

    ibmvnic: don't spin in tasklet
    
    [ Upstream commit 48079e7fdd0269d66b1d7d66ae88bd03162464ad ]
    
    ibmvnic_tasklet() continuously spins waiting for responses to all
    capability requests. It does this to avoid encountering an error
    during initialization of the vnic. However if there is a bug in the
    VIOS and we do not receive a response to one or more queries the
    tasklet ends up spinning continuously leading to hard lock ups.
    
    If we fail to receive a message from the VIOS it is reasonable to
    timeout the login attempt rather than spin indefinitely in the tasklet.
    
    Fixes: 249168ad07cd ("ibmvnic: Make CRQ interrupt tasklet wait for all capabilities crqs")
    Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
    Reviewed-by: Dany Madden <drt@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c09702f43a6ae88dad65dbadf28fa743864f9478
Author: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
Date:   Fri Jan 21 18:59:19 2022 -0800

    ibmvnic: init ->running_cap_crqs early
    
    [ Upstream commit 151b6a5c06b678687f64f2d9a99fd04d5cd32b72 ]
    
    We use ->running_cap_crqs to determine when the ibmvnic_tasklet() should
    send out the next protocol message type. i.e when we get back responses
    to all our QUERY_CAPABILITY CRQs we send out REQUEST_CAPABILITY crqs.
    Similiary, when we get responses to all the REQUEST_CAPABILITY crqs, we
    send out the QUERY_IP_OFFLOAD CRQ.
    
    We currently increment ->running_cap_crqs as we send out each CRQ and
    have the ibmvnic_tasklet() send out the next message type, when this
    running_cap_crqs count drops to 0.
    
    This assumes that all the CRQs of the current type were sent out before
    the count drops to 0. However it is possible that we send out say 6 CRQs,
    get preempted and receive all the 6 responses before we send out the
    remaining CRQs. This can result in ->running_cap_crqs count dropping to
    zero before all messages of the current type were sent and we end up
    sending the next protocol message too early.
    
    Instead initialize the ->running_cap_crqs upfront so the tasklet will
    only send the next protocol message after all responses are received.
    
    Use the cap_reqs local variable to also detect any discrepancy (either
    now or in future) in the number of capability requests we actually send.
    
    Currently only send_query_cap() is affected by this behavior (of sending
    next message early) since it is called from the worker thread (during
    reset) and from application thread (during ->ndo_open()) and they can be
    preempted. send_request_cap() is only called from the tasklet  which
    processes CRQ responses sequentially, is not be affected.  But to
    maintain the existing symmtery with send_query_capability() we update
    send_request_capability() also.
    
    Fixes: 249168ad07cd ("ibmvnic: Make CRQ interrupt tasklet wait for all capabilities crqs")
    Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
    Reviewed-by: Dany Madden <drt@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 86217a4ebd181acb562ee5998908c2a3a869ecde
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Fri Jan 7 11:05:23 2022 -0800

    hwmon: (lm90) Mark alert as broken for MAX6654
    
    [ Upstream commit a53fff96f35763d132a36c620b183fdf11022d7a ]
    
    Experiments with MAX6654 show that its alert function is broken,
    similar to other chips supported by the lm90 driver. Mark it accordingly.
    
    Fixes: 229d495d8189 ("hwmon: (lm90) Add max6654 support to lm90 driver")
    Cc: Josh Lehan <krellan@google.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 18684bb996f3d5adf2a47467db5e385a86c76afc
Author: David Howells <dhowells@redhat.com>
Date:   Fri Jan 21 23:12:58 2022 +0000

    rxrpc: Adjust retransmission backoff
    
    [ Upstream commit 2c13c05c5ff4b9fc907b07f7311821910ebaaf8a ]
    
    Improve retransmission backoff by only backing off when we retransmit data
    packets rather than when we set the lost ack timer.
    
    To this end:
    
     (1) In rxrpc_resend(), use rxrpc_get_rto_backoff() when setting the
         retransmission timer and only tell it that we are retransmitting if we
         actually have things to retransmit.
    
         Note that it's possible for the retransmission algorithm to race with
         the processing of a received ACK, so we may see no packets needing
         retransmission.
    
     (2) In rxrpc_send_data_packet(), don't bump the backoff when setting the
         ack_lost_at timer, as it may then get bumped twice.
    
    With this, when looking at one particular packet, the retransmission
    intervals were seen to be 1.5ms, 2ms, 3ms, 5ms, 9ms, 17ms, 33ms, 71ms,
    136ms, 264ms, 544ms, 1.088s, 2.1s, 4.2s and 8.3s.
    
    Fixes: c410bf01933e ("rxrpc: Fix the excessive initial retransmission timeout")
    Suggested-by: Marc Dionne <marc.dionne@auristor.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Marc Dionne <marc.dionne@auristor.com>
    Tested-by: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    Link: https://lore.kernel.org/r/164138117069.2023386.17446904856843997127.stgit@warthog.procyon.org.uk/
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f39027cbada43b33566c312e6be3db654ca3ad17
Author: Marek Behún <kabel@kernel.org>
Date:   Wed Jan 19 17:27:48 2022 +0100

    phylib: fix potential use-after-free
    
    [ Upstream commit cbda1b16687580d5beee38273f6241ae3725960c ]
    
    Commit bafbdd527d56 ("phylib: Add device reset GPIO support") added call
    to phy_device_reset(phydev) after the put_device() call in phy_detach().
    
    The comment before the put_device() call says that the phydev might go
    away with put_device().
    
    Fix potential use-after-free by calling phy_device_reset() before
    put_device().
    
    Fixes: bafbdd527d56 ("phylib: Add device reset GPIO support")
    Signed-off-by: Marek Behún <kabel@kernel.org>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Link: https://lore.kernel.org/r/20220119162748.32418-1-kabel@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 218cccb52124c151b2e7d07b54b8504489c03290
Author: Robert Hancock <robert.hancock@calian.com>
Date:   Tue Jan 18 15:52:43 2022 -0600

    net: phy: broadcom: hook up soft_reset for BCM54616S
    
    [ Upstream commit d15c7e875d44367005370e6a82e8f3a382a04f9b ]
    
    A problem was encountered with the Bel-Fuse 1GBT-SFP05 SFP module (which
    is a 1 Gbps copper module operating in SGMII mode with an internal
    BCM54616S PHY device) using the Xilinx AXI Ethernet MAC core, where the
    module would work properly on the initial insertion or boot of the
    device, but after the device was rebooted, the link would either only
    come up at 100 Mbps speeds or go up and down erratically.
    
    I found no meaningful changes in the PHY configuration registers between
    the working and non-working boots, but the status registers seemed to
    have a lot of error indications set on the SERDES side of the device on
    the non-working boot. I suspect the problem is that whatever happens on
    the SGMII link when the device is rebooted and the FPGA logic gets
    reloaded ends up putting the module's onboard PHY into a bad state.
    
    Since commit 6e2d85ec0559 ("net: phy: Stop with excessive soft reset")
    the genphy_soft_reset call is not made automatically by the PHY core
    unless the callback is explicitly specified in the driver structure. For
    most of these Broadcom devices, there is probably a hardware reset that
    gets asserted to reset the PHY during boot, however for SFP modules
    (where the BCM54616S is commonly found) no such reset line exists, so if
    the board keeps the SFP cage powered up across a reboot, it will end up
    with no reset occurring during reboots.
    
    Hook up the genphy_soft_reset callback for BCM54616S to ensure that a
    PHY reset is performed before the device is initialized. This appears to
    fix the issue with erratic operation after a reboot with this SFP
    module.
    
    Fixes: 6e2d85ec0559 ("net: phy: Stop with excessive soft reset")
    Signed-off-by: Robert Hancock <robert.hancock@calian.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0d26470b25d2c04753f76c3e29c3302ef3805825
Author: Florian Westphal <fw@strlen.de>
Date:   Thu Jan 13 21:37:58 2022 +0100

    netfilter: conntrack: don't increment invalid counter on NF_REPEAT
    
    [ Upstream commit 830af2eba40327abec64325a5b08b1e85c37a2e0 ]
    
    The packet isn't invalid, REPEAT means we're trying again after cleaning
    out a stale connection, e.g. via tcp tracker.
    
    This caused increases of invalid stat counter in a test case involving
    frequent connection reuse, even though no packet is actually invalid.
    
    Fixes: 56a62e2218f5 ("netfilter: conntrack: fix NF_REPEAT handling")
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit abcb9d80a4a572013cca17967e38b463f9b0e9c6
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Wed Dec 15 16:38:16 2021 -0500

    NFS: Ensure the server has an up to date ctime before renaming
    
    [ Upstream commit 6ff9d99bb88faebf134ca668842349d9718e5464 ]
    
    Renaming a file is required by POSIX to update the file ctime, so
    ensure that the file data is synced to disk so that we don't clobber the
    updated ctime by writing back after creating the hard link.
    
    Fixes: f2c2c552f119 ("NFS: Move delegation recall into the NFSv4 callback for rename_setup()")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30965c7682179353a053f48513a161e128e090e5
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Wed Dec 15 16:38:15 2021 -0500

    NFS: Ensure the server has an up to date ctime before hardlinking
    
    [ Upstream commit 204975036b34f55237bc44c8a302a88468ef21b5 ]
    
    Creating a hard link is required by POSIX to update the file ctime, so
    ensure that the file data is synced to disk so that we don't clobber the
    updated ctime by writing back after creating the hard link.
    
    Fixes: 9f7682728728 ("NFS: Move the delegation return down into nfs4_proc_link()")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cdfaf8e985f8f797b9b8307e0af3328ce9d8a9ca
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Jan 20 09:41:12 2022 -0800

    ipv6: annotate accesses to fn->fn_sernum
    
    commit aafc2e3285c2d7a79b7ee15221c19fbeca7b1509 upstream.
    
    struct fib6_node's fn_sernum field can be
    read while other threads change it.
    
    Add READ_ONCE()/WRITE_ONCE() annotations.
    
    Do not change existing smp barriers in fib6_get_cookie_safe()
    and __fib6_update_sernum_upto_root()
    
    syzbot reported:
    
    BUG: KCSAN: data-race in fib6_clean_node / inet6_csk_route_socket
    
    write to 0xffff88813df62e2c of 4 bytes by task 1920 on cpu 1:
     fib6_clean_node+0xc2/0x260 net/ipv6/ip6_fib.c:2178
     fib6_walk_continue+0x38e/0x430 net/ipv6/ip6_fib.c:2112
     fib6_walk net/ipv6/ip6_fib.c:2160 [inline]
     fib6_clean_tree net/ipv6/ip6_fib.c:2240 [inline]
     __fib6_clean_all+0x1a9/0x2e0 net/ipv6/ip6_fib.c:2256
     fib6_flush_trees+0x6c/0x80 net/ipv6/ip6_fib.c:2281
     rt_genid_bump_ipv6 include/net/net_namespace.h:488 [inline]
     addrconf_dad_completed+0x57f/0x870 net/ipv6/addrconf.c:4230
     addrconf_dad_work+0x908/0x1170
     process_one_work+0x3f6/0x960 kernel/workqueue.c:2307
     worker_thread+0x616/0xa70 kernel/workqueue.c:2454
     kthread+0x1bf/0x1e0 kernel/kthread.c:359
     ret_from_fork+0x1f/0x30
    
    read to 0xffff88813df62e2c of 4 bytes by task 15701 on cpu 0:
     fib6_get_cookie_safe include/net/ip6_fib.h:285 [inline]
     rt6_get_cookie include/net/ip6_fib.h:306 [inline]
     ip6_dst_store include/net/ip6_route.h:234 [inline]
     inet6_csk_route_socket+0x352/0x3c0 net/ipv6/inet6_connection_sock.c:109
     inet6_csk_xmit+0x91/0x1e0 net/ipv6/inet6_connection_sock.c:121
     __tcp_transmit_skb+0x1323/0x1840 net/ipv4/tcp_output.c:1402
     tcp_transmit_skb net/ipv4/tcp_output.c:1420 [inline]
     tcp_write_xmit+0x1450/0x4460 net/ipv4/tcp_output.c:2680
     __tcp_push_pending_frames+0x68/0x1c0 net/ipv4/tcp_output.c:2864
     tcp_push+0x2d9/0x2f0 net/ipv4/tcp.c:725
     mptcp_push_release net/mptcp/protocol.c:1491 [inline]
     __mptcp_push_pending+0x46c/0x490 net/mptcp/protocol.c:1578
     mptcp_sendmsg+0x9ec/0xa50 net/mptcp/protocol.c:1764
     inet6_sendmsg+0x5f/0x80 net/ipv6/af_inet6.c:643
     sock_sendmsg_nosec net/socket.c:705 [inline]
     sock_sendmsg net/socket.c:725 [inline]
     kernel_sendmsg+0x97/0xd0 net/socket.c:745
     sock_no_sendpage+0x84/0xb0 net/core/sock.c:3086
     inet_sendpage+0x9d/0xc0 net/ipv4/af_inet.c:834
     kernel_sendpage+0x187/0x200 net/socket.c:3492
     sock_sendpage+0x5a/0x70 net/socket.c:1007
     pipe_to_sendpage+0x128/0x160 fs/splice.c:364
     splice_from_pipe_feed fs/splice.c:418 [inline]
     __splice_from_pipe+0x207/0x500 fs/splice.c:562
     splice_from_pipe fs/splice.c:597 [inline]
     generic_splice_sendpage+0x94/0xd0 fs/splice.c:746
     do_splice_from fs/splice.c:767 [inline]
     direct_splice_actor+0x80/0xa0 fs/splice.c:936
     splice_direct_to_actor+0x345/0x650 fs/splice.c:891
     do_splice_direct+0x106/0x190 fs/splice.c:979
     do_sendfile+0x675/0xc40 fs/read_write.c:1245
     __do_sys_sendfile64 fs/read_write.c:1310 [inline]
     __se_sys_sendfile64 fs/read_write.c:1296 [inline]
     __x64_sys_sendfile64+0x102/0x140 fs/read_write.c:1296
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    value changed: 0x0000026f -> 0x00000271
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 0 PID: 15701 Comm: syz-executor.2 Not tainted 5.16.0-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    
    The Fixes tag I chose is probably arbitrary, I do not think
    we need to backport this patch to older kernels.
    
    Fixes: c5cff8561d2d ("ipv6: add rcu grace period before freeing fib6_node")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Link: https://lore.kernel.org/r/20220120174112.1126644-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 581317b1f001b7509041544d7019b75571daa100
Author: José Expósito <jose.exposito89@gmail.com>
Date:   Sun Jan 16 19:18:44 2022 +0100

    drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
    
    commit 5e761a2287234bc402ba7ef07129f5103bcd775c upstream.
    
    The function performs a check on the "phy" input parameter, however, it
    is used before the check.
    
    Initialize the "dev" variable after the sanity check to avoid a possible
    NULL pointer dereference.
    
    Fixes: 5c8290284402b ("drm/msm/dsi: Split PHY drivers to separate files")
    Addresses-Coverity-ID: 1493860 ("Null pointer dereference")
    Signed-off-by: José Expósito <jose.exposito89@gmail.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20220116181844.7400-1-jose.exposito89@gmail.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b3e3d584f0f19e4a25aca8b9fab4b3174283608b
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Thu Dec 30 07:09:40 2021 +0000

    drm/msm/dsi: Fix missing put_device() call in dsi_get_phy
    
    commit c04c3148ca12227d92f91b355b4538cc333c9922 upstream.
    
    If of_find_device_by_node() succeeds, dsi_get_phy() doesn't
    a corresponding put_device(). Thus add put_device() to fix the exception
    handling.
    
    Fixes: ec31abf ("drm/msm/dsi: Separate PHY to another platform device")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20211230070943.18116-1-linmq006@gmail.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4abd2a7735e1c0ee1c53cf99f34d3e5a2971bfd0
Author: Xianting Tian <xianting.tian@linux.alibaba.com>
Date:   Wed Jan 12 20:33:34 2022 +0800

    drm/msm: Fix wrong size calculation
    
    commit 0a727b459ee39bd4c5ced19d6024258ac87b6b2e upstream.
    
    For example, memory-region in .dts as below,
            reg = <0x0 0x50000000 0x0 0x20000000>
    
    We can get below values,
    struct resource r;
    r.start = 0x50000000;
    r.end   = 0x6fffffff;
    
    So the size should be:
    size = r.end - r.start + 1 = 0x20000000
    
    Signed-off-by: Xianting Tian <xianting.tian@linux.alibaba.com>
    Fixes: 072f1f9168ed ("drm/msm: add support for "stolen" mem")
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20220112123334.749776-1-xianting.tian@linux.alibaba.com
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9f0a6acac4a10f769c94252d7c9c103fd68c9fd2
Author: Jianguo Wu <wujianguo@chinatelecom.cn>
Date:   Fri Jan 21 17:15:31 2022 +0800

    net-procfs: show net devices bound packet types
    
    commit 1d10f8a1f40b965d449e8f2d5ed7b96a7c138b77 upstream.
    
    After commit:7866a621043f ("dev: add per net_device packet type chains"),
    we can not get packet types that are bound to a specified net device by
    /proc/net/ptype, this patch fix the regression.
    
    Run "tcpdump -i ens192 udp -nns0" Before and after apply this patch:
    
    Before:
      [root@localhost ~]# cat /proc/net/ptype
      Type Device      Function
      0800          ip_rcv
      0806          arp_rcv
      86dd          ipv6_rcv
    
    After:
      [root@localhost ~]# cat /proc/net/ptype
      Type Device      Function
      ALL  ens192   tpacket_rcv
      0800          ip_rcv
      0806          arp_rcv
      86dd          ipv6_rcv
    
    v1 -> v2:
      - fix the regression rather than adding new /proc API as
        suggested by Stephen Hemminger.
    
    Fixes: 7866a621043f ("dev: add per net_device packet type chains")
    Signed-off-by: Jianguo Wu <wujianguo@chinatelecom.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fd45ff2b40487d36e5150f28666b1f7bf85161f
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Thu Jan 6 18:24:03 2022 -0500

    NFSv4: nfs_atomic_open() can race when looking up a non-regular file
    
    commit 1751fc1db36f6f411709e143d5393f92d12137a9 upstream.
    
    If the file type changes back to being a regular file on the server
    between the failed OPEN and our LOOKUP, then we need to re-run the OPEN.
    
    Fixes: 0dd2b474d0b6 ("nfs: implement i_op->atomic_open()")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0dfacee40021dcc0a9aa991edd965addc04b9370
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Thu Jan 6 18:24:02 2022 -0500

    NFSv4: Handle case where the lookup of a directory fails
    
    commit ac795161c93699d600db16c1a8cc23a65a1eceaf upstream.
    
    If the application sets the O_DIRECTORY flag, and tries to open a
    regular file, nfs_atomic_open() will punt to doing a regular lookup.
    If the server then returns a regular file, we will happily return a
    file descriptor with uninitialised open state.
    
    The fix is to return the expected ENOTDIR error in these cases.
    
    Reported-by: Lyu Tao <tao.lyu@epfl.ch>
    Fixes: 0dd2b474d0b6 ("nfs: implement i_op->atomic_open()")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c27abaa040f311351e89822ccc9c7945994e30d3
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Thu Jan 6 11:48:52 2022 -0800

    hwmon: (lm90) Reduce maximum conversion rate for G781
    
    [ Upstream commit a66c5ed539277b9f2363bbace0dba88b85b36c26 ]
    
    According to its datasheet, G781 supports a maximum conversion rate value
    of 8 (62.5 ms). However, chips labeled G781 and G780 were found to only
    support a maximum conversion rate value of 7 (125 ms). On the other side,
    chips labeled G781-1 and G784 were found to support a conversion rate value
    of 8. There is no known means to distinguish G780 from G781 or G784; all
    chips report the same manufacturer ID and chip revision.
    Setting the conversion rate register value to 8 on chips not supporting
    it causes unexpected behavior since the real conversion rate is set to 0
    (16 seconds) if a value of 8 is written into the conversion rate register.
    Limit the conversion rate register value to 7 for all G78x chips to avoid
    the problem.
    
    Fixes: ae544f64cc7b ("hwmon: (lm90) Add support for GMT G781")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f748455a8f0e984dc91fc09e6dfe99f0e58cfbe
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 26 17:10:22 2022 -0800

    ipv4: avoid using shared IP generator for connected sockets
    
    commit 23f57406b82de51809d5812afd96f210f8b627f3 upstream.
    
    ip_select_ident_segs() has been very conservative about using
    the connected socket private generator only for packets with IP_DF
    set, claiming it was needed for some VJ compression implementations.
    
    As mentioned in this referenced document, this can be abused.
    (Ref: Off-Path TCP Exploits of the Mixed IPID Assignment)
    
    Before switching to pure random IPID generation and possibly hurt
    some workloads, lets use the private inet socket generator.
    
    Not only this will remove one vulnerability, this will also
    improve performance of TCP flows using pmtudisc==IP_PMTUDISC_DONT
    
    Fixes: 73f156a6e8c1 ("inetpeer: get rid of ip_id_count")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Reported-by: Ray Che <xijiache@gmail.com>
    Cc: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca5355771ca8871da2230722ce2f9a961d54ecf8
Author: Xin Long <lucien.xin@gmail.com>
Date:   Sat Jan 22 06:40:56 2022 -0500

    ping: fix the sk_bound_dev_if match in ping_lookup
    
    commit 2afc3b5a31f9edf3ef0f374f5d70610c79c93a42 upstream.
    
    When 'ping' changes to use PING socket instead of RAW socket by:
    
       # sysctl -w net.ipv4.ping_group_range="0 100"
    
    the selftests 'router_broadcast.sh' will fail, as such command
    
      # ip vrf exec vrf-h1 ping -I veth0 198.51.100.255 -b
    
    can't receive the response skb by the PING socket. It's caused by mismatch
    of sk_bound_dev_if and dif in ping_rcv() when looking up the PING socket,
    as dif is vrf-h1 if dif's master was set to vrf-h1.
    
    This patch is to fix this regression by also checking the sk_bound_dev_if
    against sdif so that the packets can stil be received even if the socket
    is not bound to the vrf device but to the real iif.
    
    Fixes: c319b4d76b9e ("net: ipv4: add IPPROTO_ICMP socket kind")
    Reported-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0b567a24addc3082f0c1741f49792ba69edec796
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Fri Jan 7 11:11:00 2022 -0800

    hwmon: (lm90) Mark alert as broken for MAX6680
    
    commit 94746b0ba479743355e0d3cc1cb9cfe3011fb8be upstream.
    
    Experiments with MAX6680 and MAX6681 show that the alert function of those
    chips is broken, similar to other chips supported by the lm90 driver.
    Mark it accordingly.
    
    Fixes: 4667bcb8d8fc ("hwmon: (lm90) Introduce chip parameter structure")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b63031651a0527112c7a76b95aedb1109b2a93dc
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Fri Jan 7 12:36:41 2022 -0800

    hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649
    
    commit f614629f9c1080dcc844a8430e3fb4c37ebbf05d upstream.
    
    Experiments with MAX6646 and MAX6648 show that the alert function of those
    chips is broken, similar to other chips supported by the lm90 driver.
    Mark it accordingly.
    
    Fixes: 4667bcb8d8fc ("hwmon: (lm90) Introduce chip parameter structure")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e372ecd455b6ebc7720f52bf4b5f5d44d02f2092
Author: Congyu Liu <liu3101@purdue.edu>
Date:   Tue Jan 18 14:20:13 2022 -0500

    net: fix information leakage in /proc/net/ptype
    
    commit 47934e06b65637c88a762d9c98329ae6e3238888 upstream.
    
    In one net namespace, after creating a packet socket without binding
    it to a device, users in other net namespaces can observe the new
    `packet_type` added by this packet socket by reading `/proc/net/ptype`
    file. This is minor information leakage as packet socket is
    namespace aware.
    
    Add a net pointer in `packet_type` to keep the net namespace of
    of corresponding packet socket. In `ptype_seq_show`, this net pointer
    must be checked when it is not NULL.
    
    Fixes: 2feb27dbe00c ("[NETNS]: Minor information leak via /proc/net/ptype file.")
    Signed-off-by: Congyu Liu <liu3101@purdue.edu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20b7af413153f61c92c48938173ba587be4f6524
Author: Ido Schimmel <idosch@nvidia.com>
Date:   Thu Jan 20 10:05:46 2022 +0200

    ipv6_tunnel: Rate limit warning messages
    
    commit 6cee105e7f2ced596373951d9ea08dacc3883c68 upstream.
    
    The warning messages can be invoked from the data path for every packet
    transmitted through an ip6gre netdev, leading to high CPU utilization.
    
    Fix that by rate limiting the messages.
    
    Fixes: 09c6bbf090ec ("[IPV6]: Do mandatory IPv6 tunnel endpoint checks in realtime")
    Reported-by: Maksym Yaremchuk <maksymy@nvidia.com>
    Tested-by: Maksym Yaremchuk <maksymy@nvidia.com>
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Amit Cohen <amcohen@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf2bd892a0cb14dd2d21f2c658f4b747813be311
Author: John Meneghini <jmeneghi@redhat.com>
Date:   Fri Jan 14 23:00:44 2022 -0500

    scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put()
    
    commit 847f9ea4c5186fdb7b84297e3eeed9e340e83fce upstream.
    
    The bnx2fc_destroy() functions are removing the interface before calling
    destroy_work. This results multiple WARNings from sysfs_remove_group() as
    the controller rport device attributes are removed too early.
    
    Replace the fcoe_port's destroy_work queue. It's not needed.
    
    The problem is easily reproducible with the following steps.
    
    Example:
    
      $ dmesg -w &
      $ systemctl enable --now fcoe
      $ fipvlan -s -c ens2f1
      $ fcoeadm -d ens2f1.802
      [  583.464488] host2: libfc: Link down on port (7500a1)
      [  583.472651] bnx2fc: 7500a1 - rport not created Yet!!
      [  583.490468] ------------[ cut here ]------------
      [  583.538725] sysfs group 'power' not found for kobject 'rport-2:0-0'
      [  583.568814] WARNING: CPU: 3 PID: 192 at fs/sysfs/group.c:279 sysfs_remove_group+0x6f/0x80
      [  583.607130] Modules linked in: dm_service_time 8021q garp mrp stp llc bnx2fc cnic uio rpcsec_gss_krb5 auth_rpcgss nfsv4 ...
      [  583.942994] CPU: 3 PID: 192 Comm: kworker/3:2 Kdump: loaded Not tainted 5.14.0-39.el9.x86_64 #1
      [  583.984105] Hardware name: HP ProLiant DL120 G7, BIOS J01 07/01/2013
      [  584.016535] Workqueue: fc_wq_2 fc_rport_final_delete [scsi_transport_fc]
      [  584.050691] RIP: 0010:sysfs_remove_group+0x6f/0x80
      [  584.074725] Code: ff 5b 48 89 ef 5d 41 5c e9 ee c0 ff ff 48 89 ef e8 f6 b8 ff ff eb d1 49 8b 14 24 48 8b 33 48 c7 c7 ...
      [  584.162586] RSP: 0018:ffffb567c15afdc0 EFLAGS: 00010282
      [  584.188225] RAX: 0000000000000000 RBX: ffffffff8eec4220 RCX: 0000000000000000
      [  584.221053] RDX: ffff8c1586ce84c0 RSI: ffff8c1586cd7cc0 RDI: ffff8c1586cd7cc0
      [  584.255089] RBP: 0000000000000000 R08: 0000000000000000 R09: ffffb567c15afc00
      [  584.287954] R10: ffffb567c15afbf8 R11: ffffffff8fbe7f28 R12: ffff8c1486326400
      [  584.322356] R13: ffff8c1486326480 R14: ffff8c1483a4a000 R15: 0000000000000004
      [  584.355379] FS:  0000000000000000(0000) GS:ffff8c1586cc0000(0000) knlGS:0000000000000000
      [  584.394419] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  584.421123] CR2: 00007fe95a6f7840 CR3: 0000000107674002 CR4: 00000000000606e0
      [  584.454888] Call Trace:
      [  584.466108]  device_del+0xb2/0x3e0
      [  584.481701]  device_unregister+0x13/0x60
      [  584.501306]  bsg_unregister_queue+0x5b/0x80
      [  584.522029]  bsg_remove_queue+0x1c/0x40
      [  584.541884]  fc_rport_final_delete+0xf3/0x1d0 [scsi_transport_fc]
      [  584.573823]  process_one_work+0x1e3/0x3b0
      [  584.592396]  worker_thread+0x50/0x3b0
      [  584.609256]  ? rescuer_thread+0x370/0x370
      [  584.628877]  kthread+0x149/0x170
      [  584.643673]  ? set_kthread_struct+0x40/0x40
      [  584.662909]  ret_from_fork+0x22/0x30
      [  584.680002] ---[ end trace 53575ecefa942ece ]---
    
    Link: https://lore.kernel.org/r/20220115040044.1013475-1-jmeneghi@redhat.com
    Fixes: 0cbf32e1681d ("[SCSI] bnx2fc: Avoid calling bnx2fc_if_destroy with unnecessary locks")
    Tested-by: Guangwu Zhang <guazhang@redhat.com>
    Co-developed-by: Maurizio Lombardi <mlombard@redhat.com>
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Signed-off-by: John Meneghini <jmeneghi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d380beb5e58de139bc02148d8984d5e631b4e550
Author: Matthias Kaehlcke <mka@chromium.org>
Date:   Mon Jan 10 10:47:37 2022 -0800

    rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev
    
    commit 7a534ae89e34e9b51acb5a63dd0f88308178b46a upstream.
    
    struct rpmsg_eptdev contains a struct cdev. The current code frees
    the rpmsg_eptdev struct in rpmsg_eptdev_destroy(), but the cdev is
    a managed object, therefore its release is not predictable and the
    rpmsg_eptdev could be freed before the cdev is entirely released.
    
    The cdev_device_add/del() API was created to address this issue
    (see commit '233ed09d7fda ("chardev: add helper function to register
    char devs with a struct device")'), use it instead of cdev add/del().
    
    Fixes: c0cdc19f84a4 ("rpmsg: Driver for user space endpoint interface")
    Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20220110104706.v6.2.Idde68b05b88d4a2e6e54766c653f3a6d9e419ce6@changeid
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da27b834c1e0222e149e06caddf7718478086d1b
Author: Sujit Kautkar <sujitka@chromium.org>
Date:   Mon Jan 10 10:47:36 2022 -0800

    rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
    
    commit b7fb2dad571d1e21173c06cef0bced77b323990a upstream.
    
    struct rpmsg_ctrldev contains a struct cdev. The current code frees
    the rpmsg_ctrldev struct in rpmsg_ctrldev_release_device(), but the
    cdev is a managed object, therefore its release is not predictable
    and the rpmsg_ctrldev could be freed before the cdev is entirely
    released, as in the backtrace below.
    
    [   93.625603] ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x7c
    [   93.636115] WARNING: CPU: 0 PID: 12 at lib/debugobjects.c:488 debug_print_object+0x13c/0x1b0
    [   93.644799] Modules linked in: veth xt_cgroup xt_MASQUERADE rfcomm algif_hash algif_skcipher af_alg uinput ip6table_nat fuse uvcvideo videobuf2_vmalloc venus_enc venus_dec videobuf2_dma_contig hci_uart btandroid btqca snd_soc_rt5682_i2c bluetooth qcom_spmi_temp_alarm snd_soc_rt5682v
    [   93.715175] CPU: 0 PID: 12 Comm: kworker/0:1 Tainted: G    B             5.4.163-lockdep #26
    [   93.723855] Hardware name: Google Lazor (rev3 - 8) with LTE (DT)
    [   93.730055] Workqueue: events kobject_delayed_cleanup
    [   93.735271] pstate: 60c00009 (nZCv daif +PAN +UAO)
    [   93.740216] pc : debug_print_object+0x13c/0x1b0
    [   93.744890] lr : debug_print_object+0x13c/0x1b0
    [   93.749555] sp : ffffffacf5bc7940
    [   93.752978] x29: ffffffacf5bc7940 x28: dfffffd000000000
    [   93.758448] x27: ffffffacdb11a800 x26: dfffffd000000000
    [   93.763916] x25: ffffffd0734f856c x24: dfffffd000000000
    [   93.769389] x23: 0000000000000000 x22: ffffffd0733c35b0
    [   93.774860] x21: ffffffd0751994a0 x20: ffffffd075ec27c0
    [   93.780338] x19: ffffffd075199100 x18: 00000000000276e0
    [   93.785814] x17: 0000000000000000 x16: dfffffd000000000
    [   93.791291] x15: ffffffffffffffff x14: 6e6968207473696c
    [   93.796768] x13: 0000000000000000 x12: ffffffd075e2b000
    [   93.802244] x11: 0000000000000001 x10: 0000000000000000
    [   93.807723] x9 : d13400dff1921900 x8 : d13400dff1921900
    [   93.813200] x7 : 0000000000000000 x6 : 0000000000000000
    [   93.818676] x5 : 0000000000000080 x4 : 0000000000000000
    [   93.824152] x3 : ffffffd0732a0fa4 x2 : 0000000000000001
    [   93.829628] x1 : ffffffacf5bc7580 x0 : 0000000000000061
    [   93.835104] Call trace:
    [   93.837644]  debug_print_object+0x13c/0x1b0
    [   93.841963]  __debug_check_no_obj_freed+0x25c/0x3c0
    [   93.846987]  debug_check_no_obj_freed+0x18/0x20
    [   93.851669]  slab_free_freelist_hook+0xbc/0x1e4
    [   93.856346]  kfree+0xfc/0x2f4
    [   93.859416]  rpmsg_ctrldev_release_device+0x78/0xb8
    [   93.864445]  device_release+0x84/0x168
    [   93.868310]  kobject_cleanup+0x12c/0x298
    [   93.872356]  kobject_delayed_cleanup+0x10/0x18
    [   93.876948]  process_one_work+0x578/0x92c
    [   93.881086]  worker_thread+0x804/0xcf8
    [   93.884963]  kthread+0x2a8/0x314
    [   93.888303]  ret_from_fork+0x10/0x18
    
    The cdev_device_add/del() API was created to address this issue (see
    commit '233ed09d7fda ("chardev: add helper function to register char
    devs with a struct device")'), use it instead of cdev add/del().
    
    Fixes: c0cdc19f84a4 ("rpmsg: Driver for user space endpoint interface")
    Signed-off-by: Sujit Kautkar <sujitka@chromium.org>
    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20220110104706.v6.1.Iaac908f3e3149a89190ce006ba166e2d3fd247a3@changeid
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb24af19e5a71d8e09fbf5989c2fdbbca94e7ff9
Author: Joe Damato <jdamato@fastly.com>
Date:   Wed Dec 8 17:56:33 2021 -0800

    i40e: fix unsigned stat widths
    
    commit 3b8428b84539c78fdc8006c17ebd25afd4722d51 upstream.
    
    Change i40e_update_vsi_stats and struct i40e_vsi to use u64 fields to match
    the width of the stats counters in struct i40e_rx_queue_stats.
    
    Update debugfs code to use the correct format specifier for u64.
    
    Fixes: 41c445ff0f48 ("i40e: main driver core")
    Signed-off-by: Joe Damato <jdamato@fastly.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be6998f232b8e4ca8225029e305b8329d89bfd59
Author: Sylwester Dziedziuch <sylwesterx.dziedziuch@intel.com>
Date:   Fri Nov 26 11:11:22 2021 +0100

    i40e: Fix queues reservation for XDP
    
    commit 92947844b8beee988c0ce17082b705c2f75f0742 upstream.
    
    When XDP was configured on a system with large number of CPUs
    and X722 NIC there was a call trace with NULL pointer dereference.
    
    i40e 0000:87:00.0: failed to get tracking for 256 queues for VSI 0 err -12
    i40e 0000:87:00.0: setup of MAIN VSI failed
    
    BUG: kernel NULL pointer dereference, address: 0000000000000000
    RIP: 0010:i40e_xdp+0xea/0x1b0 [i40e]
    Call Trace:
    ? i40e_reconfig_rss_queues+0x130/0x130 [i40e]
    dev_xdp_install+0x61/0xe0
    dev_xdp_attach+0x18a/0x4c0
    dev_change_xdp_fd+0x1e6/0x220
    do_setlink+0x616/0x1030
    ? ahci_port_stop+0x80/0x80
    ? ata_qc_issue+0x107/0x1e0
    ? lock_timer_base+0x61/0x80
    ? __mod_timer+0x202/0x380
    rtnl_setlink+0xe5/0x170
    ? bpf_lsm_binder_transaction+0x10/0x10
    ? security_capable+0x36/0x50
    rtnetlink_rcv_msg+0x121/0x350
    ? rtnl_calcit.isra.0+0x100/0x100
    netlink_rcv_skb+0x50/0xf0
    netlink_unicast+0x1d3/0x2a0
    netlink_sendmsg+0x22a/0x440
    sock_sendmsg+0x5e/0x60
    __sys_sendto+0xf0/0x160
    ? __sys_getsockname+0x7e/0xc0
    ? _copy_from_user+0x3c/0x80
    ? __sys_setsockopt+0xc8/0x1a0
    __x64_sys_sendto+0x20/0x30
    do_syscall_64+0x33/0x40
    entry_SYSCALL_64_after_hwframe+0x44/0xae
    RIP: 0033:0x7f83fa7a39e0
    
    This was caused by PF queue pile fragmentation due to
    flow director VSI queue being placed right after main VSI.
    Because of this main VSI was not able to resize its
    queue allocation for XDP resulting in no queues allocated
    for main VSI when XDP was turned on.
    
    Fix this by always allocating last queue in PF queue pile
    for a flow director VSI.
    
    Fixes: 41c445ff0f48 ("i40e: main driver core")
    Fixes: 74608d17fe29 ("i40e: add support for XDP_TX action")
    Signed-off-by: Sylwester Dziedziuch <sylwesterx.dziedziuch@intel.com>
    Signed-off-by: Mateusz Palczewski <mateusz.palczewski@intel.com>
    Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
    Tested-by: Kiran Bhandare <kiranx.bhandare@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b16f1a078d63d657a3a3b4a87ff9136a37cb869a
Author: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
Date:   Fri Nov 5 11:17:00 2021 +0000

    i40e: Fix issue when maximum queues is exceeded
    
    commit d701658a50a471591094b3eb3961b4926cc8f104 upstream.
    
    Before this patch VF interface vanished when
    maximum queue number was exceeded. Driver tried
    to add next queues even if there was not enough
    space. PF sent incorrect number of queues to
    the VF when there were not enough of them.
    
    Add an additional condition introduced to check
    available space in 'qp_pile' before proceeding.
    This condition makes it impossible to add queues
    if they number is greater than the number resulting
    from available space.
    Also add the search for free space in PF queue
    pair piles.
    
    Without this patch VF interfaces are not seen
    when available space for queues has been
    exceeded and following logs appears permanently
    in dmesg:
    "Unable to get VF config (-32)".
    "VF 62 failed opcode 3, retval: -5"
    "Unable to get VF config due to PF error condition, not retrying"
    
    Fixes: 7daa6bf3294e ("i40e: driver core headers")
    Fixes: 41c445ff0f48 ("i40e: main driver core")
    Signed-off-by: Jaroslaw Gawin <jaroslawx.gawin@intel.com>
    Signed-off-by: Slawomir Laba <slawomirx.laba@intel.com>
    Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
    Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f18aadbdf6ad2d30daedbe18ac2653a46f273b8a
Author: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
Date:   Thu Oct 28 13:51:14 2021 +0000

    i40e: Increase delay to 1 s after global EMP reset
    
    commit 9b13bd53134c9ddd544a790125199fdbdb505e67 upstream.
    
    Recently simplified i40e_rebuild causes that FW sometimes
    is not ready after NVM update, the ping does not return.
    
    Increase the delay in case of EMP reset.
    Old delay of 300 ms was introduced for specific cards for 710 series.
    Now it works for all the cards and delay was increased.
    
    Fixes: 1fa51a650e1d ("i40e: Add delay after EMP reset for firmware to recover")
    Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
    Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e94539448ed6ea8b7d257a3b2f0933da30d82db
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Wed Dec 22 13:07:31 2021 +0000

    powerpc/32: Fix boot failure with GCC latent entropy plugin
    
    commit bba496656a73fc1d1330b49c7f82843836e9feb1 upstream.
    
    Boot fails with GCC latent entropy plugin enabled.
    
    This is due to early boot functions trying to access 'latent_entropy'
    global data while the kernel is not relocated at its final
    destination yet.
    
    As there is no way to tell GCC to use PTRRELOC() to access it,
    disable latent entropy plugin in early_32.o and feature-fixups.o and
    code-patching.o
    
    Fixes: 38addce8b600 ("gcc-plugins: Add latent_entropy plugin")
    Cc: stable@vger.kernel.org # v4.9+
    Reported-by: Erhard Furtner <erhard_f@mailbox.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=215217
    Link: https://lore.kernel.org/r/2bac55483b8daf5b1caa163a45fa5f9cdbe18be4.1640178426.git.christophe.leroy@csgroup.eu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff19d70b665d43a90081b7a044e61db051e223cf
Author: Marek Behún <kabel@kernel.org>
Date:   Wed Jan 19 17:44:55 2022 +0100

    net: sfp: ignore disabled SFP node
    
    commit 2148927e6ed43a1667baf7c2ae3e0e05a44b51a0 upstream.
    
    Commit ce0aa27ff3f6 ("sfp: add sfp-bus to bridge between network devices
    and sfp cages") added code which finds SFP bus DT node even if the node
    is disabled with status = "disabled". Because of this, when phylink is
    created, it ends with non-null .sfp_bus member, even though the SFP
    module is not probed (because the node is disabled).
    
    We need to ignore disabled SFP bus node.
    
    Fixes: ce0aa27ff3f6 ("sfp: add sfp-bus to bridge between network devices and sfp cages")
    Signed-off-by: Marek Behún <kabel@kernel.org>
    Cc: stable@vger.kernel.org # 2203cbf2c8b5 ("net: sfp: move fwnode parsing into sfp-bus layer")
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [ backport to 5.4 ]
    Signed-off-by: Marek Behún <kabel@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ede72d48cab2d57c37c7e3e75b47459a8c0cbfa
Author: Sing-Han Chen <singhanc@nvidia.com>
Date:   Wed Jan 12 17:41:43 2022 +0800

    ucsi_ccg: Check DEV_INT bit only when starting CCG4
    
    commit 825911492eb15bf8bb7fb94bc0c0421fe7a6327d upstream.
    
    CCGx clears Bit 0:Device Interrupt in the INTR_REG
    if CCGx is reset successfully. However, there might
    be a chance that other bits in INTR_REG are not
    cleared due to internal data queued in PPM. This case
    misleads the driver that CCGx reset failed.
    
    The commit checks bit 0 in INTR_REG and ignores other
    bits. The ucsi driver would reset PPM later.
    
    Fixes: 247c554a14aa ("usb: typec: ucsi: add support for Cypress CCGx")
    Cc: stable@vger.kernel.org
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Sing-Han Chen <singhanc@nvidia.com>
    Signed-off-by: Wayne Chang <waynec@nvidia.com>
    Link: https://lore.kernel.org/r/20220112094143.628610-1-waynec@nvidia.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3922b6e1c9eaa545cbd448cd0bffaa43456b3576
Author: Badhri Jagan Sridharan <badhri@google.com>
Date:   Fri Jan 21 17:55:19 2022 -0800

    usb: typec: tcpm: Do not disconnect while receiving VBUS off
    
    commit 90b8aa9f5b09edae6928c0561f933fec9f7a9987 upstream.
    
    With some chargers, vbus might momentarily raise above VSAFE5V and fall
    back to 0V before tcpm gets to read port->tcpc->get_vbus. This will
    will report a VBUS off event causing TCPM to transition to
    SNK_UNATTACHED where it should be waiting in either SNK_ATTACH_WAIT
    or SNK_DEBOUNCED state. This patch makes TCPM avoid vbus off events
    while in SNK_ATTACH_WAIT or SNK_DEBOUNCED state.
    
    Stub from the spec:
        "4.5.2.2.4.2 Exiting from AttachWait.SNK State
        A Sink shall transition to Unattached.SNK when the state of both
        the CC1 and CC2 pins is SNK.Open for at least tPDDebounce.
        A DRP shall transition to Unattached.SRC when the state of both
        the CC1 and CC2 pins is SNK.Open for at least tPDDebounce."
    
    [23.194131] CC1: 0 -> 0, CC2: 0 -> 5 [state SNK_UNATTACHED, polarity 0, connected]
    [23.201777] state change SNK_UNATTACHED -> SNK_ATTACH_WAIT [rev3 NONE_AMS]
    [23.209949] pending state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED @ 170 ms [rev3 NONE_AMS]
    [23.300579] VBUS off
    [23.300668] state change SNK_ATTACH_WAIT -> SNK_UNATTACHED [rev3 NONE_AMS]
    [23.301014] VBUS VSAFE0V
    [23.301111] Start toggling
    
    Fixes: f0690a25a140b8 ("staging: typec: USB Type-C Port Manager (tcpm)")
    Cc: stable@vger.kernel.org
    Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
    Link: https://lore.kernel.org/r/20220122015520.332507-1-badhri@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c61fce322ac2ef7fecf025285353570d60e41d6
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Jan 24 15:23:45 2022 -0500

    USB: core: Fix hang in usb_kill_urb by adding memory barriers
    
    commit 26fbe9772b8c459687930511444ce443011f86bf upstream.
    
    The syzbot fuzzer has identified a bug in which processes hang waiting
    for usb_kill_urb() to return.  It turns out the issue is not unlinking
    the URB; that works just fine.  Rather, the problem arises when the
    wakeup notification that the URB has completed is not received.
    
    The reason is memory-access ordering on SMP systems.  In outline form,
    usb_kill_urb() and __usb_hcd_giveback_urb() operating concurrently on
    different CPUs perform the following actions:
    
    CPU 0                                   CPU 1
    ----------------------------            ---------------------------------
    usb_kill_urb():                         __usb_hcd_giveback_urb():
      ...                                     ...
      atomic_inc(&urb->reject);               atomic_dec(&urb->use_count);
      ...                                     ...
      wait_event(usb_kill_urb_queue,
            atomic_read(&urb->use_count) == 0);
                                              if (atomic_read(&urb->reject))
                                                    wake_up(&usb_kill_urb_queue);
    
    Confining your attention to urb->reject and urb->use_count, you can
    see that the overall pattern of accesses on CPU 0 is:
    
            write urb->reject, then read urb->use_count;
    
    whereas the overall pattern of accesses on CPU 1 is:
    
            write urb->use_count, then read urb->reject.
    
    This pattern is referred to in memory-model circles as SB (for "Store
    Buffering"), and it is well known that without suitable enforcement of
    the desired order of accesses -- in the form of memory barriers -- it
    is entirely possible for one or both CPUs to execute their reads ahead
    of their writes.  The end result will be that sometimes CPU 0 sees the
    old un-decremented value of urb->use_count while CPU 1 sees the old
    un-incremented value of urb->reject.  Consequently CPU 0 ends up on
    the wait queue and never gets woken up, leading to the observed hang
    in usb_kill_urb().
    
    The same pattern of accesses occurs in usb_poison_urb() and the
    failure pathway of usb_hcd_submit_urb().
    
    The problem is fixed by adding suitable memory barriers.  To provide
    proper memory-access ordering in the SB pattern, a full barrier is
    required on both CPUs.  The atomic_inc() and atomic_dec() accesses
    themselves don't provide any memory ordering, but since they are
    present, we can use the optimized smp_mb__after_atomic() memory
    barrier in the various routines to obtain the desired effect.
    
    This patch adds the necessary memory barriers.
    
    CC: <stable@vger.kernel.org>
    Reported-and-tested-by: syzbot+76629376e06e2c2ad626@syzkaller.appspotmail.com
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Link: https://lore.kernel.org/r/Ye8K0QYee0Q0Nna2@rowland.harvard.edu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fc6519bdecb051afb0d2010e6f548d27830c4c3
Author: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
Date:   Sat Jan 22 08:33:22 2022 +0530

    usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
    
    commit 904edf8aeb459697129be5fde847e2a502f41fd9 upstream.
    
    Currently when gadget enumerates in super speed plus, the isoc
    endpoint request buffer size is not calculated correctly. Fix
    this by checking the gadget speed against USB_SPEED_SUPER_PLUS
    and update the request buffer size.
    
    Fixes: 90c4d05780d4 ("usb: fix various gadgets null ptr deref on 10gbps cabling.")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
    Link: https://lore.kernel.org/r/1642820602-20619-1-git-send-email-quic_pkondeti@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64e671a2216317502dfdfeb36c08eb44daa79916
Author: Jon Hunter <jonathanh@nvidia.com>
Date:   Mon Jan 17 15:00:39 2022 +0000

    usb: common: ulpi: Fix crash in ulpi_match()
    
    commit 2e3dd4a6246945bf84ea6f478365d116e661554c upstream.
    
    Commit 7495af930835 ("ARM: multi_v7_defconfig: Enable drivers for
    DragonBoard 410c") enables the CONFIG_PHY_QCOM_USB_HS for the ARM
    multi_v7_defconfig. Enabling this Kconfig is causing the kernel to crash
    on the Tegra20 Ventana platform in the ulpi_match() function.
    
    The Qualcomm USB HS PHY driver that is enabled by CONFIG_PHY_QCOM_USB_HS,
    registers a ulpi_driver but this driver does not provide an 'id_table',
    so when ulpi_match() is called on the Tegra20 Ventana platform, it
    crashes when attempting to deference the id_table pointer which is not
    valid. The Qualcomm USB HS PHY driver uses device-tree for matching the
    ULPI driver with the device and so fix this crash by using device-tree
    for matching if the id_table is not valid.
    
    Fixes: ef6a7bcfb01c ("usb: ulpi: Support device discovery via DT")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
    Link: https://lore.kernel.org/r/20220117150039.44058-1-jonathanh@nvidia.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d66dc656c5f9f553ff31549551f3b5132db02cb4
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Jan 24 15:14:40 2022 -0500

    usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
    
    commit 5b67b315037250a61861119683e7fcb509deea25 upstream.
    
    Two people have reported (and mentioned numerous other reports on the
    web) that VIA's VL817 USB-SATA bridge does not work with the uas
    driver.  Typical log messages are:
    
    [ 3606.232149] sd 14:0:0:0: [sdg] tag#2 uas_zap_pending 0 uas-tag 1 inflight: CMD
    [ 3606.232154] sd 14:0:0:0: [sdg] tag#2 CDB: Write(16) 8a 00 00 00 00 00 18 0c c9 80 00 00 00 80 00 00
    [ 3606.306257] usb 4-4.4: reset SuperSpeed Plus Gen 2x1 USB device number 11 using xhci_hcd
    [ 3606.328584] scsi host14: uas_eh_device_reset_handler success
    
    Surprisingly, the devices do seem to work okay for some other people.
    The cause of the differing behaviors is not known.
    
    In the hope of getting the devices to work for the most users, even at
    the possible cost of degraded performance for some, this patch adds an
    unusual_devs entry for the VL817 to block it from binding to the uas
    driver by default.  Users will be able to override this entry by means
    of a module parameter, if they want.
    
    CC: <stable@vger.kernel.org>
    Reported-by: DocMAX <mail@vacharakis.de>
    Reported-and-tested-by: Thomas Weißschuh <linux@weissschuh.net>
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Link: https://lore.kernel.org/r/Ye8IsK2sjlEv1rqU@rowland.harvard.edu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a06cba5ad1256a27b8e18b9ddd7957a5df506311
Author: Cameron Williams <cang1@live.co.uk>
Date:   Mon Jan 24 09:42:23 2022 +0000

    tty: Add support for Brainboxes UC cards.
    
    commit 152d1afa834c84530828ee031cf07a00e0fc0b8c upstream.
    
    This commit adds support for the some of the Brainboxes PCI range of
    cards, including the UC-101, UC-235/246, UC-257, UC-268, UC-275/279,
    UC-302, UC-310, UC-313, UC-320/324, UC-346, UC-357, UC-368
    and UC-420/431.
    
    Signed-off-by: Cameron Williams <cang1@live.co.uk>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/AM5PR0202MB2564688493F7DD9B9C610827C45E9@AM5PR0202MB2564.eurprd02.prod.outlook.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f5e6c946732a8201ad6d2ba7b4d259b5a103ce2e
Author: daniel.starke@siemens.com <daniel.starke@siemens.com>
Date:   Thu Jan 20 02:18:57 2022 -0800

    tty: n_gsm: fix SW flow control encoding/handling
    
    commit 8838b2af23caf1ff0610caef2795d6668a013b2d upstream.
    
    n_gsm is based on the 3GPP 07.010 and its newer version is the 3GPP 27.010.
    See https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1516
    The changes from 07.010 to 27.010 are non-functional. Therefore, I refer to
    the newer 27.010 here. Chapter 5.2.7.3 states that DC1 (XON) and DC3 (XOFF)
    are the control characters defined in ISO/IEC 646. These shall be quoted if
    seen in the data stream to avoid interpretation as flow control characters.
    
    ISO/IEC 646 refers to the set of ISO standards described as the ISO
    7-bit coded character set for information interchange. Its final version
    is also known as ITU T.50.
    See https://www.itu.int/rec/T-REC-T.50-199209-I/en
    
    To abide the standard it is needed to quote DC1 and DC3 correctly if these
    are seen as data bytes and not as control characters. The current
    implementation already tries to enforce this but fails to catch all
    defined cases. 3GPP 27.010 chapter 5.2.7.3 clearly states that the most
    significant bit shall be ignored for DC1 and DC3 handling. The current
    implementation handles only the case with the most significant bit set 0.
    Cases in which DC1 and DC3 have the most significant bit set 1 are left
    unhandled.
    
    This patch fixes this by masking the data bytes with ISO_IEC_646_MASK (only
    the 7 least significant bits set 1) before comparing them with XON
    (a.k.a. DC1) and XOFF (a.k.a. DC3) when testing which byte values need
    quotation via byte stuffing.
    
    Fixes: e1eaea46bb40 ("tty: n_gsm line discipline")
    Cc: stable@vger.kernel.org
    Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
    Link: https://lore.kernel.org/r/20220120101857.2509-1-daniel.starke@siemens.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05b3301188887f9aa9f71fb4a9be7f0e68eeb84c
Author: Valentin Caron <valentin.caron@foss.st.com>
Date:   Tue Jan 11 17:44:41 2022 +0100

    serial: stm32: fix software flow control transfer
    
    commit 037b91ec7729524107982e36ec4b40f9b174f7a2 upstream.
    
    x_char is ignored by stm32_usart_start_tx() when xmit buffer is empty.
    
    Fix start_tx condition to allow x_char to be sent.
    
    Fixes: 48a6092fb41f ("serial: stm32-usart: Add STM32 USART Driver")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Erwan Le Ray <erwan.leray@foss.st.com>
    Signed-off-by: Valentin Caron <valentin.caron@foss.st.com>
    Link: https://lore.kernel.org/r/20220111164441.6178-3-valentin.caron@foss.st.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b92eda2d8016132ad9952b0ed4d760717c99bb8
Author: Robert Hancock <robert.hancock@calian.com>
Date:   Wed Jan 12 13:42:14 2022 -0600

    serial: 8250: of: Fix mapped region size when using reg-offset property
    
    commit d06b1cf28297e27127d3da54753a3a01a2fa2f28 upstream.
    
    8250_of supports a reg-offset property which is intended to handle
    cases where the device registers start at an offset inside the region
    of memory allocated to the device. The Xilinx 16550 UART, for which this
    support was initially added, requires this. However, the code did not
    adjust the overall size of the mapped region accordingly, causing the
    driver to request an area of memory past the end of the device's
    allocation. For example, if the UART was allocated an address of
    0xb0130000, size of 0x10000 and reg-offset of 0x1000 in the device
    tree, the region of memory reserved was b0131000-b0140fff, which caused
    the driver for the region starting at b0140000 to fail to probe.
    
    Fix this by subtracting reg-offset from the mapped region size.
    
    Fixes: b912b5e2cfb3 ([POWERPC] Xilinx: of_serial support for Xilinx uart 16550.)
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Robert Hancock <robert.hancock@calian.com>
    Link: https://lore.kernel.org/r/20220112194214.881844-1-robert.hancock@calian.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2bf7dee6f423814871cc774f8e01f58b32a8e899
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Wed Jan 5 16:09:57 2022 +0100

    netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
    
    commit 4e1860a3863707e8177329c006d10f9e37e097a8 upstream.
    
    IP fragments do not come with the transport header, hence skip bogus
    layer 4 checksum updates.
    
    Fixes: 1814096980bb ("netfilter: nft_payload: layer 4 checksum adjustment for pseudoheader fields")
    Reported-and-tested-by: Steffen Weinreich <steve@weinreich.org>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a6d588572568c7431a9a3dc17f3c75962a2f070b
Author: D Scott Phillips <scott@os.amperecomputing.com>
Date:   Mon Dec 20 15:41:14 2021 -0800

    arm64: errata: Fix exec handling in erratum 1418040 workaround
    
    commit 38e0257e0e6f4fef2aa2966b089b56a8b1cfb75c upstream.
    
    The erratum 1418040 workaround enables CNTVCT_EL1 access trapping in EL0
    when executing compat threads. The workaround is applied when switching
    between tasks, but the need for the workaround could also change at an
    exec(), when a non-compat task execs a compat binary or vice versa. Apply
    the workaround in arch_setup_new_exec().
    
    This leaves a small window of time between SET_PERSONALITY and
    arch_setup_new_exec where preemption could occur and confuse the old
    workaround logic that compares TIF_32BIT between prev and next. Instead, we
    can just read cntkctl to make sure it's in the state that the next task
    needs. I measured cntkctl read time to be about the same as a mov from a
    general-purpose register on N1. Update the workaround logic to examine the
    current value of cntkctl instead of the previous task's compat state.
    
    Fixes: d49f7d7376d0 ("arm64: Move handling of erratum 1418040 into C code")
    Cc: <stable@vger.kernel.org> # 5.9.x
    Signed-off-by: D Scott Phillips <scott@os.amperecomputing.com>
    Reviewed-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20211220234114.3926-1-scott@os.amperecomputing.com
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5cbcd1f5a20a60d77237276b692daba0d440550f
Author: Lucas Stach <l.stach@pengutronix.de>
Date:   Thu Jan 6 19:10:21 2022 +0100

    drm/etnaviv: relax submit size limits
    
    commit e3d26528e083e612314d4dcd713f3d5a26143ddc upstream.
    
    While all userspace tried to limit commandstreams to 64K in size,
    a bug in the Mesa driver lead to command streams of up to 128K
    being submitted. Allow those to avoid breaking existing userspace.
    
    Fixes: 6dfa2fab8ddd ("drm/etnaviv: limit submit sizes")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5463cfd83397cfc219b0402009b96a27ea5358fb
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Thu Jan 20 23:53:05 2022 +0200

    fsnotify: fix fsnotify hooks in pseudo filesystems
    
    commit 29044dae2e746949ad4b9cbdbfb248994d1dcdb4 upstream.
    
    Commit 49246466a989 ("fsnotify: move fsnotify_nameremove() hook out of
    d_delete()") moved the fsnotify delete hook before d_delete() so fsnotify
    will have access to a positive dentry.
    
    This allowed a race where opening the deleted file via cached dentry
    is now possible after receiving the IN_DELETE event.
    
    To fix the regression in pseudo filesystems, convert d_delete() calls
    to d_drop() (see commit 46c46f8df9aa ("devpts_pty_kill(): don't bother
    with d_delete()") and move the fsnotify hook after d_drop().
    
    Add a missing fsnotify_unlink() hook in nfsdfs that was found during
    the audit of fsnotify hooks in pseudo filesystems.
    
    Note that the fsnotify hooks in simple_recursive_removal() follow
    d_invalidate(), so they require no change.
    
    Link: https://lore.kernel.org/r/20220120215305.282577-2-amir73il@gmail.com
    Reported-by: Ivan Delalande <colona@arista.com>
    Link: https://lore.kernel.org/linux-fsdevel/YeNyzoDM5hP5LtGW@visor/
    Fixes: 49246466a989 ("fsnotify: move fsnotify_nameremove() hook out of d_delete()")
    Cc: stable@vger.kernel.org # v5.3+
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1614bd844eef9d6f32968ad3eea6efd3f0aee888
Author: Tom Zanussi <zanussi@kernel.org>
Date:   Thu Jan 27 15:44:18 2022 -0600

    tracing: Don't inc err_log entry count if entry allocation fails
    
    commit 67ab5eb71b37b55f7c5522d080a1b42823351776 upstream.
    
    tr->n_err_log_entries should only be increased if entry allocation
    succeeds.
    
    Doing it when it fails won't cause any problems other than wasting an
    entry, but should be fixed anyway.
    
    Link: https://lkml.kernel.org/r/cad1ab28f75968db0f466925e7cba5970cec6c29.1643319703.git.zanussi@kernel.org
    
    Cc: stable@vger.kernel.org
    Fixes: 2f754e771b1a6 ("tracing: Don't inc err_log entry count if entry allocation fails")
    Signed-off-by: Tom Zanussi <zanussi@kernel.org>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a8878ebb596281f50fc0b9a6e1f23f0d7f154e8
Author: Xiaoke Wang <xkernel.wang@foxmail.com>
Date:   Tue Jan 25 12:07:15 2022 +0800

    tracing/histogram: Fix a potential memory leak for kstrdup()
    
    commit e629e7b525a179e29d53463d992bdee759c950fb upstream.
    
    kfree() is missing on an error path to free the memory allocated by
    kstrdup():
    
      p = param = kstrdup(data->params[i], GFP_KERNEL);
    
    So it is better to free it via kfree(p).
    
    Link: https://lkml.kernel.org/r/tencent_C52895FD37802832A3E5B272D05008866F0A@qq.com
    
    Cc: stable@vger.kernel.org
    Fixes: d380dcde9a07c ("tracing: Fix now invalid var_ref_vals assumption in trace action")
    Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73578a9b2b728fbb31396cc10e23cdd5297ccbb1
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jan 13 19:44:20 2022 +0100

    PM: wakeup: simplify the output logic of pm_show_wakelocks()
    
    commit c9d967b2ce40d71e968eb839f36c936b8a9cf1ea upstream.
    
    The buffer handling in pm_show_wakelocks() is tricky, and hopefully
    correct.  Ensure it really is correct by using sysfs_emit_at() which
    handles all of the tricky string handling logic in a PAGE_SIZE buffer
    for us automatically as this is a sysfs file being read from.
    
    Reviewed-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31136e5467f381cf18e2cfd467207dda7678c7a2
Author: Jan Kara <jack@suse.cz>
Date:   Mon Jan 17 18:22:13 2022 +0100

    udf: Fix NULL ptr deref when converting from inline format
    
    commit 7fc3b7c2981bbd1047916ade327beccb90994eee upstream.
    
    udf_expand_file_adinicb() calls directly ->writepage to write data
    expanded into a page. This however misses to setup inode for writeback
    properly and so we can crash on inode->i_wb dereference when submitting
    page for IO like:
    
      BUG: kernel NULL pointer dereference, address: 0000000000000158
      #PF: supervisor read access in kernel mode
    ...
      <TASK>
      __folio_start_writeback+0x2ac/0x350
      __block_write_full_page+0x37d/0x490
      udf_expand_file_adinicb+0x255/0x400 [udf]
      udf_file_write_iter+0xbe/0x1b0 [udf]
      new_sync_write+0x125/0x1c0
      vfs_write+0x28e/0x400
    
    Fix the problem by marking the page dirty and going through the standard
    writeback path to write the page. Strictly speaking we would not even
    have to write the page but we want to catch e.g. ENOSPC errors early.
    
    Reported-by: butt3rflyh4ck <butterflyhuangxx@gmail.com>
    CC: stable@vger.kernel.org
    Fixes: 52ebea749aae ("writeback: make backing_dev_info host cgroup-specific bdi_writebacks")
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86bcc670d3000095bdb70342cf4d3fb6f3fc0a1a
Author: Jan Kara <jack@suse.cz>
Date:   Tue Jan 18 09:57:25 2022 +0100

    udf: Restore i_lenAlloc when inode expansion fails
    
    commit ea8569194b43f0f01f0a84c689388542c7254a1f upstream.
    
    When we fail to expand inode from inline format to a normal format, we
    restore inode to contain the original inline formatting but we forgot to
    set i_lenAlloc back. The mismatch between i_lenAlloc and i_size was then
    causing further problems such as warnings and lost data down the line.
    
    Reported-by: butt3rflyh4ck <butterflyhuangxx@gmail.com>
    CC: stable@vger.kernel.org
    Fixes: 7e49b6f2480c ("udf: Convert UDF to new truncate calling sequence")
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c54445af64ca787b9b8fb419762c304d45a53e4c
Author: Steffen Maier <maier@linux.ibm.com>
Date:   Tue Jan 18 17:58:03 2022 +0100

    scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices
    
    commit 8c9db6679be4348b8aae108e11d4be2f83976e30 upstream.
    
    Suppose we have an environment with a number of non-NPIV FCP devices
    (virtual HBAs / FCP devices / zfcp "adapter"s) sharing the same physical
    FCP channel (HBA port) and its I_T nexus. Plus a number of storage target
    ports zoned to such shared channel. Now one target port logs out of the
    fabric causing an RSCN. Zfcp reacts with an ADISC ELS and subsequent port
    recovery depending on the ADISC result. This happens on all such FCP
    devices (in different Linux images) concurrently as they all receive a copy
    of this RSCN. In the following we look at one of those FCP devices.
    
    Requests other than FSF_QTCB_FCP_CMND can be slow until they get a
    response.
    
    Depending on which requests are affected by slow responses, there are
    different recovery outcomes. Here we want to fix failed recoveries on port
    or adapter level by avoiding recovery requests that can be slow.
    
    We need the cached N_Port_ID for the remote port "link" test with ADISC.
    Just before sending the ADISC, we now intentionally forget the old cached
    N_Port_ID. The idea is that on receiving an RSCN for a port, we have to
    assume that any cached information about this port is stale.  This forces a
    fresh new GID_PN [FC-GS] nameserver lookup on any subsequent recovery for
    the same port. Since we typically can still communicate with the nameserver
    efficiently, we now reach steady state quicker: Either the nameserver still
    does not know about the port so we stop recovery, or the nameserver already
    knows the port potentially with a new N_Port_ID and we can successfully and
    quickly perform open port recovery.  For the one case, where ADISC returns
    successfully, we re-initialize port->d_id because that case does not
    involve any port recovery.
    
    This also solves a problem if the storage WWPN quickly logs into the fabric
    again but with a different N_Port_ID. Such as on virtual WWPN takeover
    during target NPIV failover.
    [https://www.redbooks.ibm.com/abstracts/redp5477.html] In that case the
    RSCN from the storage FDISC was ignored by zfcp and we could not
    successfully recover the failover. On some later failback on the storage,
    we could have been lucky if the virtual WWPN got the same old N_Port_ID
    from the SAN switch as we still had cached.  Then the related RSCN
    triggered a successful port reopen recovery.  However, there is no
    guarantee to get the same N_Port_ID on NPIV FDISC.
    
    Even though NPIV-enabled FCP devices are not affected by this problem, this
    code change optimizes recovery time for gone remote ports as a side effect.
    The timely drop of cached N_Port_IDs prevents unnecessary slow open port
    attempts.
    
    While the problem might have been in code before v2.6.32 commit
    799b76d09aee ("[SCSI] zfcp: Decouple gid_pn requests from erp") this fix
    depends on the gid_pn_work introduced with that commit, so we mark it as
    culprit to satisfy fix dependencies.
    
    Note: Point-to-point remote port is already handled separately and gets its
    N_Port_ID from the cached peer_d_id. So resetting port->d_id in general
    does not affect PtP.
    
    Link: https://lore.kernel.org/r/20220118165803.3667947-1-maier@linux.ibm.com
    Fixes: 799b76d09aee ("[SCSI] zfcp: Decouple gid_pn requests from erp")
    Cc: <stable@vger.kernel.org> #2.6.32+
    Suggested-by: Benjamin Block <bblock@linux.ibm.com>
    Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
    Signed-off-by: Steffen Maier <maier@linux.ibm.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d041e75c4c403d0d7fb1008ab6e6f3c4e279c44
Author: Vasily Gorbik <gor@linux.ibm.com>
Date:   Thu Jan 20 16:23:19 2022 +0100

    s390/hypfs: include z/VM guests with access control group set
    
    commit 663d34c8df98740f1e90241e78e456d00b3c6cad upstream.
    
    Currently if z/VM guest is allowed to retrieve hypervisor performance
    data globally for all guests (privilege class B) the query is formed in a
    way to include all guests but the group name is left empty. This leads to
    that z/VM guests which have access control group set not being included
    in the results (even local vm).
    
    Change the query group identifier from empty to "any" to retrieve
    information about all guests from any groups (or without a group set).
    
    Cc: stable@vger.kernel.org
    Fixes: 31cb4bd31a48 ("[S390] Hypervisor filesystem (s390_hypfs) for z/VM")
    Reviewed-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 835d3706852537bf92eb23eb8635b8dee0c0aa67
Author: Brian Gix <brian.gix@intel.com>
Date:   Wed Nov 24 12:16:28 2021 -0800

    Bluetooth: refactor malicious adv data check
    
    commit 899663be5e75dc0174dc8bda0b5e6826edf0b29a upstream.
    
    Check for out-of-bound read was being performed at the end of while
    num_reports loop, and would fill journal with false positives. Added
    check to beginning of loop processing so that it doesn't get checked
    after ptr has been advanced.
    
    Signed-off-by: Brian Gix <brian.gix@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: syphyr <syphyr@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>