commit 3e205b99cc35777195fea391cdfe25bd537589b3
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Dec 8 08:43:26 2023 +0100

    Linux 4.19.301
    
    Link: https://lore.kernel.org/r/20231205031517.859409664@linuxfoundation.org
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/20231205183236.587197010@linuxfoundation.org
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8b6dca8f3a7a0b89e9dde91ae86897bcb23647a
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Fri Nov 3 10:47:18 2023 +0200

    mmc: block: Retry commands in CQE error recovery
    
    [ Upstream commit 8155d1fa3a747baad5caff5f8303321d68ddd48c ]
    
    It is important that MMC_CMDQ_TASK_MGMT command to discard the queue is
    successful because otherwise a subsequent reset might fail to flush the
    cache first.  Retry it and the previous STOP command.
    
    Fixes: 72a5af554df8 ("mmc: core: Add support for handling CQE requests")
    Cc: stable@vger.kernel.org
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Link: https://lore.kernel.org/r/20231103084720.6886-5-adrian.hunter@intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 33805cd05acf0042f526a08b1e9810dd3f8ccfd6
Author: Zheng Yongjun <zhengyongjun3@huawei.com>
Date:   Wed Dec 16 21:17:37 2020 +0800

    mmc: core: convert comma to semicolon
    
    [ Upstream commit 6b1dc6229aecbcb45e8901576684a8c09e25ad7b ]
    
    Replace a comma between expression statements by a semicolon.
    
    Signed-off-by: Zheng Yongjun <zhengyongjun3@huawei.com>
    Link: https://lore.kernel.org/r/20201216131737.14883-1-zhengyongjun3@huawei.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Stable-dep-of: 8155d1fa3a74 ("mmc: block: Retry commands in CQE error recovery")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7e2d70c977a0ebecd7949582ddd95cfe4b102d84
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Fri Nov 3 10:47:20 2023 +0200

    mmc: cqhci: Fix task clearing in CQE error recovery
    
    [ Upstream commit 1de1b77982e1a1df9707cb11f9b1789e6b8919d4 ]
    
    If a task completion notification (TCN) is received when there is no
    outstanding task, the cqhci driver issues a "spurious TCN" warning. This
    was observed to happen right after CQE error recovery.
    
    When an error interrupt is received the driver runs recovery logic.
    It halts the controller, clears all pending tasks, and then re-enables
    it. On some platforms, like Intel Jasper Lake, a stale task completion
    event was observed, regardless of the CQHCI_CLEAR_ALL_TASKS bit being set.
    
    This results in either:
    a) Spurious TC completion event for an empty slot.
    b) Corrupted data being passed up the stack, as a result of premature
       completion for a newly added task.
    
    Rather than add a quirk for affected controllers, ensure tasks are cleared
    by toggling CQHCI_ENABLE, which would happen anyway if
    cqhci_clear_all_tasks() timed out. This is simpler and should be safe and
    effective for all controllers.
    
    Fixes: a4080225f51d ("mmc: cqhci: support for command queue enabled host")
    Cc: stable@vger.kernel.org
    Reported-by: Kornel Dulęba <korneld@chromium.org>
    Tested-by: Kornel Dulęba <korneld@chromium.org>
    Co-developed-by: Kornel Dulęba <korneld@chromium.org>
    Signed-off-by: Kornel Dulęba <korneld@chromium.org>
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Link: https://lore.kernel.org/r/20231103084720.6886-7-adrian.hunter@intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e9b5ab323090b23dc2eb5e975d0a912f9021715
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Fri Nov 3 10:47:19 2023 +0200

    mmc: cqhci: Warn of halt or task clear failure
    
    [ Upstream commit 35597bdb04ec27ef3b1cea007dc69f8ff5df75a5 ]
    
    A correctly operating controller should successfully halt and clear tasks.
    Failure may result in errors elsewhere, so promote messages from debug to
    warnings.
    
    Fixes: a4080225f51d ("mmc: cqhci: support for command queue enabled host")
    Cc: stable@vger.kernel.org
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Link: https://lore.kernel.org/r/20231103084720.6886-6-adrian.hunter@intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6f9082c718557d22fdaa5b59875a486adf5f3261
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Fri Nov 3 10:47:16 2023 +0200

    mmc: cqhci: Increase recovery halt timeout
    
    [ Upstream commit b578d5d18e929aa7c007a98cce32657145dde219 ]
    
    Failing to halt complicates the recovery. Additionally, unless the card or
    controller are stuck, which is expected to be very rare, then the halt
    should succeed, so it is better to wait. Set a large timeout.
    
    Fixes: a4080225f51d ("mmc: cqhci: support for command queue enabled host")
    Cc: stable@vger.kernel.org
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Link: https://lore.kernel.org/r/20231103084720.6886-3-adrian.hunter@intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 212da1ac3ab3613ad03d161661742a74707e9e68
Author: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Date:   Wed Nov 22 14:41:13 2023 +0100

    cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily
    
    [ Upstream commit 2e4e0984c7d696cc74cf2fd7e7f62997f0e9ebe6 ]
    
    For a 900MHz i.MX6ULL CPU the 792MHz OPP is disabled. There is no
    convincing reason to disable this OPP. If a CPU can run at 900MHz,
    it should also be able to cope with 792MHz. Looking at the voltage
    level of 792MHz in [1] (page 24, table 10. "Operating Ranges") the
    current defined OPP is above the minimum. So the voltage level
    shouldn't be a problem. However in [2] (page 24, table 10.
    "Operating Ranges"), it is not mentioned that 792MHz OPP isn't
    allowed. Change it to only disable 792MHz OPP for i.MX6ULL types
    below 792 MHz.
    
    [1] https://www.nxp.com/docs/en/data-sheet/IMX6ULLIEC.pdf
    [2] https://www.nxp.com/docs/en/data-sheet/IMX6ULLCEC.pdf
    
    Fixes: 0aa9abd4c212 ("cpufreq: imx6q: check speed grades for i.MX6ULL")
    Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
    Reviewed-by: Marek Vasut <marex@denx.de>
    Reviewed-by: Fabio Estevam <festevam@denx.de>
    [ Viresh: Edited subject ]
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 46ddcc755f8868369de06bf9cead721b00c7fecf
Author: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Date:   Fri May 12 17:07:11 2023 +0200

    cpufreq: imx6q: don't warn for disabling a non-existing frequency
    
    [ Upstream commit 11a3b0ac33d95aa84be426e801f800997262a225 ]
    
    It is confusing if a warning is given for disabling a non-existent
    frequency of the operating performance points (OPP). In this case
    the function dev_pm_opp_disable() returns -ENODEV. Check the return
    value and avoid the output of a warning in this case. Avoid code
    duplication by using a separate function.
    
    Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
    [ Viresh : Updated commit subject ]
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Stable-dep-of: 2e4e0984c7d6 ("cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 904f9c14654d3f326ae4c99a842fa5bae3e89a0d
Author: Mimi Zohar <zohar@linux.ibm.com>
Date:   Wed Oct 18 14:47:02 2023 -0400

    ima: detect changes to the backing overlay file
    
    [ Upstream commit b836c4d29f2744200b2af41e14bf50758dddc818 ]
    
    Commit 18b44bc5a672 ("ovl: Always reevaluate the file signature for
    IMA") forced signature re-evaulation on every file access.
    
    Instead of always re-evaluating the file's integrity, detect a change
    to the backing file, by comparing the cached file metadata with the
    backing file's metadata.  Verifying just the i_version has not changed
    is insufficient.  In addition save and compare the i_ino and s_dev
    as well.
    
    Reviewed-by: Amir Goldstein <amir73il@gmail.com>
    Tested-by: Eric Snowberg <eric.snowberg@oracle.com>
    Tested-by: Raul E Rangel <rrangel@chromium.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 410fb31d899a19d3514aa9a8fa8b17bac5f5549a
Author: Konstantin Khlebnikov <koct9i@gmail.com>
Date:   Thu Apr 9 11:29:47 2020 +0300

    ovl: skip overlayfs superblocks at global sync
    
    [ Upstream commit 32b1924b210a70dcacdf65abd687c5ef86a67541 ]
    
    Stacked filesystems like overlayfs has no own writeback, but they have to
    forward syncfs() requests to backend for keeping data integrity.
    
    During global sync() each overlayfs instance calls method ->sync_fs() for
    backend although it itself is in global list of superblocks too.  As a
    result one syscall sync() could write one superblock several times and send
    multiple disk barriers.
    
    This patch adds flag SB_I_SKIP_SYNC into sb->sb_iflags to avoid that.
    
    Reported-by: Dmitry Monakhov <dmtrmonakhov@yandex-team.ru>
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Reviewed-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Stable-dep-of: b836c4d29f27 ("ima: detect changes to the backing overlay file")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 04e3ec9328b6cbdacc4391b328b2bb6c9e535158
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Thu Oct 5 14:15:58 2023 +0300

    ima: annotate iint mutex to avoid lockdep false positive warnings
    
    [ Upstream commit e044374a8a0a99e46f4e6d6751d3042b6d9cc12e ]
    
    It is not clear that IMA should be nested at all, but as long is it
    measures files both on overlayfs and on underlying fs, we need to
    annotate the iint mutex to avoid lockdep false positives related to
    IMA + overlayfs, same as overlayfs annotates the inode mutex.
    
    Reported-and-tested-by: syzbot+b42fe626038981fb7bfa@syzkaller.appspotmail.com
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4eb5dc3b8cbc889869e400001d5264d9234efd12
Author: Helge Deller <deller@gmx.de>
Date:   Fri Oct 27 13:36:48 2023 +0200

    fbdev: stifb: Make the STI next font pointer a 32-bit signed offset
    
    [ Upstream commit 8a32aa17c1cd48df1ddaa78e45abcb8c7a2220d6 ]
    
    The pointer to the next STI font is actually a signed 32-bit
    offset. With this change the 64-bit kernel will correctly subract
    the (signed 32-bit) offset instead of adding a (unsigned 32-bit)
    offset. It has no effect on 32-bit kernels.
    
    This fixes the stifb driver with a 64-bit kernel on qemu.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e6771a834b30746d255fa9055cbf5245bcb0fe94
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Fri Oct 20 22:30:29 2023 +0200

    mtd: cfi_cmdset_0001: Byte swap OTP info
    
    [ Upstream commit 565fe150624ee77dc63a735cc1b3bff5101f38a3 ]
    
    Currently the offset into the device when looking for OTP
    bits can go outside of the address of the MTD NOR devices,
    and if that memory isn't readable, bad things happen
    on the IXP4xx (added prints that illustrate the problem before
    the crash):
    
    cfi_intelext_otp_walk walk OTP on chip 0 start at reg_prot_offset 0x00000100
    ixp4xx_copy_from copy from 0x00000100 to 0xc880dd78
    cfi_intelext_otp_walk walk OTP on chip 0 start at reg_prot_offset 0x12000000
    ixp4xx_copy_from copy from 0x12000000 to 0xc880dd78
    8<--- cut here ---
    Unable to handle kernel paging request at virtual address db000000
    [db000000] *pgd=00000000
    (...)
    
    This happens in this case because the IXP4xx is big endian and
    the 32- and 16-bit fields in the struct cfi_intelext_otpinfo are not
    properly byteswapped. Compare to how the code in read_pri_intelext()
    byteswaps the fields in struct cfi_pri_intelext.
    
    Adding a small byte swapping loop for the OTP in read_pri_intelext()
    and the crash goes away.
    
    The problem went unnoticed for many years until I enabled
    CONFIG_MTD_OTP on the IXP4xx as well, triggering the bug.
    
    Cc: stable@vger.kernel.org
    Reviewed-by: Nicolas Pitre <nico@fluxnic.net>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20231020-mtd-otp-byteswap-v4-1-0d132c06aa9d@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 542fbaaab66fefd0edba7c1c54404fd208400be8
Author: Jean-Philippe Brucker <jean-philippe@linaro.org>
Date:   Fri Apr 17 16:23:26 2020 +0200

    mtd: cfi_cmdset_0001: Support the absence of protection registers
    
    [ Upstream commit b359ed5184aebf9d987e54abc5dae7ac03ed29ae ]
    
    The flash controller implemented by the Arm Base platform behaves like
    the Intel StrataFlash J3 device, but omits several features. In
    particular it doesn't implement a protection register, so "Number of
    Protection register fields" in the Primary Vendor-Specific Extended
    Query, is 0.
    
    The Intel StrataFlash J3 datasheet only lists 1 as a valid value for
    NumProtectionFields. It describes the field as:
    
            "Number of Protection register fields in JEDEC ID space.
            “00h,” indicates that 256 protection bytes are available"
    
    While a value of 0 may arguably not be architecturally valid, the
    driver's current behavior is certainly wrong: if NumProtectionFields is
    0, read_pri_intelext() adds a negative value to the unsigned extra_size,
    and ends up in an infinite loop.
    
    Fix it by ignoring a NumProtectionFields of 0.
    
    Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
    Tested-by: Sudeep Holla <sudeep.holla@arm.com>
    Tested-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
    Stable-dep-of: 565fe150624e ("mtd: cfi_cmdset_0001: Byte swap OTP info")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1e4f431c22d33fd5bfc34dd0c6be601b125b3918
Author: Heiko Carstens <hca@linux.ibm.com>
Date:   Tue Oct 24 10:15:19 2023 +0200

    s390/cmma: fix detection of DAT pages
    
    [ Upstream commit 44d93045247661acbd50b1629e62f415f2747577 ]
    
    If the cmma no-dat feature is available the kernel page tables are walked
    to identify and mark all pages which are used for address translation (all
    region, segment, and page tables). In a subsequent loop all other pages are
    marked as "no-dat" pages with the ESSA instruction.
    
    This information is visible to the hypervisor, so that the hypervisor can
    optimize purging of guest TLB entries. The initial loop however is
    incorrect: only the first three of the four pages which belong to segment
    and region tables will be marked as being used for DAT. The last page is
    incorrectly marked as no-dat.
    
    This can result in incorrect guest TLB flushes.
    
    Fix this by simply marking all four pages.
    
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5e2e31760020c2278374c862bade25d0c7b24adb
Author: Alexander Gordeev <agordeev@linux.ibm.com>
Date:   Mon Mar 29 18:32:55 2021 +0200

    s390/mm: fix phys vs virt confusion in mark_kernel_pXd() functions family
    
    [ Upstream commit 3784231b1e091857bd129fd9658a8b3cedbdcd58 ]
    
    Due to historical reasons mark_kernel_pXd() functions
    misuse the notion of physical vs virtual addresses
    difference.
    
    Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Stable-dep-of: 44d930452476 ("s390/cmma: fix detection of DAT pages")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c8580e0b0f1c9ca5760e13443f25cda9054e2853
Author: Steve French <stfrench@microsoft.com>
Date:   Mon Oct 16 12:18:23 2023 -0500

    smb3: fix touch -h of symlink
    
    [ Upstream commit 475efd9808a3094944a56240b2711349e433fb66 ]
    
    For example:
          touch -h -t 02011200 testfile
    where testfile is a symlink would not change the timestamp, but
          touch -t 02011200 testfile
    does work to change the timestamp of the target
    
    Suggested-by: David Howells <dhowells@redhat.com>
    Reported-by: Micah Veilleux <micah.veilleux@iba-group.com>
    Closes: https://bugzilla.samba.org/show_bug.cgi?id=14476
    Cc: stable@vger.kernel.org
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cbbf7d8001d8a8dcf6715277f5b1f1d3ff89bcfe
Author: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Date:   Tue Nov 28 10:04:37 2023 +0200

    net: ravb: Start TX queues after HW initialization succeeded
    
    [ Upstream commit 6f32c086602050fc11157adeafaa1c1eb393f0af ]
    
    ravb_phy_start() may fail. If that happens, the TX queues will remain
    started. Thus, move the netif_tx_start_all_queues() after PHY is
    successfully initialized.
    
    Fixes: c156633f1353 ("Renesas Ethernet AVB driver proper")
    Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
    Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b655af79a24379ae1107795e69c80e157c420be3
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Mon Nov 27 21:24:20 2023 +0900

    ravb: Fix races between ravb_tx_timeout_work() and net related ops
    
    [ Upstream commit 9870257a0a338cd8d6c1cddab74e703f490f6779 ]
    
    Fix races between ravb_tx_timeout_work() and functions of net_device_ops
    and ethtool_ops by using rtnl_trylock() and rtnl_unlock(). Note that
    since ravb_close() is under the rtnl lock and calls cancel_work_sync(),
    ravb_tx_timeout_work() should calls rtnl_trylock(). Otherwise, a deadlock
    may happen in ravb_tx_timeout_work() like below:
    
    CPU0                    CPU1
                            ravb_tx_timeout()
                            schedule_work()
    ...
    __dev_close_many()
    // Under rtnl lock
    ravb_close()
    cancel_work_sync()
    // Waiting
                            ravb_tx_timeout_work()
                            rtnl_lock()
                            // This is possible to cause a deadlock
    
    If rtnl_trylock() fails, rescheduling the work with sleep for 1 msec.
    
    Fixes: c156633f1353 ("Renesas Ethernet AVB driver proper")
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
    Link: https://lore.kernel.org/r/20231127122420.3706751-1-yoshihiro.shimoda.uh@renesas.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b6f5c6671fdfde9c94efe6409fa9f39436017e7
Author: Zhengchao Shao <shaozhengchao@huawei.com>
Date:   Thu Nov 23 15:13:14 2023 +0800

    ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet
    
    [ Upstream commit e2b706c691905fe78468c361aaabc719d0a496f1 ]
    
    When I perform the following test operations:
    1.ip link add br0 type bridge
    2.brctl addif br0 eth0
    3.ip addr add 239.0.0.1/32 dev eth0
    4.ip addr add 239.0.0.1/32 dev br0
    5.ip addr add 224.0.0.1/32 dev br0
    6.while ((1))
        do
            ifconfig br0 up
            ifconfig br0 down
        done
    7.send IGMPv2 query packets to port eth0 continuously. For example,
    ./mausezahn ethX -c 0 "01 00 5e 00 00 01 00 72 19 88 aa 02 08 00 45 00 00
    1c 00 01 00 00 01 02 0e 7f c0 a8 0a b7 e0 00 00 01 11 64 ee 9b 00 00 00 00"
    
    The preceding tests may trigger the refcnt uaf issue of the mc list. The
    stack is as follows:
            refcount_t: addition on 0; use-after-free.
            WARNING: CPU: 21 PID: 144 at lib/refcount.c:25 refcount_warn_saturate (lib/refcount.c:25)
            CPU: 21 PID: 144 Comm: ksoftirqd/21 Kdump: loaded Not tainted 6.7.0-rc1-next-20231117-dirty #80
            Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
            RIP: 0010:refcount_warn_saturate (lib/refcount.c:25)
            RSP: 0018:ffffb68f00657910 EFLAGS: 00010286
            RAX: 0000000000000000 RBX: ffff8a00c3bf96c0 RCX: ffff8a07b6160908
            RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffff8a07b6160900
            RBP: ffff8a00cba36862 R08: 0000000000000000 R09: 00000000ffff7fff
            R10: ffffb68f006577c0 R11: ffffffffb0fdcdc8 R12: ffff8a00c3bf9680
            R13: ffff8a00c3bf96f0 R14: 0000000000000000 R15: ffff8a00d8766e00
            FS:  0000000000000000(0000) GS:ffff8a07b6140000(0000) knlGS:0000000000000000
            CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
            CR2: 000055f10b520b28 CR3: 000000039741a000 CR4: 00000000000006f0
            Call Trace:
            <TASK>
            igmp_heard_query (net/ipv4/igmp.c:1068)
            igmp_rcv (net/ipv4/igmp.c:1132)
            ip_protocol_deliver_rcu (net/ipv4/ip_input.c:205)
            ip_local_deliver_finish (net/ipv4/ip_input.c:234)
            __netif_receive_skb_one_core (net/core/dev.c:5529)
            netif_receive_skb_internal (net/core/dev.c:5729)
            netif_receive_skb (net/core/dev.c:5788)
            br_handle_frame_finish (net/bridge/br_input.c:216)
            nf_hook_bridge_pre (net/bridge/br_input.c:294)
            __netif_receive_skb_core (net/core/dev.c:5423)
            __netif_receive_skb_list_core (net/core/dev.c:5606)
            __netif_receive_skb_list (net/core/dev.c:5674)
            netif_receive_skb_list_internal (net/core/dev.c:5764)
            napi_gro_receive (net/core/gro.c:609)
            e1000_clean_rx_irq (drivers/net/ethernet/intel/e1000/e1000_main.c:4467)
            e1000_clean (drivers/net/ethernet/intel/e1000/e1000_main.c:3805)
            __napi_poll (net/core/dev.c:6533)
            net_rx_action (net/core/dev.c:6735)
            __do_softirq (kernel/softirq.c:554)
            run_ksoftirqd (kernel/softirq.c:913)
            smpboot_thread_fn (kernel/smpboot.c:164)
            kthread (kernel/kthread.c:388)
            ret_from_fork (arch/x86/kernel/process.c:153)
            ret_from_fork_asm (arch/x86/entry/entry_64.S:250)
            </TASK>
    
    The root causes are as follows:
    Thread A                                        Thread B
    ...                                             netif_receive_skb
    br_dev_stop                                     ...
        br_multicast_leave_snoopers                 ...
            __ip_mc_dec_group                       ...
                __igmp_group_dropped                igmp_rcv
                    igmp_stop_timer                     igmp_heard_query         //ref = 1
                    ip_ma_put                               igmp_mod_timer
                        refcount_dec_and_test                   igmp_start_timer //ref = 0
                            ...                                     refcount_inc //ref increases from 0
    When the device receives an IGMPv2 Query message, it starts the timer
    immediately, regardless of whether the device is running. If the device is
    down and has left the multicast group, it will cause the mc list refcount
    uaf issue.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit be36de88e7f25c3c9d4ac339e4496cf4cec4f46d
Author: Max Nguyen <maxwell.nguyen@hp.com>
Date:   Sun Sep 17 22:21:53 2023 -0700

    Input: xpad - add HyperX Clutch Gladiate Support
    
    commit e28a0974d749e5105d77233c0a84d35c37da047e upstream.
    
    Add HyperX controller support to xpad_device and xpad_table.
    
    Suggested-by: Chris Toledanes <chris.toledanes@hp.com>
    Reviewed-by: Carl Ng <carl.ng@hp.com>
    Signed-off-by: Max Nguyen <maxwell.nguyen@hp.com>
    Reviewed-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
    Link: https://lore.kernel.org/r/20230906231514.4291-1-hphyperxdev@gmail.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 907f80604e4f9b209f7268864e4cec8038436bc4
Author: Jann Horn <jannh@google.com>
Date:   Fri Nov 24 17:48:31 2023 +0100

    btrfs: send: ensure send_fd is writable
    
    commit 0ac1d13a55eb37d398b63e6ff6db4a09a2c9128c upstream.
    
    kernel_write() requires the caller to ensure that the file is writable.
    Let's do that directly after looking up the ->send_fd.
    
    We don't need a separate bailout path because the "out" path already
    does fput() if ->send_filp is non-NULL.
    
    This has no security impact for two reasons:
    
     - the ioctl requires CAP_SYS_ADMIN
     - __kernel_write() bails out on read-only files - but only since 5.8,
       see commit a01ac27be472 ("fs: check FMODE_WRITE in __kernel_write")
    
    Reported-and-tested-by: syzbot+12e098239d20385264d3@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=12e098239d20385264d3
    Fixes: 31db9f7c23fb ("Btrfs: introduce BTRFS_IOC_SEND for btrfs send/receive")
    CC: stable@vger.kernel.org # 4.14+
    Signed-off-by: Jann Horn <jannh@google.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3baa90ab0548820dc66673d03ac8b143113c8ba
Author: Filipe Manana <fdmanana@suse.com>
Date:   Tue Nov 21 13:38:32 2023 +0000

    btrfs: fix off-by-one when checking chunk map includes logical address
    
    commit 5fba5a571858ce2d787fdaf55814e42725bfa895 upstream.
    
    At btrfs_get_chunk_map() we get the extent map for the chunk that contains
    the given logical address stored in the 'logical' argument. Then we do
    sanity checks to verify the extent map contains the logical address. One
    of these checks verifies if the extent map covers a range with an end
    offset behind the target logical address - however this check has an
    off-by-one error since it will consider an extent map whose start offset
    plus its length matches the target logical address as inclusive, while
    the fact is that the last byte it covers is behind the target logical
    address (by 1).
    
    So fix this condition by using '<=' rather than '<' when comparing the
    extent map's "start + length" against the target logical address.
    
    CC: stable@vger.kernel.org # 4.14+
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2e9ffef0333b681fd2a654aea230a4a29e45cfc
Author: Timothy Pearson <tpearson@raptorengineering.com>
Date:   Sun Nov 19 09:18:02 2023 -0600

    powerpc: Don't clobber f0/vs0 during fp|altivec register save
    
    commit 5e1d824f9a283cbf90f25241b66d1f69adb3835b upstream.
    
    During floating point and vector save to thread data f0/vs0 are
    clobbered by the FPSCR/VSCR store routine. This has been obvserved to
    lead to userspace register corruption and application data corruption
    with io-uring.
    
    Fix it by restoring f0/vs0 after FPSCR/VSCR store has completed for
    all the FP, altivec, VMX register save paths.
    
    Tested under QEMU in kvm mode, running on a Talos II workstation with
    dual POWER9 DD2.2 CPUs.
    
    Additional detail (mpe):
    
    Typically save_fpu() is called from __giveup_fpu() which saves the FP
    regs and also *turns off FP* in the tasks MSR, meaning the kernel will
    reload the FP regs from the thread struct before letting the task use FP
    again. So in that case save_fpu() is free to clobber f0 because the FP
    regs no longer hold live values for the task.
    
    There is another case though, which is the path via:
      sys_clone()
        ...
        copy_process()
          dup_task_struct()
            arch_dup_task_struct()
              flush_all_to_thread()
                save_all()
    
    That path saves the FP regs but leaves them live. That's meant as an
    optimisation for a process that's using FP/VSX and then calls fork(),
    leaving the regs live means the parent process doesn't have to take a
    fault after the fork to get its FP regs back. The optimisation was added
    in commit 8792468da5e1 ("powerpc: Add the ability to save FPU without
    giving it up").
    
    That path does clobber f0, but f0 is volatile across function calls,
    and typically programs reach copy_process() from userspace via a syscall
    wrapper function. So in normal usage f0 being clobbered across a
    syscall doesn't cause visible data corruption.
    
    But there is now a new path, because io-uring can call copy_process()
    via create_io_thread() from the signal handling path. That's OK if the
    signal is handled as part of syscall return, but it's not OK if the
    signal is handled due to some other interrupt.
    
    That path is:
    
    interrupt_return_srr_user()
      interrupt_exit_user_prepare()
        interrupt_exit_user_prepare_main()
          do_notify_resume()
            get_signal()
              task_work_run()
                create_worker_cb()
                  create_io_worker()
                    copy_process()
                      dup_task_struct()
                        arch_dup_task_struct()
                          flush_all_to_thread()
                            save_all()
                              if (tsk->thread.regs->msr & MSR_FP)
                                save_fpu()
                                # f0 is clobbered and potentially live in userspace
    
    Note the above discussion applies equally to save_altivec().
    
    Fixes: 8792468da5e1 ("powerpc: Add the ability to save FPU without giving it up")
    Cc: stable@vger.kernel.org # v4.6+
    Closes: https://lore.kernel.org/all/480932026.45576726.1699374859845.JavaMail.zimbra@raptorengineeringinc.com/
    Closes: https://lore.kernel.org/linuxppc-dev/480221078.47953493.1700206777956.JavaMail.zimbra@raptorengineeringinc.com/
    Tested-by: Timothy Pearson <tpearson@raptorengineering.com>
    Tested-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com>
    [mpe: Reword change log to describe exact path of corruption & other minor tweaks]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/1921539696.48534988.1700407082933.JavaMail.zimbra@raptorengineeringinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 042d287ea29bbf1f32a0f4ea8778217f1ac10fea
Author: Markus Weippert <markus@gekmihesg.de>
Date:   Fri Nov 24 16:14:37 2023 +0100

    bcache: revert replacing IS_ERR_OR_NULL with IS_ERR
    
    commit bb6cc253861bd5a7cf8439e2118659696df9619f upstream.
    
    Commit 028ddcac477b ("bcache: Remove unnecessary NULL point check in
    node allocations") replaced IS_ERR_OR_NULL by IS_ERR. This leads to a
    NULL pointer dereference.
    
    BUG: kernel NULL pointer dereference, address: 0000000000000080
    Call Trace:
     ? __die_body.cold+0x1a/0x1f
     ? page_fault_oops+0xd2/0x2b0
     ? exc_page_fault+0x70/0x170
     ? asm_exc_page_fault+0x22/0x30
     ? btree_node_free+0xf/0x160 [bcache]
     ? up_write+0x32/0x60
     btree_gc_coalesce+0x2aa/0x890 [bcache]
     ? bch_extent_bad+0x70/0x170 [bcache]
     btree_gc_recurse+0x130/0x390 [bcache]
     ? btree_gc_mark_node+0x72/0x230 [bcache]
     bch_btree_gc+0x5da/0x600 [bcache]
     ? cpuusage_read+0x10/0x10
     ? bch_btree_gc+0x600/0x600 [bcache]
     bch_gc_thread+0x135/0x180 [bcache]
    
    The relevant code starts with:
    
        new_nodes[0] = NULL;
    
        for (i = 0; i < nodes; i++) {
            if (__bch_keylist_realloc(&keylist, bkey_u64s(&r[i].b->key)))
                goto out_nocoalesce;
        // ...
    out_nocoalesce:
        // ...
        for (i = 0; i < nodes; i++)
            if (!IS_ERR(new_nodes[i])) {  // IS_ERR_OR_NULL before
    028ddcac477b
                btree_node_free(new_nodes[i]);  // new_nodes[0] is NULL
                rw_unlock(true, new_nodes[i]);
            }
    
    This patch replaces IS_ERR() by IS_ERR_OR_NULL() to fix this.
    
    Fixes: 028ddcac477b ("bcache: Remove unnecessary NULL point check in node allocations")
    Link: https://lore.kernel.org/all/3DF4A87A-2AC1-4893-AE5F-E921478419A9@suse.de/
    Cc: stable@vger.kernel.org
    Cc: Zheng Wang <zyytlz.wz@163.com>
    Cc: Coly Li <colyli@suse.de>
    Signed-off-by: Markus Weippert <markus@gekmihesg.de>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df1b8e7b153d3211dfcb06938e6176b3496fc8e4
Author: Wu Bo <bo.wu@vivo.com>
Date:   Tue Nov 21 20:51:50 2023 -0700

    dm verity: don't perform FEC for failed readahead IO
    
    commit 0193e3966ceeeef69e235975918b287ab093082b upstream.
    
    We found an issue under Android OTA scenario that many BIOs have to do
    FEC where the data under dm-verity is 100% complete and no corruption.
    
    Android OTA has many dm-block layers, from upper to lower:
    dm-verity
    dm-snapshot
    dm-origin & dm-cow
    dm-linear
    ufs
    
    DM tables have to change 2 times during Android OTA merging process.
    When doing table change, the dm-snapshot will be suspended for a while.
    During this interval, many readahead IOs are submitted to dm_verity
    from filesystem. Then the kverity works are busy doing FEC process
    which cost too much time to finish dm-verity IO. This causes needless
    delay which feels like system is hung.
    
    After adding debugging it was found that each readahead IO needed
    around 10s to finish when this situation occurred. This is due to IO
    amplification:
    
    dm-snapshot suspend
    erofs_readahead     // 300+ io is submitted
            dm_submit_bio (dm_verity)
                    dm_submit_bio (dm_snapshot)
                    bio return EIO
                    bio got nothing, it's empty
            verity_end_io
            verity_verify_io
            forloop range(0, io->n_blocks)    // each io->nblocks ~= 20
                    verity_fec_decode
                    fec_decode_rsb
                    fec_read_bufs
                    forloop range(0, v->fec->rsn) // v->fec->rsn = 253
                            new_read
                            submit_bio (dm_snapshot)
                    end loop
            end loop
    dm-snapshot resume
    
    Readahead BIOs get nothing while dm-snapshot is suspended, so all of
    them will cause verity's FEC.
    Each readahead BIO needs to verify ~20 (io->nblocks) blocks.
    Each block needs to do FEC, and every block needs to do 253
    (v->fec->rsn) reads.
    So during the suspend interval(~200ms), 300 readahead BIOs trigger
    ~1518000 (300*20*253) IOs to dm-snapshot.
    
    As readahead IO is not required by userspace, and to fix this issue,
    it is best to pass readahead errors to upper layer to handle it.
    
    Cc: stable@vger.kernel.org
    Fixes: a739ff3f543a ("dm verity: add support for forward error correction")
    Signed-off-by: Wu Bo <bo.wu@vivo.com>
    Reviewed-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ffe2d3da496e0a97f99dcc99f05e2c0958c5aada
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Nov 28 14:50:23 2023 +0100

    dm-verity: align struct dm_verity_fec_io properly
    
    commit 38bc1ab135db87577695816b190e7d6d8ec75879 upstream.
    
    dm_verity_fec_io is placed after the end of two hash digests. If the hash
    digest has unaligned length, struct dm_verity_fec_io could be unaligned.
    
    This commit fixes the placement of struct dm_verity_fec_io, so that it's
    aligned.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Fixes: a739ff3f543a ("dm verity: add support for forward error correction")
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2636657e410a392e57d996a029679052ab961398
Author: Kailang Yang <kailang@realtek.com>
Date:   Wed Oct 25 15:24:06 2023 +0800

    ALSA: hda/realtek: Headset Mic VREF to 100%
    
    commit baaacbff64d9f34b64f294431966d035aeadb81c upstream.
    
    This platform need to set Mic VREF to 100%.
    
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/0916af40f08a4348a3298a9a59e6967e@realtek.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a315aca942e6b2cc345d398456af77b0efd787ce
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Nov 30 16:13:21 2023 +0100

    ALSA: hda: Disable power-save on KONTRON SinglePC
    
    commit a337c355719c42a6c5b67e985ad753590ed844fb upstream.
    
    It's been reported that the runtime PM on KONTRON SinglePC (PCI SSID
    1734:1232) caused a stall of playback after a bunch of invocations.
    (FWIW, this looks like an timing issue, and the stall happens rather
    on the controller side.)
    
    As a workaround, disable the default power-save on this platform.
    
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20231130151321.9813-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a60bb4510ff871300e265746c3fceae77b27b15
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Fri Nov 3 10:47:15 2023 +0200

    mmc: block: Do not lose cache flush during CQE error recovery
    
    commit 174925d340aac55296318e43fd96c0e1d196e105 upstream.
    
    During CQE error recovery, error-free data commands get requeued if there
    is any data left to transfer, but non-data commands are completed even
    though they have not been processed.  Requeue them instead.
    
    Note the only non-data command is cache flush, which would have resulted in
    a cache flush being lost if it was queued at the time of CQE recovery.
    
    Fixes: 1e8e55b67030 ("mmc: block: Add CQE support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Link: https://lore.kernel.org/r/20231103084720.6886-2-adrian.hunter@intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77a01591cf63ad19898c6692228341f41065a5ed
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Wed Nov 29 17:34:08 2023 +0800

    firewire: core: fix possible memory leak in create_units()
    
    commit 891e0eab32a57fca4d36c5162628eb0bcb1f0edf upstream.
    
    If device_register() fails, the refcount of device is not 0, the name
    allocated in dev_set_name() is leaked. To fix this by calling put_device(),
    so that it will be freed in callback function kobject_cleanup().
    
    unreferenced object 0xffff9d99035c7a90 (size 8):
      comm "systemd-udevd", pid 168, jiffies 4294672386 (age 152.089s)
      hex dump (first 8 bytes):
        66 77 30 2e 30 00 ff ff                          fw0.0...
      backtrace:
        [<00000000e1d62bac>] __kmem_cache_alloc_node+0x1e9/0x360
        [<00000000bbeaff31>] __kmalloc_node_track_caller+0x44/0x1a0
        [<00000000491f2fb4>] kvasprintf+0x67/0xd0
        [<000000005b960ddc>] kobject_set_name_vargs+0x1e/0x90
        [<00000000427ac591>] dev_set_name+0x4e/0x70
        [<000000003b4e447d>] create_units+0xc5/0x110
    
    fw_unit_release() will be called in the error path, move fw_device_get()
    before calling device_register() to keep balanced with fw_device_put() in
    fw_unit_release().
    
    Cc: stable@vger.kernel.org
    Fixes: 1fa5ae857bb1 ("driver core: get rid of struct device's bus_id string array")
    Fixes: a1f64819fe9f ("firewire: struct device - replace bus_id with dev_name(), dev_set_name()")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 730ac157c0d50626586a119177f76cdb523354dc
Author: Maria Yu <quic_aiquny@quicinc.com>
Date:   Wed Nov 15 18:28:24 2023 +0800

    pinctrl: avoid reload of p state in list iteration
    
    commit 4198a9b571065978632276264e01d71d68000ac5 upstream.
    
    When in the list_for_each_entry iteration, reload of p->state->settings
    with a local setting from old_state will turn the list iteration into an
    infinite loop.
    
    The typical symptom when the issue happens, will be a printk message like:
    
      "not freeing pin xx (xxx) as part of deactivating group xxx - it is
    already used for some other setting".
    
    This is a compiler-dependent problem, one instance occurred using Clang
    version 10.0 on the arm64 architecture with linux version 4.19.
    
    Fixes: 6e5e959dde0d ("pinctrl: API changes to support multiple states per device")
    Signed-off-by: Maria Yu <quic_aiquny@quicinc.com>
    Cc:  <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20231115102824.23727-1-quic_aiquny@quicinc.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d297dd0105022fa52bd743d336ded44386c2ba1
Author: Johan Hovold <johan+linaro@kernel.org>
Date:   Mon Nov 20 17:16:06 2023 +0100

    USB: dwc3: qcom: fix wakeup after probe deferral
    
    commit 41f5a0973259db9e4e3c9963d36505f80107d1a0 upstream.
    
    The Qualcomm glue driver is overriding the interrupt trigger types
    defined by firmware when requesting the wakeup interrupts during probe.
    
    This can lead to a failure to map the DP/DM wakeup interrupts after a
    probe deferral as the firmware defined trigger types do not match the
    type used for the initial mapping:
    
            irq: type mismatch, failed to map hwirq-14 for interrupt-controller@b220000!
            irq: type mismatch, failed to map hwirq-15 for interrupt-controller@b220000!
    
    Fix this by not overriding the firmware provided trigger types when
    requesting the wakeup interrupts.
    
    Fixes: a4333c3a6ba9 ("usb: dwc3: Add Qualcomm DWC3 glue driver")
    Cc: stable@vger.kernel.org      # 4.18
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Reviewed-by: Andrew Halaney <ahalaney@redhat.com>
    Link: https://lore.kernel.org/r/20231120161607.7405-3-johan+linaro@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa836aa873b19b8979a3a4e6d67969f9cb3511de
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Fri Oct 27 11:28:20 2023 +0000

    usb: dwc3: set the dma max_seg_size
    
    commit 8bbae288a85abed6a1cf7d185d8b9dc2f5dcb12c upstream.
    
    Allow devices to have dma operations beyond 4K, and avoid warnings such
    as:
    
    DMA-API: dwc3 a600000.usb: mapping sg segment longer than device claims to support [len=86016] [max=65536]
    
    Cc: stable@vger.kernel.org
    Fixes: 72246da40f37 ("usb: Introduce DesignWare USB3 DRD Driver")
    Reported-by: Zubin Mithra <zsm@chromium.org>
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/20231026-dwc3-v2-1-1d4fd5c3e067@chromium.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5c82a06072043b258c447b0d61f66af5877697a3
Author: Oliver Neukum <oneukum@suse.com>
Date:   Wed Nov 15 15:45:07 2023 +0100

    USB: dwc2: write HCINT with INTMASK applied
    
    commit 0583bc776ca5b5a3f5752869fc31cf7322df2b35 upstream.
    
    dwc2_hc_n_intr() writes back INTMASK as read but evaluates it
    with intmask applied. In stress testing this causes spurious
    interrupts like this:
    
    [Mon Aug 14 10:51:07 2023] dwc2 3f980000.usb: dwc2_hc_chhltd_intr_dma: Channel 7 - ChHltd set, but reason is unknown
    [Mon Aug 14 10:51:07 2023] dwc2 3f980000.usb: hcint 0x00000002, intsts 0x04600001
    [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: dwc2_hc_chhltd_intr_dma: Channel 0 - ChHltd set, but reason is unknown
    [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: hcint 0x00000002, intsts 0x04600001
    [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: dwc2_hc_chhltd_intr_dma: Channel 4 - ChHltd set, but reason is unknown
    [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: hcint 0x00000002, intsts 0x04600001
    [Mon Aug 14 10:51:08 2023] dwc2 3f980000.usb: dwc2_update_urb_state_abn(): trimming xfer length
    
    Applying INTMASK prevents this. The issue exists in all versions of the
    driver.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Tested-by: Ivan Ivanov <ivan.ivanov@suse.com>
    Tested-by: Andrea della Porta <andrea.porta@suse.com>
    Link: https://lore.kernel.org/r/20231115144514.15248-1-oneukum@suse.com
    Cc: stable <stable@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit acc25690ba7b6d35099d78c6282b806291d1737c
Author: Lech Perczak <lech.perczak@gmail.com>
Date:   Sat Nov 18 00:19:17 2023 +0100

    USB: serial: option: don't claim interface 4 for ZTE MF290
    
    commit 8771127e25d6c20d458ad27cf32f7fcfc1755e05 upstream.
    
    Interface 4 is used by for QMI interface in stock firmware of MF28D, the
    router which uses MF290 modem. Free the interface up, to rebind it to
    qmi_wwan driver.
    The proper configuration is:
    
    Interface mapping is:
    0: QCDM, 1: (unknown), 2: AT (PCUI), 2: AT (Modem), 4: QMI
    
    T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  4 Spd=480  MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=19d2 ProdID=0189 Rev= 0.00
    S:  Manufacturer=ZTE, Incorporated
    S:  Product=ZTE LTE Technologies MSM
    C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=84(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    E:  Ad=86(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    
    Cc: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94c8bd810fb383fb2f7d6bc41fc61a306019debe
Author: Puliang Lu <puliang.lu@fibocom.com>
Date:   Thu Oct 26 20:35:06 2023 +0800

    USB: serial: option: fix FM101R-GL defines
    
    commit a1092619dd28ac0fcf23016160a2fdccd98ef935 upstream.
    
    Modify the definition of the two Fibocom FM101R-GL PID macros, which had
    their PIDs switched.
    
    The correct PIDs are:
    
    - VID:PID 413C:8213, FM101R-GL ESIM are laptop M.2 cards (with
      MBIM interfaces for Linux)
    
    - VID:PID 413C:8215, FM101R-GL are laptop M.2 cards (with
      MBIM interface for Linux)
    
    0x8213: mbim, tty
    0x8215: mbim, tty
    
    Signed-off-by: Puliang Lu <puliang.lu@fibocom.com>
    Fixes: 52480e1f1a25 ("USB: serial: option: add Fibocom to DELL custom modem FM101R-GL")
    Link: https://lore.kernel.org/lkml/TYZPR02MB508845BAD7936A62A105CE5D89DFA@TYZPR02MB5088.apcprd02.prod.outlook.com/
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a52a306dc54cb596ceeca9ba38125d90af7f3124
Author: Victor Fragoso <victorffs@hotmail.com>
Date:   Tue Nov 21 21:05:56 2023 +0000

    USB: serial: option: add Fibocom L7xx modules
    
    commit e389fe8b68137344562fb6e4d53d8a89ef6212dd upstream.
    
    Add support for Fibocom L716-EU module series.
    
    L716-EU is a Fibocom module based on ZTE's V3E/V3T chipset.
    
    Device creates multiple interfaces when connected to PC as follows:
     - Network Interface: ECM or RNDIS (set by FW or AT Command)
     - ttyUSB0: AT port
     - ttyUSB1: Modem port
     - ttyUSB2: AT2 port
     - ttyUSB3: Trace port for log information
     - ADB: ADB port for debugging. ("Driver=usbfs" when ADB server enabled)
    
    Here are the outputs of lsusb and usb-devices:
    $ ls /dev/ttyUSB*
    /dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2  /dev/ttyUSB3
    
    usb-devices:
    L716-EU (ECM mode):
    T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 51 Spd=480  MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=2cb7 ProdID=0001 Rev= 1.00
    S:  Manufacturer=Fibocom,Incorporated
    S:  Product=Fibocom Mobile Boardband
    S:  SerialNumber=1234567890ABCDEF
    C:* #Ifs= 7 Cfg#= 1 Atr=e0 MxPwr=500mA
    A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
    I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether
    E:  Ad=87(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
    I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
    I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    L716-EU (RNDIS mode):
    T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 49 Spd=480  MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=2cb7 ProdID=0001 Rev= 1.00
    S:  Manufacturer=Fibocom,Incorporated
    S:  Product=Fibocom Mobile Boardband
    S:  SerialNumber=1234567890ABCDEF
    C:* #Ifs= 7 Cfg#= 1 Atr=e0 MxPwr=500mA
    A:  FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03
    I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=ff Driver=rndis_host
    E:  Ad=87(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Signed-off-by: Victor Fragoso <victorffs@hotmail.com>
    Reviewed-by: Lars Melin <larsm17@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db850bcde238fd8b59e9aa4ccf3dffaed048cf3b
Author: Rand Deeb <rand.sec96@gmail.com>
Date:   Mon Nov 20 13:24:57 2023 +0800

    bcache: prevent potential division by zero error
    
    commit 2c7f497ac274a14330208b18f6f734000868ebf9 upstream.
    
    In SHOW(), the variable 'n' is of type 'size_t.' While there is a
    conditional check to verify that 'n' is not equal to zero before
    executing the 'do_div' macro, concerns arise regarding potential
    division by zero error in 64-bit environments.
    
    The concern arises when 'n' is 64 bits in size, greater than zero, and
    the lower 32 bits of it are zeros. In such cases, the conditional check
    passes because 'n' is non-zero, but the 'do_div' macro casts 'n' to
    'uint32_t,' effectively truncating it to its lower 32 bits.
    Consequently, the 'n' value becomes zero.
    
    To fix this potential division by zero error and ensure precise
    division handling, this commit replaces the 'do_div' macro with
    div64_u64(). div64_u64() is designed to work with 64-bit operands,
    guaranteeing that division is performed correctly.
    
    This change enhances the robustness of the code, ensuring that division
    operations yield accurate results in all scenarios, eliminating the
    possibility of division by zero, and improving compatibility across
    different 64-bit environments.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Signed-off-by: Rand Deeb <rand.sec96@gmail.com>
    Cc:  <stable@vger.kernel.org>
    Signed-off-by: Coly Li <colyli@suse.de>
    Link: https://lore.kernel.org/r/20231120052503.6122-5-colyli@suse.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b808e631265c3a074efb32543d616c16330c8197
Author: Coly Li <colyli@suse.de>
Date:   Mon Nov 20 13:24:55 2023 +0800

    bcache: check return value from btree_node_alloc_replacement()
    
    commit 777967e7e9f6f5f3e153abffb562bffaf4430d26 upstream.
    
    In btree_gc_rewrite_node(), pointer 'n' is not checked after it returns
    from btree_gc_rewrite_node(). There is potential possibility that 'n' is
    a non NULL ERR_PTR(), referencing such error code is not permitted in
    following code. Therefore a return value checking is necessary after 'n'
    is back from btree_node_alloc_replacement().
    
    Signed-off-by: Coly Li <colyli@suse.de>
    Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
    Cc:  <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20231120052503.6122-3-colyli@suse.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df1180184de9983c9cb7dec351ff9fd17f370e90
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Wed Nov 29 13:38:43 2023 -0500

    dm-delay: fix a race between delay_presuspend and delay_bio
    
    [ Upstream commit 6fc45b6ed921dc00dfb264dc08c7d67ee63d2656 ]
    
    In delay_presuspend, we set the atomic variable may_delay and then stop
    the timer and flush pending bios. The intention here is to prevent the
    delay target from re-arming the timer again.
    
    However, this test is racy. Suppose that one thread goes to delay_bio,
    sees that dc->may_delay is one and proceeds; now, another thread executes
    delay_presuspend, it sets dc->may_delay to zero, deletes the timer and
    flushes pending bios. Then, the first thread continues and adds the bio to
    delayed->list despite the fact that dc->may_delay is false.
    
    Fix this bug by changing may_delay's type from atomic_t to bool and
    only access it while holding the delayed_bios_lock mutex. Note that we
    don't have to grab the mutex in delay_resume because there are no bios
    in flight at this point.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c115564ab08008785638bbb8d36354406ac234bc
Author: Long Li <longli@microsoft.com>
Date:   Sun Nov 19 08:23:43 2023 -0800

    hv_netvsc: Mark VF as slave before exposing it to user-mode
    
    commit c807d6cd089d2f4951baa838081ec5ae3e2360f8 upstream.
    
    When a VF is being exposed form the kernel, it should be marked as "slave"
    before exposing to the user-mode. The VF is not usable without netvsc
    running as master. The user-mode should never see a VF without the "slave"
    flag.
    
    This commit moves the code of setting the slave flag to the time before
    VF is exposed to user-mode.
    
    Cc: stable@vger.kernel.org
    Fixes: 0c195567a8f6 ("netvsc: transparent VF management")
    Signed-off-by: Long Li <longli@microsoft.com>
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Acked-by: Stephen Hemminger <stephen@networkplumber.org>
    Acked-by: Dexuan Cui <decui@microsoft.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 028aa21f9e92536038cabb834c15d08f5c894382
Author: Haiyang Zhang <haiyangz@microsoft.com>
Date:   Sun Nov 19 08:23:42 2023 -0800

    hv_netvsc: Fix race of register_netdevice_notifier and VF register
    
    commit 85520856466ed6bc3b1ccb013cddac70ceb437db upstream.
    
    If VF NIC is registered earlier, NETDEV_REGISTER event is replayed,
    but NETDEV_POST_INIT is not.
    
    Move register_netdevice_notifier() earlier, so the call back
    function is set before probing.
    
    Cc: stable@vger.kernel.org
    Fixes: e04e7a7bbd4b ("hv_netvsc: Fix a deadlock by getting rtnl lock earlier in netvsc_probe()")
    Reported-by: Dexuan Cui <decui@microsoft.com>
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
    Reviewed-by: Dexuan Cui <decui@microsoft.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8dd4ef69b8fd01ed0cf78d4a158af6b606c5249c
Author: Asuna Yang <spriteovo@gmail.com>
Date:   Wed Nov 22 22:18:03 2023 +0800

    USB: serial: option: add Luat Air72*U series products
    
    commit da90e45d5afc4da2de7cd3ea7943d0f1baa47cc2 upstream.
    
    Update the USB serial option driver support for Luat Air72*U series
    products.
    
    ID 1782:4e00 Spreadtrum Communications Inc. UNISOC-8910
    
    T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 13 Spd=480 MxCh= 0
    D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
    P: Vendor=1782 ProdID=4e00 Rev=00.00
    S: Manufacturer=UNISOC
    S: Product=UNISOC-8910
    C: #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=400mA
    I: If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
    E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=4096ms
    I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
    E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I: If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    If#= 2: AT
    If#= 3: PPP + AT
    If#= 4: Debug
    
    Co-developed-by: Yangyu Chen <cyy@cyyself.name>
    Signed-off-by: Yangyu Chen <cyy@cyyself.name>
    Signed-off-by: Asuna Yang <SpriteOvO@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f75617cc8df4155374132f0b500b0b3ebb967458
Author: Jan Höppner <hoeppner@linux.ibm.com>
Date:   Wed Oct 25 15:24:37 2023 +0200

    s390/dasd: protect device queue against concurrent access
    
    commit db46cd1e0426f52999d50fa72cfa97fa39952885 upstream.
    
    In dasd_profile_start() the amount of requests on the device queue are
    counted. The access to the device queue is unprotected against
    concurrent access. With a lot of parallel I/O, especially with alias
    devices enabled, the device queue can change while dasd_profile_start()
    is accessing the queue. In the worst case this leads to a kernel panic
    due to incorrect pointer accesses.
    
    Fix this by taking the device lock before accessing the queue and
    counting the requests. Additionally the check for a valid profile data
    pointer can be done earlier to avoid unnecessary locking in a hot path.
    
    Cc:  <stable@vger.kernel.org>
    Fixes: 4fa52aa7a82f ("[S390] dasd: add enhanced DASD statistics interface")
    Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
    Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
    Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
    Link: https://lore.kernel.org/r/20231025132437.1223363-3-sth@linux.ibm.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f47ef1b1c14cb304dd0713cceb7be166dd09197
Author: Coly Li <colyli@suse.de>
Date:   Mon Nov 20 13:25:01 2023 +0800

    bcache: replace a mistaken IS_ERR() by IS_ERR_OR_NULL() in btree_gc_coalesce()
    
    commit f72f4312d4388376fc8a1f6cf37cb21a0d41758b upstream.
    
    Commit 028ddcac477b ("bcache: Remove unnecessary NULL point check in
    node allocations") do the following change inside btree_gc_coalesce(),
    
    31 @@ -1340,7 +1340,7 @@ static int btree_gc_coalesce(
    32         memset(new_nodes, 0, sizeof(new_nodes));
    33         closure_init_stack(&cl);
    34
    35 -       while (nodes < GC_MERGE_NODES && !IS_ERR_OR_NULL(r[nodes].b))
    36 +       while (nodes < GC_MERGE_NODES && !IS_ERR(r[nodes].b))
    37                 keys += r[nodes++].keys;
    38
    39         blocks = btree_default_blocks(b->c) * 2 / 3;
    
    At line 35 the original r[nodes].b is not always allocatored from
    __bch_btree_node_alloc(), and possibly initialized as NULL pointer by
    caller of btree_gc_coalesce(). Therefore the change at line 36 is not
    correct.
    
    This patch replaces the mistaken IS_ERR() by IS_ERR_OR_NULL() to avoid
    potential issue.
    
    Fixes: 028ddcac477b ("bcache: Remove unnecessary NULL point check in node allocations")
    Cc:  <stable@vger.kernel.org> # 6.5+
    Cc: Zheng Wang <zyytlz.wz@163.com>
    Signed-off-by: Coly Li <colyli@suse.de>
    Link: https://lore.kernel.org/r/20231120052503.6122-9-colyli@suse.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c00482a3dea5b10ce8e3a59fcb85a1ffdc5e4ad
Author: Claire Lin <claire.lin@broadcom.com>
Date:   Mon Aug 26 15:57:56 2019 -0400

    mtd: rawnand: brcmnand: Fix ecc chunk calculation for erased page bitfips
    
    commit 7f852cc1579297fd763789f8cd370639d0c654b6 upstream.
    
    In brcmstb_nand_verify_erased_page(), the ECC chunk pointer calculation
    while correcting erased page bitflips is wrong, fix it.
    
    Fixes: 02b88eea9f9c ("mtd: brcmnand: Add check for erased page bitflips")
    Signed-off-by: Claire Lin <claire.lin@broadcom.com>
    Reviewed-by: Ray Jui <ray.jui@broadcom.com>
    Signed-off-by: Kamal Dasu <kdasu.kdev@gmail.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Yuta Hayama <hayama@lineo.co.jp>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c591abd568e0f3b6a79bbeaf3988a4af32c6876
Author: Andrew Murray <amurray@thegoodpenguin.co.uk>
Date:   Tue Nov 28 15:46:33 2023 +0800

    KVM: arm64: limit PMU version to PMUv3 for ARMv8.1
    
    commit c854188ea01062f5a5fd7f05658feb1863774eaa upstream.
    
    We currently expose the PMU version of the host to the guest via
    emulation of the DFR0_EL1 and AA64DFR0_EL1 debug feature registers.
    However many of the features offered beyond PMUv3 for 8.1 are not
    supported in KVM. Examples of this include support for the PMMIR
    registers (added in PMUv3 for ARMv8.4) and 64-bit event counters
    added in (PMUv3 for ARMv8.5).
    
    Let's trap the Debug Feature Registers in order to limit
    PMUVer/PerfMon in the Debug Feature Registers to PMUv3 for ARMv8.1
    to avoid unexpected behaviour.
    
    Both ID_AA64DFR0.PMUVer and ID_DFR0.PerfMon follow the "Alternative ID
    scheme used for the Performance Monitors Extension version" where 0xF
    means an IMPLEMENTATION DEFINED PMU is implemented, and values 0x0-0xE
    are treated as with an unsigned field (with 0x0 meaning no PMU is
    present). As we don't expect to expose an IMPLEMENTATION DEFINED PMU,
    and our cap is below 0xF, we can treat these fields as unsigned when
    applying the cap.
    
    Signed-off-by: Andrew Murray <andrew.murray@arm.com>
    Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    [Mark: make field names consistent, use perfmon cap]
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Will Deacon <will@kernel.org>
    [yuzenghui@huawei.com: adjust the context in read_id_reg()]
    Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6881f69ad3f739bd7e81d46155a093220dca3274
Author: Andrew Murray <amurray@thegoodpenguin.co.uk>
Date:   Tue Nov 28 15:46:32 2023 +0800

    arm64: cpufeature: Extract capped perfmon fields
    
    commit 8e35aa642ee4dab01b16cc4b2df59d1936f3b3c2 upstream.
    
    When emulating ID registers there is often a need to cap the version
    bits of a feature such that the guest will not use features that the
    host is not aware of. For example, when KVM mediates access to the PMU
    by emulating register accesses.
    
    Let's add a helper that extracts a performance monitors ID field and
    caps the version to a given value.
    
    Fields that identify the version of the Performance Monitors Extension
    do not follow the standard ID scheme, and instead follow the scheme
    described in ARM DDI 0487E.a page D13-2825 "Alternative ID scheme used
    for the Performance Monitors Extension version". The value 0xF means an
    IMPLEMENTATION DEFINED PMU is present, and values 0x0-OxE can be treated
    the same as an unsigned field with 0x0 meaning no PMU is present.
    
    Signed-off-by: Andrew Murray <andrew.murray@arm.com>
    Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    [Mark: rework to handle perfmon fields]
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf12bffc95eb01b389bf7934bebe35b20e313247
Author: Huacai Chen <chenhuacai@kernel.org>
Date:   Tue Oct 10 16:54:34 2023 +0800

    MIPS: KVM: Fix a build warning about variable set but not used
    
    [ Upstream commit 83767a67e7b6a0291cde5681ec7e3708f3f8f877 ]
    
    After commit 411740f5422a ("KVM: MIPS/MMU: Implement KVM_CAP_SYNC_MMU")
    old_pte is no longer used in kvm_mips_map_page(). So remove it to fix a
    build warning about variable set but not used:
    
       arch/mips/kvm/mmu.c: In function 'kvm_mips_map_page':
    >> arch/mips/kvm/mmu.c:701:29: warning: variable 'old_pte' set but not used [-Wunused-but-set-variable]
         701 |         pte_t *ptep, entry, old_pte;
             |                             ^~~~~~~
    
    Cc: stable@vger.kernel.org
    Fixes: 411740f5422a960 ("KVM: MIPS/MMU: Implement KVM_CAP_SYNC_MMU")
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202310070530.aARZCSfh-lkp@intel.com/
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b270fdde9f34210d32eddefc6c025e2728a35b9b
Author: Samuel Holland <samuel.holland@sifive.com>
Date:   Tue Nov 21 16:42:17 2023 -0800

    net: axienet: Fix check for partial TX checksum
    
    [ Upstream commit fd0413bbf8b11f56e8aa842783b0deda0dfe2926 ]
    
    Due to a typo, the code checked the RX checksum feature in the TX path.
    
    Fixes: 8a3b7a252dca ("drivers/net/ethernet/xilinx: added Xilinx AXI Ethernet driver")
    Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
    Link: https://lore.kernel.org/r/20231122004219.3504219-1-samuel.holland@sifive.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1190f67c62980238c8ac82faaac746efd56ff7a4
Author: Raju Rangoju <Raju.Rangoju@amd.com>
Date:   Wed Nov 22 00:44:35 2023 +0530

    amd-xgbe: propagate the correct speed and duplex status
    
    [ Upstream commit 7a2323ac24a50311f64a3a9b54ed5bef5821ecae ]
    
    xgbe_get_link_ksettings() does not propagate correct speed and duplex
    information to ethtool during cable unplug. Due to which ethtool reports
    incorrect values for speed and duplex.
    
    Address this by propagating correct information.
    
    Fixes: 7c12aa08779c ("amd-xgbe: Move the PHY support into amd-xgbe")
    Acked-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
    Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
    Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2e3d5b741bb5c0c2e48981f0a0ee6636b2766646
Author: Raju Rangoju <Raju.Rangoju@amd.com>
Date:   Wed Nov 22 00:44:34 2023 +0530

    amd-xgbe: handle the corner-case during tx completion
    
    [ Upstream commit 7121205d5330c6a3cb3379348886d47c77b78d06 ]
    
    The existing implementation uses software logic to accumulate tx
    completions until the specified time (1ms) is met and then poll them.
    However, there exists a tiny gap which leads to a race between
    resetting and checking the tx_activate flag. Due to this the tx
    completions are not reported to upper layer and tx queue timeout
    kicks-in restarting the device.
    
    To address this, introduce a tx cleanup mechanism as part of the
    periodic maintenance process.
    
    Fixes: c5aa9e3b8156 ("amd-xgbe: Initial AMD 10GbE platform driver")
    Acked-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
    Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
    Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8668b11164d79ed442502468023dbb1e5c45bab
Author: Raju Rangoju <Raju.Rangoju@amd.com>
Date:   Wed Nov 22 00:44:33 2023 +0530

    amd-xgbe: handle corner-case during sfp hotplug
    
    [ Upstream commit 676ec53844cbdf2f47e68a076cdff7f0ec6cbe3f ]
    
    Force the mode change for SFI in Fixed PHY configurations. Fixed PHY
    configurations needs PLL to be enabled while doing mode set. When the
    SFP module isn't connected during boot, driver assumes AN is ON and
    attempts auto-negotiation. However, if the connected SFP comes up in
    Fixed PHY configuration the link will not come up as PLL isn't enabled
    while the initial mode set command is issued. So, force the mode change
    for SFI in Fixed PHY configuration to fix link issues.
    
    Fixes: e57f7a3feaef ("amd-xgbe: Prepare for working with more than one type of phy")
    Acked-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
    Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
    Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bc03baa4c99af02ab5990dcbbd753922162e1f34
Author: Stefano Stabellini <sstabellini@kernel.org>
Date:   Wed Nov 22 15:07:41 2023 -0800

    arm/xen: fix xen_vcpu_info allocation alignment
    
    [ Upstream commit 7bf9a6b46549852a37e6d07e52c601c3c706b562 ]
    
    xen_vcpu_info is a percpu area than needs to be mapped by Xen.
    Currently, it could cross a page boundary resulting in Xen being unable
    to map it:
    
    [    0.567318] kernel BUG at arch/arm64/xen/../../arm/xen/enlighten.c:164!
    [    0.574002] Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP
    
    Fix the issue by using __alloc_percpu and requesting alignment for the
    memory allocation.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
    
    Link: https://lore.kernel.org/r/alpine.DEB.2.22.394.2311221501340.2053963@ubuntu-linux-20-04-desktop
    Fixes: 24d5373dda7c ("arm/xen: Use alloc_percpu rather than __alloc_percpu")
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d197461e93d641d0ab90a21c32490d77f214e3a1
Author: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
Date:   Mon Nov 20 13:06:29 2023 +0100

    net: usb: ax88179_178a: fix failed operations during ax88179_reset
    
    [ Upstream commit 0739af07d1d947af27c877f797cb82ceee702515 ]
    
    Using generic ASIX Electronics Corp. AX88179 Gigabit Ethernet device,
    the following test cycle has been implemented:
        - power on
        - check logs
        - shutdown
        - after detecting the system shutdown, disconnect power
        - after approximately 60 seconds of sleep, power is restored
    Running some cycles, sometimes error logs like this appear:
        kernel: ax88179_178a 2-9:1.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -19
        kernel: ax88179_178a 2-9:1.0 (unnamed net_device) (uninitialized): Failed to read reg index 0x0001: -19
        ...
    These failed operation are happening during ax88179_reset execution, so
    the initialization could not be correct.
    
    In order to avoid this, we need to increase the delay after reset and
    clock initial operations. By using these larger values, many cycles
    have been run and no failed operations appear.
    
    It would be better to check some status register to verify when the
    operation has finished, but I do not have found any available information
    (neither in the public datasheets nor in the manufacturer's driver). The
    only available information for the necessary delays is the maufacturer's
    driver (original values) but the proposed values are not enough for the
    tested devices.
    
    Fixes: e2ca90c276e1f ("ax88179_178a: ASIX AX88179_178A USB 3.0/2.0 to gigabit ethernet adapter driver")
    Reported-by: Herb Wei <weihao.bj@ieisystem.com>
    Tested-by: Herb Wei <weihao.bj@ieisystem.com>
    Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
    Link: https://lore.kernel.org/r/20231120120642.54334-1-jtornosm@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 996f39b6ab7e22c5ea2d79a6738b98305a94b889
Author: Kunwu Chan <chentao@kylinos.cn>
Date:   Sun Nov 19 22:17:59 2023 +0800

    ipv4: Correct/silence an endian warning in __ip_do_redirect
    
    [ Upstream commit c0e2926266af3b5acf28df0a8fc6e4d90effe0bb ]
    
    net/ipv4/route.c:783:46: warning: incorrect type in argument 2 (different base types)
    net/ipv4/route.c:783:46:    expected unsigned int [usertype] key
    net/ipv4/route.c:783:46:    got restricted __be32 [usertype] new_gw
    
    Fixes: 969447f226b4 ("ipv4: use new_gw for redirect neigh lookup")
    Suggested-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
    Link: https://lore.kernel.org/r/20231119141759.420477-1-chentao@kylinos.cn
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b14f26285a99f5eea100ac2f3df54b1a3e4c953a
Author: Charles Yi <be286@163.com>
Date:   Tue Oct 31 12:32:39 2023 +0800

    HID: fix HID device resource race between HID core and debugging support
    
    [ Upstream commit fc43e9c857b7aa55efba9398419b14d9e35dcc7d ]
    
    hid_debug_events_release releases resources bound to the HID device instance.
    hid_device_release releases the underlying HID device instance potentially
    before hid_debug_events_release has completed releasing debug resources bound
    to the same HID device instance.
    
    Reference count to prevent the HID device instance from being torn down
    preemptively when HID debugging support is used. When count reaches zero,
    release core resources of HID device instance using hiddev_free.
    
    The crash:
    
    [  120.728477][ T4396] kernel BUG at lib/list_debug.c:53!
    [  120.728505][ T4396] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
    [  120.739806][ T4396] Modules linked in: bcmdhd dhd_static_buf 8822cu pcie_mhi r8168
    [  120.747386][ T4396] CPU: 1 PID: 4396 Comm: hidt_bridge Not tainted 5.10.110 #257
    [  120.754771][ T4396] Hardware name: Rockchip RK3588 EVB4 LP4 V10 Board (DT)
    [  120.761643][ T4396] pstate: 60400089 (nZCv daIf +PAN -UAO -TCO BTYPE=--)
    [  120.768338][ T4396] pc : __list_del_entry_valid+0x98/0xac
    [  120.773730][ T4396] lr : __list_del_entry_valid+0x98/0xac
    [  120.779120][ T4396] sp : ffffffc01e62bb60
    [  120.783126][ T4396] x29: ffffffc01e62bb60 x28: ffffff818ce3a200
    [  120.789126][ T4396] x27: 0000000000000009 x26: 0000000000980000
    [  120.795126][ T4396] x25: ffffffc012431000 x24: ffffff802c6d4e00
    [  120.801125][ T4396] x23: ffffff8005c66f00 x22: ffffffc01183b5b8
    [  120.807125][ T4396] x21: ffffff819df2f100 x20: 0000000000000000
    [  120.813124][ T4396] x19: ffffff802c3f0700 x18: ffffffc01d2cd058
    [  120.819124][ T4396] x17: 0000000000000000 x16: 0000000000000000
    [  120.825124][ T4396] x15: 0000000000000004 x14: 0000000000003fff
    [  120.831123][ T4396] x13: ffffffc012085588 x12: 0000000000000003
    [  120.837123][ T4396] x11: 00000000ffffbfff x10: 0000000000000003
    [  120.843123][ T4396] x9 : 455103d46b329300 x8 : 455103d46b329300
    [  120.849124][ T4396] x7 : 74707572726f6320 x6 : ffffffc0124b8cb5
    [  120.855124][ T4396] x5 : ffffffffffffffff x4 : 0000000000000000
    [  120.861123][ T4396] x3 : ffffffc011cf4f90 x2 : ffffff81fee7b948
    [  120.867122][ T4396] x1 : ffffffc011cf4f90 x0 : 0000000000000054
    [  120.873122][ T4396] Call trace:
    [  120.876259][ T4396]  __list_del_entry_valid+0x98/0xac
    [  120.881304][ T4396]  hid_debug_events_release+0x48/0x12c
    [  120.886617][ T4396]  full_proxy_release+0x50/0xbc
    [  120.891323][ T4396]  __fput+0xdc/0x238
    [  120.895075][ T4396]  ____fput+0x14/0x24
    [  120.898911][ T4396]  task_work_run+0x90/0x148
    [  120.903268][ T4396]  do_exit+0x1bc/0x8a4
    [  120.907193][ T4396]  do_group_exit+0x8c/0xa4
    [  120.911458][ T4396]  get_signal+0x468/0x744
    [  120.915643][ T4396]  do_signal+0x84/0x280
    [  120.919650][ T4396]  do_notify_resume+0xd0/0x218
    [  120.924262][ T4396]  work_pending+0xc/0x3f0
    
    [ Rahul Rameshbabu <sergeantsagara@protonmail.com>: rework changelog ]
    Fixes: cd667ce24796 ("HID: use debugfs for events/reports dumping")
    Signed-off-by: Charles Yi <be286@163.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 218e961e45d3f7b96a8ea857b47640af75abec2a
Author: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date:   Fri Sep 2 15:29:23 2022 +0200

    HID: core: store the unique system identifier in hid_device
    
    [ Upstream commit 1e839143d674603b0bbbc4c513bca35404967dbc ]
    
    This unique identifier is currently used only for ensuring uniqueness in
    sysfs. However, this could be handful for userspace to refer to a specific
    hid_device by this id.
    
    2 use cases are in my mind: LEDs (and their naming convention), and
    HID-BPF.
    
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Link: https://lore.kernel.org/r/20220902132938.2409206-9-benjamin.tissoires@redhat.com
    Stable-dep-of: fc43e9c857b7 ("HID: fix HID device resource race between HID core and debugging support")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6523d0eda97f9c20cd1a61c6134d9290228e9963
Author: Jonas Karlman <jonas@kwiboo.se>
Date:   Thu Oct 26 19:14:58 2023 +0000

    drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full
    
    [ Upstream commit bb0a05acd6121ff0e810b44fdc24dbdfaa46b642 ]
    
    Use of DRM_FORMAT_RGB888 and DRM_FORMAT_BGR888 on e.g. RK3288, RK3328
    and RK3399 result in wrong colors being displayed.
    
    The issue can be observed using modetest:
    
      modetest -s <connector_id>@<crtc_id>:1920x1080-60@RG24
      modetest -s <connector_id>@<crtc_id>:1920x1080-60@BG24
    
    Vendor 4.4 kernel apply an inverted rb swap for these formats on VOP
    full framework (IP version 3.x) compared to VOP little framework (2.x).
    
    Fix colors by applying different rb swap for VOP full framework (3.x)
    and VOP little framework (2.x) similar to vendor 4.4 kernel.
    
    Fixes: 85a359f25388 ("drm/rockchip: Add BGR formats to VOP")
    Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
    Tested-by: Diederik de Haas <didi.debian@cknow.org>
    Reviewed-by: Christopher Obbard <chris.obbard@collabora.com>
    Tested-by: Christopher Obbard <chris.obbard@collabora.com>
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20231026191500.2994225-1-jonas@kwiboo.se
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 611dbce07535cf00c7e7b63c2b73089aecb18246
Author: Chen Ni <nichen@iscas.ac.cn>
Date:   Tue Oct 31 04:00:07 2023 +0000

    ata: pata_isapnp: Add missing error check for devm_ioport_map()
    
    [ Upstream commit a6925165ea82b7765269ddd8dcad57c731aa00de ]
    
    Add missing error return check for devm_ioport_map() and return the
    error if this function call fails.
    
    Fixes: 0d5ff566779f ("libata: convert to iomap")
    Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
    Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
    Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c59f144e95d4794051c676849a5fc933737098f1
Author: Marek Vasut <marex@denx.de>
Date:   Mon Oct 9 00:32:56 2023 +0200

    drm/panel: simple: Fix Innolux G101ICE-L01 timings
    
    [ Upstream commit 3f9a91b6c00e655d27bd785dcda1742dbdc31bda ]
    
    The Innolux G101ICE-L01 datasheet [1] page 17 table
    6.1 INPUT SIGNAL TIMING SPECIFICATIONS
    indicates that maximum vertical blanking time is 40 lines.
    Currently the driver uses 29 lines.
    
    Fix it, and since this panel is a DE panel, adjust the timings
    to make them less hostile to controllers which cannot do 1 px
    HSA/VSA, distribute the delays evenly between all three parts.
    
    [1] https://www.data-modul.com/sites/default/files/products/G101ICE-L01-C2-specification-12042389.pdf
    
    Fixes: 1e29b840af9f ("drm/panel: simple: Add Innolux G101ICE-L01 panel")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20231008223256.279196-1-marex@denx.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f3c2760510c119c609e751c5a0b06cec6ae4bb4d
Author: Christopher Bednarz <christopher.n.bednarz@intel.com>
Date:   Fri Aug 18 09:48:38 2023 -0500

    RDMA/irdma: Prevent zero-length STAG registration
    
    commit bb6d73d9add68ad270888db327514384dfa44958 upstream.
    
    Currently irdma allows zero-length STAGs to be programmed in HW during
    the kernel mode fast register flow. Zero-length MR or STAG registration
    disable HW memory length checks.
    
    Improve gaps in bounds checking in irdma by preventing zero-length STAG or
    MR registrations except if the IB_PD_UNSAFE_GLOBAL_RKEY is set.
    
    This addresses the disclosure CVE-2023-25775.
    
    Fixes: b48c24c2d710 ("RDMA/irdma: Implement device supported verb APIs")
    Signed-off-by: Christopher Bednarz <christopher.n.bednarz@intel.com>
    Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
    Link: https://lore.kernel.org/r/20230818144838.1758-1-shiraz.saleem@intel.com
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46100607c6f4dbae4121c370c3295ad8b75637e7
Author: Saravana Kannan <saravanak@google.com>
Date:   Tue Oct 17 18:38:50 2023 -0700

    driver core: Release all resources during unbind before updating device links
    
    commit 2e84dc37920012b458e9458b19fc4ed33f81bc74 upstream.
    
    This commit fixes a bug in commit 9ed9895370ae ("driver core: Functional
    dependencies tracking support") where the device link status was
    incorrectly updated in the driver unbind path before all the device's
    resources were released.
    
    Fixes: 9ed9895370ae ("driver core: Functional dependencies tracking support")
    Cc: stable <stable@kernel.org>
    Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Closes: https://lore.kernel.org/all/20231014161721.f4iqyroddkcyoefo@pengutronix.de/
    Signed-off-by: Saravana Kannan <saravanak@google.com>
    Cc: Thierry Reding <thierry.reding@gmail.com>
    Cc: Yang Yingliang <yangyingliang@huawei.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Matti Vaittinen <mazziesaccount@gmail.com>
    Cc: James Clark <james.clark@arm.com>
    Acked-by: "Rafael J. Wysocki" <rafael@kernel.org>
    Tested-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Link: https://lore.kernel.org/r/20231018013851.3303928-1-saravanak@google.com
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>