commit 3eb67e3248e1d96ef4eaa43d9f5dc6ff2ba6db99
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Feb 22 12:47:22 2023 +0100

    Linux 4.19.273
    
    Link: https://lore.kernel.org/r/20230220133553.066768704@linuxfoundation.org
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Hulk Robot <hulkrobot@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit b96591e2c35c8b47db0ec816b5fc6cb8868000ff
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Wed Feb 15 07:40:43 2023 +0900

    nilfs2: fix underflow in second superblock position calculations
    
    commit 99b9402a36f0799f25feee4465bfa4b8dfa74b4d upstream.
    
    Macro NILFS_SB2_OFFSET_BYTES, which computes the position of the second
    superblock, underflows when the argument device size is less than 4096
    bytes.  Therefore, when using this macro, it is necessary to check in
    advance that the device size is not less than a lower limit, or at least
    that underflow does not occur.
    
    The current nilfs2 implementation lacks this check, causing out-of-bound
    block access when mounting devices smaller than 4096 bytes:
    
     I/O error, dev loop0, sector 36028797018963960 op 0x0:(READ) flags 0x0
     phys_seg 1 prio class 2
     NILFS (loop0): unable to read secondary superblock (blocksize = 1024)
    
    In addition, when trying to resize the filesystem to a size below 4096
    bytes, this underflow occurs in nilfs_resize_fs(), passing a huge number
    of segments to nilfs_sufile_resize(), corrupting parameters such as the
    number of segments in superblocks.  This causes excessive loop iterations
    in nilfs_sufile_resize() during a subsequent resize ioctl, causing
    semaphore ns_segctor_sem to block for a long time and hang the writer
    thread:
    
     INFO: task segctord:5067 blocked for more than 143 seconds.
          Not tainted 6.2.0-rc8-syzkaller-00015-gf6feea56f66d #0
     "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
     task:segctord        state:D stack:23456 pid:5067  ppid:2
     flags:0x00004000
     Call Trace:
      <TASK>
      context_switch kernel/sched/core.c:5293 [inline]
      __schedule+0x1409/0x43f0 kernel/sched/core.c:6606
      schedule+0xc3/0x190 kernel/sched/core.c:6682
      rwsem_down_write_slowpath+0xfcf/0x14a0 kernel/locking/rwsem.c:1190
      nilfs_transaction_lock+0x25c/0x4f0 fs/nilfs2/segment.c:357
      nilfs_segctor_thread_construct fs/nilfs2/segment.c:2486 [inline]
      nilfs_segctor_thread+0x52f/0x1140 fs/nilfs2/segment.c:2570
      kthread+0x270/0x300 kernel/kthread.c:376
      ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
      </TASK>
     ...
     Call Trace:
      <TASK>
      folio_mark_accessed+0x51c/0xf00 mm/swap.c:515
      __nilfs_get_page_block fs/nilfs2/page.c:42 [inline]
      nilfs_grab_buffer+0x3d3/0x540 fs/nilfs2/page.c:61
      nilfs_mdt_submit_block+0xd7/0x8f0 fs/nilfs2/mdt.c:121
      nilfs_mdt_read_block+0xeb/0x430 fs/nilfs2/mdt.c:176
      nilfs_mdt_get_block+0x12d/0xbb0 fs/nilfs2/mdt.c:251
      nilfs_sufile_get_segment_usage_block fs/nilfs2/sufile.c:92 [inline]
      nilfs_sufile_truncate_range fs/nilfs2/sufile.c:679 [inline]
      nilfs_sufile_resize+0x7a3/0x12b0 fs/nilfs2/sufile.c:777
      nilfs_resize_fs+0x20c/0xed0 fs/nilfs2/super.c:422
      nilfs_ioctl_resize fs/nilfs2/ioctl.c:1033 [inline]
      nilfs_ioctl+0x137c/0x2440 fs/nilfs2/ioctl.c:1301
      ...
    
    This fixes these issues by inserting appropriate minimum device size
    checks or anti-underflow checks, depending on where the macro is used.
    
    Link: https://lkml.kernel.org/r/0000000000004e1dfa05f4a48e6b@google.com
    Link: https://lkml.kernel.org/r/20230214224043.24141-1-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: <syzbot+f0c4082ce5ebebdac63b@syzkaller.appspotmail.com>
    Tested-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 669c76e55de332fbcbce5b74fccef1b4698a8936
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Feb 14 11:33:04 2023 +0100

    kvm: initialize all of the kvm_debugregs structure before sending it to userspace
    
    commit 2c10b61421a28e95a46ab489fd56c0f442ff6952 upstream.
    
    When calling the KVM_GET_DEBUGREGS ioctl, on some configurations, there
    might be some unitialized portions of the kvm_debugregs structure that
    could be copied to userspace.  Prevent this as is done in the other kvm
    ioctls, by setting the whole structure to 0 before copying anything into
    it.
    
    Bonus is that this reduces the lines of code as the explicit flag
    setting and reserved space zeroing out can be removed.
    
    Cc: Sean Christopherson <seanjc@google.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: <x86@kernel.org>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: stable <stable@kernel.org>
    Reported-by: Xingyuan Mo <hdthky0@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Message-Id: <20230214103304.3689213-1-gregkh@linuxfoundation.org>
    Tested-by: Xingyuan Mo <hdthky0@gmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 777a814f8eef73cfb98230da9fbf08715872fec0
Author: Natalia Petrova <n.petrova@fintech.ru>
Date:   Thu Feb 9 09:28:33 2023 -0800

    i40e: Add checking for null for nlmsg_find_attr()
    
    [ Upstream commit 7fa0b526f865cb42aa33917fd02a92cb03746f4d ]
    
    The result of nlmsg_find_attr() 'br_spec' is dereferenced in
    nla_for_each_nested(), but it can take NULL value in nla_find() function,
    which will result in an error.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: 51616018dd1b ("i40e: Add support for getlink, setlink ndo ops")
    Signed-off-by: Natalia Petrova <n.petrova@fintech.ru>
    Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Link: https://lore.kernel.org/r/20230209172833.3596034-1-anthony.l.nguyen@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c9df9775dd84ed765895035b00df4b9c0749ff6
Author: Guillaume Nault <gnault@redhat.com>
Date:   Wed Feb 8 18:14:03 2023 +0100

    ipv6: Fix tcp socket connection with DSCP.
    
    commit 8230680f36fd1525303d1117768c8852314c488c upstream.
    
    Take into account the IPV6_TCLASS socket option (DSCP) in
    tcp_v6_connect(). Otherwise fib6_rule_match() can't properly
    match the DSCP value, resulting in invalid route lookup.
    
    For example:
    
      ip route add unreachable table main 2001:db8::10/124
    
      ip route add table 100 2001:db8::10/124 dev eth0
      ip -6 rule add dsfield 0x04 table 100
    
      echo test | socat - TCP6:[2001:db8::11]:54321,ipv6-tclass=0x04
    
    Without this patch, socat fails at connect() time ("No route to host")
    because the fib-rule doesn't jump to table 100 and the lookup ends up
    being done in the main table.
    
    Fixes: 2cc67cc731d9 ("[IPV6] ROUTE: Routing by Traffic Class.")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0f76723a05ab652cc8181b9dffbf76ec28a3be3
Author: Guillaume Nault <gnault@redhat.com>
Date:   Wed Feb 8 18:13:59 2023 +0100

    ipv6: Fix datagram socket connection with DSCP.
    
    commit e010ae08c71fda8be3d6bda256837795a0b3ea41 upstream.
    
    Take into account the IPV6_TCLASS socket option (DSCP) in
    ip6_datagram_flow_key_init(). Otherwise fib6_rule_match() can't
    properly match the DSCP value, resulting in invalid route lookup.
    
    For example:
    
      ip route add unreachable table main 2001:db8::10/124
    
      ip route add table 100 2001:db8::10/124 dev eth0
      ip -6 rule add dsfield 0x04 table 100
    
      echo test | socat - UDP6:[2001:db8::11]:54321,ipv6-tclass=0x04
    
    Without this patch, socat fails at connect() time ("No route to host")
    because the fib-rule doesn't jump to table 100 and the lookup ends up
    being done in the main table.
    
    Fixes: 2cc67cc731d9 ("[IPV6] ROUTE: Routing by Traffic Class.")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa07c86e43ed8780d610ecfb2ce13da326729201
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Mon Feb 13 22:53:55 2023 -0800

    net: mpls: fix stale pointer if allocation fails during device rename
    
    commit fda6c89fe3d9aca073495a664e1d5aea28cd4377 upstream.
    
    lianhui reports that when MPLS fails to register the sysctl table
    under new location (during device rename) the old pointers won't
    get overwritten and may be freed again (double free).
    
    Handle this gracefully. The best option would be unregistering
    the MPLS from the device completely on failure, but unfortunately
    mpls_ifdown() can fail. So failing fully is also unreliable.
    
    Another option is to register the new table first then only
    remove old one if the new one succeeds. That requires more
    code, changes order of notifications and two tables may be
    visible at the same time.
    
    sysctl point is not used in the rest of the code - set to NULL
    on failures and skip unregister if already NULL.
    
    Reported-by: lianhui tang <bluetlh@gmail.com>
    Fixes: 0fae3bf018d9 ("mpls: handle device renames for per-device sysctls")
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a94e4ca4ff906f4c45938df889832361de919aa9
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Fri Feb 10 22:21:26 2023 +0200

    net: stmmac: Restrict warning on disabling DMA store and fwd mode
    
    commit 05d7623a892a9da62da0e714428e38f09e4a64d8 upstream.
    
    When setting 'snps,force_thresh_dma_mode' DT property, the following
    warning is always emitted, regardless the status of force_sf_dma_mode:
    
    dwmac-starfive 10020000.ethernet: force_sf_dma_mode is ignored if force_thresh_dma_mode is set.
    
    Do not print the rather misleading message when DMA store and forward
    mode is already disabled.
    
    Fixes: e2a240c7d3bc ("driver:net:stmmac: Disable DMA store and forward mode if platform data force_thresh_dma_mode is set.")
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Link: https://lore.kernel.org/r/20230210202126.877548-1-cristian.ciocaltea@collabora.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 321a0eef571f43520a079e056d61cb904e19642f
Author: Michael Chan <michael.chan@broadcom.com>
Date:   Fri Feb 10 12:31:55 2023 -0500

    bnxt_en: Fix mqprio and XDP ring checking logic
    
    commit 2038cc592811209de20c4e094ca08bfb1e6fbc6c upstream.
    
    In bnxt_reserve_rings(), there is logic to check that the number of TX
    rings reserved is enough to cover all the mqprio TCs, but it fails to
    account for the TX XDP rings.  So the check will always fail if there
    are mqprio TCs and TX XDP rings.  As a result, the driver always fails
    to initialize after the XDP program is attached and the device will be
    brought down.  A subsequent ifconfig up will also fail because the
    number of TX rings is set to an inconsistent number.  Fix the check to
    properly account for TX XDP rings.  If the check fails, set the number
    of TX rings back to a consistent number after calling netdev_reset_tc().
    
    Fixes: 674f50a5b026 ("bnxt_en: Implement new method to reserve rings.")
    Reviewed-by: Hongguang Gao <hongguang.gao@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90d7d4c26ffa9ce2461a4e45fa39605a09ca861e
Author: Johannes Zink <j.zink@pengutronix.de>
Date:   Fri Feb 10 15:39:37 2023 +0100

    net: stmmac: fix order of dwmac5 FlexPPS parametrization sequence
    
    commit 4562c65ec852067c6196abdcf2d925f08841dcbc upstream.
    
    So far changing the period by just setting new period values while
    running did not work.
    
    The order as indicated by the publicly available reference manual of the i.MX8MP [1]
    indicates a sequence:
    
     * initiate the programming sequence
     * set the values for PPS period and start time
     * start the pulse train generation.
    
    This is currently not used in dwmac5_flex_pps_config(), which instead does:
    
     * initiate the programming sequence and immediately start the pulse train generation
     * set the values for PPS period and start time
    
    This caused the period values written not to take effect until the FlexPPS output was
    disabled and re-enabled again.
    
    This patch fix the order and allows the period to be set immediately.
    
    [1] https://www.nxp.com/webapp/Download?colCode=IMX8MPRM
    
    Fixes: 9a8a02c9d46d ("net: stmmac: Add Flexible PPS support")
    Signed-off-by: Johannes Zink <j.zink@pengutronix.de>
    Link: https://lore.kernel.org/r/20230210143937.3427483-1-j.zink@pengutronix.de
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 723ef7b66f37c0841f5a451ccbce47ee1641e081
Author: Miko Larsson <mikoxyzzz@gmail.com>
Date:   Fri Feb 10 09:13:44 2023 +0100

    net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path
    
    commit c68f345b7c425b38656e1791a0486769a8797016 upstream.
    
    syzbot reported that act_len in kalmia_send_init_packet() is
    uninitialized when passing it to the first usb_bulk_msg error path. Jiri
    Pirko noted that it's pointless to pass it in the error path, and that
    the value that would be printed in the second error path would be the
    value of act_len from the first call to usb_bulk_msg.[1]
    
    With this in mind, let's just not pass act_len to the usb_bulk_msg error
    paths.
    
    1: https://lore.kernel.org/lkml/Y9pY61y1nwTuzMOa@nanopsycho/
    
    Fixes: d40261236e8e ("net/usb: Add Samsung Kalmia driver for Samsung GT-B3730")
    Reported-and-tested-by: syzbot+cd80c5ef5121bfe85b55@syzkaller.appspotmail.com
    Signed-off-by: Miko Larsson <mikoxyzzz@gmail.com>
    Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28a1742fcc1d8692e9090864373aa77fb3a0c8fd
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Thu Feb 9 16:22:01 2023 -0800

    dccp/tcp: Avoid negative sk_forward_alloc by ipv6_pinfo.pktoptions.
    
    commit ca43ccf41224b023fc290073d5603a755fd12eed upstream.
    
    Eric Dumazet pointed out [0] that when we call skb_set_owner_r()
    for ipv6_pinfo.pktoptions, sk_rmem_schedule() has not been called,
    resulting in a negative sk_forward_alloc.
    
    We add a new helper which clones a skb and sets its owner only
    when sk_rmem_schedule() succeeds.
    
    Note that we move skb_set_owner_r() forward in (dccp|tcp)_v6_do_rcv()
    because tcp_send_synack() can make sk_forward_alloc negative before
    ipv6_opt_accepted() in the crossed SYN-ACK or self-connect() cases.
    
    [0]: https://lore.kernel.org/netdev/CANn89iK9oc20Jdi_41jb9URdF210r7d1Y-+uypbMSbOfY6jqrg@mail.gmail.com/
    
    Fixes: 323fbd0edf3f ("net: dccp: Add handling of IPV6_PKTOPTIONS to dccp_v6_do_rcv()")
    Fixes: 3df80d9320bc ("[DCCP]: Introduce DCCPv6")
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 977bafe3a4e1c734a5d36007b4ba27529d4a682a
Author: Rafał Miłecki <rafal@milecki.pl>
Date:   Wed Feb 8 10:16:37 2023 +0100

    net: bgmac: fix BCM5358 support by setting correct flags
    
    commit d61615c366a489646a1bfe5b33455f916762d5f4 upstream.
    
    Code blocks handling BCMA_CHIP_ID_BCM5357 and BCMA_CHIP_ID_BCM53572 were
    incorrectly unified. Chip package values are not unique and cannot be
    checked independently. They are meaningful only in a context of a given
    chip.
    
    Packages BCM5358 and BCM47188 share the same value but then belong to
    different chips. Code unification resulted in treating BCM5358 as
    BCM47188 and broke its initialization.
    
    Link: https://github.com/openwrt/openwrt/issues/8278
    Fixes: cb1b0f90acfe ("net: ethernet: bgmac: unify code of the same family")
    Cc: Jon Mason <jdmason@kudzu.us>
    Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Link: https://lore.kernel.org/r/20230208091637.16291-1-zajec5@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23bd18cc390913128e416bb9c8b3e5d5511da4aa
Author: Jason Xing <kernelxing@tencent.com>
Date:   Wed Feb 8 10:43:33 2023 +0800

    i40e: add double of VLAN header when computing the max MTU
    
    commit ce45ffb815e8e238f05de1630be3969b6bb15e4e upstream.
    
    Include the second VLAN HLEN into account when computing the maximum
    MTU size as other drivers do.
    
    Fixes: 0c8493d90b6b ("i40e: add XDP support for pass and drop actions")
    Signed-off-by: Jason Xing <kernelxing@tencent.com>
    Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
    Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ab96a0ee1e32757d067f7e8b6b66ca217e02bd8
Author: Andrew Morton <akpm@linux-foundation.org>
Date:   Thu Feb 2 18:07:35 2023 -0800

    revert "squashfs: harden sanity check in squashfs_read_xattr_id_table"
    
    commit a5b21d8d791cd4db609d0bbcaa9e0c7e019888d1 upstream.
    
    This fix was nacked by Philip, for reasons identified in the email linked
    below.
    
    Link: https://lkml.kernel.org/r/68f15d67-8945-2728-1f17-5b53a80ec52d@squashfs.org.uk
    Fixes: 72e544b1b28325 ("squashfs: harden sanity check in squashfs_read_xattr_id_table")
    Cc: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Cc: Fedor Pchelkin <pchelkin@ispras.ru>
    Cc: Phillip Lougher <phillip@squashfs.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0158f14945ef63f0c1dd4892822f11aeedba6240
Author: Mike Kravetz <mike.kravetz@oracle.com>
Date:   Wed Feb 15 17:35:42 2023 -0800

    hugetlb: check for undefined shift on 32 bit architectures
    
    commit ec4288fe63966b26d53907212ecd05dfa81dd2cc upstream.
    
    Users can specify the hugetlb page size in the mmap, shmget and
    memfd_create system calls.  This is done by using 6 bits within the flags
    argument to encode the base-2 logarithm of the desired page size.  The
    routine hstate_sizelog() uses the log2 value to find the corresponding
    hugetlb hstate structure.  Converting the log2 value (page_size_log) to
    potential hugetlb page size is the simple statement:
    
            1UL << page_size_log
    
    Because only 6 bits are used for page_size_log, the left shift can not be
    greater than 63.  This is fine on 64 bit architectures where a long is 64
    bits.  However, if a value greater than 31 is passed on a 32 bit
    architecture (where long is 32 bits) the shift will result in undefined
    behavior.  This was generally not an issue as the result of the undefined
    shift had to exactly match hugetlb page size to proceed.
    
    Recent improvements in runtime checking have resulted in this undefined
    behavior throwing errors such as reported below.
    
    Fix by comparing page_size_log to BITS_PER_LONG before doing shift.
    
    Link: https://lkml.kernel.org/r/20230216013542.138708-1-mike.kravetz@oracle.com
    Link: https://lore.kernel.org/lkml/CA+G9fYuei_Tr-vN9GS7SfFyU1y9hNysnf=PB7kT0=yv4MiPgVg@mail.gmail.com/
    Fixes: 42d7395feb56 ("mm: support more pagesizes for MAP_HUGETLB/SHM_HUGETLB")
    Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Reviewed-by: Jesper Juhl <jesperjuhl76@gmail.com>
    Acked-by: Muchun Song <songmuchun@bytedance.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Cc: Anders Roxell <anders.roxell@linaro.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 541eb0388fc2e707dea2697c36f042c9ef34fe0e
Author: Kailang Yang <kailang@realtek.com>
Date:   Mon Feb 13 14:54:22 2023 +0800

    ALSA: hda/realtek - fixed wrong gpio assigned
    
    commit 2bdccfd290d421b50df4ec6a68d832dad1310748 upstream.
    
    GPIO2 PIN use for output. Mask Dir and Data need to assign for 0x4. Not 0x3.
    This fixed was for Lenovo Desktop(0x17aa1056). GPIO2 use for AMP enable.
    
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/8d02bb9ac8134f878cd08607fdf088fd@realtek.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 62860fd1f506aa06507c5c10d513adfc7d278297
Author: Bo Liu <bo.liu@senarytech.com>
Date:   Thu Feb 9 10:13:48 2023 +0800

    ALSA: hda/conexant: add a new hda codec SN6180
    
    commit 18d7e16c917a08f08778ecf2b780d63648d5d923 upstream.
    
    The current kernel does not support the SN6180 codec chip.
    Add the SN6180 codec configuration item to kernel.
    
    Signed-off-by: Bo Liu <bo.liu@senarytech.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/1675908828-1012-1-git-send-email-bo.liu@senarytech.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5c7858adada31dbed042448cff6997dd6efc472a
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Mon Jan 30 20:58:08 2023 +0800

    mmc: sdio: fix possible resource leaks in some error paths
    
    commit 605d9fb9556f8f5fb4566f4df1480f280f308ded upstream.
    
    If sdio_add_func() or sdio_init_func() fails, sdio_remove_func() can
    not release the resources, because the sdio function is not presented
    in these two cases, it won't call of_node_put() or put_device().
    
    To fix these leaks, make sdio_func_present() only control whether
    device_del() needs to be called or not, then always call of_node_put()
    and put_device().
    
    In error case in sdio_init_func(), the reference of 'card->dev' is
    not get, to avoid redundant put in sdio_free_func_cis(), move the
    get_device() to sdio_alloc_func() and put_device() to sdio_release_func(),
    it can keep the get/put function be balanced.
    
    Without this patch, while doing fault inject test, it can get the
    following leak reports, after this fix, the leak is gone.
    
    unreferenced object 0xffff888112514000 (size 2048):
      comm "kworker/3:2", pid 65, jiffies 4294741614 (age 124.774s)
      hex dump (first 32 bytes):
        00 e0 6f 12 81 88 ff ff 60 58 8d 06 81 88 ff ff  ..o.....`X......
        10 40 51 12 81 88 ff ff 10 40 51 12 81 88 ff ff  .@Q......@Q.....
      backtrace:
        [<000000009e5931da>] kmalloc_trace+0x21/0x110
        [<000000002f839ccb>] mmc_alloc_card+0x38/0xb0 [mmc_core]
        [<0000000004adcbf6>] mmc_sdio_init_card+0xde/0x170 [mmc_core]
        [<000000007538fea0>] mmc_attach_sdio+0xcb/0x1b0 [mmc_core]
        [<00000000d4fdeba7>] mmc_rescan+0x54a/0x640 [mmc_core]
    
    unreferenced object 0xffff888112511000 (size 2048):
      comm "kworker/3:2", pid 65, jiffies 4294741623 (age 124.766s)
      hex dump (first 32 bytes):
        00 40 51 12 81 88 ff ff e0 58 8d 06 81 88 ff ff  .@Q......X......
        10 10 51 12 81 88 ff ff 10 10 51 12 81 88 ff ff  ..Q.......Q.....
      backtrace:
        [<000000009e5931da>] kmalloc_trace+0x21/0x110
        [<00000000fcbe706c>] sdio_alloc_func+0x35/0x100 [mmc_core]
        [<00000000c68f4b50>] mmc_attach_sdio.cold.18+0xb1/0x395 [mmc_core]
        [<00000000d4fdeba7>] mmc_rescan+0x54a/0x640 [mmc_core]
    
    Fixes: 3d10a1ba0d37 ("sdio: fix reference counting in sdio_remove_func()")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20230130125808.3471254-1-yangyingliang@huawei.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e136657a7aa393eda7f78120e7eac5762ba08ec1
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Feb 17 15:34:25 2023 +0100

    Revert "x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN"
    
    This reverts commit a00d020f18dbe0666e221d929846f1b591b27c20 which is
    commit 55228db2697c09abddcb9487c3d9fa5854a932cd upstream.
    
    _Alignof is not in the gcc version that the 4.19.y kernel still
    supports (4.6), so this change needs to be reverted as it breaks the
    build on those older compiler versions.
    
    Reported-by: Michael Nies <michael.nies@netclusive.com>
    Link: https://lore.kernel.org/r/HE1PR0902MB188277E37DED663AE440510BE1D99@HE1PR0902MB1882.eurprd09.prod.outlook.com
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=217013
    Cc: YingChi Long <me@inclyc.cn>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b21edf4cc13516716848e0a4fdf726aa2a62cd9
Author: Florian Westphal <fw@strlen.de>
Date:   Sat Aug 20 17:54:06 2022 +0200

    netfilter: nft_tproxy: restrict to prerouting hook
    
    commit 18bbc3213383a82b05383827f4b1b882e3f0a5a5 upstream.
    
    TPROXY is only allowed from prerouting, but nft_tproxy doesn't check this.
    This fixes a crash (null dereference) when using tproxy from e.g. output.
    
    Fixes: 4ed8eb6570a4 ("netfilter: nf_tables: Add native tproxy support")
    Reported-by: Shell Chen <xierch@gmail.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Qingfang DENG <dqfext@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8dca1bfe9adcae38b35add64977818c0c13dd22
Author: Seth Jenkins <sethjenkins@google.com>
Date:   Tue Jan 31 12:25:55 2023 -0500

    aio: fix mremap after fork null-deref
    
    commit 81e9d6f8647650a7bead74c5f926e29970e834d1 upstream.
    
    Commit e4a0d3e720e7 ("aio: Make it possible to remap aio ring") introduced
    a null-deref if mremap is called on an old aio mapping after fork as
    mm->ioctx_table will be set to NULL.
    
    [jmoyer@redhat.com: fix 80 column issue]
    Link: https://lkml.kernel.org/r/x49sffq4nvg.fsf@segfault.boston.devel.redhat.com
    Fixes: e4a0d3e720e7 ("aio: Make it possible to remap aio ring")
    Signed-off-by: Seth Jenkins <sethjenkins@google.com>
    Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Benjamin LaHaise <bcrl@kvack.org>
    Cc: Jann Horn <jannh@google.com>
    Cc: Pavel Emelyanov <xemul@parallels.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 8b226a02d18685a5ba2534bb33e7398bd5f5eac7
Author: Amit Engel <Amit.Engel@dell.com>
Date:   Mon Jan 23 14:37:28 2023 +0200

    nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association
    
    [ Upstream commit 0cab4404874f2de52617de8400c844891c6ea1ce ]
    
    As part of nvmet_fc_ls_create_association there is a case where
    nvmet_fc_alloc_target_queue fails right after a new association with an
    admin queue is created. In this case, no one releases the get taken in
    nvmet_fc_alloc_target_assoc.  This fix is adding the missing put.
    
    Signed-off-by: Amit Engel <Amit.Engel@dell.com>
    Reviewed-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7ad9a9eb2e08dc88557cf9a2653d56c9f9ea152a
Author: Hyunwoo Kim <v4bel@theori.io>
Date:   Wed Jan 25 02:59:44 2023 -0800

    net/rose: Fix to not accept on connected socket
    
    [ Upstream commit 14caefcf9837a2be765a566005ad82cd0d2a429f ]
    
    If you call listen() and accept() on an already connect()ed
    rose socket, accept() can successfully connect.
    This is because when the peer socket sends data to sendmsg,
    the skb with its own sk stored in the connected socket's
    sk->sk_receive_queue is connected, and rose_accept() dequeues
    the skb waiting in the sk->sk_receive_queue.
    
    This creates a child socket with the sk of the parent
    rose socket, which can cause confusion.
    
    Fix rose_listen() to return -EINVAL if the socket has
    already been successfully connected, and add lock_sock
    to prevent this issue.
    
    Signed-off-by: Hyunwoo Kim <v4bel@theori.io>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Link: https://lore.kernel.org/r/20230125105944.GA133314@ubuntu
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 39af3ae0084084a445a5bce92b3feec885755750
Author: Shunsuke Mie <mie@igel.co.jp>
Date:   Tue Jan 10 12:43:10 2023 +0900

    tools/virtio: fix the vringh test for virtio ring changes
    
    [ Upstream commit 3f7b75abf41cc4143aa295f62acbb060a012868d ]
    
    Fix the build caused by missing kmsan_handle_dma() and is_power_of_2() that
    are used in drivers/virtio/virtio_ring.c.
    
    Signed-off-by: Shunsuke Mie <mie@igel.co.jp>
    Message-Id: <20230110034310.779744-1-mie@igel.co.jp>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 030901b7d8617198939336187380c825f24bc4a0
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Jan 26 17:21:24 2023 +0100

    ASoC: cs42l56: fix DT probe
    
    [ Upstream commit e18c6da62edc780e4f4f3c9ce07bdacd69505182 ]
    
    While looking through legacy platform data users, I noticed that
    the DT probing never uses data from the DT properties, as the
    platform_data structure gets overwritten directly after it
    is initialized.
    
    There have never been any boards defining the platform_data in
    the mainline kernel either, so this driver so far only worked
    with patched kernels or with the default values.
    
    For the benefit of possible downstream users, fix the DT probe
    by no longer overwriting the data.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20230126162203.2986339-1-arnd@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

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

    migrate: hugetlb: check for hugetlb shared PMD in node migration
    
    commit 73bdf65ea74857d7fb2ec3067a3cec0e261b1462 upstream.
    
    migrate_pages/mempolicy semantics state that CAP_SYS_NICE is required to
    move pages shared with another process to a different node.  page_mapcount
    > 1 is being used to determine if a hugetlb page is shared.  However, a
    hugetlb page will have a mapcount of 1 if mapped by multiple processes via
    a shared PMD.  As a result, hugetlb pages shared by multiple processes and
    mapped with a shared PMD can be moved by a process without CAP_SYS_NICE.
    
    To fix, check for a shared PMD if mapcount is 1.  If a shared PMD is found
    consider the page shared.
    
    Link: https://lkml.kernel.org/r/20230126222721.222195-3-mike.kravetz@oracle.com
    Fixes: e2d8cf405525 ("migrate: add hugepage migration code to migrate_pages()")
    Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
    Acked-by: Peter Xu <peterx@redhat.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Cc: James Houghton <jthoughton@google.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Muchun Song <songmuchun@bytedance.com>
    Cc: Naoya Horiguchi <naoya.horiguchi@linux.dev>
    Cc: Vishal Moola (Oracle) <vishal.moola@gmail.com>
    Cc: Yang Shi <shy828301@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96d9b11d688ced4c9e16312b1b95570e86b73260
Author: Toke Høiland-Jørgensen <toke@redhat.com>
Date:   Fri Oct 9 20:42:34 2020 +0200

    bpf: Always return target ifindex in bpf_fib_lookup
    
    commit d1c362e1dd68a421cf9033404cf141a4ab734a5d upstream.
    
    The bpf_fib_lookup() helper performs a neighbour lookup for the destination
    IP and returns BPF_FIB_LKUP_NO_NEIGH if this fails, with the expectation
    that the BPF program will pass the packet up the stack in this case.
    However, with the addition of bpf_redirect_neigh() that can be used instead
    to perform the neighbour lookup, at the cost of a bit of duplicated work.
    
    For that we still need the target ifindex, and since bpf_fib_lookup()
    already has that at the time it performs the neighbour lookup, there is
    really no reason why it can't just return it in any case. So let's just
    always return the ifindex if the FIB lookup itself succeeds.
    
    Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Cc: David Ahern <dsahern@gmail.com>
    Link: https://lore.kernel.org/bpf/20201009184234.134214-1-toke@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18be4ab8682e14b5a7cfa9fcf939267d0851ec5c
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Thu Feb 9 21:10:31 2023 +0100

    arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
    
    commit d182bcf300772d8b2e5f43e47fa0ebda2b767cc4 upstream.
    
    The usage of edge-triggered interrupts lead to lost interrupts under load,
    see [0]. This was confirmed to be fixed by using level-triggered
    interrupts.
    The report was about SDIO. However, as the host controller is the same
    for SD and MMC, apply the change to all mmc controller instances.
    
    [0] https://www.spinics.net/lists/linux-mmc/msg73991.html
    
    Fixes: 221cf34bac54 ("ARM64: dts: meson-axg: enable the eMMC controller")
    Reported-by: Peter Suti <peter.suti@streamunlimited.com>
    Tested-by: Vyacheslav Bocharov <adeep@lexina.in>
    Tested-by: Peter Suti <peter.suti@streamunlimited.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://lore.kernel.org/r/c00655d3-02f8-6f5f-4239-ca2412420cad@gmail.com
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d6e8be7c15baafa55c83c2bc1bacb86a3719a08
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Thu Feb 9 21:11:47 2023 +0100

    arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
    
    commit 66e45351f7d6798751f98001d1fcd572024d87f0 upstream.
    
    The usage of edge-triggered interrupts lead to lost interrupts under load,
    see [0]. This was confirmed to be fixed by using level-triggered
    interrupts.
    The report was about SDIO. However, as the host controller is the same
    for SD and MMC, apply the change to all mmc controller instances.
    
    [0] https://www.spinics.net/lists/linux-mmc/msg73991.html
    
    Fixes: ef8d2ffedf18 ("ARM64: dts: meson-gxbb: add MMC support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://lore.kernel.org/r/76e042e0-a610-5ed5-209f-c4d7f879df44@gmail.com
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2322c78f90f00ebbaf2ef2bcbea5376436eb4b57
Author: Guo Ren <guoren@kernel.org>
Date:   Thu Jan 26 22:53:06 2023 -0500

    riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte
    
    commit 950b879b7f0251317d26bae0687e72592d607532 upstream.
    
    In commit 588a513d3425 ("arm64: Fix race condition on PG_dcache_clean
    in __sync_icache_dcache()"), we found RISC-V has the same issue as the
    previous arm64. The previous implementation didn't guarantee the correct
    sequence of operations, which means flush_icache_all() hasn't been
    called when the PG_dcache_clean was set. That would cause a risk of page
    synchronization.
    
    Fixes: 08f051eda33b ("RISC-V: Flush I$ when making a dirty page executable")
    Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
    Signed-off-by: Guo Ren <guoren@kernel.org>
    Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
    Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
    Link: https://lore.kernel.org/r/20230127035306.1819561-1-guoren@kernel.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0f8f7a455200ceb863244dea3c971af10b59236a
Author: Prashant Malani <pmalani@chromium.org>
Date:   Wed Feb 8 20:53:19 2023 +0000

    usb: typec: altmodes/displayport: Fix probe pin assign check
    
    commit 54e5c00a4eb0a4c663445b245f641bbfab142430 upstream.
    
    While checking Pin Assignments of the port and partner during probe, we
    don't take into account whether the peripheral is a plug or receptacle.
    
    This manifests itself in a mode entry failure on certain docks and
    dongles with captive cables. For instance, the Startech.com Type-C to DP
    dongle (Model #CDP2DP) advertises its DP VDO as 0x405. This would fail
    the Pin Assignment compatibility check, despite it supporting
    Pin Assignment C as a UFP.
    
    Update the check to use the correct DP Pin Assign macros that
    take the peripheral's receptacle bit into account.
    
    Fixes: c1e5c2f0cb8a ("usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles")
    Cc: stable@vger.kernel.org
    Reported-by: Diana Zigterman <dzigterman@chromium.org>
    Signed-off-by: Prashant Malani <pmalani@chromium.org>
    Link: https://lore.kernel.org/r/20230208205318.131385-1-pmalani@chromium.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf31e274729dbced4649e1ed4dda41d50650d4ff
Author: Mark Pearson <mpearson-lenovo@squebb.ca>
Date:   Wed Feb 8 13:12:23 2023 -0500

    usb: core: add quirk for Alcor Link AK9563 smartcard reader
    
    commit 303e724d7b1e1a0a93daf0b1ab5f7c4f53543b34 upstream.
    
    The Alcor Link AK9563 smartcard reader used on some Lenovo platforms
    doesn't work. If LPM is enabled the reader will provide an invalid
    usb config descriptor. Added quirk to disable LPM.
    
    Verified fix on Lenovo P16 G1 and T14 G3
    
    Tested-by: Miroslav Zatko <mzatko@mirexoft.com>
    Tested-by: Dennis Wassenberg <dennis.wassenberg@secunet.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dennis Wassenberg <dennis.wassenberg@secunet.com>
    Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
    Link: https://lore.kernel.org/r/20230208181223.1092654-1-mpearson-lenovo@squebb.ca
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f69307f625904feed189008381fd83bd1a35b63
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Fri Feb 3 14:32:09 2023 -0500

    net: USB: Fix wrong-direction WARNING in plusb.c
    
    commit 811d581194f7412eda97acc03d17fc77824b561f upstream.
    
    The syzbot fuzzer detected a bug in the plusb network driver: A
    zero-length control-OUT transfer was treated as a read instead of a
    write.  In modern kernels this error provokes a WARNING:
    
    usb 1-1: BOGUS control dir, pipe 80000280 doesn't match bRequestType c0
    WARNING: CPU: 0 PID: 4645 at drivers/usb/core/urb.c:411
    usb_submit_urb+0x14a7/0x1880 drivers/usb/core/urb.c:411
    Modules linked in:
    CPU: 1 PID: 4645 Comm: dhcpcd Not tainted
    6.2.0-rc6-syzkaller-00050-g9f266ccaa2f5 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google
    01/12/2023
    RIP: 0010:usb_submit_urb+0x14a7/0x1880 drivers/usb/core/urb.c:411
    ...
    Call Trace:
     <TASK>
     usb_start_wait_urb+0x101/0x4b0 drivers/usb/core/message.c:58
     usb_internal_control_msg drivers/usb/core/message.c:102 [inline]
     usb_control_msg+0x320/0x4a0 drivers/usb/core/message.c:153
     __usbnet_read_cmd+0xb9/0x390 drivers/net/usb/usbnet.c:2010
     usbnet_read_cmd+0x96/0xf0 drivers/net/usb/usbnet.c:2068
     pl_vendor_req drivers/net/usb/plusb.c:60 [inline]
     pl_set_QuickLink_features drivers/net/usb/plusb.c:75 [inline]
     pl_reset+0x2f/0xf0 drivers/net/usb/plusb.c:85
     usbnet_open+0xcc/0x5d0 drivers/net/usb/usbnet.c:889
     __dev_open+0x297/0x4d0 net/core/dev.c:1417
     __dev_change_flags+0x587/0x750 net/core/dev.c:8530
     dev_change_flags+0x97/0x170 net/core/dev.c:8602
     devinet_ioctl+0x15a2/0x1d70 net/ipv4/devinet.c:1147
     inet_ioctl+0x33f/0x380 net/ipv4/af_inet.c:979
     sock_do_ioctl+0xcc/0x230 net/socket.c:1169
     sock_ioctl+0x1f8/0x680 net/socket.c:1286
     vfs_ioctl fs/ioctl.c:51 [inline]
     __do_sys_ioctl fs/ioctl.c:870 [inline]
     __se_sys_ioctl fs/ioctl.c:856 [inline]
     __x64_sys_ioctl+0x197/0x210 fs/ioctl.c:856
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    The fix is to call usbnet_write_cmd() instead of usbnet_read_cmd() and
    remove the USB_DIR_IN flag.
    
    Reported-and-tested-by: syzbot+2a0e7abd24f1eb90ce25@syzkaller.appspotmail.com
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Fixes: 090ffa9d0e90 ("[PATCH] USB: usbnet (9/9) module for pl2301/2302 cables")
    CC: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/00000000000052099f05f3b3e298@google.com/
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d142a21a0b5aab11694c17d6cdc67653d600a29
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Mon Feb 6 16:15:59 2023 +0200

    pinctrl: intel: Restore the pins that used to be in Direct IRQ mode
    
    [ Upstream commit a8520be3ffef3d25b53bf171a7ebe17ee0154175 ]
    
    If the firmware mangled the register contents too much,
    check the saved value for the Direct IRQ mode. If it
    matches, we will restore the pin state.
    
    Reported-by: Jim Minter <jimminter@microsoft.com>
    Fixes: 6989ea4881c8 ("pinctrl: intel: Save and restore pins in "direct IRQ" mode")
    Tested-by: Jim Minter <jimminter@microsoft.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Link: https://lore.kernel.org/r/20230206141558.20916-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30765be9a22d7cb61ba94c276ac857228c52972d
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Sep 26 17:50:26 2018 +0300

    pinctrl: intel: Convert unsigned to unsigned int
    
    [ Upstream commit 04035f7f59bd106219d062293234bba683f6db71 ]
    
    Simple type conversion with no functional change implied.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Stable-dep-of: a8520be3ffef ("pinctrl: intel: Restore the pins that used to be in Direct IRQ mode")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e671e63587c92b3fd767cf82e73129f6d5feeb33
Author: Maxim Korotkov <korotkov.maxim.s@gmail.com>
Date:   Fri Nov 18 13:43:32 2022 +0300

    pinctrl: single: fix potential NULL dereference
    
    [ Upstream commit d2d73e6d4822140445ad4a7b1c6091e0f5fe703b ]
    
    Added checking of pointer "function" in pcs_set_mux().
    pinmux_generic_get_function() can return NULL and the pointer
    "function" was dereferenced without checking against NULL.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: 571aec4df5b7 ("pinctrl: single: Use generic pinmux helpers for managing functions")
    Signed-off-by: Maxim Korotkov <korotkov.maxim.s@gmail.com>
    Reviewed-by: Tony Lindgren <tony@atomide.com>
    Link: https://lore.kernel.org/r/20221118104332.943-1-korotkov.maxim.s@gmail.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e5f3ce32f130ba706b32ed7134c36b05ae7c1be5
Author: Joel Stanley <joel@jms.id.au>
Date:   Fri Jan 20 09:48:56 2023 +1030

    pinctrl: aspeed: Fix confusing types in return value
    
    [ Upstream commit 287a344a11f1ebd31055cf9b22c88d7005f108d7 ]
    
    The function signature is int, but we return a bool. Instead return a
    negative errno as the kerneldoc suggests.
    
    Fixes: 4d3d0e4272d8 ("pinctrl: Add core support for Aspeed SoCs")
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
    Link: https://lore.kernel.org/r/20230119231856.52014-1-joel@jms.id.au
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4ab1329eb1f86327ea661d3c3810b192af0b27e7
Author: Dan Carpenter <error27@gmail.com>
Date:   Tue Jan 31 13:02:13 2023 +0300

    ALSA: pci: lx6464es: fix a debug loop
    
    [ Upstream commit 5dac9f8dc25fefd9d928b98f6477ff3daefd73e3 ]
    
    This loop accidentally reuses the "i" iterator for both the inside and
    the outside loop.  The value of MAX_STREAM_BUFFER is 5.  I believe that
    chip->rmh.stat_len is in the 2-12 range.  If the value of .stat_len is
    4 or more then it will loop exactly one time, but if it's less then it
    is a forever loop.
    
    It looks like it was supposed to combined into one loop where
    conditions are checked.
    
    Fixes: 8e6320064c33 ("ALSA: lx_core: Remove useless #if 0 .. #endif")
    Signed-off-by: Dan Carpenter <error27@gmail.com>
    Link: https://lore.kernel.org/r/Y9jnJTis/mRFJAQp@kili
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 74072096c70a0fdfd7af7a792c04070886532f04
Author: Hangbin Liu <liuhangbin@gmail.com>
Date:   Wed Feb 8 11:21:10 2023 +0800

    selftests: forwarding: lib: quote the sysctl values
    
    [ Upstream commit 3a082086aa200852545cf15159213582c0c80eba ]
    
    When set/restore sysctl value, we should quote the value as some keys
    may have multi values, e.g. net.ipv4.ping_group_range
    
    Fixes: f5ae57784ba8 ("selftests: forwarding: lib: Add sysctl_set(), sysctl_restore()")
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Reviewed-by: Petr Machata <petrm@nvidia.com>
    Link: https://lore.kernel.org/r/20230208032110.879205-1-liuhangbin@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 909d5eef5ce792bb76d7b5a9b7a6852b813d8cac
Author: Pietro Borrello <borrello@diag.uniroma1.it>
Date:   Tue Feb 7 18:26:34 2023 +0000

    rds: rds_rm_zerocopy_callback() use list_first_entry()
    
    [ Upstream commit f753a68980cf4b59a80fe677619da2b1804f526d ]
    
    rds_rm_zerocopy_callback() uses list_entry() on the head of a list
    causing a type confusion.
    Use list_first_entry() to actually access the first element of the
    rs_zcookie_queue list.
    
    Fixes: 9426bbc6de99 ("rds: use list structure to track information for zerocopy completion notification")
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it>
    Link: https://lore.kernel.org/r/20230202-rds-zerocopy-v3-1-83b0df974f9a@diag.uniroma1.it
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2cf7cdc388e03f10fa0021f2c0bbc291e8b8aed7
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Thu Feb 2 21:45:36 2023 +0100

    net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY
    
    [ Upstream commit 69ff53e4a4c9498eeed7d1441f68a1481dc69251 ]
    
    Jerome provided the information that also the GXL internal PHY doesn't
    support MMD register access and EEE. MMD reads return 0xffff, what
    results in e.g. completely wrong ethtool --show-eee output.
    Therefore use the MMD dummy stubs.
    
    Fixes: d853d145ea3e ("net: phy: add an option to disable EEE advertisement")
    Suggested-by: Jerome Brunet <jbrunet@baylibre.com>
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Link: https://lore.kernel.org/r/84432fe4-0be4-bc82-4e5c-557206b40f56@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 637b727711ecd26316268f1ec32016bad60369e7
Author: Jerome Brunet <jbrunet@baylibre.com>
Date:   Thu Apr 4 15:11:46 2019 +0200

    net: phy: meson-gxl: add g12a support
    
    [ Upstream commit 5c3407abb3382fb0621a503662d00495f7ab65c4 ]
    
    The g12a SoC family uses the type of internal PHY that was used on the
    gxl family. The quirks of gxl family, like the LPA register corruption,
    appear to have been resolved on this new SoC generation.
    
    Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: 69ff53e4a4c9 ("net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1e6bbd9d77163013d01827a18e593a271ea9d6a
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Sat Nov 10 00:39:14 2018 +0100

    net: phy: add macros for PHYID matching
    
    [ Upstream commit aa2af2eb447c9a21c8c9e8d2336672bb620cf900 ]
    
    Add macros for PHYID matching to be used in PHY driver configs.
    By using these macros some boilerplate code can be avoided.
    
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: 69ff53e4a4c9 ("net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 00d9e212b8a39e6ffcf31b9d2e503d2bf6009d45
Author: Dean Luick <dean.luick@cornelisnetworks.com>
Date:   Thu Jan 12 13:16:02 2023 -0500

    IB/hfi1: Restore allocated resources on failed copyout
    
    [ Upstream commit 6601fc0d15ffc20654e39486f9bef35567106d68 ]
    
    Fix a resource leak if an error occurs.
    
    Fixes: f404ca4c7ea8 ("IB/hfi1: Refactor hfi_user_exp_rcv_setup() IOCTL")
    Signed-off-by: Dean Luick <dean.luick@cornelisnetworks.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
    Link: https://lore.kernel.org/r/167354736291.2132367.10894218740150168180.stgit@awfm-02.cornelisnetworks.com
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60d2c64e08e49d64c5b48b71d35dbf6ebe80e691
Author: Artemii Karasev <karasev@ispras.ru>
Date:   Tue Feb 7 18:20:26 2023 +0500

    ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
    
    commit 6a32425f953b955b4ff82f339d01df0b713caa5d upstream.
    
    snd_emux_xg_control() can be called with an argument 'param' greater
    than size of 'control' array. It may lead to accessing 'control'
    array at a wrong index.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Signed-off-by: Artemii Karasev <karasev@ispras.ru>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20230207132026.2870-1-karasev@ispras.ru
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c089e2ece1d7a9981f5b55eaf44d6a3bb602ed2c
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Wed Jan 18 16:35:13 2023 -0500

    btrfs: limit device extents to the device size
    
    commit 3c538de0f2a74d50aff7278c092f88ae59cee688 upstream.
    
    There was a recent regression in btrfs/177 that started happening with
    the size class patches ("btrfs: introduce size class to block group
    allocator").  This however isn't a regression introduced by those
    patches, but rather the bug was uncovered by a change in behavior in
    these patches.  The patches triggered more chunk allocations in the
    ^free-space-tree case, which uncovered a race with device shrink.
    
    The problem is we will set the device total size to the new size, and
    use this to find a hole for a device extent.  However during shrink we
    may have device extents allocated past this range, so we could
    potentially find a hole in a range past our new shrink size.  We don't
    actually limit our found extent to the device size anywhere, we assume
    that we will not find a hole past our device size.  This isn't true with
    shrink as we're relocating block groups and thus creating holes past the
    device size.
    
    Fix this by making sure we do not search past the new device size, and
    if we wander into any device extents that start after our device size
    simply break from the loop and use whatever hole we've already found.
    
    CC: stable@vger.kernel.org # 4.14+
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit 6a73a0e3eddb7ffc50febb3afd172f88c1340961
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Wed Jan 25 13:17:42 2023 +0100

    thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type()
    
    commit acd7e9ee57c880b99671dd99680cb707b7b5b0ee upstream.
    
    In order to prevent int340x_thermal_get_trip_type() from possibly
    racing with int340x_thermal_read_trips() invoked by int3403_notify()
    add locking to it in analogy with int340x_thermal_get_trip_temp().
    
    Fixes: 6757a7abe47b ("thermal: intel: int340x: Protect trip temperature from concurrent updates")
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

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

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

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

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

commit 387217b97e99699c34e6d95ce2b91b327fcd853e
Author: Longlong Xia <xialonglong1@huawei.com>
Date:   Sat Jan 28 09:47:57 2023 +0000

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

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

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

commit b5852211a856fd4d9c5f5e59a017fb378c2476d4
Author: Andreas Schwab <schwab@suse.de>
Date:   Wed Feb 1 10:29:45 2023 +0100

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

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

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

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

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

commit 13b42a8938d7bf0e9ba66b468fadc1425ff1e31f
Author: Andreas Kemnade <andreas@kemnade.info>
Date:   Thu Dec 1 19:16:35 2022 +0100

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

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

    iio: adc: berlin2-adc: Add missing of_node_put() in error path
    
    commit cbd3a0153cd18a2cbef6bf3cf31bb406c3fc9f55 upstream.
    
    of_get_parent() will return a device_node pointer with refcount
    incremented. We need to use of_node_put() on it when done. Add the
    missing of_node_put() in the error path of berlin2_adc_probe();
    
    Fixes: 70f1937911ca ("iio: adc: add support for Berlin")
    Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
    Link: https://lore.kernel.org/r/20221129020316.191731-1-wangxiongfeng2@huawei.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18f8fd2716182011b143c76749dd536cbc9dadd7
Author: Dmitry Perchanov <dmitry.perchanov@intel.com>
Date:   Wed Jan 11 14:22:10 2023 +0200

    iio: hid: fix the retval in accel_3d_capture_sample
    
    commit f7b23d1c35d8b8de1425bdfccaefd01f3b7c9d1c upstream.
    
    Return value should be zero for success. This was forgotten for timestamp
    feature. Verified on RealSense cameras.
    
    Fixes: a96cd0f901ee ("iio: accel: hid-sensor-accel-3d: Add timestamp")
    Signed-off-by: Dmitry Perchanov <dmitry.perchanov@intel.com>
    Link: https://lore.kernel.org/r/a6dc426498221c81fa71045b41adf782ebd42136.camel@intel.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cc0bb6e47b574ef6cd009e74fadeebf780eba3c4
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Thu Feb 2 18:30:06 2023 +0100

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

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

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

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

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

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

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

commit dd920445650b407359b0419421bcafde4199fb74
Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Date:   Mon Jan 23 09:21:10 2023 -0800

    thermal: intel: int340x: Protect trip temperature from concurrent updates
    
    [ Upstream commit 6757a7abe47bcb12cb2d45661067e182424b0ee3 ]
    
    Trip temperatures are read using ACPI methods and stored in the memory
    during zone initializtion and when the firmware sends a notification for
    change. This trip temperature is returned when the thermal core calls via
    callback get_trip_temp().
    
    But it is possible that while updating the memory copy of the trips when
    the firmware sends a notification for change, thermal core is reading the
    trip temperature via the callback get_trip_temp(). This may return invalid
    trip temperature.
    
    To address this add a mutex to protect the invalid temperature reads in
    the callback get_trip_temp() and int340x_thermal_read_trips().
    
    Fixes: 5fbf7f27fa3d ("Thermal/int340x: Add common thermal zone handler")
    Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Cc: 5.0+ <stable@vger.kernel.org> # 5.0+
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cc8c1d931ac5b44baee9a754c0230c2523077273
Author: Hendrik Borghorst <hborghor@amazon.de>
Date:   Mon Nov 14 16:48:23 2022 +0000

    KVM: x86/vmx: Do not skip segment attributes if unusable bit is set
    
    [ Upstream commit a44b331614e6f7e63902ed7dff7adc8c85edd8bc ]
    
    When serializing and deserializing kvm_sregs, attributes of the segment
    descriptors are stored by user space. For unusable segments,
    vmx_segment_access_rights skips all attributes and sets them to 0.
    
    This means we zero out the DPL (Descriptor Privilege Level) for unusable
    entries.
    
    Unusable segments are - contrary to their name - usable in 64bit mode and
    are used by guests to for example create a linear map through the
    NULL selector.
    
    VMENTER checks if SS.DPL is correct depending on the CS segment type.
    For types 9 (Execute Only) and 11 (Execute Read), CS.DPL must be equal to
    SS.DPL [1].
    
    We have seen real world guests setting CS to a usable segment with DPL=3
    and SS to an unusable segment with DPL=3. Once we go through an sregs
    get/set cycle, SS.DPL turns to 0. This causes the virtual machine to crash
    reproducibly.
    
    This commit changes the attribute logic to always preserve attributes for
    unusable segments. According to [2] SS.DPL is always saved on VM exits,
    regardless of the unusable bit so user space applications should have saved
    the information on serialization correctly.
    
    [3] specifies that besides SS.DPL the rest of the attributes of the
    descriptors are undefined after VM entry if unusable bit is set. So, there
    should be no harm in setting them all to the previous state.
    
    [1] Intel SDM Vol 3C 26.3.1.2 Checks on Guest Segment Registers
    [2] Intel SDM Vol 3C 27.3.2 Saving Segment Registers and Descriptor-Table
    Registers
    [3] Intel SDM Vol 3C 26.3.2.2 Loading Guest Segment Registers and
    Descriptor-Table Registers
    
    Cc: Alexander Graf <graf@amazon.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Hendrik Borghorst <hborghor@amazon.de>
    Reviewed-by: Jim Mattson <jmattson@google.com>
    Reviewed-by: Alexander Graf <graf@amazon.com>
    Message-Id: <20221114164823.69555-1-hborghor@amazon.de>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a980cbd1579b38aba42fff81208bb8a0fbd8c984
Author: Sean Christopherson <seanjc@google.com>
Date:   Mon Dec 3 13:52:59 2018 -0800

    KVM: VMX: Move caching of MSR_IA32_XSS to hardware_setup()
    
    [ Upstream commit 71d9409e20934e16f2d2ea88f0d1fb9851a7da3b ]
    
    MSR_IA32_XSS has no relation to the VMCS whatsoever, it doesn't belong
    in setup_vmcs_config() and its reference to host_xss prevents moving
    setup_vmcs_config() to a dedicated file.
    
    Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Stable-dep-of: a44b331614e6 ("KVM: x86/vmx: Do not skip segment attributes if unusable bit is set")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8e7112eafec5bedadb62bb60ed24a92e74e2f781
Author: Sean Christopherson <seanjc@google.com>
Date:   Mon Dec 3 13:52:56 2018 -0800

    KVM: VMX: Move VMX specific files to a "vmx" subdirectory
    
    [ Upstream commit a821bab2d1ee869e04b218b198837bf07f2d27c1 ]
    
    ...to prepare for shattering vmx.c into multiple files without having
    to prepend "vmx_" to all new files.
    
    Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Stable-dep-of: a44b331614e6 ("KVM: x86/vmx: Do not skip segment attributes if unusable bit is set")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff1e51b8d02b4d0945cd5d6b367cec282d0f927c
Author: Krish Sadhukhan <krish.sadhukhan@oracle.com>
Date:   Thu Nov 1 01:21:58 2018 -0400

    nVMX x86: Check VMX-preemption timer controls on vmentry of L2 guests
    
    [ Upstream commit 14aa61d0a9eb3ddad06c3a0033f88b5fa7f05613 ]
    
    According to section "Checks on VMX Controls" in Intel SDM vol 3C, the
    following check needs to be enforced on vmentry of L2 guests:
    
        If the "activate VMX-preemption timer" VM-execution control is 0, the
        the "save VMX-preemption timer value" VM-exit control must also be 0.
    
    Signed-off-by: Krish Sadhukhan <krish.sadhukhan@oracle.com>
    Reviewed-by: Mihai Carabas <mihai.carabas@oracle.com>
    Reviewed-by: Liran Alon <liran.alon@oracle.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Stable-dep-of: a44b331614e6 ("KVM: x86/vmx: Do not skip segment attributes if unusable bit is set")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

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

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

commit 32863a2d5db62c4fa401ced61388d680421002d6
Author: Werner Sembach <wse@tuxedocomputers.com>
Date:   Wed Jun 29 17:38:52 2022 -0700

    Input: i8042 - add TUXEDO devices to i8042 quirk tables
    
    [ Upstream commit a6a87c36165e6791eeaed88025cde270536c3198 ]
    
    A lot of modern Clevo barebones have touchpad and/or keyboard issues after
    suspend fixable with nomux + reset + noloop + nopnp. Luckily, none of them
    have an external PS/2 port so this can safely be set for all of them.
    
    I'm not entirely sure if every device listed really needs all four quirks,
    but after testing and production use. No negative effects could be
    observed when setting all four.
    
    The list is quite massive as neither the TUXEDO nor the Clevo dmi strings
    have been very consistent historically. I tried to keep the list as short
    as possible without risking on missing an affected device.
    
    This is revision 3. The Clevo N150CU barebone is still removed as it might
    have problems with the fix and needs further investigations. The
    SchenkerTechnologiesGmbH System-/Board-Vendor string variations are
    added. This is now based in the quirk table refactor. This now also
    includes the additional noaux flag for the NS7xMU.
    
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220629112725.12922-5-wse@tuxedocomputers.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Stable-dep-of: 9c445d2637c9 ("Input: i8042 - add Clevo PCX0DX to i8042 quirk table")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6f9919a8abc8bc5e9f60a8a137d5e910318db6b0
Author: Werner Sembach <wse@tuxedocomputers.com>
Date:   Wed Jun 29 17:38:07 2022 -0700

    Input: i8042 - merge quirk tables
    
    [ Upstream commit ff946268a0813c35b790dfbe07c3bfaa7bfb869c ]
    
    Merge i8042 quirk tables to reduce code duplication for devices that need
    more than one quirk. Before every quirk had its own table with devices
    needing that quirk. If a new quirk needed to be added a new table had to
    be created. When a device needed multiple quirks, it appeared in multiple
    tables. Now only one table called i8042_dmi_quirk_table exists. In it every
    device has one entry and required quirks are coded in the .driver_data
    field of the struct dmi_system_id used by this table. Multiple quirks for
    one device can be applied by bitwise-or of the new SERIO_QUIRK_* defines.
    
    Also align quirkable options with command line parameters and make vendor
    wide quirks per device overwriteable on a per device basis. The first match
    is honored while following matches are ignored. So when a vendor wide quirk
    is defined in the table, a device can inserted before and therefore
    ignoring the vendor wide define.
    
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220629112725.12922-3-wse@tuxedocomputers.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Stable-dep-of: 9c445d2637c9 ("Input: i8042 - add Clevo PCX0DX to i8042 quirk table")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9779611aa134c70a1adf08a48b78a05bca165373
Author: Werner Sembach <wse@tuxedocomputers.com>
Date:   Wed Jun 29 17:34:42 2022 -0700

    Input: i8042 - move __initconst to fix code styling warning
    
    [ Upstream commit 95a9916c909f0b1d95e24b4232b4bc38ff755415 ]
    
    Move __intconst from before i8042_dmi_laptop_table[] to after it for
    consistent code styling.
    
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220629112725.12922-2-wse@tuxedocomputers.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Stable-dep-of: 9c445d2637c9 ("Input: i8042 - add Clevo PCX0DX to i8042 quirk table")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

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

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

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

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

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

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

commit 329dc4e76f7a0fa9f46e9cd5ac12d98a0e370c42
Author: Wesley Cheng <wcheng@codeaurora.org>
Date:   Sun Jul 4 02:33:12 2021 +0100

    usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API
    
    [ Upstream commit 8e6cb5d27e8246d9c986ec162d066a502d2b602b ]
    
    There was an extra character in the dwc3_qcom_vbus_override_enable()
    function.  Removed the extra character.
    
    Signed-off-by: Wesley Cheng <wcheng@codeaurora.org>
    Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20210704013314.200951-2-bryan.odonoghue@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: eb320f76e31d ("usb: dwc3: qcom: enable vbus override when in OTG dr-mode")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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