commit 3783e64fee4a624f3ed1d7d6ae630890922edb7b
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Oct 15 07:55:57 2022 +0200

    Linux 5.10.148
    
    Link: https://lore.kernel.org/r/20221013175147.337501757@linuxfoundation.org
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Slade Watkins <srw@sladewatkins.net>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Rudi Heitbaum <rudi@heitbaum.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0df206bdc6204b758585bbe159a55e23e7917b13
Author: Shunsuke Mie <mie@igel.co.jp>
Date:   Wed Sep 7 11:01:00 2022 +0900

    misc: pci_endpoint_test: Fix pci_endpoint_test_{copy,write,read}() panic
    
    commit 8e30538eca016de8e252bef174beadecd64239f0 upstream.
    
    The dma_map_single() doesn't permit zero length mapping. It causes a follow
    panic.
    
    A panic was reported on arm64:
    
    [   60.137988] ------------[ cut here ]------------
    [   60.142630] kernel BUG at kernel/dma/swiotlb.c:624!
    [   60.147508] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
    [   60.152992] Modules linked in: dw_hdmi_cec crct10dif_ce simple_bridge rcar_fdp1 vsp1 rcar_vin videobuf2_vmalloc rcar_csi2 v4l
    2_mem2mem videobuf2_dma_contig videobuf2_memops pci_endpoint_test videobuf2_v4l2 videobuf2_common rcar_fcp v4l2_fwnode v4l2_asyn
    c videodev mc gpio_bd9571mwv max9611 pwm_rcar ccree at24 authenc libdes phy_rcar_gen3_usb3 usb_dmac display_connector pwm_bl
    [   60.186252] CPU: 0 PID: 508 Comm: pcitest Not tainted 6.0.0-rc1rpci-dev+ #237
    [   60.193387] Hardware name: Renesas Salvator-X 2nd version board based on r8a77951 (DT)
    [   60.201302] pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [   60.208263] pc : swiotlb_tbl_map_single+0x2c0/0x590
    [   60.213149] lr : swiotlb_map+0x88/0x1f0
    [   60.216982] sp : ffff80000a883bc0
    [   60.220292] x29: ffff80000a883bc0 x28: 0000000000000000 x27: 0000000000000000
    [   60.227430] x26: 0000000000000000 x25: ffff0004c0da20d0 x24: ffff80000a1f77c0
    [   60.234567] x23: 0000000000000002 x22: 0001000040000010 x21: 000000007a000000
    [   60.241703] x20: 0000000000200000 x19: 0000000000000000 x18: 0000000000000000
    [   60.248840] x17: 0000000000000000 x16: 0000000000000000 x15: ffff0006ff7b9180
    [   60.255977] x14: ffff0006ff7b9180 x13: 0000000000000000 x12: 0000000000000000
    [   60.263113] x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000
    [   60.270249] x8 : 0001000000000010 x7 : ffff0004c6754b20 x6 : 0000000000000000
    [   60.277385] x5 : ffff0004c0da2090 x4 : 0000000000000000 x3 : 0000000000000001
    [   60.284521] x2 : 0000000040000000 x1 : 0000000000000000 x0 : 0000000040000010
    [   60.291658] Call trace:
    [   60.294100]  swiotlb_tbl_map_single+0x2c0/0x590
    [   60.298629]  swiotlb_map+0x88/0x1f0
    [   60.302115]  dma_map_page_attrs+0x188/0x230
    [   60.306299]  pci_endpoint_test_ioctl+0x5e4/0xd90 [pci_endpoint_test]
    [   60.312660]  __arm64_sys_ioctl+0xa8/0xf0
    [   60.316583]  invoke_syscall+0x44/0x108
    [   60.320334]  el0_svc_common.constprop.0+0xcc/0xf0
    [   60.325038]  do_el0_svc+0x2c/0xb8
    [   60.328351]  el0_svc+0x2c/0x88
    [   60.331406]  el0t_64_sync_handler+0xb8/0xc0
    [   60.335587]  el0t_64_sync+0x18c/0x190
    [   60.339251] Code: 52800013 d2e00414 35fff45c d503201f (d4210000)
    [   60.345344] ---[ end trace 0000000000000000 ]---
    
    To fix it, this patch adds a checking the payload length if it is zero.
    
    Fixes: 343dc693f7b7 ("misc: pci_endpoint_test: Prevent some integer overflows")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Shunsuke Mie <mie@igel.co.jp>
    Link: https://lore.kernel.org/r/20220907020100.122588-2-mie@igel.co.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40a29e58f6394963829bb1a26ff3bc9ef6c3aae5
Author: Shunsuke Mie <mie@igel.co.jp>
Date:   Wed Sep 7 11:00:59 2022 +0900

    misc: pci_endpoint_test: Aggregate params checking for xfer
    
    commit 3e42deaac06567c7e86d287c305ccda24db4ae3d upstream.
    
    Each transfer test functions have same parameter checking code. This patch
    unites those to an introduced function.
    
    Signed-off-by: Shunsuke Mie <mie@igel.co.jp>
    Cc: stable <stable@kernel.org>
    Link: https://lore.kernel.org/r/20220907020100.122588-1-mie@igel.co.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

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

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

commit b2b9386667e613d449f38d37517e67b667063283
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Oct 5 23:11:43 2022 +0200

    wifi: cfg80211: update hidden BSSes to avoid WARN_ON
    
    commit c90b93b5b782891ebfda49d4e5da36632fefd5d1 upstream.
    
    When updating beacon elements in a non-transmitted BSS,
    also update the hidden sub-entries to the same beacon
    elements, so that a future update through other paths
    won't trigger a WARN_ON().
    
    The warning is triggered because the beacon elements in
    the hidden BSSes that are children of the BSS should
    always be the same as in the parent.
    
    Reported-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
    Tested-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
    Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58c0306d0bcd5f541714bea8765d23111c9af68a
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Oct 5 21:24:10 2022 +0200

    wifi: mac80211: fix crash in beacon protection for P2P-device
    
    commit b2d03cabe2b2e150ff5a381731ea0355459be09f upstream.
    
    If beacon protection is active but the beacon cannot be
    decrypted or is otherwise malformed, we call the cfg80211
    API to report this to userspace, but that uses a netdev
    pointer, which isn't present for P2P-Device. Fix this to
    call it only conditionally to ensure cfg80211 won't crash
    in the case of P2P-Device.
    
    This fixes CVE-2022-42722.
    
    Reported-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
    Fixes: 9eaf183af741 ("mac80211: Report beacon protection failures to user space")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit b0e5c5deb7880be5b8a459d584e13e1f9879d307
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Sat Oct 1 00:01:44 2022 +0200

    wifi: cfg80211: avoid nontransmitted BSS list corruption
    
    commit bcca852027e5878aec911a347407ecc88d6fff7f upstream.
    
    If a non-transmitted BSS shares enough information (both
    SSID and BSSID!) with another non-transmitted BSS of a
    different AP, then we can find and update it, and then
    try to add it to the non-transmitted BSS list. We do a
    search for it on the transmitted BSS, but if it's not
    there (but belongs to another transmitted BSS), the list
    gets corrupted.
    
    Since this is an erroneous situation, simply fail the
    list insertion in this case and free the non-transmitted
    BSS.
    
    This fixes CVE-2022-42721.
    
    Reported-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
    Tested-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
    Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b944845031356f3e0c0f6695f9252a8ddc8b02f
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Sep 30 23:44:23 2022 +0200

    wifi: cfg80211: fix BSS refcounting bugs
    
    commit 0b7808818cb9df6680f98996b8e9a439fa7bcc2f upstream.
    
    There are multiple refcounting bugs related to multi-BSSID:
     - In bss_ref_get(), if the BSS has a hidden_beacon_bss, then
       the bss pointer is overwritten before checking for the
       transmitted BSS, which is clearly wrong. Fix this by using
       the bss_from_pub() macro.
    
     - In cfg80211_bss_update() we copy the transmitted_bss pointer
       from tmp into new, but then if we release new, we'll unref
       it erroneously. We already set the pointer and ref it, but
       need to NULL it since it was copied from the tmp data.
    
     - In cfg80211_inform_single_bss_data(), if adding to the non-
       transmitted list fails, we unlink the BSS and yet still we
       return it, but this results in returning an entry without
       a reference. We shouldn't return it anyway if it was broken
       enough to not get added there.
    
    This fixes CVE-2022-42720.
    
    Reported-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
    Tested-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
    Fixes: a3584f56de1c ("cfg80211: Properly track transmitting and non-transmitting BSS")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6144c97f96f5cc3ede984b224fdf8dde658cfcad
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Sep 29 21:50:44 2022 +0200

    wifi: cfg80211: ensure length byte is present before access
    
    commit 567e14e39e8f8c6997a1378bc3be615afca86063 upstream.
    
    When iterating the elements here, ensure the length byte is
    present before checking it to see if the entire element will
    fit into the buffer.
    
    Longer term, we should rewrite this code using the type-safe
    element iteration macros that check all of this.
    
    Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
    Reported-by: Soenke Huster <shuster@seemoo.tu-darmstadt.de>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7aa7fd10eba32835de3dfa7f1691a90043faa73
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Sep 28 22:01:37 2022 +0200

    wifi: cfg80211/mac80211: reject bad MBSSID elements
    
    commit 8f033d2becc24aa6bfd2a5c104407963560caabc upstream.
    
    Per spec, the maximum value for the MaxBSSID ('n') indicator is 8,
    and the minimum is 1 since a multiple BSSID set with just one BSSID
    doesn't make sense (the # of BSSIDs is limited by 2^n).
    
    Limit this in the parsing in both cfg80211 and mac80211, rejecting
    any elements with an invalid value.
    
    This fixes potentially bad shifts in the processing of these inside
    the cfg80211_gen_new_bssid() function later.
    
    I found this during the investigation of CVE-2022-41674 fixed by the
    previous patch.
    
    Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
    Fixes: 78ac51f81532 ("mac80211: support multi-bssid")
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a6408e0b694c1bdd8ae7dd0464a86b98518145ec
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Sep 28 21:56:15 2022 +0200

    wifi: cfg80211: fix u8 overflow in cfg80211_update_notlisted_nontrans()
    
    commit aebe9f4639b13a1f4e9a6b42cdd2e38c617b442d upstream.
    
    In the copy code of the elements, we do the following calculation
    to reach the end of the MBSSID element:
    
            /* copy the IEs after MBSSID */
            cpy_len = mbssid[1] + 2;
    
    This looks fine, however, cpy_len is a u8, the same as mbssid[1],
    so the addition of two can overflow. In this case the subsequent
    memcpy() will overflow the allocated buffer, since it copies 256
    bytes too much due to the way the allocation and memcpy() sizes
    are calculated.
    
    Fix this by using size_t for the cpy_len variable.
    
    This fixes CVE-2022-41674.
    
    Reported-by: Soenke Huster <shuster@seemoo.tu-darmstadt.de>
    Tested-by: Soenke Huster <shuster@seemoo.tu-darmstadt.de>
    Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

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

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

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

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

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

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

commit 438994b8cd6a39937388ddff827961cf8109bf02
Author: Orlando Chamberlain <redecorating@protonmail.com>
Date:   Thu Sep 29 11:49:56 2022 +0000

    efi: Correct Macmini DMI match in uefi cert quirk
    
    commit bab715bdaa9ebf28d99a6d1efb2704a30125e96d upstream.
    
    It turns out Apple doesn't capitalise the "mini" in "Macmini" in DMI, which
    is inconsistent with other model line names.
    
    Correct the capitalisation of Macmini in the quirk for skipping loading
    platform certs on T2 Macs.
    
    Currently users get:
    
    ------------[ cut here ]------------
    [Firmware Bug]: Page fault caused by firmware at PA: 0xffffa30640054000
    WARNING: CPU: 1 PID: 8 at arch/x86/platform/efi/quirks.c:735 efi_crash_gracefully_on_page_fault+0x55/0xe0
    Modules linked in:
    CPU: 1 PID: 8 Comm: kworker/u12:0 Not tainted 5.18.14-arch1-2-t2 #1 4535eb3fc40fd08edab32a509fbf4c9bc52d111e
    Hardware name: Apple Inc. Macmini8,1/Mac-7BA5B2DFE22DDD8C, BIOS 1731.120.10.0.0 (iBridge: 19.16.15071.0.0,0) 04/24/2022
    Workqueue: efi_rts_wq efi_call_rts
    ...
    ---[ end trace 0000000000000000 ]---
    efi: Froze efi_rts_wq and disabled EFI Runtime Services
    integrity: Couldn't get size: 0x8000000000000015
    integrity: MODSIGN: Couldn't get UEFI db list
    efi: EFI Runtime Services are disabled!
    integrity: Couldn't get size: 0x8000000000000015
    integrity: Couldn't get UEFI dbx list
    
    Fixes: 155ca952c7ca ("efi: Do not import certificates from UEFI Secure Boot for T2 Macs")
    Cc: stable@vger.kernel.org
    Cc: Aditya Garg <gargaditya08@live.com>
    Tested-by: Samuel Jiang <chyishian.jiang@gmail.com>
    Signed-off-by: Orlando Chamberlain <redecorating@protonmail.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

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

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

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

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

commit c04b67c54472107d1b0df1463d2088533dfd7d8b
Author: Sasha Levin <sashal@kernel.org>
Date:   Tue Oct 11 08:58:00 2022 -0400

    Revert "clk: ti: Stop using legacy clkctrl names for omap4 and 5"
    
    This reverts commit 67c830a6de835a36b4e19fe4d968dbaf8dc4e9c6.
    
    Which was upstream commit 255584b138343d4a28c6d25bd82d04b09460d672.
    
    Reported as causing boot failures.
    
    Signed-off-by: Sasha Levin <sashal@kernel.org>

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

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

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

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

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

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

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

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

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

    mmc: core: Replace with already defined values for readability
    
    [ Upstream commit e427266460826bea21b70f9b2bb29decfb2c2620 ]
    
    SD_ROCR_S18A is already defined and is used to check the rocr value, so
    let's replace with already defined values for readability.
    
    Signed-off-by: ChanWoo Lee <cw9316.lee@samsung.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20220706004840.24812-1-cw9316.lee@samsung.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Stable-dep-of: e9233917a7e5 ("mmc: core: Terminate infinite loop in SD-UHS voltage switch")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4f32f266b108fd7e6eb4f42bd7c87bad393e30cd
Author: zhikzhai <zhikai.zhai@amd.com>
Date:   Fri Aug 26 19:44:50 2022 +0800

    drm/amd/display: skip audio setup when audio stream is enabled
    
    [ Upstream commit 65fbfb02c2734cacffec5e3f492e1b4f1dabcf98 ]
    
    [why]
    We have minimal pipe split transition method to avoid pipe
    allocation outage.However, this method will invoke audio setup
    which cause audio output stuck once pipe reallocate.
    
    [how]
    skip audio setup for pipelines which audio stream has been enabled
    
    Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
    Acked-by: Wayne Lin <wayne.lin@amd.com>
    Signed-off-by: zhikzhai <zhikai.zhai@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a6fe179ba03f621fb308b8c9542aa77b83796542
Author: Hugo Hu <hugo.hu@amd.com>
Date:   Thu Sep 1 10:08:35 2022 +0800

    drm/amd/display: update gamut remap if plane has changed
    
    [ Upstream commit 52bb21499cf54fa65b56d97cd0d68579c90207dd ]
    
    [Why]
    The desktop plane and full-screen game plane may have different
    gamut remap coefficients, if switching between desktop and
    full-screen game without updating the gamut remap will cause
    incorrect color.
    
    [How]
    Update gamut remap if planes change.
    
    Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
    Acked-by: Wayne Lin <wayne.lin@amd.com>
    Signed-off-by: Hugo Hu <hugo.hu@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 73e1b27b58a6f5aa5a4955795a57d1613e58a61d
Author: Jianglei Nie <niejianglei2021@163.com>
Date:   Wed Sep 14 09:42:38 2022 +0800

    net: atlantic: fix potential memory leak in aq_ndev_close()
    
    [ Upstream commit 65e5d27df61283e5390f04b09dc79cd832f95607 ]
    
    If aq_nic_stop() fails, aq_ndev_close() returns err without calling
    aq_nic_deinit() to release the relevant memory and resource, which
    will lead to a memory leak.
    
    We can fix it by deleting the if condition judgment and goto statement to
    call aq_nic_deinit() directly after aq_nic_stop() to fix the memory leak.
    
    Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3287f0d7271052921b1436062c371ba4341dadd5
Author: David Gow <davidgow@google.com>
Date:   Wed Sep 21 14:48:55 2022 +0800

    arch: um: Mark the stack non-executable to fix a binutils warning
    
    [ Upstream commit bd71558d585ac61cfd799db7f25e78dca404dd7a ]
    
    Since binutils 2.39, ld will print a warning if any stack section is
    executable, which is the default for stack sections on files without a
    .note.GNU-stack section.
    
    This was fixed for x86 in commit ffcf9c5700e4 ("x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments"),
    but remained broken for UML, resulting in several warnings:
    
    /usr/bin/ld: warning: arch/x86/um/vdso/vdso.o: missing .note.GNU-stack section implies executable stack
    /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
    /usr/bin/ld: warning: .tmp_vmlinux.kallsyms1 has a LOAD segment with RWX permissions
    /usr/bin/ld: warning: .tmp_vmlinux.kallsyms1.o: missing .note.GNU-stack section implies executable stack
    /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
    /usr/bin/ld: warning: .tmp_vmlinux.kallsyms2 has a LOAD segment with RWX permissions
    /usr/bin/ld: warning: .tmp_vmlinux.kallsyms2.o: missing .note.GNU-stack section implies executable stack
    /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
    /usr/bin/ld: warning: vmlinux has a LOAD segment with RWX permissions
    
    Link both the VDSO and vmlinux with -z noexecstack, fixing the warnings
    about .note.GNU-stack sections. In addition, pass --no-warn-rwx-segments
    to dodge the remaining warnings about LOAD segments with RWX permissions
    in the kallsyms objects. (Note that this flag is apparently not
    available on lld, so hide it behind a test for BFD, which is what the
    x86 patch does.)
    
    Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ffcf9c5700e49c0aee42dcba9a12ba21338e8136
    Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
    Signed-off-by: David Gow <davidgow@google.com>
    Reviewed-by: Lukas Straub <lukasstraub2@web.de>
    Tested-by: Lukas Straub <lukasstraub2@web.de>
    Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

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

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

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

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

commit 6d7a47e84913a962e88a44a53ac162e6f729c692
Author: Jaroslav Kysela <perex@perex.cz>
Date:   Tue Sep 13 09:02:16 2022 +0200

    ALSA: hda/hdmi: Fix the converter reuse for the silent stream
    
    [ Upstream commit 5f80d6bd2b01de4cafac3302f58456bf860322fc ]
    
    When the user space pcm stream uses the silent stream converter,
    it is no longer allocated for the silent stream. Clear the appropriate
    flag in the hdmi_pcm_open() function. The silent stream setup may
    be applied in hdmi_pcm_close() (and the error path - open fcn) again.
    
    If the flag is not cleared, the reuse conditions for the silent
    stream converter in hdmi_choose_cvt() may improperly share
    this converter.
    
    Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Signed-off-by: Jaroslav Kysela <perex@perex.cz>
    Link: https://lore.kernel.org/r/20220913070216.3233974-1-perex@perex.cz
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

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

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

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

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

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

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

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

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

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

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

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

    dmaengine: xilinx_dma: Fix devm_platform_ioremap_resource error handling
    
    [ Upstream commit 91df7751eb890e970afc08f50b8f0fa5ea39e03d ]
    
    Add missing cleanup in devm_platform_ioremap_resource().
    When probe fails remove dma channel resources and disable clocks in
    accordance with the order of resources allocated .
    
    Signed-off-by: Swati Agarwal <swati.agarwal@xilinx.com>
    Link: https://lore.kernel.org/r/20220817061125.4720-2-swati.agarwal@xilinx.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

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

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

commit 6df7c6d141ec3643901f67d2537203cf073d358f
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Mon Aug 2 13:23:20 2021 -0700

    compiler_attributes.h: move __compiletime_{error|warning}
    
    commit b83a908498d68fafca931e1276e145b339cac5fb upstream.
    
    Clang 14 will add support for __attribute__((__error__(""))) and
    __attribute__((__warning__(""))). To make use of these in
    __compiletime_error and __compiletime_warning (as used by BUILD_BUG and
    friends) for newer clang and detect/fallback for older versions of
    clang, move these to compiler_attributes.h and guard them with
    __has_attribute preprocessor guards.
    
    Link: https://reviews.llvm.org/D106030
    Link: https://bugs.llvm.org/show_bug.cgi?id=16428
    Link: https://github.com/ClangBuiltLinux/linux/issues/1173
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    [Reworded, landed in Clang 14]
    Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit acf05d61d39b3d0cae74cd5707cfb743975d247e
Author: Yang Shi <shy828301@gmail.com>
Date:   Wed Sep 7 11:01:44 2022 -0700

    powerpc/64s/radix: don't need to broadcast IPI for radix pmd collapse flush
    
    commit bedf03416913d88c796288f9dca109a53608c745 upstream.
    
    The IPI broadcast is used to serialize against fast-GUP, but fast-GUP will
    move to use RCU instead of disabling local interrupts in fast-GUP.  Using
    an IPI is the old-styled way of serializing against fast-GUP although it
    still works as expected now.
    
    And fast-GUP now fixed the potential race with THP collapse by checking
    whether PMD is changed or not.  So IPI broadcast in radix pmd collapse
    flush is not necessary anymore.  But it is still needed for hash TLB.
    
    Link: https://lkml.kernel.org/r/20220907180144.555485-2-shy828301@gmail.com
    Suggested-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Signed-off-by: Yang Shi <shy828301@gmail.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Acked-by: Peter Xu <peterx@redhat.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Nicholas Piggin <npiggin@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 377c60dd32d3289788bdb3d8840382f79d42139b
Author: Yang Shi <shy828301@gmail.com>
Date:   Wed Sep 7 11:01:43 2022 -0700

    mm: gup: fix the fast GUP race against THP collapse
    
    commit 70cbc3cc78a997d8247b50389d37c4e1736019da upstream.
    
    Since general RCU GUP fast was introduced in commit 2667f50e8b81 ("mm:
    introduce a general RCU get_user_pages_fast()"), a TLB flush is no longer
    sufficient to handle concurrent GUP-fast in all cases, it only handles
    traditional IPI-based GUP-fast correctly.  On architectures that send an
    IPI broadcast on TLB flush, it works as expected.  But on the
    architectures that do not use IPI to broadcast TLB flush, it may have the
    below race:
    
       CPU A                                          CPU B
    THP collapse                                     fast GUP
                                                  gup_pmd_range() <-- see valid pmd
                                                      gup_pte_range() <-- work on pte
    pmdp_collapse_flush() <-- clear pmd and flush
    __collapse_huge_page_isolate()
        check page pinned <-- before GUP bump refcount
                                                          pin the page
                                                          check PTE <-- no change
    __collapse_huge_page_copy()
        copy data to huge page
        ptep_clear()
    install huge pmd for the huge page
                                                          return the stale page
    discard the stale page
    
    The race can be fixed by checking whether PMD is changed or not after
    taking the page pin in fast GUP, just like what it does for PTE.  If the
    PMD is changed it means there may be parallel THP collapse, so GUP should
    back off.
    
    Also update the stale comment about serializing against fast GUP in
    khugepaged.
    
    Link: https://lkml.kernel.org/r/20220907180144.555485-1-shy828301@gmail.com
    Fixes: 2667f50e8b81 ("mm: introduce a general RCU get_user_pages_fast()")
    Acked-by: David Hildenbrand <david@redhat.com>
    Acked-by: Peter Xu <peterx@redhat.com>
    Signed-off-by: Yang Shi <shy828301@gmail.com>
    Reviewed-by: John Hubbard <jhubbard@nvidia.com>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fce793a056c604b41a298317cf704dae255f1b36
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Sep 5 08:07:14 2022 +0200

    ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC
    
    commit 8423f0b6d513b259fdab9c9bf4aaa6188d054c2d upstream.
    
    There is a small race window at snd_pcm_oss_sync() that is called from
    OSS PCM SNDCTL_DSP_SYNC ioctl; namely the function calls
    snd_pcm_oss_make_ready() at first, then takes the params_lock mutex
    for the rest.  When the stream is set up again by another thread
    between them, it leads to inconsistency, and may result in unexpected
    results such as NULL dereference of OSS buffer as a fuzzer spotted
    recently.
    
    The fix is simply to cover snd_pcm_oss_make_ready() call into the same
    params_lock mutex with snd_pcm_oss_make_ready_locked() variant.
    
    Reported-and-tested-by: butt3rflyh4ck <butterflyhuangxx@gmail.com>
    Reviewed-by: Jaroslav Kysela <perex@perex.cz>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/CAFcO6XN7JDM4xSXGhtusQfS2mSBcx50VJKwQpCq=WeLt57aaZA@mail.gmail.com
    Link: https://lore.kernel.org/r/20220905060714.22549-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Zubin Mithra <zsm@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 132590d776e26491fa85af727f7980ac24563337
Author: Jalal Mostafa <jalal.a.mostapha@gmail.com>
Date:   Wed Sep 21 13:57:01 2022 +0000

    xsk: Inherit need_wakeup flag for shared sockets
    
    commit 60240bc26114543fcbfcd8a28466e67e77b20388 upstream.
    
    The flag for need_wakeup is not set for xsks with `XDP_SHARED_UMEM`
    flag and of different queue ids and/or devices. They should inherit
    the flag from the first socket buffer pool since no flags can be
    specified once `XDP_SHARED_UMEM` is specified.
    
    Fixes: b5aea28dca134 ("xsk: Add shared umem support between queue ids")
    Signed-off-by: Jalal Mostafa <jalal.a.mostapha@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Magnus Karlsson <magnus.karlsson@intel.com>
    Link: https://lore.kernel.org/bpf/20220921135701.10199-1-jalal.a.mostapha@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit beffc38dc6b208dd32957299e4f83a2f5731d0f9
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Tue Aug 17 14:58:33 2021 +0300

    perf tools: Fixup get_current_dir_name() compilation
    
    commit 128dbd78bd673f9edbc4413072b23efb6657feb0 upstream.
    
    strdup() prototype doesn't live in stdlib.h .
    
    Add limits.h for PATH_MAX definition as well.
    
    This fixes the build on Android.
    
    Signed-off-by: Alexey Dobriyan (SK hynix) <adobriyan@gmail.com>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/YRukaQbrgDWhiwGr@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

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

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

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

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

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

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

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

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

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

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

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

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