commit eaf05d42c0d2f7be204ac2eea859524078d85763
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Jul 20 16:22:44 2021 +0200

    Linux 4.4.276
    
    Link: https://lore.kernel.org/r/20210719144913.076563739@linuxfoundation.org
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3533e50cbee8ff086bfa04176ac42a01ee3db37d
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Tue Jul 13 17:49:23 2021 +0200

    seq_file: disallow extremely large seq buffer allocations
    
    commit 8cae8cd89f05f6de223d63e6d15e31c8ba9cf53b upstream.
    
    There is no reasonable need for a buffer larger than this, and it avoids
    int overflow pitfalls.
    
    Fixes: 058504edd026 ("fs/seq_file: fallback to vmalloc allocation")
    Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
    Reported-by: Qualys Security Advisory <qsa@qualys.com>
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c41c926d9dfb3c81da370faf678eb06f7f48ba77
Author: Martin Fäcknitz <faecknitz@hotsplots.de>
Date:   Mon Jul 5 02:03:54 2021 +0200

    MIPS: vdso: Invalid GIC access through VDSO
    
    [ Upstream commit 47ce8527fbba145a7723685bc9a27d9855e06491 ]
    
    Accessing raw timers (currently only CLOCK_MONOTONIC_RAW) through VDSO
    doesn't return the correct time when using the GIC as clock source.
    The address of the GIC mapped page is in this case not calculated
    correctly. The GIC mapped page is calculated from the VDSO data by
    subtracting PAGE_SIZE:
    
      void *get_gic(const struct vdso_data *data) {
        return (void __iomem *)data - PAGE_SIZE;
      }
    
    However, the data pointer is not page aligned for raw clock sources.
    This is because the VDSO data for raw clock sources (CS_RAW = 1) is
    stored after the VDSO data for coarse clock sources (CS_HRES_COARSE = 0).
    Therefore, only the VDSO data for CS_HRES_COARSE is page aligned:
    
      +--------------------+
      |                    |
      | vd[CS_RAW]         | ---+
      | vd[CS_HRES_COARSE] |    |
      +--------------------+    | -PAGE_SIZE
      |                    |    |
      |  GIC mapped page   | <--+
      |                    |
      +--------------------+
    
    When __arch_get_hw_counter() is called with &vd[CS_RAW], get_gic returns
    the wrong address (somewhere inside the GIC mapped page). The GIC counter
    values are not returned which results in an invalid time.
    
    Fixes: a7f4df4e21dd ("MIPS: VDSO: Add implementations of gettimeofday() and clock_gettime()")
    Signed-off-by: Martin Fäcknitz <faecknitz@hotsplots.de>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b968fd44517cf93df5986b06824bc976379b937
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun Jul 4 16:02:11 2021 -0700

    mips: disable branch profiling in boot/decompress.o
    
    [ Upstream commit 97e488073cfca0eea84450169ca4cbfcc64e33e3 ]
    
    Use DISABLE_BRANCH_PROFILING for arch/mips/boot/compressed/decompress.o
    to prevent linkage errors.
    
    mips64-linux-ld: arch/mips/boot/compressed/decompress.o: in function `LZ4_decompress_fast_extDict':
    decompress.c:(.text+0x8c): undefined reference to `ftrace_likely_update'
    mips64-linux-ld: decompress.c:(.text+0xf4): undefined reference to `ftrace_likely_update'
    mips64-linux-ld: decompress.c:(.text+0x200): undefined reference to `ftrace_likely_update'
    mips64-linux-ld: decompress.c:(.text+0x230): undefined reference to `ftrace_likely_update'
    mips64-linux-ld: decompress.c:(.text+0x320): undefined reference to `ftrace_likely_update'
    mips64-linux-ld: arch/mips/boot/compressed/decompress.o:decompress.c:(.text+0x3f4): more undefined references to `ftrace_likely_update' follow
    
    Fixes: e76e1fdfa8f8 ("lib: add support for LZ4-compressed kernel")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: linux-mips@vger.kernel.org
    Cc: Kyungsik Lee <kyungsik.lee@lge.com>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dbb5ef05e112cc41b2dcae3c8e96a2eb12b8167c
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat Jun 12 09:18:34 2021 +0200

    scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe()
    
    [ Upstream commit 030e4138d11fced3b831c2761e4cecf347bae99c ]
    
    If an error occurs after a pci_enable_pcie_error_reporting() call, it must
    be undone by a corresponding pci_disable_pcie_error_reporting() call, as
    already done in the remove function.
    
    Link: https://lore.kernel.org/r/77adb02cfea7f1364e5603ecf3930d8597ae356e.1623482155.git.christophe.jaillet@wanadoo.fr
    Fixes: 3567f36a09d1 ("[SCSI] be2iscsi: Fix AER handling in driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8018476756066e97ecb886c3dc024aeb7d5792ad
Author: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Date:   Thu May 27 11:43:22 2021 -0400

    memory: fsl_ifc: fix leak of private memory on probe failure
    
    [ Upstream commit 8e0d09b1232d0538066c40ed4c13086faccbdff6 ]
    
    On probe error the driver should free the memory allocated for private
    structure.  Fix this by using resource-managed allocation.
    
    Fixes: a20cbdeffce2 ("powerpc/fsl: Add support for Integrated Flash Controller")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Link: https://lore.kernel.org/r/20210527154322.81253-2-krzysztof.kozlowski@canonical.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7a2bcb4a3731d68f938207f75ed3e1d41774510
Author: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Date:   Thu May 27 11:43:21 2021 -0400

    memory: fsl_ifc: fix leak of IO mapping on probe failure
    
    [ Upstream commit 3b132ab67fc7a358fff35e808fa65d4bea452521 ]
    
    On probe error the driver should unmap the IO memory.  Smatch reports:
    
      drivers/memory/fsl_ifc.c:298 fsl_ifc_ctrl_probe() warn: 'fsl_ifc_ctrl_dev->gregs' not released on lines: 298.
    
    Fixes: a20cbdeffce2 ("powerpc/fsl: Add support for Integrated Flash Controller")
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Link: https://lore.kernel.org/r/20210527154322.81253-1-krzysztof.kozlowski@canonical.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ea2ef115cf2d65b41cf2b7cdbba9f8dea4221853
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue May 11 10:19:26 2021 +0300

    rtc: fix snprintf() checking in is_rtc_hctosys()
    
    [ Upstream commit 54b909436ede47e0ee07f1765da27ec2efa41e84 ]
    
    The scnprintf() function silently truncates the printf() and returns
    the number bytes that it was able to copy (not counting the NUL
    terminator).  Thus, the highest value it can return here is
    "NAME_SIZE - 1" and the overflow check is dead code.  Fix this by
    using the snprintf() function which returns the number of bytes that
    would have been copied if there was enough space and changing the
    condition from "> NAME_SIZE" to ">= NAME_SIZE".
    
    Fixes: 92589c986b33 ("rtc-proc: permit the /proc/driver/rtc device to use other devices")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Link: https://lore.kernel.org/r/YJov/pcGmhLi2pEl@mwanda
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff667678a56794abfbc80bec78297a53869fd85f
Author: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Date:   Wed May 5 09:59:41 2021 -0400

    ARM: dts: exynos: fix PWM LED max brightness on Odroid XU4
    
    [ Upstream commit fd2f1717966535b7d0b6fe45cf0d79e94330da5f ]
    
    There is no "max_brightness" property as pointed out by dtschema:
    
      arch/arm/boot/dts/exynos5422-odroidxu4.dt.yaml: led-controller: led-1: 'max-brightness' is a required property
    
    Fixes: 6658356014cb ("ARM: dts: Add support Odroid XU4 board for exynos5422-odroidxu4")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Link: https://lore.kernel.org/r/20210505135941.59898-5-krzysztof.kozlowski@canonical.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 67f42086e8db1db14e937ec605092d80ec1b8e8b
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Wed Jul 7 18:07:41 2021 -0700

    hexagon: use common DISCARDS macro
    
    [ Upstream commit 681ba73c72302214686401e707e2087ed11a6556 ]
    
    ld.lld warns that the '.modinfo' section is not currently handled:
    
    ld.lld: warning: kernel/built-in.a(workqueue.o):(.modinfo) is being placed in '.modinfo'
    ld.lld: warning: kernel/built-in.a(printk/printk.o):(.modinfo) is being placed in '.modinfo'
    ld.lld: warning: kernel/built-in.a(irq/spurious.o):(.modinfo) is being placed in '.modinfo'
    ld.lld: warning: kernel/built-in.a(rcu/update.o):(.modinfo) is being placed in '.modinfo'
    
    The '.modinfo' section was added in commit 898490c010b5 ("moduleparam:
    Save information about built-in modules in separate file") to the DISCARDS
    macro but Hexagon has never used that macro.  The unification of DISCARDS
    happened in commit 023bf6f1b8bf ("linker script: unify usage of discard
    definition") in 2009, prior to Hexagon being added in 2011.
    
    Switch Hexagon over to the DISCARDS macro so that anything that is
    expected to be discarded gets discarded.
    
    Link: https://lkml.kernel.org/r/20210521011239.1332345-3-nathan@kernel.org
    Fixes: e95bf452a9e2 ("Hexagon: Add configuration and makefiles for the Hexagon architecture.")
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Acked-by: Brian Cain <bcain@codeaurora.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Oliver Glitta <glittao@gmail.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 226ab6028182e34fdc0bdfb8df5f6cab6bfc4376
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Wed Jul 7 15:40:51 2021 +0800

    ALSA: isa: Fix error return code in snd_cmi8330_probe()
    
    [ Upstream commit 31028cbed26a8afa25533a10425ffa2ab794c76c ]
    
    When 'SB_HW_16' check fails, the error code -ENODEV instead of 0 should be
    returned, which is the same as that returned when 'WSS_HW_CMI8330' check
    fails.
    
    Fixes: 43bcd973d6d0 ("[ALSA] Add snd_card_set_generic_dev() call to ISA drivers")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Link: https://lore.kernel.org/r/20210707074051.2663-1-thunder.leizhen@huawei.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2e3960f276b4574a9bb0dfa31a7497302f6363b2
Author: Gao Xiang <hsiangkao@linux.alibaba.com>
Date:   Fri Jun 18 12:20:55 2021 +0800

    nfs: fix acl memory leak of posix_acl_create()
    
    [ Upstream commit 1fcb6fcd74a222d9ead54d405842fc763bb86262 ]
    
    When looking into another nfs xfstests report, I found acl and
    default_acl in nfs3_proc_create() and nfs3_proc_mknod() error
    paths are possibly leaked. Fix them in advance.
    
    Fixes: 013cdf1088d7 ("nfs: use generic posix ACL infrastructure for v3 Posix ACLs")
    Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
    Cc: Anna Schumaker <anna.schumaker@netapp.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
    Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 177c014dc66de67fab0eb16f061f641f9ad74c08
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Sat May 8 11:22:39 2021 +0800

    um: fix error return code in winch_tramp()
    
    [ Upstream commit ccf1236ecac476d9d2704866d9a476c86e387971 ]
    
    Fix to return a negative error code from the error handling case instead
    of 0, as done elsewhere in this function.
    
    Fixes: 89df6bfc0405 ("uml: DEBUG_SHIRQ fixes")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Acked-By: anton.ivanov@cambridgegreys.com
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2e94acceb8e782112e94d48e4af3694f7012ac55
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Sat May 8 11:13:54 2021 +0800

    um: fix error return code in slip_open()
    
    [ Upstream commit b77e81fbe5f5fb4ad9a61ec80f6d1e30b6da093a ]
    
    Fix to return a negative error code from the error handling case instead
    of 0, as done elsewhere in this function.
    
    Fixes: a3c77c67a443 ("[PATCH] uml: slirp and slip driver cleanups and fixes")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Acked-By: anton.ivanov@cambridgegreys.com
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf9c734840132c44b5e687532346208027ddbc3c
Author: Krzysztof Wilczyński <kw@linux.com>
Date:   Thu Jun 3 00:01:12 2021 +0000

    PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun
    
    [ Upstream commit bdcdaa13ad96f1a530711c29e6d4b8311eff767c ]
    
    "utf16s_to_utf8s(..., buf, PAGE_SIZE)" puts up to PAGE_SIZE bytes into
    "buf" and returns the number of bytes it actually put there.  If it wrote
    PAGE_SIZE bytes, the newline added by dsm_label_utf16s_to_utf8s() would
    overrun "buf".
    
    Reduce the size available for utf16s_to_utf8s() to use so there is always
    space for the newline.
    
    [bhelgaas: reorder patch in series, commit log]
    Fixes: 6058989bad05 ("PCI: Export ACPI _DSM provided firmware instance number and string name to sysfs")
    Link: https://lore.kernel.org/r/20210603000112.703037-7-kw@linux.com
    Reported-by: Joe Perches <joe@perches.com>
    Signed-off-by: Krzysztof Wilczyński <kw@linux.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 187f14fb88a9e62d55924748a274816fe6f34de6
Author: Xie Yongji <xieyongji@bytedance.com>
Date:   Tue May 25 20:56:22 2021 +0800

    virtio_console: Assure used length from device is limited
    
    [ Upstream commit d00d8da5869a2608e97cfede094dfc5e11462a46 ]
    
    The buf->len might come from an untrusted device. This
    ensures the value would not exceed the size of the buffer
    to avoid data corruption or loss.
    
    Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Link: https://lore.kernel.org/r/20210525125622.1203-1-xieyongji@bytedance.com
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 381bde79d11e596002edfd914e6714291826967a
Author: Xie Yongji <xieyongji@bytedance.com>
Date:   Mon May 17 16:43:32 2021 +0800

    virtio-blk: Fix memory leak among suspend/resume procedure
    
    [ Upstream commit b71ba22e7c6c6b279c66f53ee7818709774efa1f ]
    
    The vblk->vqs should be freed before we call init_vqs()
    in virtblk_restore().
    
    Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
    Link: https://lore.kernel.org/r/20210517084332.280-1-xieyongji@bytedance.com
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c06f8c01ac923e555af0000f279860d0f7dab81b
Author: Zou Wei <zou_wei@huawei.com>
Date:   Sat Jun 5 09:21:41 2021 +0800

    power: supply: ab8500: add missing MODULE_DEVICE_TABLE
    
    [ Upstream commit dfe52db13ab8d24857a9840ec7ca75eef800c26c ]
    
    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this driver when it is built
    as an external module.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8c59cfe18ac9ea52a6df1008e6a7d26cebb65ff
Author: Zou Wei <zou_wei@huawei.com>
Date:   Sat Jun 5 09:21:54 2021 +0800

    power: supply: charger-manager: add missing MODULE_DEVICE_TABLE
    
    [ Upstream commit 073b5d5b1f9cc94a3eea25279fbafee3f4f5f097 ]
    
    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this driver when it is built
    as an external module.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e33699d9f441c40aa1d97c60f863d4f8655ebe8f
Author: Jeff Layton <jlayton@kernel.org>
Date:   Tue May 4 10:08:30 2021 -0400

    ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
    
    [ Upstream commit 22d41cdcd3cfd467a4af074165357fcbea1c37f5 ]
    
    The checks for page->mapping are odd, as set_page_dirty is an
    address_space operation, and I don't see where it would be called on a
    non-pagecache page.
    
    The warning about the page lock also seems bogus.  The comment over
    set_page_dirty() says that it can be called without the page lock in
    some rare cases. I don't think we want to warn if that's the case.
    
    Reported-by: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 58606882ad8ec6c39e0f40344b922921ef94ab4d
Author: Zou Wei <zou_wei@huawei.com>
Date:   Wed May 12 14:57:56 2021 +0800

    watchdog: Fix possible use-after-free by calling del_timer_sync()
    
    [ Upstream commit d0212f095ab56672f6f36aabc605bda205e1e0bf ]
    
    This driver's remove path calls del_timer(). However, that function
    does not wait until the timer handler finishes. This means that the
    timer handler may still be running after the driver's remove function
    has finished, which would result in a use-after-free.
    
    Fix by calling del_timer_sync(), which makes sure the timer handler
    has finished, and unable to re-schedule itself.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Acked-by: Vladimir Zapolskiy <vz@mleia.com>
    Link: https://lore.kernel.org/r/1620802676-19701-1-git-send-email-zou_wei@huawei.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0015581a79bbf8e521f85dddb7d3e4a66b9f51d4
Author: Zou Wei <zou_wei@huawei.com>
Date:   Tue May 11 15:04:51 2021 +0800

    watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff()
    
    [ Upstream commit 90b7c141132244e8e49a34a4c1e445cce33e07f4 ]
    
    This module's remove path calls del_timer(). However, that function
    does not wait until the timer handler finishes. This means that the
    timer handler may still be running after the driver's remove function
    has finished, which would result in a use-after-free.
    
    Fix by calling del_timer_sync(), which makes sure the timer handler
    has finished, and unable to re-schedule itself.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/1620716691-108460-1-git-send-email-zou_wei@huawei.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 63a3dc24bd053792f84cb4eef0168b1266202a02
Author: Zou Wei <zou_wei@huawei.com>
Date:   Tue May 11 15:01:35 2021 +0800

    watchdog: Fix possible use-after-free in wdt_startup()
    
    [ Upstream commit c08a6b31e4917034f0ed0cb457c3bb209576f542 ]
    
    This module's remove path calls del_timer(). However, that function
    does not wait until the timer handler finishes. This means that the
    timer handler may still be running after the driver's remove function
    has finished, which would result in a use-after-free.
    
    Fix by calling del_timer_sync(), which makes sure the timer handler
    has finished, and unable to re-schedule itself.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/1620716495-108352-1-git-send-email-zou_wei@huawei.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c681e8c459a50037ef703266c32a86091eb776e
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Tue Jun 1 20:29:26 2021 +0100

    ARM: 9087/1: kprobes: test-thumb: fix for LLVM_IAS=1
    
    [ Upstream commit 8b95a7d90ce8160ac5cffd5bace6e2eba01a871e ]
    
    There's a few instructions that GAS infers operands but Clang doesn't;
    from what I can tell the Arm ARM doesn't say these are optional.
    
    F5.1.257 TBB, TBH T1 Halfword variant
    F5.1.238 STREXD T1 variant
    F5.1.84 LDREXD T1 variant
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/1309
    
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Reviewed-by: Jian Cai <jiancai@google.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 03247d71b9a97335dc7f148203f525ac8b852dee
Author: Bixuan Cui <cuibixuan@huawei.com>
Date:   Sat May 8 11:14:59 2021 +0800

    power: reset: gpio-poweroff: add missing MODULE_DEVICE_TABLE
    
    [ Upstream commit ed3443fb4df4e140a22f65144546c8a8e1e27f4e ]
    
    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this driver when it is built
    as an external module.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Bixuan Cui <cuibixuan@huawei.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4fc5a5f973b9bd7640cbdeaf9409e6035d64e8b0
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Sun May 23 00:50:41 2021 +0200

    power: supply: ab8500: Avoid NULL pointers
    
    [ Upstream commit 5bcb5087c9dd3dca1ff0ebd8002c5313c9332b56 ]
    
    Sometimes the code will crash because we haven't enabled
    AC or USB charging and thus not created the corresponding
    psy device. Fix it by checking that it is there before
    notifying.
    
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0c7c46e09f52cf36c55f70ca7b292b095de4f0b
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Wed Apr 28 11:05:24 2021 +0200

    pwm: spear: Don't modify HW state in .remove callback
    
    [ Upstream commit b601a18f12383001e7a8da238de7ca1559ebc450 ]
    
    A consumer is expected to disable a PWM before calling pwm_put(). And if
    they didn't there is hopefully a good reason (or the consumer needs
    fixing). Also if disabling an enabled PWM was the right thing to do,
    this should better be done in the framework instead of in each low level
    driver.
    
    So drop the hardware modification from the .remove() callback.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 61813d1642cc92b554b0494e10358c0c2b272d6c
Author: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
Date:   Wed Jun 30 18:56:16 2021 -0700

    lib/decompress_unlz4.c: correctly handle zero-padding around initrds.
    
    [ Upstream commit 2c484419efc09e7234c667aa72698cb79ba8d8ed ]
    
    lz4 compatible decompressor is simple.  The format is underspecified and
    relies on EOF notification to determine when to stop.  Initramfs buffer
    format[1] explicitly states that it can have arbitrary number of zero
    padding.  Thus when operating without a fill function, be extra careful to
    ensure that sizes less than 4, or apperantly empty chunksizes are treated
    as EOF.
    
    To test this I have created two cpio initrds, first a normal one,
    main.cpio.  And second one with just a single /test-file with content
    "second" second.cpio.  Then i compressed both of them with gzip, and with
    lz4 -l.  Then I created a padding of 4 bytes (dd if=/dev/zero of=pad4 bs=1
    count=4).  To create four testcase initrds:
    
     1) main.cpio.gzip + extra.cpio.gzip = pad0.gzip
     2) main.cpio.lz4  + extra.cpio.lz4 = pad0.lz4
     3) main.cpio.gzip + pad4 + extra.cpio.gzip = pad4.gzip
     4) main.cpio.lz4  + pad4 + extra.cpio.lz4 = pad4.lz4
    
    The pad4 test-cases replicate the initrd load by grub, as it pads and
    aligns every initrd it loads.
    
    All of the above boot, however /test-file was not accessible in the initrd
    for the testcase #4, as decoding in lz4 decompressor failed.  Also an
    error message printed which usually is harmless.
    
    Whith a patched kernel, all of the above testcases now pass, and
    /test-file is accessible.
    
    This fixes lz4 initrd decompress warning on every boot with grub.  And
    more importantly this fixes inability to load multiple lz4 compressed
    initrds with grub.  This patch has been shipping in Ubuntu kernels since
    January 2021.
    
    [1] ./Documentation/driver-api/early-userspace/buffer-format.rst
    
    BugLink: https://bugs.launchpad.net/bugs/1835660
    Link: https://lore.kernel.org/lkml/20210114200256.196589-1-xnox@ubuntu.com/ # v0
    Link: https://lkml.kernel.org/r/20210513104831.432975-1-dimitri.ledkov@canonical.com
    Signed-off-by: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
    Cc: Kyungsik Lee <kyungsik.lee@lge.com>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Bongkyu Kim <bongkyu.kim@lge.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Sven Schmidt <4sschmid@informatik.uni-hamburg.de>
    Cc: Rajat Asthana <thisisrast7@gmail.com>
    Cc: Nick Terrell <terrelln@fb.com>
    Cc: Gao Xiang <hsiangkao@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 25290e531911978a23327daba1e3601ef257e339
Author: Jiajun Cao <jjcao20@fudan.edu.cn>
Date:   Tue Jun 22 21:19:42 2021 +0800

    ALSA: hda: Add IRQ check for platform_get_irq()
    
    [ Upstream commit 8c13212443230d03ff25014514ec0d53498c0912 ]
    
    The function hda_tegra_first_init() neglects to check the return
    value after executing platform_get_irq().
    
    hda_tegra_first_init() should check the return value (if negative
    error number) for errors so as to not pass a negative value to
    the devm_request_irq().
    
    Fix it by adding a check for the return value irq_id.
    
    Signed-off-by: Jiajun Cao <jjcao20@fudan.edu.cn>
    Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
    Reviewed-by: Thierry Reding <treding@nvidia.com>
    Link: https://lore.kernel.org/r/20210622131947.94346-1-jjcao20@fudan.edu.cn
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d0588fb97efc8d66161a9d3cecd9b18955948536
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Mon Jun 21 14:21:47 2021 +0200

    backlight: lm3630a: Fix return code of .update_status() callback
    
    [ Upstream commit b9481a667a90ec739995e85f91f3672ca44d6ffa ]
    
    According to <linux/backlight.h> .update_status() is supposed to
    return 0 on success and a negative error code otherwise. Adapt
    lm3630a_bank_a_update_status() and lm3630a_bank_b_update_status() to
    actually do it.
    
    While touching that also add the error code to the failure message.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b34702cbc82b82bf4079d8102030345ce3179cd0
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Fri Jun 18 13:49:00 2021 +1000

    powerpc/boot: Fixup device-tree on little endian
    
    [ Upstream commit c93f80849bdd9b45d834053ae1336e28f0026c84 ]
    
    This fixes the core devtree.c functions and the ns16550 UART backend.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
    Reviewed-by: Segher Boessenkool <segher@kernel.crashing.org>
    Acked-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/YMwXrPT8nc4YUdJ9@thinks.paulus.ozlabs.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f45d07b7d6d07d8afb3cd4d24f5102d33efe7886
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Fri Jun 18 12:38:35 2021 +0800

    usb: gadget: hid: fix error return code in hid_bind()
    
    [ Upstream commit 88693f770bb09c196b1eb5f06a484a254ecb9924 ]
    
    Fix to return a negative error code from the error handling
    case instead of 0.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Link: https://lore.kernel.org/r/20210618043835.2641360-1-yangyingliang@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0cc183153897c74635e9a3af1edb0bba3c97cfea
Author: Ruslan Bilovol <ruslan.bilovol@gmail.com>
Date:   Thu Jun 17 19:27:55 2021 +0300

    usb: gadget: f_hid: fix endianness issue with descriptors
    
    [ Upstream commit 33cb46c4676d01956811b68a29157ea969a5df70 ]
    
    Running sparse checker it shows warning message about
    incorrect endianness used for descriptor initialization:
    
    | f_hid.c:91:43: warning: incorrect type in initializer (different base types)
    | f_hid.c:91:43:    expected restricted __le16 [usertype] bcdHID
    | f_hid.c:91:43:    got int
    
    Fixing issue with cpu_to_le16() macro, however this is not a real issue
    as the value is the same both endians.
    
    Cc: Fabien Chouteau <fabien.chouteau@barco.com>
    Cc: Segiy Stetsyuk <serg_stetsuk@ukr.net>
    Signed-off-by: Ruslan Bilovol <ruslan.bilovol@gmail.com>
    Link: https://lore.kernel.org/r/20210617162755.29676-1-ruslan.bilovol@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4841fbfbaed3de59ea88afc18eb049a41fea96e7
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Sat Jun 19 17:39:22 2021 +0900

    ALSA: bebob: add support for ToneWeal FW66
    
    [ Upstream commit 50ebe56222bfa0911a932930f9229ee5995508d9 ]
    
    A user of FFADO project reported the issue of ToneWeal FW66. As a result,
    the device is identified as one of applications of BeBoB solution.
    
    I note that in the report the device returns contradictory result in plug
    discovery process for audio subunit. Fortunately ALSA BeBoB driver doesn't
    perform it thus it's likely to handle the device without issues.
    
    I receive no reaction to test request for this patch yet, however it would
    be worth to add support for it.
    
    daniel@gibbonmoon:/sys/bus/firewire/devices/fw1$ grep -r . *
    Binary file config_rom matches
    dev:244:1
    guid:0x0023270002000000
    hardware_version:0x000002
    is_local:0
    model:0x020002
    model_name:FW66
    power/runtime_active_time:0
    power/runtime_active_kids:0
    power/runtime_usage:0
    power/runtime_status:unsupported
    power/async:disabled
    power/runtime_suspended_time:0
    power/runtime_enabled:disabled
    power/control:auto
    subsystem/drivers_autoprobe:1
    uevent:MAJOR=244
    uevent:MINOR=1
    uevent:DEVNAME=fw1
    units:0x00a02d:0x010001
    vendor:0x002327
    vendor_name:ToneWeal
    fw1.0/uevent:MODALIAS=ieee1394:ven00002327mo00020002sp0000A02Dver00010001
    fw1.0/power/runtime_active_time:0
    fw1.0/power/runtime_active_kids:0
    fw1.0/power/runtime_usage:0
    fw1.0/power/runtime_status:unsupported
    fw1.0/power/async:disabled
    fw1.0/power/runtime_suspended_time:0
    fw1.0/power/runtime_enabled:disabled
    fw1.0/power/control:auto
    fw1.0/model:0x020002
    fw1.0/rom_index:15
    fw1.0/specifier_id:0x00a02d
    fw1.0/model_name:FW66
    fw1.0/version:0x010001
    fw1.0/modalias:ieee1394:ven00002327mo00020002sp0000A02Dver00010001
    
    Cc: Daniel Jozsef <daniel.jozsef@gmail.com>
    Reference: https://lore.kernel.org/alsa-devel/20200119164335.GA11974@workstation/
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20210619083922.16060-1-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf6596c5fb8af4d77b28bb35c54c69249a02fca8
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Thu Jun 17 18:37:29 2021 +0800

    ASoC: soc-core: Fix the error return code in snd_soc_of_parse_audio_routing()
    
    [ Upstream commit 7d3865a10b9ff2669c531d5ddd60bf46b3d48f1e ]
    
    When devm_kcalloc() fails, the error code -ENOMEM should be returned
    instead of -EINVAL.
    
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Link: https://lore.kernel.org/r/20210617103729.1918-1-thunder.leizhen@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c2bcdfd6050300cc45493dfe758166ed11279413
Author: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Date:   Tue May 25 09:51:42 2021 -0400

    selftests/powerpc: Fix "no_handler" EBB selftest
    
    [ Upstream commit 45677c9aebe926192e59475b35a1ff35ff2d4217 ]
    
    The "no_handler_test" in ebb selftests attempts to read the PMU
    registers twice via helper function "dump_ebb_state". First dump is
    just before closing of event and the second invocation is done after
    closing of the event. The original intention of second
    dump_ebb_state was to dump the state of registers at the end of
    the test when the counters are frozen. But this will be achieved
    with the first call itself since sample period is set to low value
    and PMU will be frozen by then. Hence patch removes the
    dump which was done before closing of the event.
    
    Reported-by: Shirisha Ganta <shirisha.ganta1@ibm.com>
    Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com <mailto:rnsastry@linux.ibm.com>>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/1621950703-1532-2-git-send-email-atrajeev@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a5119f5ccd311bed5782e52d2b4327f4a3cdab0c
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Wed Jun 16 10:11:21 2021 +0800

    ALSA: ppc: fix error return code in snd_pmac_probe()
    
    [ Upstream commit 80b9c1be567c3c6bbe0d4b290af578e630485b5d ]
    
    If snd_pmac_tumbler_init() or snd_pmac_tumbler_post_init() fails,
    snd_pmac_probe() need return error code.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Link: https://lore.kernel.org/r/20210616021121.1991502-1-yangyingliang@huawei.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2f02ffdd6f6d2bd3f0974387348522bae0c22a2f
Author: Srinivas Neeli <srinivas.neeli@xilinx.com>
Date:   Fri Apr 9 19:38:05 2021 +0530

    gpio: zynq: Check return value of pm_runtime_get_sync
    
    [ Upstream commit a51b2fb94b04ab71e53a71b9fad03fa826941254 ]
    
    Return value of "pm_runtime_get_sync" API was neither captured nor checked.
    Fixed it by capturing the return value and then checking for any warning.
    
    Addresses-Coverity: "check_return"
    Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
    Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 209fcdad57061f30c5acaca4fe3eed36c28c2086
Author: Geoff Levand <geoff@infradead.org>
Date:   Thu Jun 3 19:17:02 2021 +0000

    powerpc/ps3: Add dma_mask to ps3_dma_region
    
    [ Upstream commit 9733862e50fdba55e7f1554e4286fcc5302ff28e ]
    
    Commit f959dcd6ddfd29235030e8026471ac1b022ad2b0 (dma-direct: Fix
    potential NULL pointer dereference) added a null check on the
    dma_mask pointer of the kernel's device structure.
    
    Add a dma_mask variable to the ps3_dma_region structure and set
    the device structure's dma_mask pointer to point to this new variable.
    
    Fixes runtime errors like these:
    # WARNING: Fixes tag on line 10 doesn't match correct format
    # WARNING: Fixes tag on line 10 doesn't match correct format
    
      ps3_system_bus_match:349: dev=8.0(sb_01), drv=8.0(ps3flash): match
      WARNING: CPU: 0 PID: 1 at kernel/dma/mapping.c:151 .dma_map_page_attrs+0x34/0x1e0
      ps3flash sb_01: ps3stor_setup:193: map DMA region failed
    
    Signed-off-by: Geoff Levand <geoff@infradead.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/562d0c9ea0100a30c3b186bcc7adb34b0bbd2cd7.1622746428.git.geoff@infradead.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 25325ef39a58cf4e4b7247eef23de713194cf3e6
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Jun 8 16:04:37 2021 +0200

    ALSA: sb: Fix potential double-free of CSP mixer elements
    
    [ Upstream commit c305366a37441c2ac90b08711cb6f032b43672f2 ]
    
    snd_sb_qsound_destroy() contains the calls of removing the previously
    created mixer controls, but it doesn't clear the pointers.  As
    snd_sb_qsound_destroy() itself may be repeatedly called via ioctl,
    this could lead to double-free potentially.
    
    Fix it by clearing the struct fields properly afterwards.
    
    Link: https://lore.kernel.org/r/20210608140540.17885-4-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 31c99ad8243c28a875e852916091ee69e83e5a90
Author: Zou Wei <zou_wei@huawei.com>
Date:   Wed May 12 14:33:46 2021 +0800

    mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE
    
    [ Upstream commit 4700ef326556ed74aba188f12396740a8c1c21dd ]
    
    This patch adds/modifies MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this driver when it is built
    as an external module.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 56f516f885fbf0ae3fc609a346efc1c97d74f12d
Author: Mike Christie <michael.christie@oracle.com>
Date:   Tue May 25 13:18:03 2021 -0500

    scsi: iscsi: Add iscsi_cls_conn refcount helpers
    
    [ Upstream commit b1d19e8c92cfb0ded180ef3376c20e130414e067 ]
    
    There are a couple places where we could free the iscsi_cls_conn while it's
    still in use. This adds some helpers to get/put a refcount on the struct
    and converts an exiting user. Subsequent commits will then use the helpers
    to fix 2 bugs in the eh code.
    
    Link: https://lore.kernel.org/r/20210525181821.7617-11-michael.christie@oracle.com
    Reviewed-by: Lee Duncan <lduncan@suse.com>
    Signed-off-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3643e397f9bbce4b290b74ed9339d1f59c12ec7a
Author: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Date:   Tue Jun 1 19:07:10 2021 +0800

    fs/jfs: Fix missing error code in lmLogInit()
    
    [ Upstream commit 492109333c29e1bb16d8732e1d597b02e8e0bf2e ]
    
    The error code is missing in this code scenario, add the error code
    '-EINVAL' to the return value 'rc.
    
    Eliminate the follow smatch warning:
    
    fs/jfs/jfs_logmgr.c:1327 lmLogInit() warn: missing error code 'rc'.
    
    Reported-by: Abaci Robot <abaci@linux.alibaba.com>
    Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
    Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5a2799cd62ed30c81b22c23028d9ee374e2138c
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Tue May 25 21:44:04 2021 +0200

    tty: serial: 8250: serial_cs: Fix a memory leak in error handling path
    
    [ Upstream commit fad92b11047a748c996ebd6cfb164a63814eeb2e ]
    
    In the probe function, if the final 'serial_config()' fails, 'info' is
    leaking.
    
    Add a resource handling path to free this memory.
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/dc25f96b7faebf42e60fe8d02963c941cf4d8124.1621971720.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit df597f4718d370de072010a42faf1c1119ffa660
Author: James Smart <jsmart2021@gmail.com>
Date:   Fri May 14 12:55:51 2021 -0700

    scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology
    
    [ Upstream commit e30d55137edef47434c40d7570276a0846fe922c ]
    
    An 'unexpected timeout' message may be seen in a point-2-point topology.
    The message occurs when a PLOGI is received before the driver is notified
    of FLOGI completion. The FLOGI completion failure causes discovery to be
    triggered for a second time. The discovery timer is restarted but no new
    discovery activity is initiated, thus the timeout message eventually
    appears.
    
    In point-2-point, when discovery has progressed before the FLOGI completion
    is processed, it is not a failure. Add code to FLOGI completion to detect
    that discovery has progressed and exit the FLOGI handling (noop'ing it).
    
    Link: https://lore.kernel.org/r/20210514195559.119853-4-jsmart2021@gmail.com
    Co-developed-by: Justin Tee <justin.tee@broadcom.com>
    Signed-off-by: Justin Tee <justin.tee@broadcom.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c34b6d305643d19416be6837f37bc1ade31c244
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Tue May 18 17:45:47 2021 +0900

    Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro"
    
    [ Upstream commit 5d6fb80a142b5994355ce675c517baba6089d199 ]
    
    This reverts commit 0edabdfe89581669609eaac5f6a8d0ae6fe95e7f.
    
    I've explained that optional FireWire card for d.2 is also built-in to
    d.2 Pro, however it's wrong. The optional card uses DM1000 ASIC and has
    'Mackie DJ Mixer' in its model name of configuration ROM. On the other
    hand, built-in FireWire card for d.2 Pro and d.4 Pro uses OXFW971 ASIC
    and has 'd.Pro' in its model name according to manuals and user
    experiences. The former card is not the card for d.2 Pro. They are similar
    in appearance but different internally.
    
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20210518084557.102681-2-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1512e7dc5eb08b7d92a12e2bfcd9cb8c4a1ec069
Author: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
Date:   Mon Apr 26 10:06:20 2021 -0700

    misc/libmasm/module: Fix two use after free in ibmasm_init_one
    
    [ Upstream commit 7272b591c4cb9327c43443f67b8fbae7657dd9ae ]
    
    In ibmasm_init_one, it calls ibmasm_init_remote_input_dev().
    Inside ibmasm_init_remote_input_dev, mouse_dev and keybd_dev are
    allocated by input_allocate_device(), and assigned to
    sp->remote.mouse_dev and sp->remote.keybd_dev respectively.
    
    In the err_free_devices error branch of ibmasm_init_one,
    mouse_dev and keybd_dev are freed by input_free_device(), and return
    error. Then the execution runs into error_send_message error branch
    of ibmasm_init_one, where ibmasm_free_remote_input_dev(sp) is called
    to unregister the freed sp->remote.mouse_dev and sp->remote.keybd_dev.
    
    My patch add a "error_init_remote" label to handle the error of
    ibmasm_init_remote_input_dev(), to avoid the uaf bugs.
    
    Signed-off-by: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
    Link: https://lore.kernel.org/r/20210426170620.10546-1-lyl2019@mail.ustc.edu.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 80ba909abe14f0fa64716509f4f83537bb06f21e
Author: Sherry Sun <sherry.sun@nxp.com>
Date:   Tue Apr 27 10:12:26 2021 +0800

    tty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero
    
    [ Upstream commit fcb10ee27fb91b25b68d7745db9817ecea9f1038 ]
    
    We should be very careful about the register values that will be used
    for division or modulo operations, althrough the possibility that the
    UARTBAUD register value is zero is very low, but we had better to deal
    with the "bad data" of hardware in advance to avoid division or modulo
    by zero leading to undefined kernel behavior.
    
    Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
    Link: https://lore.kernel.org/r/20210427021226.27468-1-sherry.sun@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7991076be7ee53e600bf397b6c97a08b641c8614
Author: Lai Jiangshan <laijs@linux.alibaba.com>
Date:   Tue Jun 29 01:26:32 2021 +0800

    KVM: X86: Disable hardware breakpoints unconditionally before kvm_x86->run()
    
    commit f85d40160691881a17a397c448d799dfc90987ba upstream.
    
    When the host is using debug registers but the guest is not using them
    nor is the guest in guest-debug state, the kvm code does not reset
    the host debug registers before kvm_x86->run().  Rather, it relies on
    the hardware vmentry instruction to automatically reset the dr7 registers
    which ensures that the host breakpoints do not affect the guest.
    
    This however violates the non-instrumentable nature around VM entry
    and exit; for example, when a host breakpoint is set on vcpu->arch.cr2,
    
    Another issue is consistency.  When the guest debug registers are active,
    the host breakpoints are reset before kvm_x86->run(). But when the
    guest debug registers are inactive, the host breakpoints are delayed to
    be disabled.  The host tracing tools may see different results depending
    on what the guest is doing.
    
    To fix the problems, we clear %db7 unconditionally before kvm_x86->run()
    if the host has set any breakpoints, no matter if the guest is using
    them or not.
    
    Signed-off-by: Lai Jiangshan <laijs@linux.alibaba.com>
    Message-Id: <20210628172632.81029-1-jiangshanlai@gmail.com>
    Cc: stable@vger.kernel.org
    [Only clear %db7 instead of reloading all debug registers. - Paolo]
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95b4af3342548857a67def0c3af5051678f84ce2
Author: Sean Christopherson <seanjc@google.com>
Date:   Wed Jun 23 16:05:46 2021 -0700

    KVM: x86: Use guest MAXPHYADDR from CPUID.0x8000_0008 iff TDP is enabled
    
    commit 4bf48e3c0aafd32b960d341c4925b48f416f14a5 upstream.
    
    Ignore the guest MAXPHYADDR reported by CPUID.0x8000_0008 if TDP, i.e.
    NPT, is disabled, and instead use the host's MAXPHYADDR.  Per AMD'S APM:
    
      Maximum guest physical address size in bits. This number applies only
      to guests using nested paging. When this field is zero, refer to the
      PhysAddrSize field for the maximum guest physical address size.
    
    Fixes: 24c82e576b78 ("KVM: Sanitize cpuid")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Message-Id: <20210623230552.4027702-2-seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7bde24bde490f3139eee147efc6d60d6040fe975
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Sun Jun 6 17:24:05 2021 +0300

    jfs: fix GPF in diFree
    
    commit 9d574f985fe33efd6911f4d752de6f485a1ea732 upstream.
    
    Avoid passing inode with
    JFS_SBI(inode->i_sb)->ipimap == NULL to
    diFree()[1]. GFP will appear:
    
            struct inode *ipimap = JFS_SBI(ip->i_sb)->ipimap;
            struct inomap *imap = JFS_IP(ipimap)->i_imap;
    
    JFS_IP() will return invalid pointer when ipimap == NULL
    
    Call Trace:
     diFree+0x13d/0x2dc0 fs/jfs/jfs_imap.c:853 [1]
     jfs_evict_inode+0x2c9/0x370 fs/jfs/inode.c:154
     evict+0x2ed/0x750 fs/inode.c:578
     iput_final fs/inode.c:1654 [inline]
     iput.part.0+0x3fe/0x820 fs/inode.c:1680
     iput+0x58/0x70 fs/inode.c:1670
    
    Reported-and-tested-by: syzbot+0a89a7b56db04c21a656@syzkaller.appspotmail.com
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eebbe27ed8605a8648cd72afc14af273b9d8f4c8
Author: Benjamin Drung <bdrung@posteo.de>
Date:   Sat Jun 5 22:15:36 2021 +0200

    media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K
    
    commit 4c6e0976295add7f0ed94d276c04a3d6f1ea8f83 upstream.
    
    The Elgato Cam Link 4K HDMI video capture card reports to support three
    different pixel formats, where the first format depends on the connected
    HDMI device.
    
    ```
    $ v4l2-ctl -d /dev/video0 --list-formats-ext
    ioctl: VIDIOC_ENUM_FMT
            Type: Video Capture
    
            [0]: 'NV12' (Y/CbCr 4:2:0)
                    Size: Discrete 3840x2160
                            Interval: Discrete 0.033s (29.970 fps)
            [1]: 'NV12' (Y/CbCr 4:2:0)
                    Size: Discrete 3840x2160
                            Interval: Discrete 0.033s (29.970 fps)
            [2]: 'YU12' (Planar YUV 4:2:0)
                    Size: Discrete 3840x2160
                            Interval: Discrete 0.033s (29.970 fps)
    ```
    
    Changing the pixel format to anything besides the first pixel format
    does not work:
    
    ```
    $ v4l2-ctl -d /dev/video0 --try-fmt-video pixelformat=YU12
    Format Video Capture:
            Width/Height      : 3840/2160
            Pixel Format      : 'NV12' (Y/CbCr 4:2:0)
            Field             : None
            Bytes per Line    : 3840
            Size Image        : 12441600
            Colorspace        : sRGB
            Transfer Function : Rec. 709
            YCbCr/HSV Encoding: Rec. 709
            Quantization      : Default (maps to Limited Range)
            Flags             :
    ```
    
    User space applications like VLC might show an error message on the
    terminal in that case:
    
    ```
    libv4l2: error set_fmt gave us a different result than try_fmt!
    ```
    
    Depending on the error handling of the user space applications, they
    might display a distorted video, because they use the wrong pixel format
    for decoding the stream.
    
    The Elgato Cam Link 4K responds to the USB video probe
    VS_PROBE_CONTROL/VS_COMMIT_CONTROL with a malformed data structure: The
    second byte contains bFormatIndex (instead of being the second byte of
    bmHint). The first byte is always zero. The third byte is always 1.
    
    The firmware bug was reported to Elgato on 2020-12-01 and it was
    forwarded by the support team to the developers as feature request.
    There is no firmware update available since then. The latest firmware
    for Elgato Cam Link 4K as of 2021-03-23 has MCU 20.02.19 and FPGA 67.
    
    Therefore correct the malformed data structure for this device. The
    change was successfully tested with VLC, OBS, and Chromium using
    different pixel formats (YUYV, NV12, YU12), resolutions (3840x2160,
    1920x1080), and frame rates (29.970 and 59.940 fps).
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Benjamin Drung <bdrung@posteo.de>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed0826d1d4bf75fa5d7734e2eb8029cdfd1913bb
Author: Johan Hovold <johan@kernel.org>
Date:   Mon May 24 13:09:19 2021 +0200

    media: gspca/sunplus: fix zero-length control requests
    
    commit b4bb4d425b7b02424afea2dfdcd77b3b4794175e upstream.
    
    The direction of the pipe argument must match the request-type direction
    bit or control requests may fail depending on the host-controller-driver
    implementation.
    
    Control transfers without a data stage are treated as OUT requests by
    the USB stack and should be using usb_sndctrlpipe(). Failing to do so
    will now trigger a warning.
    
    Fix the single zero-length control request which was using the
    read-register helper, and update the helper so that zero-length reads
    fail with an error message instead.
    
    Fixes: 6a7eba24e4f0 ("V4L/DVB (8157): gspca: all subdrivers")
    Cc: stable@vger.kernel.org      # 2.6.27
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d185f4ded92000fa47bc79a4682740893a851de3
Author: Johan Hovold <johan@kernel.org>
Date:   Fri May 21 15:28:39 2021 +0200

    media: gspca/sq905: fix control-request direction
    
    commit 53ae298fde7adcc4b1432bce2dbdf8dac54dfa72 upstream.
    
    The direction of the pipe argument must match the request-type direction
    bit or control requests may fail depending on the host-controller-driver
    implementation.
    
    Fix the USB_REQ_SYNCH_FRAME request which erroneously used
    usb_sndctrlpipe().
    
    Fixes: 27d35fc3fb06 ("V4L/DVB (10639): gspca - sq905: New subdriver.")
    Cc: stable@vger.kernel.org      # 2.6.30
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c57b2bd3247925e253729dce283d6bf6abc9339d
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Mon May 17 21:18:14 2021 +0200

    media: zr364xx: fix memory leak in zr364xx_start_readpipe
    
    commit 0a045eac8d0427b64577a24d74bb8347c905ac65 upstream.
    
    syzbot reported memory leak in zr364xx driver.
    The problem was in non-freed urb in case of
    usb_submit_urb() fail.
    
    backtrace:
      [<ffffffff82baedf6>] kmalloc include/linux/slab.h:561 [inline]
      [<ffffffff82baedf6>] usb_alloc_urb+0x66/0xe0 drivers/usb/core/urb.c:74
      [<ffffffff82f7cce8>] zr364xx_start_readpipe+0x78/0x130 drivers/media/usb/zr364xx/zr364xx.c:1022
      [<ffffffff84251dfc>] zr364xx_board_init drivers/media/usb/zr364xx/zr364xx.c:1383 [inline]
      [<ffffffff84251dfc>] zr364xx_probe+0x6a3/0x851 drivers/media/usb/zr364xx/zr364xx.c:1516
      [<ffffffff82bb6507>] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
      [<ffffffff826018a9>] really_probe+0x159/0x500 drivers/base/dd.c:576
    
    Fixes: ccbf035ae5de ("V4L/DVB (12278): zr364xx: implement V4L2_CAP_STREAMING")
    Cc: stable@vger.kernel.org
    Reported-by: syzbot+af4fa391ef18efdd5f69@syzkaller.appspotmail.com
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c84b3e0728ffe10d89c633694c35a02b5c477dc
Author: Hou Tao <houtao1@huawei.com>
Date:   Thu Jun 17 15:45:47 2021 +0800

    dm btree remove: assign new_root only when removal succeeds
    
    commit b6e58b5466b2959f83034bead2e2e1395cca8aeb upstream.
    
    remove_raw() in dm_btree_remove() may fail due to IO read error
    (e.g. read the content of origin block fails during shadowing),
    and the value of shadow_spine::root is uninitialized, but
    the uninitialized value is still assign to new_root in the
    end of dm_btree_remove().
    
    For dm-thin, the value of pmd->details_root or pmd->root will become
    an uninitialized value, so if trying to read details_info tree again
    out-of-bound memory may occur as showed below:
    
      general protection fault, probably for non-canonical address 0x3fdcb14c8d7520
      CPU: 4 PID: 515 Comm: dmsetup Not tainted 5.13.0-rc6
      Hardware name: QEMU Standard PC
      RIP: 0010:metadata_ll_load_ie+0x14/0x30
      Call Trace:
       sm_metadata_count_is_more_than_one+0xb9/0xe0
       dm_tm_shadow_block+0x52/0x1c0
       shadow_step+0x59/0xf0
       remove_raw+0xb2/0x170
       dm_btree_remove+0xf4/0x1c0
       dm_pool_delete_thin_device+0xc3/0x140
       pool_message+0x218/0x2b0
       target_message+0x251/0x290
       ctl_ioctl+0x1c4/0x4d0
       dm_ctl_ioctl+0xe/0x20
       __x64_sys_ioctl+0x7b/0xb0
       do_syscall_64+0x40/0xb0
       entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Fixing it by only assign new_root when removal succeeds
    
    Signed-off-by: Hou Tao <houtao1@huawei.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b15cdbb9d5e3a324f0fe7a7d544f4e253ef36044
Author: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
Date:   Mon May 24 02:32:05 2021 -0700

    ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe
    
    commit 9272e5d0028d45a3b45b58c9255e6e0df53f7ad9 upstream.
    
    In the out_err_bus_register error branch of tpci200_pci_probe,
    tpci200->info->cfg_regs is freed by tpci200_uninstall()->
    tpci200_unregister()->pci_iounmap(..,tpci200->info->cfg_regs)
    in the first time.
    
    But later, iounmap() is called to free tpci200->info->cfg_regs
    again.
    
    My patch sets tpci200->info->cfg_regs to NULL after tpci200_uninstall()
    to avoid the double free.
    
    Fixes: cea2f7cdff2af ("Staging: ipack/bridges/tpci200: Use the TPCI200 in big endian mode")
    Cc: stable <stable@vger.kernel.org>
    Acked-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
    Signed-off-by: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
    Link: https://lore.kernel.org/r/20210524093205.8333-1-lyl2019@mail.ustc.edu.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ad5c2f4dff68a00d24f0692e027b99c7231b995
Author: Yun Zhou <yun.zhou@windriver.com>
Date:   Sat Jun 26 11:21:55 2021 +0800

    seq_buf: Fix overflow in seq_buf_putmem_hex()
    
    commit d3b16034a24a112bb83aeb669ac5b9b01f744bb7 upstream.
    
    There's two variables being increased in that loop (i and j), and i
    follows the raw data, and j follows what is being written into the buffer.
    We should compare 'i' to MAX_MEMHEX_BYTES or compare 'j' to HEX_CHARS.
    Otherwise, if 'j' goes bigger than HEX_CHARS, it will overflow the
    destination buffer.
    
    Link: https://lore.kernel.org/lkml/20210625122453.5e2fe304@oasis.local.home/
    Link: https://lkml.kernel.org/r/20210626032156.47889-1-yun.zhou@windriver.com
    
    Cc: stable@vger.kernel.org
    Fixes: 5e3ca0ec76fce ("ftrace: introduce the "hex" output method")
    Signed-off-by: Yun Zhou <yun.zhou@windriver.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 39c691ed533133e58d72408e00c9a88573c6e96c
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Sun Jun 27 01:47:49 2021 +0200

    power: supply: ab8500: Fix an old bug
    
    commit f1c74a6c07e76fcb31a4bcc1f437c4361a2674ce upstream.
    
    Trying to get the AB8500 charging driver working I ran into a bit
    of bitrot: we haven't used the driver for a while so errors in
    refactorings won't be noticed.
    
    This one is pretty self evident: use argument to the macro or we
    end up with a random pointer to something else.
    
    Cc: stable@vger.kernel.org
    Cc: Krzysztof Kozlowski <krzk@kernel.org>
    Cc: Marcus Cooper <codekipper@gmail.com>
    Fixes: 297d716f6260 ("power_supply: Change ownership from driver to core")
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4b01ae6d403bb8425acbc470afc590ff7aed38d
Author: Petr Pavlu <petr.pavlu@suse.com>
Date:   Thu May 13 14:26:36 2021 +0200

    ipmi/watchdog: Stop watchdog timer when the current action is 'none'
    
    commit 2253042d86f57d90a621ac2513a7a7a13afcf809 upstream.
    
    When an IPMI watchdog timer is being stopped in ipmi_close() or
    ipmi_ioctl(WDIOS_DISABLECARD), the current watchdog action is updated to
    WDOG_TIMEOUT_NONE and _ipmi_set_timeout(IPMI_SET_TIMEOUT_NO_HB) is called
    to install this action. The latter function ends up invoking
    __ipmi_set_timeout() which makes the actual 'Set Watchdog Timer' IPMI
    request.
    
    For IPMI 1.0, this operation results in fully stopping the watchdog timer.
    For IPMI >= 1.5, function __ipmi_set_timeout() always specifies the "don't
    stop" flag in the prepared 'Set Watchdog Timer' IPMI request. This causes
    that the watchdog timer has its action correctly updated to 'none' but the
    timer continues to run. A problem is that IPMI firmware can then still log
    an expiration event when the configured timeout is reached, which is
    unexpected because the watchdog timer was requested to be stopped.
    
    The patch fixes this problem by not setting the "don't stop" flag in
    __ipmi_set_timeout() when the current action is WDOG_TIMEOUT_NONE which
    results in stopping the watchdog timer. This makes the behaviour for
    IPMI >= 1.5 consistent with IPMI 1.0. It also matches the logic in
    __ipmi_heartbeat() which does not allow to reset the watchdog if the
    current action is WDOG_TIMEOUT_NONE as that would start the timer.
    
    Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
    Message-Id: <10a41bdc-9c99-089c-8d89-fa98ce5ea080@suse.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Corey Minyard <cminyard@mvista.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 058b7ed5b4099cb131c29857714a9bbc130f03d3
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Sat May 29 18:46:46 2021 +0300

    ASoC: tegra: Set driver_name=tegra for all machine drivers
    
    commit f6eb84fa596abf28959fc7e0b626f925eb1196c7 upstream.
    
    The driver_name="tegra" is now required by the newer ALSA UCMs, otherwise
    Tegra UCMs don't match by the path/name.
    
    All Tegra machine drivers are specifying the card's name, but it has no
    effect if model name is specified in the device-tree since it overrides
    the card's name. We need to set the driver_name to "tegra" in order to
    get a usable lookup path for the updated ALSA UCMs. The new UCM lookup
    path has a form of driver_name/card_name.
    
    The old lookup paths that are based on driver module name continue to
    work as before. Note that UCM matching never worked for Tegra ASoC drivers
    if they were compiled as built-in, this is fixed by supporting the new
    naming scheme.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Link: https://lore.kernel.org/r/20210529154649.25936-2-digetx@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2bfa495161be4de3626ca5f6dcdf070697e3cf29
Author: Timo Sigurdsson <public_timo.s@silentcreek.de>
Date:   Mon Jun 14 09:25:39 2021 +0200

    ata: ahci_sunxi: Disable DIPM
    
    commit f6bca4d91b2ea052e917cca3f9d866b5cc1d500a upstream.
    
    DIPM is unsupported or broken on sunxi. Trying to enable the power
    management policy med_power_with_dipm on an Allwinner A20 SoC based board
    leads to immediate I/O errors and the attached SATA disk disappears from
    the /dev filesystem. A reset (power cycle) is required to make the SATA
    controller or disk work again. The A10 and A20 SoC data sheets and manuals
    don't mention DIPM at all [1], so it's fair to assume that it's simply not
    supported. But even if it was, it should be considered broken and best be
    disabled in the ahci_sunxi driver.
    
    [1] https://github.com/allwinner-zh/documents/tree/master/
    
    Fixes: c5754b5220f0 ("ARM: sunxi: Add support for Allwinner SUNXi SoCs sata to ahci_platform")
    Cc: stable@vger.kernel.org
    Signed-off-by: Timo Sigurdsson <public_timo.s@silentcreek.de>
    Tested-by: Timo Sigurdsson <public_timo.s@silentcreek.de>
    Link: https://lore.kernel.org/r/20210614072539.3307-1-public_timo.s@silentcreek.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bee8977340b58352bc3f1593f97f33a1833ca080
Author: Al Cooper <alcooperx@gmail.com>
Date:   Thu Jun 24 12:30:45 2021 -0400

    mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode
    
    commit d0244847f9fc5e20df8b7483c8a4717fe0432d38 upstream.
    
    When an eMMC device is being run in HS400 mode, any access to the
    RPMB device will cause the error message "mmc1: Invalid UHS-I mode
    selected". This happens as a result of tuning being disabled before
    RPMB access and then re-enabled after the RPMB access is complete.
    When tuning is re-enabled, the system has to switch from HS400
    to HS200 to do the tuning and then back to HS400. As part of
    sequence to switch from HS400 to HS200 the system is temporarily
    put into HS mode. When switching to HS mode, sdhci_get_preset_value()
    is called and does not have support for HS mode and prints the warning
    message and returns the preset for SDR12. The fix is to add support
    for MMC and SD HS modes to sdhci_get_preset_value().
    
    This can be reproduced on any system running eMMC in HS400 mode
    (not HS400ES) by using the "mmc" utility to run the following
    command: "mmc rpmb read-counter /dev/mmcblk0rpmb".
    
    Signed-off-by: Al Cooper <alcooperx@gmail.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Fixes: 52983382c74f ("mmc: sdhci: enhance preset value function")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210624163045.33651-1-alcooperx@gmail.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78b58ce0d751f3867d29f7230e57cca161a97979
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Fri May 28 11:27:52 2021 -0700

    powerpc/barrier: Avoid collision with clang's __lwsync macro
    
    commit 015d98149b326e0f1f02e44413112ca8b4330543 upstream.
    
    A change in clang 13 results in the __lwsync macro being defined as
    __builtin_ppc_lwsync, which emits 'lwsync' or 'msync' depending on what
    the target supports. This breaks the build because of -Werror in
    arch/powerpc, along with thousands of warnings:
    
     In file included from arch/powerpc/kernel/pmc.c:12:
     In file included from include/linux/bug.h:5:
     In file included from arch/powerpc/include/asm/bug.h:109:
     In file included from include/asm-generic/bug.h:20:
     In file included from include/linux/kernel.h:12:
     In file included from include/linux/bitops.h:32:
     In file included from arch/powerpc/include/asm/bitops.h:62:
     arch/powerpc/include/asm/barrier.h:49:9: error: '__lwsync' macro redefined [-Werror,-Wmacro-redefined]
     #define __lwsync()      __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
            ^
     <built-in>:308:9: note: previous definition is here
     #define __lwsync __builtin_ppc_lwsync
            ^
     1 error generated.
    
    Undefine this macro so that the runtime patching introduced by
    commit 2d1b2027626d ("powerpc: Fixup lwsync at runtime") continues to
    work properly with clang and the build no longer breaks.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://github.com/ClangBuiltLinux/linux/issues/1386
    Link: https://github.com/llvm/llvm-project/commit/62b5df7fe2b3fda1772befeda15598fbef96a614
    Link: https://lore.kernel.org/r/20210528182752.1852002-1-nathan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 82d0a11424be122df8437f0d84d7faa48fef076f
Author: Davis Mosenkovs <davis@mosenkovs.lv>
Date:   Sat Jul 10 21:37:10 2021 +0300

    mac80211: fix memory corruption in EAPOL handling
    
    Commit e3d4030498c3 ("mac80211: do not accept/forward invalid EAPOL
    frames") uses skb_mac_header() before eth_type_trans() is called
    leading to incorrect pointer, the pointer gets written to. This issue
    has appeared during backporting to 4.4, 4.9 and 4.14.
    
    Fixes: e3d4030498c3 ("mac80211: do not accept/forward invalid EAPOL frames")
    Link: https://lore.kernel.org/r/CAHQn7pKcyC_jYmGyTcPCdk9xxATwW5QPNph=bsZV8d-HPwNsyA@mail.gmail.com
    Cc: <stable@vger.kernel.org> # 4.4.x
    Signed-off-by: Davis Mosenkovs <davis@mosenkovs.lv>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c47fa9295ce58433cae4376240b738b126637d4
Author: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Date:   Sat Jun 19 13:18:13 2021 -0300

    can: bcm: delay release of struct bcm_op after synchronize_rcu()
    
    commit d5f9023fa61ee8b94f37a93f08e94b136cf1e463 upstream.
    
    can_rx_register() callbacks may be called concurrently to the call to
    can_rx_unregister(). The callbacks and callback data, though, are
    protected by RCU and the struct sock reference count.
    
    So the callback data is really attached to the life of sk, meaning
    that it should be released on sk_destruct. However, bcm_remove_op()
    calls tasklet_kill(), and RCU callbacks may be called under RCU
    softirq, so that cannot be used on kernels before the introduction of
    HRTIMER_MODE_SOFT.
    
    However, bcm_rx_handler() is called under RCU protection, so after
    calling can_rx_unregister(), we may call synchronize_rcu() in order to
    wait for any RCU read-side critical sections to finish. That is,
    bcm_rx_handler() won't be called anymore for those ops. So, we only
    free them, after we do that synchronize_rcu().
    
    Fixes: ffd980f976e7 ("[CAN]: Add broadcast manager (bcm) protocol")
    Link: https://lore.kernel.org/r/20210619161813.2098382-1-cascardo@canonical.com
    Cc: linux-stable <stable@vger.kernel.org>
    Reported-by: syzbot+0f7e7e5e2f4f40fa89c0@syzkaller.appspotmail.com
    Reported-by: Norbert Slusarek <nslusarek@gmx.net>
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8481db0d2e80fd974bd7169962a56422c56e358
Author: Oliver Hartkopp <socketcan@hartkopp.net>
Date:   Fri Jun 18 19:36:45 2021 +0200

    can: gw: synchronize rcu operations before removing gw job entry
    
    commit fb8696ab14adadb2e3f6c17c18ed26b3ecd96691 upstream.
    
    can_can_gw_rcv() is called under RCU protection, so after calling
    can_rx_unregister(), we have to call synchronize_rcu in order to wait
    for any RCU read-side critical sections to finish before removing the
    kmem_cache entry with the referenced gw job entry.
    
    Link: https://lore.kernel.org/r/20210618173645.2238-1-socketcan@hartkopp.net
    Fixes: c1aabdf379bc ("can-gw: add netlink based CAN routing")
    Cc: linux-stable <stable@vger.kernel.org>
    Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9ad6621c7cc9221fa4b00874bd951fe7fc92106
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Tue Jun 22 09:15:35 2021 +0200

    fuse: reject internal errno
    
    commit 49221cf86d18bb66fe95d3338cb33bd4b9880ca5 upstream.
    
    Don't allow userspace to report errors that could be kernel-internal.
    
    Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Fixes: 334f485df85a ("[PATCH] FUSE - device functions")
    Cc: <stable@vger.kernel.org> # v2.6.14
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48cd035cad5b5fad0648aa8294c4223bedb166dd
Author: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Date:   Mon Jun 28 16:13:42 2021 -0300

    sctp: add size validation when walking chunks
    
    [ Upstream commit 50619dbf8db77e98d821d615af4f634d08e22698 ]
    
    The first chunk in a packet is ensured to be present at the beginning of
    sctp_rcv(), as a packet needs to have at least 1 chunk. But the second
    one, may not be completely available and ch->length can be over
    uninitialized memory.
    
    Fix here is by only trying to walk on the next chunk if there is enough to
    hold at least the header, and then proceed with the ch->length validation
    that is already there.
    
    Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
    Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 126899b2f2c7228c7ffb31c78df3444008800779
Author: Tim Jiang <tjiang@codeaurora.org>
Date:   Tue Jun 1 17:57:10 2021 +0800

    Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc.
    
    [ Upstream commit 4f00bfb372674d586c4a261bfc595cbce101fbb6 ]
    
    This is btsoc timing issue, after host start to downloading bt firmware,
    ep2 need time to switch from function acl to function dfu, so host add
    20ms delay as workaround.
    
    Signed-off-by: Tim Jiang <tjiang@codeaurora.org>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5d16a8280078701fc03d6a0367c3251809743274
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Fri May 14 15:14:52 2021 +0800

    Bluetooth: Shutdown controller after workqueues are flushed or cancelled
    
    [ Upstream commit 0ea9fd001a14ebc294f112b0361a4e601551d508 ]
    
    Rfkill block and unblock Intel USB Bluetooth [8087:0026] may make it
    stops working:
    [  509.691509] Bluetooth: hci0: HCI reset during shutdown failed
    [  514.897584] Bluetooth: hci0: MSFT filter_enable is already on
    [  530.044751] usb 3-10: reset full-speed USB device number 5 using xhci_hcd
    [  545.660350] usb 3-10: device descriptor read/64, error -110
    [  561.283530] usb 3-10: device descriptor read/64, error -110
    [  561.519682] usb 3-10: reset full-speed USB device number 5 using xhci_hcd
    [  566.686650] Bluetooth: hci0: unexpected event for opcode 0x0500
    [  568.752452] Bluetooth: hci0: urb 0000000096cd309b failed to resubmit (113)
    [  578.797955] Bluetooth: hci0: Failed to read MSFT supported features (-110)
    [  586.286565] Bluetooth: hci0: urb 00000000c522f633 failed to resubmit (113)
    [  596.215302] Bluetooth: hci0: Failed to read MSFT supported features (-110)
    
    Or kernel panics because other workqueues already freed skb:
    [ 2048.663763] BUG: kernel NULL pointer dereference, address: 0000000000000000
    [ 2048.663775] #PF: supervisor read access in kernel mode
    [ 2048.663779] #PF: error_code(0x0000) - not-present page
    [ 2048.663782] PGD 0 P4D 0
    [ 2048.663787] Oops: 0000 [#1] SMP NOPTI
    [ 2048.663793] CPU: 3 PID: 4491 Comm: rfkill Tainted: G        W         5.13.0-rc1-next-20210510+ #20
    [ 2048.663799] Hardware name: HP HP EliteBook 850 G8 Notebook PC/8846, BIOS T76 Ver. 01.01.04 12/02/2020
    [ 2048.663801] RIP: 0010:__skb_ext_put+0x6/0x50
    [ 2048.663814] Code: 8b 1b 48 85 db 75 db 5b 41 5c 5d c3 be 01 00 00 00 e8 de 13 c0 ff eb e7 be 02 00 00 00 e8 d2 13 c0 ff eb db 0f 1f 44 00 00 55 <8b> 07 48 89 e5 83 f8 01 74 14 b8 ff ff ff ff f0 0f c1
    07 83 f8 01
    [ 2048.663819] RSP: 0018:ffffc1d105b6fd80 EFLAGS: 00010286
    [ 2048.663824] RAX: 0000000000000000 RBX: ffff9d9ac5649000 RCX: 0000000000000000
    [ 2048.663827] RDX: ffffffffc0d1daf6 RSI: 0000000000000206 RDI: 0000000000000000
    [ 2048.663830] RBP: ffffc1d105b6fd98 R08: 0000000000000001 R09: ffff9d9ace8ceac0
    [ 2048.663834] R10: ffff9d9ace8ceac0 R11: 0000000000000001 R12: ffff9d9ac5649000
    [ 2048.663838] R13: 0000000000000000 R14: 00007ffe0354d650 R15: 0000000000000000
    [ 2048.663843] FS:  00007fe02ab19740(0000) GS:ffff9d9e5f8c0000(0000) knlGS:0000000000000000
    [ 2048.663849] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 2048.663853] CR2: 0000000000000000 CR3: 0000000111a52004 CR4: 0000000000770ee0
    [ 2048.663856] PKRU: 55555554
    [ 2048.663859] Call Trace:
    [ 2048.663865]  ? skb_release_head_state+0x5e/0x80
    [ 2048.663873]  kfree_skb+0x2f/0xb0
    [ 2048.663881]  btusb_shutdown_intel_new+0x36/0x60 [btusb]
    [ 2048.663905]  hci_dev_do_close+0x48c/0x5e0 [bluetooth]
    [ 2048.663954]  ? __cond_resched+0x1a/0x50
    [ 2048.663962]  hci_rfkill_set_block+0x56/0xa0 [bluetooth]
    [ 2048.664007]  rfkill_set_block+0x98/0x170
    [ 2048.664016]  rfkill_fop_write+0x136/0x1e0
    [ 2048.664022]  vfs_write+0xc7/0x260
    [ 2048.664030]  ksys_write+0xb1/0xe0
    [ 2048.664035]  ? exit_to_user_mode_prepare+0x37/0x1c0
    [ 2048.664042]  __x64_sys_write+0x1a/0x20
    [ 2048.664048]  do_syscall_64+0x40/0xb0
    [ 2048.664055]  entry_SYSCALL_64_after_hwframe+0x44/0xae
    [ 2048.664060] RIP: 0033:0x7fe02ac23c27
    [ 2048.664066] Code: 0d 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 48 89 54 24 18 48 89 74 24
    [ 2048.664070] RSP: 002b:00007ffe0354d638 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
    [ 2048.664075] RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007fe02ac23c27
    [ 2048.664078] RDX: 0000000000000008 RSI: 00007ffe0354d650 RDI: 0000000000000003
    [ 2048.664081] RBP: 0000000000000000 R08: 0000559b05998440 R09: 0000559b05998440
    [ 2048.664084] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
    [ 2048.664086] R13: 0000000000000000 R14: ffffffff00000000 R15: 00000000ffffffff
    
    So move the shutdown callback to a place where workqueues are either
    flushed or cancelled to resolve the issue.
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7337be01888d4d8190b81473aa619a8e87ae6fc0
Author: Yu Liu <yudiliu@google.com>
Date:   Mon Apr 19 16:53:30 2021 -0700

    Bluetooth: Fix the HCI to MGMT status conversion table
    
    [ Upstream commit 4ef36a52b0e47c80bbfd69c0cce61c7ae9f541ed ]
    
    0x2B, 0x31 and 0x33 are reserved for future use but were not present in
    the HCI to MGMT conversion table, this caused the conversion to be
    incorrect for the HCI status code greater than 0x2A.
    
    Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
    Signed-off-by: Yu Liu <yudiliu@google.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40b613db3a95bc27998e4097d74c2f7e5d083a0b
Author: Gerd Rausch <gerd.rausch@oracle.com>
Date:   Thu Jun 24 11:55:31 2021 -0700

    RDMA/cma: Fix rdma_resolve_route() memory leak
    
    [ Upstream commit 74f160ead74bfe5f2b38afb4fcf86189f9ff40c9 ]
    
    Fix a memory leak when "mda_resolve_route() is called more than once on
    the same "rdma_cm_id".
    
    This is possible if cma_query_handler() triggers the
    RDMA_CM_EVENT_ROUTE_ERROR flow which puts the state machine back and
    allows rdma_resolve_route() to be called again.
    
    Link: https://lore.kernel.org/r/f6662b7b-bdb7-2706-1e12-47c61d3474b6@oracle.com
    Signed-off-by: Gerd Rausch <gerd.rausch@oracle.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3752dc5364b000337d83f09b7cb3dd412cebf6ec
Author: Gustavo A. R. Silva <gustavoars@kernel.org>
Date:   Thu Apr 22 15:00:32 2021 -0500

    wireless: wext-spy: Fix out-of-bounds warning
    
    [ Upstream commit e93bdd78406da9ed01554c51e38b2a02c8ef8025 ]
    
    Fix the following out-of-bounds warning:
    
    net/wireless/wext-spy.c:178:2: warning: 'memcpy' offset [25, 28] from the object at 'threshold' is out of the bounds of referenced subobject 'low' with type 'struct iw_quality' at offset 20 [-Warray-bounds]
    
    The problem is that the original code is trying to copy data into a
    couple of struct members adjacent to each other in a single call to
    memcpy(). This causes a legitimate compiler warning because memcpy()
    overruns the length of &threshold.low and &spydata->spy_thr_low. As
    these are just a couple of struct members, fix this by using direct
    assignments, instead of memcpy().
    
    This helps with the ongoing efforts to globally enable -Warray-bounds
    and get us closer to being able to tighten the FORTIFY_SOURCE routines
    on memcpy().
    
    Link: https://github.com/KSPP/linux/issues/109
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Link: https://lore.kernel.org/r/20210422200032.GA168995@embeddedor
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e8f2b5ecb81172e0ef6e698d4ff725ecd46c691b
Author: Íñigo Huguet <ihuguet@redhat.com>
Date:   Mon Jun 21 17:32:36 2021 +0200

    sfc: error code if SRIOV cannot be disabled
    
    [ Upstream commit 1ebe4feb8b442884f5a28d2437040096723dd1ea ]
    
    If SRIOV cannot be disabled during device removal or module unloading,
    return error code so it can be logged properly in the calling function.
    
    Note that this can only happen if any VF is currently attached to a
    guest using Xen, but not with vfio/KVM. Despite that in that case the
    VFs won't work properly with PF removed and/or the module unloaded, I
    have let it as is because I don't know what side effects may have
    changing it, and also it seems to be the same that other drivers are
    doing in this situation.
    
    In the case of being called during SRIOV reconfiguration, the behavior
    hasn't changed because the function is called with force=false.
    
    Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 698f66ebb1b54fb7c3d407fb8930a5d48ef491ba
Author: Íñigo Huguet <ihuguet@redhat.com>
Date:   Mon Jun 21 17:32:35 2021 +0200

    sfc: avoid double pci_remove of VFs
    
    [ Upstream commit 45423cff1db66cf0993e8a9bd0ac93e740149e49 ]
    
    If pci_remove was called for a PF with VFs, the removal of the VFs was
    called twice from efx_ef10_sriov_fini: one directly with pci_driver->remove
    and another implicit by calling pci_disable_sriov, which also perform
    the VFs remove. This was leading to crashing the kernel on the second
    attempt.
    
    Given that pci_disable_sriov already calls to pci remove function, get
    rid of the direct call to pci_driver->remove from the driver.
    
    2 different ways to trigger the bug:
    - Create one or more VFs, then attach the PF to a virtual machine (at
      least with qemu/KVM)
    - Create one or more VFs, then remove the PF with:
      echo 1 > /sys/bus/pci/devices/PF_PCI_ID/remove
    
    Removing sfc module does not trigger the error, at least for me, because
    it removes the VF first, and then the PF.
    
    Example of a log with the error:
        list_del corruption, ffff967fd20a8ad0->next is LIST_POISON1 (dead000000000100)
        ------------[ cut here ]------------
        kernel BUG at lib/list_debug.c:47!
        [...trimmed...]
        RIP: 0010:__list_del_entry_valid.cold.1+0x12/0x4c
        [...trimmed...]
        Call Trace:
        efx_dissociate+0x1f/0x140 [sfc]
        efx_pci_remove+0x27/0x150 [sfc]
        pci_device_remove+0x3b/0xc0
        device_release_driver_internal+0x103/0x1f0
        pci_stop_bus_device+0x69/0x90
        pci_stop_and_remove_bus_device+0xe/0x20
        pci_iov_remove_virtfn+0xba/0x120
        sriov_disable+0x2f/0xe0
        efx_ef10_pci_sriov_disable+0x52/0x80 [sfc]
        ? pcie_aer_is_native+0x12/0x40
        efx_ef10_sriov_fini+0x72/0x110 [sfc]
        efx_pci_remove+0x62/0x150 [sfc]
        pci_device_remove+0x3b/0xc0
        device_release_driver_internal+0x103/0x1f0
        unbind_store+0xf6/0x130
        kernfs_fop_write+0x116/0x190
        vfs_write+0xa5/0x1a0
        ksys_write+0x4f/0xb0
        do_syscall_64+0x5b/0x1a0
        entry_SYSCALL_64_after_hwframe+0x65/0xca
    
    Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9745b87772b1cdae31b6013d1ab448bcbdd08fa
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Sun Jun 20 15:24:15 2021 +0000

    atm: nicstar: register the interrupt handler in the right place
    
    [ Upstream commit 70b639dc41ad499384e41e106fce72e36805c9f2 ]
    
    Because the error handling is sequential, the application of resources
    should be carried out in the order of error handling, so the operation
    of registering the interrupt handler should be put in front, so as not
    to free the unregistered interrupt handler during error handling.
    
    This log reveals it:
    
    [    3.438724] Trying to free already-free IRQ 23
    [    3.439060] WARNING: CPU: 5 PID: 1 at kernel/irq/manage.c:1825 free_irq+0xfb/0x480
    [    3.440039] Modules linked in:
    [    3.440257] CPU: 5 PID: 1 Comm: swapper/0 Not tainted 5.12.4-g70e7f0549188-dirty #142
    [    3.440793] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    [    3.441561] RIP: 0010:free_irq+0xfb/0x480
    [    3.441845] Code: 6e 08 74 6f 4d 89 f4 e8 c3 78 09 00 4d 8b 74 24 18 4d 85 f6 75 e3 e8 b4 78 09 00 8b 75 c8 48 c7 c7 a0 ac d5 85 e8 95 d7 f5 ff <0f> 0b 48 8b 75 c0 4c 89 ff e8 87 c5 90 03 48 8b 43 40 4c 8b a0 80
    [    3.443121] RSP: 0000:ffffc90000017b50 EFLAGS: 00010086
    [    3.443483] RAX: 0000000000000000 RBX: ffff888107c6f000 RCX: 0000000000000000
    [    3.443972] RDX: 0000000000000000 RSI: ffffffff8123f301 RDI: 00000000ffffffff
    [    3.444462] RBP: ffffc90000017b90 R08: 0000000000000001 R09: 0000000000000003
    [    3.444950] R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000
    [    3.444994] R13: ffff888107dc0000 R14: ffff888104f6bf00 R15: ffff888107c6f0a8
    [    3.444994] FS:  0000000000000000(0000) GS:ffff88817bd40000(0000) knlGS:0000000000000000
    [    3.444994] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    3.444994] CR2: 0000000000000000 CR3: 000000000642e000 CR4: 00000000000006e0
    [    3.444994] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [    3.444994] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [    3.444994] Call Trace:
    [    3.444994]  ns_init_card_error+0x18e/0x250
    [    3.444994]  nicstar_init_one+0x10d2/0x1130
    [    3.444994]  local_pci_probe+0x4a/0xb0
    [    3.444994]  pci_device_probe+0x126/0x1d0
    [    3.444994]  ? pci_device_remove+0x100/0x100
    [    3.444994]  really_probe+0x27e/0x650
    [    3.444994]  driver_probe_device+0x84/0x1d0
    [    3.444994]  ? mutex_lock_nested+0x16/0x20
    [    3.444994]  device_driver_attach+0x63/0x70
    [    3.444994]  __driver_attach+0x117/0x1a0
    [    3.444994]  ? device_driver_attach+0x70/0x70
    [    3.444994]  bus_for_each_dev+0xb6/0x110
    [    3.444994]  ? rdinit_setup+0x40/0x40
    [    3.444994]  driver_attach+0x22/0x30
    [    3.444994]  bus_add_driver+0x1e6/0x2a0
    [    3.444994]  driver_register+0xa4/0x180
    [    3.444994]  __pci_register_driver+0x77/0x80
    [    3.444994]  ? uPD98402_module_init+0xd/0xd
    [    3.444994]  nicstar_init+0x1f/0x75
    [    3.444994]  do_one_initcall+0x7a/0x3d0
    [    3.444994]  ? rdinit_setup+0x40/0x40
    [    3.444994]  ? rcu_read_lock_sched_held+0x4a/0x70
    [    3.444994]  kernel_init_freeable+0x2a7/0x2f9
    [    3.444994]  ? rest_init+0x2c0/0x2c0
    [    3.444994]  kernel_init+0x13/0x180
    [    3.444994]  ? rest_init+0x2c0/0x2c0
    [    3.444994]  ? rest_init+0x2c0/0x2c0
    [    3.444994]  ret_from_fork+0x1f/0x30
    [    3.444994] Kernel panic - not syncing: panic_on_warn set ...
    [    3.444994] CPU: 5 PID: 1 Comm: swapper/0 Not tainted 5.12.4-g70e7f0549188-dirty #142
    [    3.444994] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    [    3.444994] Call Trace:
    [    3.444994]  dump_stack+0xba/0xf5
    [    3.444994]  ? free_irq+0xfb/0x480
    [    3.444994]  panic+0x155/0x3ed
    [    3.444994]  ? __warn+0xed/0x150
    [    3.444994]  ? free_irq+0xfb/0x480
    [    3.444994]  __warn+0x103/0x150
    [    3.444994]  ? free_irq+0xfb/0x480
    [    3.444994]  report_bug+0x119/0x1c0
    [    3.444994]  handle_bug+0x3b/0x80
    [    3.444994]  exc_invalid_op+0x18/0x70
    [    3.444994]  asm_exc_invalid_op+0x12/0x20
    [    3.444994] RIP: 0010:free_irq+0xfb/0x480
    [    3.444994] Code: 6e 08 74 6f 4d 89 f4 e8 c3 78 09 00 4d 8b 74 24 18 4d 85 f6 75 e3 e8 b4 78 09 00 8b 75 c8 48 c7 c7 a0 ac d5 85 e8 95 d7 f5 ff <0f> 0b 48 8b 75 c0 4c 89 ff e8 87 c5 90 03 48 8b 43 40 4c 8b a0 80
    [    3.444994] RSP: 0000:ffffc90000017b50 EFLAGS: 00010086
    [    3.444994] RAX: 0000000000000000 RBX: ffff888107c6f000 RCX: 0000000000000000
    [    3.444994] RDX: 0000000000000000 RSI: ffffffff8123f301 RDI: 00000000ffffffff
    [    3.444994] RBP: ffffc90000017b90 R08: 0000000000000001 R09: 0000000000000003
    [    3.444994] R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000
    [    3.444994] R13: ffff888107dc0000 R14: ffff888104f6bf00 R15: ffff888107c6f0a8
    [    3.444994]  ? vprintk_func+0x71/0x110
    [    3.444994]  ns_init_card_error+0x18e/0x250
    [    3.444994]  nicstar_init_one+0x10d2/0x1130
    [    3.444994]  local_pci_probe+0x4a/0xb0
    [    3.444994]  pci_device_probe+0x126/0x1d0
    [    3.444994]  ? pci_device_remove+0x100/0x100
    [    3.444994]  really_probe+0x27e/0x650
    [    3.444994]  driver_probe_device+0x84/0x1d0
    [    3.444994]  ? mutex_lock_nested+0x16/0x20
    [    3.444994]  device_driver_attach+0x63/0x70
    [    3.444994]  __driver_attach+0x117/0x1a0
    [    3.444994]  ? device_driver_attach+0x70/0x70
    [    3.444994]  bus_for_each_dev+0xb6/0x110
    [    3.444994]  ? rdinit_setup+0x40/0x40
    [    3.444994]  driver_attach+0x22/0x30
    [    3.444994]  bus_add_driver+0x1e6/0x2a0
    [    3.444994]  driver_register+0xa4/0x180
    [    3.444994]  __pci_register_driver+0x77/0x80
    [    3.444994]  ? uPD98402_module_init+0xd/0xd
    [    3.444994]  nicstar_init+0x1f/0x75
    [    3.444994]  do_one_initcall+0x7a/0x3d0
    [    3.444994]  ? rdinit_setup+0x40/0x40
    [    3.444994]  ? rcu_read_lock_sched_held+0x4a/0x70
    [    3.444994]  kernel_init_freeable+0x2a7/0x2f9
    [    3.444994]  ? rest_init+0x2c0/0x2c0
    [    3.444994]  kernel_init+0x13/0x180
    [    3.444994]  ? rest_init+0x2c0/0x2c0
    [    3.444994]  ? rest_init+0x2c0/0x2c0
    [    3.444994]  ret_from_fork+0x1f/0x30
    [    3.444994] Dumping ftrace buffer:
    [    3.444994]    (ftrace buffer empty)
    [    3.444994] Kernel Offset: disabled
    [    3.444994] Rebooting in 1 seconds..
    
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f6f66c9cc9117bddd0e959aa7f19813094e3a52
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Sun Jun 20 15:24:14 2021 +0000

    atm: nicstar: use 'dma_free_coherent' instead of 'kfree'
    
    [ Upstream commit 6a1e5a4af17e440dd82a58a2c5f40ff17a82b722 ]
    
    When 'nicstar_init_one' fails, 'ns_init_card_error' will be executed for
    error handling, but the correct memory free function should be used,
    otherwise it will cause an error. Since 'card->rsq.org' and
    'card->tsq.org' are allocated using 'dma_alloc_coherent' function, they
    should be freed using 'dma_free_coherent'.
    
    Fix this by using 'dma_free_coherent' instead of 'kfree'
    
    This log reveals it:
    
    [    3.440294] kernel BUG at mm/slub.c:4206!
    [    3.441059] invalid opcode: 0000 [#1] PREEMPT SMP PTI
    [    3.441430] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.12.4-g70e7f0549188-dirty #141
    [    3.441986] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    [    3.442780] RIP: 0010:kfree+0x26a/0x300
    [    3.443065] Code: e8 3a c3 b9 ff e9 d6 fd ff ff 49 8b 45 00 31 db a9 00 00 01 00 75 4d 49 8b 45 00 a9 00 00 01 00 75 0a 49 8b 45 08 a8 01 75 02 <0f> 0b 89 d9 b8 00 10 00 00 be 06 00 00 00 48 d3 e0 f7 d8 48 63 d0
    [    3.443396] RSP: 0000:ffffc90000017b70 EFLAGS: 00010246
    [    3.443396] RAX: dead000000000100 RBX: 0000000000000000 RCX: 0000000000000000
    [    3.443396] RDX: 0000000000000000 RSI: ffffffff85d3df94 RDI: ffffffff85df38e6
    [    3.443396] RBP: ffffc90000017b90 R08: 0000000000000001 R09: 0000000000000001
    [    3.443396] R10: 0000000000000000 R11: 0000000000000001 R12: ffff888107dc0000
    [    3.443396] R13: ffffea00001f0100 R14: ffff888101a8bf00 R15: ffff888107dc0160
    [    3.443396] FS:  0000000000000000(0000) GS:ffff88817bc80000(0000) knlGS:0000000000000000
    [    3.443396] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    3.443396] CR2: 0000000000000000 CR3: 000000000642e000 CR4: 00000000000006e0
    [    3.443396] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [    3.443396] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [    3.443396] Call Trace:
    [    3.443396]  ns_init_card_error+0x12c/0x220
    [    3.443396]  nicstar_init_one+0x10d2/0x1130
    [    3.443396]  local_pci_probe+0x4a/0xb0
    [    3.443396]  pci_device_probe+0x126/0x1d0
    [    3.443396]  ? pci_device_remove+0x100/0x100
    [    3.443396]  really_probe+0x27e/0x650
    [    3.443396]  driver_probe_device+0x84/0x1d0
    [    3.443396]  ? mutex_lock_nested+0x16/0x20
    [    3.443396]  device_driver_attach+0x63/0x70
    [    3.443396]  __driver_attach+0x117/0x1a0
    [    3.443396]  ? device_driver_attach+0x70/0x70
    [    3.443396]  bus_for_each_dev+0xb6/0x110
    [    3.443396]  ? rdinit_setup+0x40/0x40
    [    3.443396]  driver_attach+0x22/0x30
    [    3.443396]  bus_add_driver+0x1e6/0x2a0
    [    3.443396]  driver_register+0xa4/0x180
    [    3.443396]  __pci_register_driver+0x77/0x80
    [    3.443396]  ? uPD98402_module_init+0xd/0xd
    [    3.443396]  nicstar_init+0x1f/0x75
    [    3.443396]  do_one_initcall+0x7a/0x3d0
    [    3.443396]  ? rdinit_setup+0x40/0x40
    [    3.443396]  ? rcu_read_lock_sched_held+0x4a/0x70
    [    3.443396]  kernel_init_freeable+0x2a7/0x2f9
    [    3.443396]  ? rest_init+0x2c0/0x2c0
    [    3.443396]  kernel_init+0x13/0x180
    [    3.443396]  ? rest_init+0x2c0/0x2c0
    [    3.443396]  ? rest_init+0x2c0/0x2c0
    [    3.443396]  ret_from_fork+0x1f/0x30
    [    3.443396] Modules linked in:
    [    3.443396] Dumping ftrace buffer:
    [    3.443396]    (ftrace buffer empty)
    [    3.458593] ---[ end trace 3c6f8f0d8ef59bcd ]---
    [    3.458922] RIP: 0010:kfree+0x26a/0x300
    [    3.459198] Code: e8 3a c3 b9 ff e9 d6 fd ff ff 49 8b 45 00 31 db a9 00 00 01 00 75 4d 49 8b 45 00 a9 00 00 01 00 75 0a 49 8b 45 08 a8 01 75 02 <0f> 0b 89 d9 b8 00 10 00 00 be 06 00 00 00 48 d3 e0 f7 d8 48 63 d0
    [    3.460499] RSP: 0000:ffffc90000017b70 EFLAGS: 00010246
    [    3.460870] RAX: dead000000000100 RBX: 0000000000000000 RCX: 0000000000000000
    [    3.461371] RDX: 0000000000000000 RSI: ffffffff85d3df94 RDI: ffffffff85df38e6
    [    3.461873] RBP: ffffc90000017b90 R08: 0000000000000001 R09: 0000000000000001
    [    3.462372] R10: 0000000000000000 R11: 0000000000000001 R12: ffff888107dc0000
    [    3.462871] R13: ffffea00001f0100 R14: ffff888101a8bf00 R15: ffff888107dc0160
    [    3.463368] FS:  0000000000000000(0000) GS:ffff88817bc80000(0000) knlGS:0000000000000000
    [    3.463949] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    3.464356] CR2: 0000000000000000 CR3: 000000000642e000 CR4: 00000000000006e0
    [    3.464856] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [    3.465356] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [    3.465860] Kernel panic - not syncing: Fatal exception
    [    3.466370] Dumping ftrace buffer:
    [    3.466616]    (ftrace buffer empty)
    [    3.466871] Kernel Offset: disabled
    [    3.467122] Rebooting in 1 seconds..
    
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fb51b03d837492c33663fac667189672f198a045
Author: Zou Wei <zou_wei@huawei.com>
Date:   Wed May 12 11:05:14 2021 +0800

    cw1200: add missing MODULE_DEVICE_TABLE
    
    [ Upstream commit dd778f89225cd258e8f0fed2b7256124982c8bb5 ]
    
    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this driver when it is built
    as an external module.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1620788714-14300-1-git-send-email-zou_wei@huawei.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 57ad99ae3c6738ba87bad259bb57c641ca68ebf6
Author: Lee Gibson <leegib@gmail.com>
Date:   Wed Apr 28 12:55:08 2021 +0100

    wl1251: Fix possible buffer overflow in wl1251_cmd_scan
    
    [ Upstream commit d10a87a3535cce2b890897914f5d0d83df669c63 ]
    
    Function wl1251_cmd_scan calls memcpy without checking the length.
    Harden by checking the length is within the maximum allowed size.
    
    Signed-off-by: Lee Gibson <leegib@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210428115508.25624-1-leegib@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit beda26eff2d8a1cb9581ac3340d006f8df510087
Author: Tony Lindgren <tony@atomide.com>
Date:   Thu Jun 3 09:28:14 2021 +0300

    wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP
    
    [ Upstream commit 11ef6bc846dcdce838f0b00c5f6a562c57e5d43b ]
    
    At least on wl12xx, reading the MAC after boot can fail with a warning
    at drivers/net/wireless/ti/wlcore/sdio.c:78 wl12xx_sdio_raw_read.
    The failed call comes from wl12xx_get_mac() that wlcore_nvs_cb() calls
    after request_firmware_work_func().
    
    After the error, no wireless interface is created. Reloading the wl12xx
    module makes the interface work.
    
    Turns out the wlan controller can be in a low-power ELP state after the
    boot from the bootloader or kexec, and needs to be woken up first.
    
    Let's wake the hardware and add a sleep after that similar to
    wl12xx_pre_boot() is already doing.
    
    Note that a similar issue could exist for wl18xx, but I have not seen it
    so far. And a search for wl18xx_get_mac and wl12xx_sdio_raw_read did not
    produce similar errors.
    
    Cc: Carl Philipp Klemm <philipp@uvos.xyz>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210603062814.19464-1-tony@atomide.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d05ea3d4bc004be02e5aa024248d17391a7e92b6
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Mon Jun 7 15:21:49 2021 +0200

    xfrm: Fix error reporting in xfrm_state_construct.
    
    [ Upstream commit 6fd06963fa74197103cdbb4b494763127b3f2f34 ]
    
    When memory allocation for XFRMA_ENCAP or XFRMA_COADDR fails,
    the error will not be reported because the -ENOMEM assignment
    to the err variable is overwritten before. Fix this by moving
    these two in front of the function so that memory allocation
    failures will be reported.
    
    Reported-by: Tobias Brunner <tobias@strongswan.org>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 08feb4b0e25f3206052a34dfe62f14680934de71
Author: Minchan Kim <minchan@kernel.org>
Date:   Wed Jun 9 09:37:17 2021 -0700

    selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC
    
    [ Upstream commit 648f2c6100cfa18e7dfe43bc0b9c3b73560d623c ]
    
    In the field, we have seen lots of allocation failure from the call
    path below.
    
    06-03 13:29:12.999 1010315 31557 31557 W Binder  : 31542_2: page allocation failure: order:0, mode:0x800(GFP_NOWAIT), nodemask=(null),cpuset=background,mems_allowed=0
    ...
    ...
    06-03 13:29:12.999 1010315 31557 31557 W Call trace:
    06-03 13:29:12.999 1010315 31557 31557 W         : dump_backtrace.cfi_jt+0x0/0x8
    06-03 13:29:12.999 1010315 31557 31557 W         : dump_stack+0xc8/0x14c
    06-03 13:29:12.999 1010315 31557 31557 W         : warn_alloc+0x158/0x1c8
    06-03 13:29:12.999 1010315 31557 31557 W         : __alloc_pages_slowpath+0x9d8/0xb80
    06-03 13:29:12.999 1010315 31557 31557 W         : __alloc_pages_nodemask+0x1c4/0x430
    06-03 13:29:12.999 1010315 31557 31557 W         : allocate_slab+0xb4/0x390
    06-03 13:29:12.999 1010315 31557 31557 W         : ___slab_alloc+0x12c/0x3a4
    06-03 13:29:12.999 1010315 31557 31557 W         : kmem_cache_alloc+0x358/0x5e4
    06-03 13:29:12.999 1010315 31557 31557 W         : avc_alloc_node+0x30/0x184
    06-03 13:29:12.999 1010315 31557 31557 W         : avc_update_node+0x54/0x4f0
    06-03 13:29:12.999 1010315 31557 31557 W         : avc_has_extended_perms+0x1a4/0x460
    06-03 13:29:12.999 1010315 31557 31557 W         : selinux_file_ioctl+0x320/0x3d0
    06-03 13:29:12.999 1010315 31557 31557 W         : __arm64_sys_ioctl+0xec/0x1fc
    06-03 13:29:12.999 1010315 31557 31557 W         : el0_svc_common+0xc0/0x24c
    06-03 13:29:12.999 1010315 31557 31557 W         : el0_svc+0x28/0x88
    06-03 13:29:12.999 1010315 31557 31557 W         : el0_sync_handler+0x8c/0xf0
    06-03 13:29:12.999 1010315 31557 31557 W         : el0_sync+0x1a4/0x1c0
    ..
    ..
    06-03 13:29:12.999 1010315 31557 31557 W SLUB    : Unable to allocate memory on node -1, gfp=0x900(GFP_NOWAIT|__GFP_ZERO)
    06-03 13:29:12.999 1010315 31557 31557 W cache   : avc_node, object size: 72, buffer size: 80, default order: 0, min order: 0
    06-03 13:29:12.999 1010315 31557 31557 W node 0  : slabs: 57, objs: 2907, free: 0
    06-03 13:29:12.999 1010161 10686 10686 W SLUB    : Unable to allocate memory on node -1, gfp=0x900(GFP_NOWAIT|__GFP_ZERO)
    06-03 13:29:12.999 1010161 10686 10686 W cache   : avc_node, object size: 72, buffer size: 80, default order: 0, min order: 0
    06-03 13:29:12.999 1010161 10686 10686 W node 0  : slabs: 57, objs: 2907, free: 0
    06-03 13:29:12.999 1010161 10686 10686 W SLUB    : Unable to allocate memory on node -1, gfp=0x900(GFP_NOWAIT|__GFP_ZERO)
    06-03 13:29:12.999 1010161 10686 10686 W cache   : avc_node, object size: 72, buffer size: 80, default order: 0, min order: 0
    06-03 13:29:12.999 1010161 10686 10686 W node 0  : slabs: 57, objs: 2907, free: 0
    06-03 13:29:12.999 1010161 10686 10686 W SLUB    : Unable to allocate memory on node -1, gfp=0x900(GFP_NOWAIT|__GFP_ZERO)
    06-03 13:29:12.999 1010161 10686 10686 W cache   : avc_node, object size: 72, buffer size: 80, default order: 0, min order: 0
    06-03 13:29:12.999 1010161 10686 10686 W node 0  : slabs: 57, objs: 2907, free: 0
    06-03 13:29:13.000 1010161 10686 10686 W SLUB    : Unable to allocate memory on node -1, gfp=0x900(GFP_NOWAIT|__GFP_ZERO)
    06-03 13:29:13.000 1010161 10686 10686 W cache   : avc_node, object size: 72, buffer size: 80, default order: 0, min order: 0
    06-03 13:29:13.000 1010161 10686 10686 W node 0  : slabs: 57, objs: 2907, free: 0
    06-03 13:29:13.000 1010161 10686 10686 W SLUB    : Unable to allocate memory on node -1, gfp=0x900(GFP_NOWAIT|__GFP_ZERO)
    06-03 13:29:13.000 1010161 10686 10686 W cache   : avc_node, object size: 72, buffer size: 80, default order: 0, min order: 0
    06-03 13:29:13.000 1010161 10686 10686 W node 0  : slabs: 57, objs: 2907, free: 0
    06-03 13:29:13.000 1010161 10686 10686 W SLUB    : Unable to allocate memory on node -1, gfp=0x900(GFP_NOWAIT|__GFP_ZERO)
    06-03 13:29:13.000 1010161 10686 10686 W cache   : avc_node, object size: 72, buffer size: 80, default order: 0, min order: 0
    06-03 13:29:13.000 1010161 10686 10686 W node 0  : slabs: 57, objs: 2907, free: 0
    06-03 13:29:13.000 10230 30892 30892 W SLUB    : Unable to allocate memory on node -1, gfp=0x900(GFP_NOWAIT|__GFP_ZERO)
    06-03 13:29:13.000 10230 30892 30892 W cache   : avc_node, object size: 72, buffer size: 80, default order: 0, min order: 0
    06-03 13:29:13.000 10230 30892 30892 W node 0  : slabs: 57, objs: 2907, free: 0
    06-03 13:29:13.000 10230 30892 30892 W SLUB    : Unable to allocate memory on node -1, gfp=0x900(GFP_NOWAIT|__GFP_ZERO)
    06-03 13:29:13.000 10230 30892 30892 W cache   : avc_node, object size: 72, buffer size: 80, default order: 0, min order: 0
    
    Based on [1], selinux is tolerate for failure of memory allocation.
    Then, use __GFP_NOWARN together.
    
    [1] 476accbe2f6e ("selinux: use GFP_NOWAIT in the AVC kmem_caches")
    
    Signed-off-by: Minchan Kim <minchan@kernel.org>
    [PM: subj fix, line wraps, normalized commit refs]
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ca099038d42026865e1030809dba58b04fc1f9e7
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Mon Jun 7 22:55:21 2021 +0800

    net: micrel: check return value after calling platform_get_resource()
    
    [ Upstream commit 20f1932e2282c58cb5ac59517585206cf5b385ae ]
    
    It will cause null-ptr-deref if platform_get_resource() returns NULL,
    we need check the return value.
    
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 013642e6bf41621d85fe0e79d8fb240edcc32e80
Author: Joe Thornber <ejt@redhat.com>
Date:   Tue Apr 13 09:03:49 2021 +0100

    dm space maps: don't reset space map allocation cursor when committing
    
    [ Upstream commit 5faafc77f7de69147d1e818026b9a0cbf036a7b2 ]
    
    Current commit code resets the place where the search for free blocks
    will begin back to the start of the metadata device.  There are a couple
    of repercussions to this:
    
    - The first allocation after the commit is likely to take longer than
      normal as it searches for a free block in an area that is likely to
      have very few free blocks (if any).
    
    - Any free blocks it finds will have been recently freed.  Reusing them
      means we have fewer old copies of the metadata to aid recovery from
      hardware error.
    
    Fix these issues by leaving the cursor alone, only resetting when the
    search hits the end of the metadata device.
    
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 835fe63da995c0a925011e91453cf702e26e184e
Author: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Date:   Tue Jun 1 19:07:49 2021 +0800

    RDMA/cxgb4: Fix missing error code in create_qp()
    
    [ Upstream commit aeb27bb76ad8197eb47890b1ff470d5faf8ec9a5 ]
    
    The error code is missing in this code scenario so 0 will be returned. Add
    the error code '-EINVAL' to the return value 'ret'.
    
    Eliminates the follow smatch warning:
    
    drivers/infiniband/hw/cxgb4/qp.c:298 create_qp() warn: missing error code 'ret'.
    
    Link: https://lore.kernel.org/r/1622545669-20625-1-git-send-email-jiapeng.chong@linux.alibaba.com
    Reported-by: Abaci Robot <abaci@linux.alibaba.com>
    Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c43fa9ee9f1de295474a28903607f84209d7e611
Author: Willy Tarreau <w@1wt.eu>
Date:   Sat May 29 13:07:46 2021 +0200

    ipv6: use prandom_u32() for ID generation
    
    [ Upstream commit 62f20e068ccc50d6ab66fdb72ba90da2b9418c99 ]
    
    This is a complement to commit aa6dd211e4b1 ("inet: use bigger hash
    table for IP ID generation"), but focusing on some specific aspects
    of IPv6.
    
    Contary to IPv4, IPv6 only uses packet IDs with fragments, and with a
    minimum MTU of 1280, it's much less easy to force a remote peer to
    produce many fragments to explore its ID sequence. In addition packet
    IDs are 32-bit in IPv6, which further complicates their analysis. On
    the other hand, it is often easier to choose among plenty of possible
    source addresses and partially work around the bigger hash table the
    commit above permits, which leaves IPv6 partially exposed to some
    possibilities of remote analysis at the risk of weakening some
    protocols like DNS if some IDs can be predicted with a good enough
    probability.
    
    Given the wide range of permitted IDs, the risk of collision is extremely
    low so there's no need to rely on the positive increment algorithm that
    is shared with the IPv4 code via ip_idents_reserve(). We have a fast
    PRNG, so let's simply call prandom_u32() and be done with it.
    
    Performance measurements at 10 Gbps couldn't show any difference with
    the previous code, even when using a single core, because due to the
    large fragments, we're limited to only ~930 kpps at 10 Gbps and the cost
    of the random generation is completely offset by other operations and by
    the network transfer time. In addition, this change removes the need to
    update a shared entry in the idents table so it may even end up being
    slightly faster on large scale systems where this matters.
    
    The risk of at least one collision here is about 1/80 million among
    10 IDs, 1/850k among 100 IDs, and still only 1/8.5k among 1000 IDs,
    which remains very low compared to IPv4 where all IDs are reused
    every 4 to 80ms on a 10 Gbps flow depending on packet sizes.
    
    Reported-by: Amit Klein <aksecurity@gmail.com>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20210529110746.6796-1-w@1wt.eu
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d8dc2c7c1ee3aae9ed9d4a3e35c95e9f997893f
Author: Jesse Brandeburg <jesse.brandeburg@intel.com>
Date:   Thu Mar 25 17:38:24 2021 -0700

    e100: handle eeprom as little endian
    
    [ Upstream commit d4ef55288aa2e1b76033717242728ac98ddc4721 ]
    
    Sparse tool was warning on some implicit conversions from
    little endian data read from the EEPROM on the e100 cards.
    
    Fix these by being explicit about the conversions using
    le16_to_cpu().
    
    Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2f3d9ddd32a28803baa547e6274983b67d5e287c
Author: Arturo Giusti <koredump@protonmail.com>
Date:   Tue May 18 12:34:57 2021 +0200

    udf: Fix NULL pointer dereference in udf_symlink function
    
    [ Upstream commit fa236c2b2d4436d9f19ee4e5d5924e90ffd7bb43 ]
    
    In function udf_symlink, epos.bh is assigned with the value returned
    by udf_tgetblk. The function udf_tgetblk is defined in udf/misc.c
    and returns the value of sb_getblk function that could be NULL.
    Then, epos.bh is used without any check, causing a possible
    NULL pointer dereference when sb_getblk fails.
    
    This fix adds a check to validate the value of epos.bh.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=213083
    Signed-off-by: Arturo Giusti <koredump@protonmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07885bedf527a343459cce50f3269cd7754756d5
Author: Xie Yongji <xieyongji@bytedance.com>
Date:   Mon May 17 16:49:12 2021 +0800

    drm/virtio: Fix double free on probe failure
    
    [ Upstream commit cec7f1774605a5ef47c134af62afe7c75c30b0ee ]
    
    The virtio_gpu_init() will free vgdev and vgdev->vbufs on failure.
    But such failure will be caught by virtio_gpu_probe() and then
    virtio_gpu_release() will be called to do some cleanup which
    will free vgdev and vgdev->vbufs again. So let's set dev->dev_private
    to NULL to avoid double free.
    
    Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/20210517084913.403-2-xieyongji@bytedance.com
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ee7b3fa574f534620725178f3920d15987df430
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Mon May 17 15:15:45 2021 +0300

    reiserfs: add check for invalid 1st journal block
    
    [ Upstream commit a149127be52fa7eaf5b3681a0317a2bbb772d5a9 ]
    
    syzbot reported divide error in reiserfs.
    The problem was in incorrect journal 1st block.
    
    Syzbot's reproducer manualy generated wrong superblock
    with incorrect 1st block. In journal_init() wasn't
    any checks about this particular case.
    
    For example, if 1st journal block is before superblock
    1st block, it can cause zeroing important superblock members
    in do_journal_end().
    
    Link: https://lore.kernel.org/r/20210517121545.29645-1-paskripkin@gmail.com
    Reported-by: syzbot+0ba9909df31c6a36974d@syzkaller.appspotmail.com
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c1d4ab7b025d911ef3da83a11ad6d0ac877c4be
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Wed May 12 23:43:24 2021 +0200

    net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT
    
    [ Upstream commit 8380c81d5c4fced6f4397795a5ae65758272bbfd ]
    
    __napi_schedule_irqoff() is an optimized version of __napi_schedule()
    which can be used where it is known that interrupts are disabled,
    e.g. in interrupt-handlers, spin_lock_irq() sections or hrtimer
    callbacks.
    
    On PREEMPT_RT enabled kernels this assumptions is not true. Force-
    threaded interrupt handlers and spinlocks are not disabling interrupts
    and the NAPI hrtimer callback is forced into softirq context which runs
    with interrupts enabled as well.
    
    Chasing all usage sites of __napi_schedule_irqoff() is a whack-a-mole
    game so make __napi_schedule_irqoff() invoke __napi_schedule() for
    PREEMPT_RT kernels.
    
    The callers of ____napi_schedule() in the networking core have been
    audited and are correct on PREEMPT_RT kernels as well.
    
    Reported-by: Juri Lelli <juri.lelli@redhat.com>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Juri Lelli <juri.lelli@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 99779c9d9ffc7775da6f7fd8a7c93ac61657bed5
Author: Zou Wei <zou_wei@huawei.com>
Date:   Wed May 12 15:00:24 2021 +0800

    atm: nicstar: Fix possible use-after-free in nicstar_cleanup()
    
    [ Upstream commit 34e7434ba4e97f4b85c1423a59b2922ba7dff2ea ]
    
    This module's remove path calls del_timer(). However, that function
    does not wait until the timer handler finishes. This means that the
    timer handler may still be running after the driver's remove function
    has finished, which would result in a use-after-free.
    
    Fix by calling del_timer_sync(), which makes sure the timer handler
    has finished, and unable to re-schedule itself.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 49331c07ef0f8fdfa42b30ba6a83a657b29d7fbe
Author: Zou Wei <zou_wei@huawei.com>
Date:   Tue May 11 14:58:53 2021 +0800

    mISDN: fix possible use-after-free in HFC_cleanup()
    
    [ Upstream commit 009fc857c5f6fda81f2f7dd851b2d54193a8e733 ]
    
    This module's remove path calls del_timer(). However, that function
    does not wait until the timer handler finishes. This means that the
    timer handler may still be running after the driver's remove function
    has finished, which would result in a use-after-free.
    
    Fix by calling del_timer_sync(), which makes sure the timer handler
    has finished, and unable to re-schedule itself.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e161687855175334ca93c6c3ccb221731194479
Author: Zou Wei <zou_wei@huawei.com>
Date:   Tue May 11 14:53:36 2021 +0800

    atm: iphase: fix possible use-after-free in ia_module_exit()
    
    [ Upstream commit 1c72e6ab66b9598cac741ed397438a52065a8f1f ]
    
    This module's remove path calls del_timer(). However, that function
    does not wait until the timer handler finishes. This means that the
    timer handler may still be running after the driver's remove function
    has finished, which would result in a use-after-free.
    
    Fix by calling del_timer_sync(), which makes sure the timer handler
    has finished, and unable to re-schedule itself.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8fd3c6d9c042f57480013e5c9e94a4f2a5b8079c
Author: Bibo Mao <maobibo@loongson.cn>
Date:   Mon Jun 29 21:15:32 2020 +0800

    hugetlb: clear huge pte during flush function on mips platform
    
    [ Upstream commit 33ae8f801ad8bec48e886d368739feb2816478f2 ]
    
    If multiple threads are accessing the same huge page at the same
    time, hugetlb_cow will be called if one thread write the COW huge
    page. And function huge_ptep_clear_flush is called to notify other
    threads to clear the huge pte tlb entry. The other threads clear
    the huge pte tlb entry and reload it from page table, the reload
    huge pte entry may be old.
    
    This patch fixes this issue on mips platform, and it clears huge
    pte entry before notifying other threads to flush current huge
    page entry, it is similar with other architectures.
    
    Signed-off-by: Bibo Mao <maobibo@loongson.cn>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ade69fa84b7def93dcb0be6001a261bc3b01730f
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Mon May 10 19:39:30 2021 +0300

    net: pch_gbe: Use proper accessors to BE data in pch_ptp_match()
    
    [ Upstream commit 443ef39b499cc9c6635f83238101f1bb923e9326 ]
    
    Sparse is not happy about handling of strict types in pch_ptp_match():
    
      .../pch_gbe_main.c:158:33: warning: incorrect type in argument 2 (different base types)
      .../pch_gbe_main.c:158:33:    expected unsigned short [usertype] uid_hi
      .../pch_gbe_main.c:158:33:    got restricted __be16 [usertype]
      .../pch_gbe_main.c:158:45: warning: incorrect type in argument 3 (different base types)
      .../pch_gbe_main.c:158:45:    expected unsigned int [usertype] uid_lo
      .../pch_gbe_main.c:158:45:    got restricted __be32 [usertype]
      .../pch_gbe_main.c:158:56: warning: incorrect type in argument 4 (different base types)
      .../pch_gbe_main.c:158:56:    expected unsigned short [usertype] seqid
      .../pch_gbe_main.c:158:56:    got restricted __be16 [usertype]
    
    Fix that by switching to use proper accessors to BE data.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Tested-by: Flavio Suligoi <f.suligoi@asem.it>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bbff172285ab312fbda8fab30fa5dd81e80d05f8
Author: Quat Le <quat.le@oracle.com>
Date:   Tue Jun 29 08:58:26 2021 -0700

    scsi: core: Retry I/O for Notify (Enable Spinup) Required error
    
    commit 104739aca4488909175e9e31d5cd7d75b82a2046 upstream.
    
    If the device is power-cycled, it takes time for the initiator to transmit
    the periodic NOTIFY (ENABLE SPINUP) SAS primitive, and for the device to
    respond to the primitive to become ACTIVE. Retry the I/O request to allow
    the device time to become ACTIVE.
    
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210629155826.48441-1-quat.le@oracle.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Quat Le <quat.le@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33f770ab28f0f99d9454e0872fa57de3f66bd081
Author: Johan Hovold <johan@kernel.org>
Date:   Fri May 21 15:30:26 2021 +0200

    mmc: vub3000: fix control-request direction
    
    commit 3c0bb3107703d2c58f7a0a7a2060bb57bc120326 upstream.
    
    The direction of the pipe argument must match the request-type direction
    bit or control requests may fail depending on the host-controller-driver
    implementation.
    
    Fix the SET_ROM_WAIT_STATES request which erroneously used
    usb_rcvctrlpipe().
    
    Fixes: 88095e7b473a ("mmc: Add new VUB300 USB-to-SD/SDIO/MMC driver")
    Cc: stable@vger.kernel.org      # 3.0
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20210521133026.17296-1-johan@kernel.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3d3824241942f583451a3a8cbd18b2e58d1d202
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Fri Apr 23 22:46:24 2021 +0200

    extcon: max8997: Add missing modalias string
    
    [ Upstream commit dc11fc2991e9efbceef93912b83e333d2835fb19 ]
    
    The platform device driver name is "max8997-muic", so advertise it
    properly in the modalias string. This fixes automated module loading when
    this driver is compiled as a module.
    
    Fixes: b76668ba8a77 ("Extcon: add MAX8997 extcon driver")
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ef2d9dbb6a54da889e4711ef294e7c3dcec2aab
Author: Stephan Gerhold <stephan@gerhold.net>
Date:   Mon May 31 15:34:35 2021 +0200

    extcon: sm5502: Drop invalid register write in sm5502_reg_data
    
    [ Upstream commit d25b224f8e5507879b36a769a6d1324cf163466c ]
    
    When sm5502_init_dev_type() iterates over sm5502_reg_data to
    initialize the registers it is limited by ARRAY_SIZE(sm5502_reg_data).
    There is no need to add another empty element to sm5502_reg_data.
    
    Having the additional empty element in sm5502_reg_data will just
    result in writing 0xff to register 0x00, which does not really
    make sense.
    
    Fixes: 914b881f9452 ("extcon: sm5502: Add support new SM5502 extcon device driver")
    Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
    Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3a51c72f42485db0a3821b4a1aef550f58ed1419
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat Jun 5 15:17:43 2021 +0200

    phy: ti: dm816x: Fix the error handling path in 'dm816x_usb_phy_probe()
    
    [ Upstream commit f7eedcb8539ddcbb6fe7791f1b4ccf43f905c72f ]
    
    Add an error handling path in the probe to release some resources, as
    already done in the remove function.
    
    Fixes: 609adde838f4 ("phy: Add a driver for dm816x USB PHY")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/ac5136881f6bdec50be19b3bf73b3bc1b15ef1f1.1622898974.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5681c9320922859a7b6a54c9d0887efd88f691fe
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Fri May 14 16:13:00 2021 +0800

    scsi: mpt3sas: Fix error return value in _scsih_expander_add()
    
    [ Upstream commit d6c2ce435ffe23ef7f395ae76ec747414589db46 ]
    
    When an expander does not contain any 'phys', an appropriate error code -1
    should be returned, as done elsewhere in this function. However, we
    currently do not explicitly assign this error code to 'rc'. As a result, 0
    was incorrectly returned.
    
    Link: https://lore.kernel.org/r/20210514081300.6650-1-thunder.leizhen@huawei.com
    Fixes: f92363d12359 ("[SCSI] mpt3sas: add new driver supporting 12GB SAS")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ea2bda11aad9f8f49ea9f90a98bdf689555ef054
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Jun 14 12:58:36 2021 +0300

    staging: gdm724x: check for overflow in gdm_lte_netif_rx()
    
    [ Upstream commit 7002b526f4ff1f6da34356e67085caafa6be383a ]
    
    This code assumes that "len" is at least 62 bytes, but we need a check
    to prevent a read overflow.
    
    Fixes: 61e121047645 ("staging: gdm7240: adding LTE USB driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/YMcoTPsCYlhh2TQo@mwanda
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38341d1a43a8810a093da0cb82e524c6fecf8a21
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Jun 14 12:55:35 2021 +0300

    staging: gdm724x: check for buffer overflow in gdm_lte_multi_sdu_pkt()
    
    [ Upstream commit 4a36e160856db8a8ddd6a3d2e5db5a850ab87f82 ]
    
    There needs to be a check to verify that we don't read beyond the end
    of "buf".  This function is called from do_rx().  The "buf" is the USB
    transfer_buffer and "len" is "urb->actual_length".
    
    Fixes: 61e121047645 ("staging: gdm7240: adding LTE USB driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/YMcnl4zCwGWGDVMG@mwanda
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c824d811e9e68498c6d3d40d8d56547251afd490
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Thu May 27 17:24:20 2021 -0700

    s390: appldata depends on PROC_SYSCTL
    
    [ Upstream commit 5d3516b3647621d5a1180672ea9e0817fb718ada ]
    
    APPLDATA_BASE should depend on PROC_SYSCTL instead of PROC_FS.
    Building with PROC_FS but not PROC_SYSCTL causes a build error,
    since appldata_base.c uses data and APIs from fs/proc/proc_sysctl.c.
    
    arch/s390/appldata/appldata_base.o: in function `appldata_generic_handler':
    appldata_base.c:(.text+0x192): undefined reference to `sysctl_vals'
    
    Fixes: c185b783b099 ("[S390] Remove config options.")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: linux-s390@vger.kernel.org
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Link: https://lore.kernel.org/r/20210528002420.17634-1-rdunlap@infradead.org
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1ca044beebd48d56260ca91fa536da76bbf41bff
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sat May 29 16:48:57 2021 -0700

    scsi: FlashPoint: Rename si_flags field
    
    [ Upstream commit 4d431153e751caa93f3b7e6f6313446974e92253 ]
    
    The BusLogic driver has build errors on ia64 due to a name collision (in
    the #included FlashPoint.c file). Rename the struct field in struct
    sccb_mgr_info from si_flags to si_mflags (manager flags) to mend the build.
    
    This is the first problem. There are 50+ others after this one:
    
    In file included from ../include/uapi/linux/signal.h:6,
                     from ../include/linux/signal_types.h:10,
                     from ../include/linux/sched.h:29,
                     from ../include/linux/hardirq.h:9,
                     from ../include/linux/interrupt.h:11,
                     from ../drivers/scsi/BusLogic.c:27:
    ../arch/ia64/include/uapi/asm/siginfo.h:15:27: error: expected ':', ',', ';', '}' or '__attribute__' before '.' token
       15 | #define si_flags _sifields._sigfault._flags
          |                           ^
    ../drivers/scsi/FlashPoint.c:43:6: note: in expansion of macro 'si_flags'
       43 |  u16 si_flags;
          |      ^~~~~~~~
    In file included from ../drivers/scsi/BusLogic.c:51:
    ../drivers/scsi/FlashPoint.c: In function 'FlashPoint_ProbeHostAdapter':
    ../drivers/scsi/FlashPoint.c:1076:11: error: 'struct sccb_mgr_info' has no member named '_sifields'
     1076 |  pCardInfo->si_flags = 0x0000;
          |           ^~
    ../drivers/scsi/FlashPoint.c:1079:12: error: 'struct sccb_mgr_info' has no member named '_sifields'
    
    Link: https://lore.kernel.org/r/20210529234857.6870-1-rdunlap@infradead.org
    Fixes: 391e2f25601e ("[SCSI] BusLogic: Port driver to 64-bit.")
    Cc: "James E.J. Bottomley" <jejb@linux.ibm.com>
    Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Hannes Reinecke <hare@suse.de>
    Cc: Khalid Aziz <khalid.aziz@oracle.com>
    Cc: Khalid Aziz <khalid@gonehiking.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 02c844a20cbca020b86381caa4c9fecaac067b90
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Tue May 25 20:51:57 2021 +0200

    tty: nozomi: Fix the error handling path of 'nozomi_card_init()'
    
    [ Upstream commit 6ae7d0f5a92b9619f6e3c307ce56b2cefff3f0e9 ]
    
    The error handling path is broken and we may un-register things that have
    never been registered.
    
    Update the loops index accordingly.
    
    Fixes: 9842c38e9176 ("kfifo: fix warn_unused_result")
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/e28c2e92c7475da25b03d022ea2d6dcf1ba807a2.1621968629.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c8c80d89f119dcdcce15f8e20385f88eb375164
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Fri May 21 20:06:17 2021 +0800

    char: pcmcia: error out if 'num_bytes_read' is greater than 4 in set_protocol()
    
    [ Upstream commit 37188559c610f1b7eec83c8e448936c361c578de ]
    
    Theoretically, it will cause index out of bounds error if
    'num_bytes_read' is greater than 4. As we expect it(and was tested)
    never to be greater than 4, error out if it happens.
    
    Fixes: c1986ee9bea3 ("[PATCH] New Omnikey Cardman 4000 driver")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Link: https://lore.kernel.org/r/20210521120617.138396-1-yukuai3@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2ff89ade434d551f0b45d058b70b6194783fe835
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Mon May 24 11:52:42 2021 -0700

    Input: hil_kbd - fix error return code in hil_dev_connect()
    
    [ Upstream commit d9b576917a1d0efa293801a264150a1b37691617 ]
    
    Return error code -EINVAL rather than '0' when the combo devices are not
    supported.
    
    Fixes: fa71c605c2bb ("Input: combine hil_kbd and hil_ptr drivers")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Link: https://lore.kernel.org/r/20210515030053.6824-1-thunder.leizhen@huawei.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit febff8e449e6f9094736a5e19c8c27f41fe35069
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Sat May 1 18:01:09 2021 +0100

    iio: accel: stk8ba50: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
    
    [ Upstream commit 334883894bc1e145a1e0f5de1b0d1b6a1133f0e6 ]
    
    To make code more readable, use a structure to express the channel
    layout and ensure the timestamp is 8 byte aligned.
    
    Found during an audit of all calls of this function.
    
    Fixes: db6a19b8251f ("iio: accel: Add trigger support for STK8BA50")
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20210501170121.512209-8-jic23@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0016780bd63db7398808b69a2a79351a762ac73a
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Sat May 1 18:01:08 2021 +0100

    iio: accel: stk8312: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
    
    [ Upstream commit f40a71ffec808e7e51848f63f0c0d3c32d65081b ]
    
    To make code more readable, use a structure to express the channel
    layout and ensure the timestamp is 8 byte aligned.
    
    Found during an audit of all calls of this function.
    
    Fixes: 95c12bba51c3 ("iio: accel: Add buffer mode for Sensortek STK8312")
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20210501170121.512209-7-jic23@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 540d99705bbb6f4a3e0b01ae09f9f25f388ea24d
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Sat May 1 18:01:03 2021 +0100

    iio: accel: bma180: Fix buffer alignment in iio_push_to_buffers_with_timestamp()
    
    [ Upstream commit fc36da3131a747a9367a05caf06de19be1bcc972 ]
    
    To make code more readable, use a structure to express the channel
    layout and ensure the timestamp is 8 byte aligned.
    
    Found during an audit of all calls of this function.
    
    Fixes: b9a6a237ffc9 ("iio:bma180: Drop _update_scan_mode()")
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Cc: Peter Meerwald <pmeerw@pmeerw.net>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20210501170121.512209-2-jic23@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ff9834a9d6eb4b6e22b54f86393a0718badfdb6
Author: Nuno Sa <nuno.sa@analog.com>
Date:   Thu Apr 22 12:19:03 2021 +0200

    iio: adis_buffer: do not return ints in irq handlers
    
    [ Upstream commit d877539ad8e8fdde9af69887055fec6402be1a13 ]
    
    On an IRQ handler we should not return normal error codes as 'irqreturn_t'
    is expected.
    
    Not necessarily stable material as the old check cannot fail, so it's a bug
    we can not hit.
    
    Fixes: ccd2b52f4ac69 ("staging:iio: Add common ADIS library")
    Reviewed-by: Alexandru Ardelean <ardeleanalex@gmail.com>
    Signed-off-by: Nuno Sa <nuno.sa@analog.com>
    Link: https://lore.kernel.org/r/20210422101911.135630-2-nuno.sa@analog.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 04b688e7b147087dcfdc82724d0ab8ab9e4093b9
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun May 9 19:22:33 2021 +0200

    tty: nozomi: Fix a resource leak in an error handling function
    
    [ Upstream commit 31a9a318255960d32ae183e95d0999daf2418608 ]
    
    A 'request_irq()' call is not balanced by a corresponding 'free_irq()' in
    the error handling path, as already done in the remove function.
    
    Add it.
    
    Fixes: 9842c38e9176 ("kfifo: fix warn_unused_result")
    Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/4f0d2b3038e82f081d370ccb0cade3ad88463fe7.1620580838.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a86aef787c205217165f131f11a0fe1d0fbd808d
Author: Muchun Song <songmuchun@bytedance.com>
Date:   Fri Apr 2 17:11:45 2021 +0800

    writeback: fix obtain a reference to a freeing memcg css
    
    [ Upstream commit 8b0ed8443ae6458786580d36b7d5f8125535c5d4 ]
    
    The caller of wb_get_create() should pin the memcg, because
    wb_get_create() relies on this guarantee. The rcu read lock
    only can guarantee that the memcg css returned by css_from_id()
    cannot be released, but the reference of the memcg can be zero.
    
      rcu_read_lock()
      memcg_css = css_from_id()
      wb_get_create(memcg_css)
          cgwb_create(memcg_css)
              // css_get can change the ref counter from 0 back to 1
              css_get(memcg_css)
      rcu_read_unlock()
    
    Fix it by holding a reference to the css before calling
    wb_get_create(). This is not a problem I encountered in the
    real world. Just the result of a code review.
    
    Fixes: 682aa8e1a6a1 ("writeback: implement unlocked_inode_to_wb transaction and use it for stat updates")
    Link: https://lore.kernel.org/r/20210402091145.80635-1-songmuchun@bytedance.com
    Signed-off-by: Muchun Song <songmuchun@bytedance.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 692701eab13bcb8d8b08ea3adfa47b15e3cc0287
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Sun Feb 28 19:50:58 2021 +0800

    i40e: Fix error handling in i40e_vsi_open
    
    [ Upstream commit 9c04cfcd4aad232e36306cdc5c74cd9fc9148a7e ]
    
    When vsi->type == I40E_VSI_FDIR, we have caught the return value of
    i40e_vsi_request_irq() but without further handling. Check and execute
    memory clean on failure just like the other i40e_vsi_request_irq().
    
    Fixes: 8a9eb7d3cbcab ("i40e: rework fdir setup and teardown")
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 913633d44858c5ec73a0011d81d434e36ad05c94
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Jun 21 07:44:17 2021 -0700

    vxlan: add missing rcu_read_lock() in neigh_reduce()
    
    [ Upstream commit 85e8b032d6ebb0f698a34dd22c2f13443d905888 ]
    
    syzbot complained in neigh_reduce(), because rcu_read_lock_bh()
    is treated differently than rcu_read_lock()
    
    WARNING: suspicious RCU usage
    5.13.0-rc6-syzkaller #0 Not tainted
    -----------------------------
    include/net/addrconf.h:313 suspicious rcu_dereference_check() usage!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    3 locks held by kworker/0:0/5:
     #0: ffff888011064d38 ((wq_completion)events){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
     #0: ffff888011064d38 ((wq_completion)events){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:856 [inline]
     #0: ffff888011064d38 ((wq_completion)events){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline]
     #0: ffff888011064d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:617 [inline]
     #0: ffff888011064d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:644 [inline]
     #0: ffff888011064d38 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x871/0x1600 kernel/workqueue.c:2247
     #1: ffffc90000ca7da8 ((work_completion)(&port->wq)){+.+.}-{0:0}, at: process_one_work+0x8a5/0x1600 kernel/workqueue.c:2251
     #2: ffffffff8bf795c0 (rcu_read_lock_bh){....}-{1:2}, at: __dev_queue_xmit+0x1da/0x3130 net/core/dev.c:4180
    
    stack backtrace:
    CPU: 0 PID: 5 Comm: kworker/0:0 Not tainted 5.13.0-rc6-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Workqueue: events ipvlan_process_multicast
    Call Trace:
     __dump_stack lib/dump_stack.c:79 [inline]
     dump_stack+0x141/0x1d7 lib/dump_stack.c:120
     __in6_dev_get include/net/addrconf.h:313 [inline]
     __in6_dev_get include/net/addrconf.h:311 [inline]
     neigh_reduce drivers/net/vxlan.c:2167 [inline]
     vxlan_xmit+0x34d5/0x4c30 drivers/net/vxlan.c:2919
     __netdev_start_xmit include/linux/netdevice.h:4944 [inline]
     netdev_start_xmit include/linux/netdevice.h:4958 [inline]
     xmit_one net/core/dev.c:3654 [inline]
     dev_hard_start_xmit+0x1eb/0x920 net/core/dev.c:3670
     __dev_queue_xmit+0x2133/0x3130 net/core/dev.c:4246
     ipvlan_process_multicast+0xa99/0xd70 drivers/net/ipvlan/ipvlan_core.c:287
     process_one_work+0x98d/0x1600 kernel/workqueue.c:2276
     worker_thread+0x64c/0x1120 kernel/workqueue.c:2422
     kthread+0x3b1/0x4a0 kernel/kthread.c:313
     ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294
    
    Fixes: f564f45c4518 ("vxlan: add ipv6 proxy support")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bbb9cb73ed40380d925397c3a5fadd089b751286
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Fri Jun 18 19:14:47 2021 +0300

    net: ethernet: ezchip: fix error handling
    
    [ Upstream commit 0de449d599594f5472e00267d651615c7f2c6c1d ]
    
    As documented at drivers/base/platform.c for platform_get_irq:
    
     * Gets an IRQ for a platform device and prints an error message if finding the
     * IRQ fails. Device drivers should check the return value for errors so as to
     * not pass a negative integer value to the request_irq() APIs.
    
    So, the driver should check that platform_get_irq() return value
    is _negative_, not that it's equal to zero, because -ENXIO (return
    value from request_irq() if irq was not found) will
    pass this check and it leads to passing negative irq to request_irq()
    
    Fixes: 0dd077093636 ("NET: Add ezchip ethernet driver")
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 902658089e647a155cf87e92810432a9fd1a5309
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Fri Jun 18 19:14:31 2021 +0300

    net: ethernet: ezchip: fix UAF in nps_enet_remove
    
    [ Upstream commit e4b8700e07a86e8eab6916aa5c5ba99042c34089 ]
    
    priv is netdev private data, but it is used
    after free_netdev(). It can cause use-after-free when accessing priv
    pointer. So, fix it by moving free_netdev() after netif_napi_del()
    call.
    
    Fixes: 0dd077093636 ("NET: Add ezchip ethernet driver")
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 17771fd4ecd648a3570f871d27b47e764b1f8e18
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Fri Jun 18 17:57:31 2021 +0300

    net: ethernet: aeroflex: fix UAF in greth_of_remove
    
    [ Upstream commit e3a5de6d81d8b2199935c7eb3f7d17a50a7075b7 ]
    
    static int greth_of_remove(struct platform_device *of_dev)
    {
    ...
            struct greth_private *greth = netdev_priv(ndev);
    ...
            unregister_netdev(ndev);
            free_netdev(ndev);
    
            of_iounmap(&of_dev->resource[0], greth->regs, resource_size(&of_dev->resource[0]));
    ...
    }
    
    greth is netdev private data, but it is used
    after free_netdev(). It can cause use-after-free when accessing greth
    pointer. So, fix it by moving free_netdev() after of_iounmap()
    call.
    
    Fixes: d4c41139df6e ("net: Add Aeroflex Gaisler 10/100/1G Ethernet MAC driver")
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0679982f51fcad6895b9844c2828d9cc2dbce9b7
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Thu Jun 10 20:20:30 2021 +0200

    netfilter: nft_exthdr: check for IPv6 packet before further processing
    
    [ Upstream commit cdd73cc545c0fb9b1a1f7b209f4f536e7990cff4 ]
    
    ipv6_find_hdr() does not validate that this is an IPv6 packet. Add a
    sanity check for calling ipv6_find_hdr() to make sure an IPv6 packet
    is passed for parsing.
    
    Fixes: 96518518cc41 ("netfilter: add nftables")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8d7961d2851975a3f1f9cd6aab9dbbc5be91144a
Author: Liu Shixin <liushixin2@huawei.com>
Date:   Tue Jun 15 10:14:44 2021 +0800

    netlabel: Fix memory leak in netlbl_mgmt_add_common
    
    [ Upstream commit b8f6b0522c298ae9267bd6584e19b942a0636910 ]
    
    Hulk Robot reported memory leak in netlbl_mgmt_add_common.
    The problem is non-freed map in case of netlbl_domhsh_add() failed.
    
    BUG: memory leak
    unreferenced object 0xffff888100ab7080 (size 96):
      comm "syz-executor537", pid 360, jiffies 4294862456 (age 22.678s)
      hex dump (first 32 bytes):
        05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01  ................
      backtrace:
        [<0000000008b40026>] netlbl_mgmt_add_common.isra.0+0xb2a/0x1b40
        [<000000003be10950>] netlbl_mgmt_add+0x271/0x3c0
        [<00000000c70487ed>] genl_family_rcv_msg_doit.isra.0+0x20e/0x320
        [<000000001f2ff614>] genl_rcv_msg+0x2bf/0x4f0
        [<0000000089045792>] netlink_rcv_skb+0x134/0x3d0
        [<0000000020e96fdd>] genl_rcv+0x24/0x40
        [<0000000042810c66>] netlink_unicast+0x4a0/0x6a0
        [<000000002e1659f0>] netlink_sendmsg+0x789/0xc70
        [<000000006e43415f>] sock_sendmsg+0x139/0x170
        [<00000000680a73d7>] ____sys_sendmsg+0x658/0x7d0
        [<0000000065cbb8af>] ___sys_sendmsg+0xf8/0x170
        [<0000000019932b6c>] __sys_sendmsg+0xd3/0x190
        [<00000000643ac172>] do_syscall_64+0x37/0x90
        [<000000009b79d6dc>] entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Fixes: 63c416887437 ("netlabel: Add network address selectors to the NetLabel/LSM domain mapping")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Liu Shixin <liushixin2@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f31d7fb79809ff4e529b3ed2a9340bfd6a8eea07
Author: Yang Li <yang.lee@linux.alibaba.com>
Date:   Tue May 25 18:46:17 2021 +0800

    ath10k: Fix an error code in ath10k_add_interface()
    
    [ Upstream commit e9ca70c735ce66fc6a0e02c8b6958434f74ef8de ]
    
    When the code execute this if statement, the value of ret is 0.
    However, we can see from the ath10k_warn() log that the value of
    ret should be -EINVAL.
    
    Clean up smatch warning:
    
    drivers/net/wireless/ath/ath10k/mac.c:5596 ath10k_add_interface() warn:
    missing error code 'ret'
    
    Reported-by: Abaci Robot <abaci@linux.alibaba.com>
    Fixes: ccec9038c721 ("ath10k: enable raw encap mode and software crypto engine")
    Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1621939577-62218-1-git-send-email-yang.lee@linux.alibaba.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f186b902c90683bde91b67dd088594810b442e1c
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Wed May 12 22:58:30 2021 +0200

    brcmsmac: mac80211_if: Fix a resource leak in an error handling path
    
    [ Upstream commit 9a25344d5177c2b9285532236dc3d10a091f39a8 ]
    
    If 'brcms_attach()' fails, we must undo the previous 'ieee80211_alloc_hw()'
    as already done in the remove function.
    
    Fixes: 5b435de0d786 ("net: wireless: add brcm80211 drivers")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/8fbc171a1a493b38db5a6f0873c6021fca026a6c.1620852921.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8a7217d11a41825b42823c20fce026bbd0b3ed12
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Mon May 31 17:41:28 2021 +0300

    wireless: carl9170: fix LEDS build errors & warnings
    
    [ Upstream commit 272fdc0c4542fad173b44965be02a16d6db95499 ]
    
    kernel test robot reports over 200 build errors and warnings
    that are due to this Kconfig problem when CARL9170=m,
    MAC80211=y, and LEDS_CLASS=m.
    
    WARNING: unmet direct dependencies detected for MAC80211_LEDS
      Depends on [n]: NET [=y] && WIRELESS [=y] && MAC80211 [=y] && (LEDS_CLASS [=m]=y || LEDS_CLASS [=m]=MAC80211 [=y])
      Selected by [m]:
      - CARL9170_LEDS [=y] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_ATH [=y] && CARL9170 [=m]
    
    CARL9170_LEDS selects MAC80211_LEDS even though its kconfig
    dependencies are not met. This happens because 'select' does not follow
    any Kconfig dependency chains.
    
    Fix this by making CARL9170_LEDS depend on MAC80211_LEDS, where
    the latter supplies any needed dependencies on LEDS_CLASS.
    
    Fixes: 1d7e1e6b1b8ed ("carl9170: Makefile, Kconfig files and MAINTAINERS")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Cc: Kalle Valo <kvalo@codeaurora.org>
    Cc: Christian Lamparter <chunkeey@googlemail.com>
    Cc: linux-wireless@vger.kernel.org
    Cc: Arnd Bergmann <arnd@arndb.de>
    Suggested-by: Christian Lamparter <chunkeey@googlemail.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Christian Lamparter <chunkeey@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210530031134.23274-1-rdunlap@infradead.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7a08a860a518250c5e9646d1ccbae1ebfc3dc64f
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue Jun 8 17:13:13 2021 +0100

    drm: qxl: ensure surf.data is ininitialized
    
    [ Upstream commit fbbf23ddb2a1cc0c12c9f78237d1561c24006f50 ]
    
    The object surf is not fully initialized and the uninitialized
    field surf.data is being copied by the call to qxl_bo_create
    via the call to qxl_gem_object_create. Set surf.data to zero
    to ensure garbage data from the stack is not being copied.
    
    Addresses-Coverity: ("Uninitialized scalar variable")
    Fixes: f64122c1f6ad ("drm: add new QXL driver. (v1.4)")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/20210608161313.161922-1-colin.king@canonical.com
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d967103ce94f7a4bcfce855a7e4df519a3214890
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Fri May 28 16:55:55 2021 +0800

    ehea: fix error return code in ehea_restart_qps()
    
    [ Upstream commit 015dbf5662fd689d581c0bc980711b073ca09a1a ]
    
    Fix to return -EFAULT from the error handling case instead of 0, as done
    elsewhere in this function.
    
    By the way, when get_zeroed_page() fails, directly return -ENOMEM to
    simplify code.
    
    Fixes: 2c69448bbced ("ehea: DLPAR memory add fix")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Link: https://lore.kernel.org/r/20210528085555.9390-1-thunder.leizhen@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 45d13cf27228657353e8d39e4039e5f71d38c14d
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Mon May 10 19:39:27 2021 +0300

    net: pch_gbe: Propagate error from devm_gpio_request_one()
    
    [ Upstream commit 9e3617a7b84512bf96c04f9cf82d1a7257d33794 ]
    
    If GPIO controller is not available yet we need to defer
    the probe of GBE until provider will become available.
    
    While here, drop GPIOF_EXPORT because it's deprecated and
    may not be available.
    
    Fixes: f1a26fdf5944 ("pch_gbe: Add MinnowBoard support")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Tested-by: Flavio Suligoi <f.suligoi@asem.it>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9b77406eefaa16714c3b7a6faf5067511d8fd6d
Author: Krzysztof Wilczyński <kw@linux.com>
Date:   Thu Jun 3 17:12:01 2021 +0000

    ACPI: sysfs: Fix a buffer overrun problem with description_show()
    
    [ Upstream commit 888be6067b97132c3992866bbcf647572253ab3f ]
    
    Currently, a device description can be obtained using ACPI, if the _STR
    method exists for a particular device, and then exposed to the userspace
    via a sysfs object as a string value.
    
    If the _STR method is available for a given device then the data
    (usually a Unicode string) is read and stored in a buffer (of the
    ACPI_TYPE_BUFFER type) with a pointer to said buffer cached in the
    struct acpi_device_pnp for later access.
    
    The description_show() function is responsible for exposing the device
    description to the userspace via a corresponding sysfs object and
    internally calls the utf16s_to_utf8s() function with a pointer to the
    buffer that contains the Unicode string so that it can be converted from
    UTF16 encoding to UTF8 and thus allowing for the value to be safely
    stored and later displayed.
    
    When invoking the utf16s_to_utf8s() function, the description_show()
    function also sets a limit of the data that can be saved into a provided
    buffer as a result of the character conversion to be a total of
    PAGE_SIZE, and upon completion, the utf16s_to_utf8s() function returns
    an integer value denoting the number of bytes that have been written
    into the provided buffer.
    
    Following the execution of the utf16s_to_utf8s() a newline character
    will be added at the end of the resulting buffer so that when the value
    is read in the userspace through the sysfs object then it would include
    newline making it more accessible when working with the sysfs file
    system in the shell, etc.  Normally, this wouldn't be a problem, but if
    the function utf16s_to_utf8s() happens to return the number of bytes
    written to be precisely PAGE_SIZE, then we would overrun the buffer and
    write the newline character outside the allotted space which can have
    undefined consequences or result in a failure.
    
    To fix this buffer overrun, ensure that there always is enough space
    left for the newline character to be safely appended.
    
    Fixes: d1efe3c324ea ("ACPI: Add new sysfs interface to export device description")
    Signed-off-by: Krzysztof Wilczyński <kw@linux.com>
    Reviewed-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ec2a145b5f1ddcfa1000a875213c691c76f9ccf
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Thu Jun 17 15:57:12 2021 +0800

    crypto: nx - Fix RCU warning in nx842_OF_upd_status
    
    [ Upstream commit 2a96726bd0ccde4f12b9b9a9f61f7b1ac5af7e10 ]
    
    The function nx842_OF_upd_status triggers a sparse RCU warning when
    it directly dereferences the RCU-protected devdata.  This appears
    to be an accident as there was another variable of the same name
    that was passed in from the caller.
    
    After it was removed (because the main purpose of using it, to
    update the status member was itself removed) the global variable
    unintenionally stood in as its replacement.
    
    This patch restores the devdata parameter.
    
    Fixes: 90fd73f912f0 ("crypto: nx - remove pSeries NX 'status' field")
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 24e6c652ba3ff6aef26f94f07f5553e95cce832c
Author: Mirko Vogt <mirko-dev|linux@nanl.de>
Date:   Mon Jun 14 16:45:07 2021 +0200

    spi: spi-sun6i: Fix chipselect/clock bug
    
    [ Upstream commit 0d7993b234c9fad8cb6bec6adfaa74694ba85ecb ]
    
    The current sun6i SPI implementation initializes the transfer too early,
    resulting in SCK going high before the transfer. When using an additional
    (gpio) chipselect with sun6i, the chipselect is asserted at a time when
    clock is high, making the SPI transfer fail.
    
    This is due to SUN6I_GBL_CTL_BUS_ENABLE being written into
    SUN6I_GBL_CTL_REG at an early stage. Moving that to the transfer
    function, hence, right before the transfer starts, mitigates that
    problem.
    
    Fixes: 3558fe900e8af (spi: sunxi: Add Allwinner A31 SPI controller driver)
    Signed-off-by: Mirko Vogt <mirko-dev|linux@nanl.de>
    Signed-off-by: Ralf Schlatterbeck <rsc@runtux.com>
    Link: https://lore.kernel.org/r/20210614144507.y3udezjfbko7eavv@runtux.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c6be39cdb0ed7ba2376e1c509d17553a13e3bca
Author: Dillon Min <dillon.minfei@gmail.com>
Date:   Wed May 26 17:18:32 2021 +0200

    media: s5p-g2d: Fix a memory leak on ctx->fh.m2m_ctx
    
    [ Upstream commit 5d11e6aad1811ea293ee2996cec9124f7fccb661 ]
    
    The m2m_ctx resources was allocated by v4l2_m2m_ctx_init() in g2d_open()
    should be freed from g2d_release() when it's not used.
    
    Fix it
    
    Fixes: 918847341af0 ("[media] v4l: add G2D driver for s5p device family")
    Signed-off-by: Dillon Min <dillon.minfei@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c7ec674c7340d615748f3b8def935fd28c9fdf5f
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Sat May 8 10:03:21 2021 +0800

    mmc: usdhi6rol0: fix error return code in usdhi6_probe()
    
    [ Upstream commit 2f9ae69e5267f53e89e296fccee291975a85f0eb ]
    
    Fix to return a negative error code from the error handling case instead
    of 0, as done elsewhere in this function.
    
    Fixes: 75fa9ea6e3c0 ("mmc: add a driver for the Renesas usdhi6rol0 SD/SDIO host controller")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Link: https://lore.kernel.org/r/20210508020321.1677-1-thunder.leizhen@huawei.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ec369197558f80b37db60fa7dc116a1bca5c44c1
Author: Gustavo A. R. Silva <gustavoars@kernel.org>
Date:   Wed Mar 10 19:40:43 2021 -0600

    media: siano: Fix out-of-bounds warnings in smscore_load_firmware_family2()
    
    [ Upstream commit 13dfead49db07225335d4f587a560a2210391a1a ]
    
    Rename struct sms_msg_data4 to sms_msg_data5 and increase the size of
    its msg_data array from 4 to 5 elements. Notice that at some point
    the 5th element of msg_data is being accessed in function
    smscore_load_firmware_family2():
    
    1006                 trigger_msg->msg_data[4] = 4; /* Task ID */
    
    Also, there is no need for the object _trigger_msg_ of type struct
    sms_msg_data *, when _msg_ can be used, directly. Notice that msg_data
    in struct sms_msg_data is a one-element array, which causes multiple
    out-of-bounds warnings when accessing beyond its first element
    in function smscore_load_firmware_family2():
    
     992                 struct sms_msg_data *trigger_msg =
     993                         (struct sms_msg_data *) msg;
     994
     995                 pr_debug("sending MSG_SMS_SWDOWNLOAD_TRIGGER_REQ\n");
     996                 SMS_INIT_MSG(&msg->x_msg_header,
     997                                 MSG_SMS_SWDOWNLOAD_TRIGGER_REQ,
     998                                 sizeof(struct sms_msg_hdr) +
     999                                 sizeof(u32) * 5);
    1000
    1001                 trigger_msg->msg_data[0] = firmware->start_address;
    1002                                         /* Entry point */
    1003                 trigger_msg->msg_data[1] = 6; /* Priority */
    1004                 trigger_msg->msg_data[2] = 0x200; /* Stack size */
    1005                 trigger_msg->msg_data[3] = 0; /* Parameter */
    1006                 trigger_msg->msg_data[4] = 4; /* Task ID */
    
    even when enough dynamic memory is allocated for _msg_:
    
     929         /* PAGE_SIZE buffer shall be enough and dma aligned */
     930         msg = kmalloc(PAGE_SIZE, GFP_KERNEL | coredev->gfp_buf_flags);
    
    but as _msg_ is casted to (struct sms_msg_data *):
    
     992                 struct sms_msg_data *trigger_msg =
     993                         (struct sms_msg_data *) msg;
    
    the out-of-bounds warnings are actually valid and should be addressed.
    
    Fix this by declaring object _msg_ of type struct sms_msg_data5 *,
    which contains a 5-elements array, instead of just 4. And use
    _msg_ directly, instead of creating object trigger_msg.
    
    This helps with the ongoing efforts to enable -Warray-bounds by fixing
    the following warnings:
    
      CC [M]  drivers/media/common/siano/smscoreapi.o
    drivers/media/common/siano/smscoreapi.c: In function ‘smscore_load_firmware_family2’:
    drivers/media/common/siano/smscoreapi.c:1003:24: warning: array subscript 1 is above array bounds of ‘u32[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds]
     1003 |   trigger_msg->msg_data[1] = 6; /* Priority */
          |   ~~~~~~~~~~~~~~~~~~~~~^~~
    In file included from drivers/media/common/siano/smscoreapi.c:12:
    drivers/media/common/siano/smscoreapi.h:619:6: note: while referencing ‘msg_data’
      619 |  u32 msg_data[1];
          |      ^~~~~~~~
    drivers/media/common/siano/smscoreapi.c:1004:24: warning: array subscript 2 is above array bounds of ‘u32[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds]
     1004 |   trigger_msg->msg_data[2] = 0x200; /* Stack size */
          |   ~~~~~~~~~~~~~~~~~~~~~^~~
    In file included from drivers/media/common/siano/smscoreapi.c:12:
    drivers/media/common/siano/smscoreapi.h:619:6: note: while referencing ‘msg_data’
      619 |  u32 msg_data[1];
          |      ^~~~~~~~
    drivers/media/common/siano/smscoreapi.c:1005:24: warning: array subscript 3 is above array bounds of ‘u32[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds]
     1005 |   trigger_msg->msg_data[3] = 0; /* Parameter */
          |   ~~~~~~~~~~~~~~~~~~~~~^~~
    In file included from drivers/media/common/siano/smscoreapi.c:12:
    drivers/media/common/siano/smscoreapi.h:619:6: note: while referencing ‘msg_data’
      619 |  u32 msg_data[1];
          |      ^~~~~~~~
    drivers/media/common/siano/smscoreapi.c:1006:24: warning: array subscript 4 is above array bounds of ‘u32[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds]
     1006 |   trigger_msg->msg_data[4] = 4; /* Task ID */
          |   ~~~~~~~~~~~~~~~~~~~~~^~~
    In file included from drivers/media/common/siano/smscoreapi.c:12:
    drivers/media/common/siano/smscoreapi.h:619:6: note: while referencing ‘msg_data’
      619 |  u32 msg_data[1];
          |      ^~~~~~~~
    
    Fixes: 018b0c6f8acb ("[media] siano: make load firmware logic to work with newer firmwares")
    Co-developed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a4844c635e242a4d8822e6a02e22993e1fe5786
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Sat May 15 08:58:30 2021 +0200

    media: tc358743: Fix error return code in tc358743_probe_of()
    
    [ Upstream commit a6b1e7093f0a099571fc8836ab4a589633f956a8 ]
    
    When the CSI bps per lane is not in the valid range, an appropriate error
    code -EINVAL should be returned. However, we currently do not explicitly
    assign this error code to 'ret'. As a result, 0 was incorrectly returned.
    
    Fixes: 256148246852 ("[media] tc358743: support probe from device tree")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9070ef9f711c6979d9240e85725a94f8eeb0e280
Author: Sergey Shtylyov <s.shtylyov@omprussia.ru>
Date:   Sat Mar 20 23:32:38 2021 +0300

    pata_ep93xx: fix deferred probing
    
    [ Upstream commit 5c8121262484d99bffb598f39a0df445cecd8efb ]
    
    The driver overrides the error codes returned by platform_get_irq() to
    -ENXIO, so if it returns -EPROBE_DEFER, the driver would fail the probe
    permanently instead of the deferred probing.  Propagate the error code
    upstream, as it should have been done from the start...
    
    Fixes: 2fff27512600 ("PATA host controller driver for ep93xx")
    Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru>
    Link: https://lore.kernel.org/r/509fda88-2e0d-2cc7-f411-695d7e94b136@omprussia.ru
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fa793e7ae17aa5750419aa38af19987a0b0c98e7
Author: Sergey Shtylyov <s.shtylyov@omp.ru>
Date:   Tue May 18 23:38:54 2021 +0300

    pata_octeon_cf: avoid WARN_ON() in ata_host_activate()
    
    [ Upstream commit bfc1f378c8953e68ccdbfe0a8c20748427488b80 ]
    
    Iff platform_get_irq() fails (or returns IRQ0) and thus the polling mode
    has to be used, ata_host_activate() hits the WARN_ON() due to 'irq_handler'
    parameter being non-NULL if the polling mode is selected.  Let's only set
    the pointer to the driver's IRQ handler if platform_get_irq() returns a
    valid IRQ # -- this should avoid the unnecessary WARN_ON()...
    
    Fixes: 43f01da0f279 ("MIPS/OCTEON/ata: Convert pata_octeon_cf.c to use device tree.")
    Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
    Link: https://lore.kernel.org/r/3a241167-f84d-1d25-5b9b-be910afbe666@omp.ru
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ce5b33e440f0867253768e4665bfdfabf785cfb5
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Apr 30 22:19:55 2021 +0200

    media: I2C: change 'RST' to "RSET" to fix multiple build errors
    
    [ Upstream commit 8edcb5049ac29aa3c8acc5ef15dd4036543d747e ]
    
    The use of an enum named 'RST' conflicts with a #define macro
    named 'RST' in arch/mips/include/asm/mach-rc32434/rb.h.
    
    The MIPS use of RST was there first (AFAICT), so change the
    media/i2c/ uses of RST to be named 'RSET'.
    'git grep -w RSET' does not report any naming conflicts with the
    new name.
    
    This fixes multiple build errors:
    
    arch/mips/include/asm/mach-rc32434/rb.h:15:14: error: expected identifier before '(' token
       15 | #define RST  (1 << 15)
          |              ^
    drivers/media/i2c/s5c73m3/s5c73m3.h:356:2: note: in expansion of macro 'RST'
      356 |  RST,
          |  ^~~
    
    ../arch/mips/include/asm/mach-rc32434/rb.h:15:14: error: expected identifier before '(' token
       15 | #define RST  (1 << 15)
          |              ^
    ../drivers/media/i2c/s5k6aa.c:180:2: note: in expansion of macro 'RST'
      180 |  RST,
          |  ^~~
    
    ../arch/mips/include/asm/mach-rc32434/rb.h:15:14: error: expected identifier before '(' token
       15 | #define RST  (1 << 15)
          |              ^
    ../drivers/media/i2c/s5k5baf.c:238:2: note: in expansion of macro 'RST'
      238 |  RST,
          |  ^~~
    
    and some others that I have trimmed.
    
    Fixes: cac47f1822fc ("[media] V4L: Add S5C73M3 camera driver")
    Fixes: 8b99312b7214 ("[media] Add v4l2 subdev driver for S5K4ECGX sensor")
    Fixes: 7d459937dc09 ("[media] Add driver for Samsung S5K5BAF camera sensor")
    Fixes: bfa8dd3a0524 ("[media] v4l: Add v4l2 subdev driver for S5K6AAFX sensor")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Cc: Shawn Guo <shawnguo@kernel.org>
    Cc: Sascha Hauer <s.hauer@pengutronix.de>
    Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
    Cc: Fabio Estevam <festevam@gmail.com>
    Cc: NXP Linux Team <linux-imx@nxp.com>
    Cc: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
    Cc: Andrzej Hajda <a.hajda@samsung.com>
    Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Cc: Sangwook Lee <sangwook.lee@linaro.org>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07f993a1fae100bcf49d2f02aa65f9558ea1f363
Author: Sergey Shtylyov <s.shtylyov@omprussia.ru>
Date:   Mon Mar 15 14:46:53 2021 +0300

    pata_rb532_cf: fix deferred probing
    
    [ Upstream commit 2d3a62fbae8e5badc2342388f65ab2191c209cc0 ]
    
    The driver overrides the error codes returned by platform_get_irq() to
    -ENOENT, so if it returns -EPROBE_DEFER, the driver would fail the probe
    permanently instead of the deferred probing. Switch to propagating the
    error code upstream, still checking/overriding IRQ0 as libata regards it
    as "no IRQ" (thus polling) anyway...
    
    Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
    Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru>
    Link: https://lore.kernel.org/r/771ced55-3efb-21f5-f21c-b99920aae611@omprussia.ru
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7a64c920989b91b2b4c2529c01adbb0b9533d83c
Author: Sergey Shtylyov <s.shtylyov@omprussia.ru>
Date:   Sun Mar 14 23:34:27 2021 +0300

    sata_highbank: fix deferred probing
    
    [ Upstream commit 4a24efa16e7db02306fb5db84518bb0a7ada5a46 ]
    
    The driver overrides the error codes returned by platform_get_irq() to
    -EINVAL, so if it returns -EPROBE_DEFER, the driver would fail the probe
    permanently instead of the deferred probing. Switch to propagating the
    error code upstream, still checking/overriding IRQ0 as libata regards it
    as "no IRQ" (thus polling) anyway...
    
    Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
    Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru>
    Link: https://lore.kernel.org/r/105b456d-1199-f6e9-ceb7-ffc5ba551d1a@omprussia.ru
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 168a9051f0917accec4f5357c7f44f96f454ec53
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Sat May 8 15:00:49 2021 +0800

    crypto: ux500 - Fix error return code in hash_hw_final()
    
    [ Upstream commit b01360384009ab066940b45f34880991ea7ccbfb ]
    
    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 8a63b1994c50 ("crypto: ux500 - Add driver for HASH hardware")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 886e46a6cde3ce4ab6df16cd228868182e766178
Author: Corentin Labbe <clabbe@baylibre.com>
Date:   Wed May 5 20:26:08 2021 +0000

    crypto: ixp4xx - dma_unmap the correct address
    
    [ Upstream commit 9395c58fdddd79cdd3882132cdd04e8ac7ad525f ]
    
    Testing ixp4xx_crypto with CONFIG_DMA_API_DEBUG lead to the following error:
    DMA-API: platform ixp4xx_crypto.0: device driver tries to free DMA memory it has not allocated [device address=0x0000000000000000] [size=24 bytes]
    
    This is due to dma_unmap using the wrong address.
    
    Fixes: 0d44dc59b2b4 ("crypto: ixp4xx - Fix handling of chained sg buffers")
    Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1240d6b046332663d53fbd851f66f7249e805a38
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Jun 28 19:33:41 2021 -0700

    ia64: mca_drv: fix incorrect array size calculation
    
    [ Upstream commit c5f320ff8a79501bb59338278336ec43acb9d7e2 ]
    
    gcc points out a mistake in the mca driver that goes back to before the
    git history:
    
    arch/ia64/kernel/mca_drv.c: In function 'init_record_index_pools':
    arch/ia64/kernel/mca_drv.c:346:54: error: expression does not compute the number of elements in this array; element typ
    e is 'int', not 'size_t' {aka 'long unsigned int'} [-Werror=sizeof-array-div]
      346 |         for (i = 1; i < sizeof sal_log_sect_min_sizes/sizeof(size_t); i++)
          |                                                      ^
    
    This is the same as sizeof(size_t), which is two shorter than the actual
    array.  Use the ARRAY_SIZE() macro to get the correct calculation instead.
    
    Link: https://lkml.kernel.org/r/20210514214123.875971-1-arnd@kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Cc: Masahiro Yamada <masahiroy@kernel.org>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 18eafa11023cb349eb2cf2def01c194ef25d8aa7
Author: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Date:   Wed Jun 2 18:05:48 2021 +0800

    platform/x86: toshiba_acpi: Fix missing error code in toshiba_acpi_setup_keyboard()
    
    [ Upstream commit 28e367127718a9cb85d615a71e152f7acee41bfc ]
    
    The error code is missing in this code scenario, add the error code
    '-EINVAL' to the return value 'error'.
    
    Eliminate the follow smatch warning:
    
    drivers/platform/x86/toshiba_acpi.c:2834 toshiba_acpi_setup_keyboard()
    warn: missing error code 'error'.
    
    Reported-by: Abaci Robot <abaci@linux.alibaba.com>
    Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
    Link: https://lore.kernel.org/r/1622628348-87035-1-git-send-email-jiapeng.chong@linux.alibaba.com
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 52b5576df51a2e00298d23889064c3c04fee5744
Author: Hanjun Guo <guohanjun@huawei.com>
Date:   Wed Jun 2 17:36:50 2021 +0800

    ACPI: bus: Call kobject_put() in acpi_init() error path
    
    [ Upstream commit 4ac7a817f1992103d4e68e9837304f860b5e7300 ]
    
    Although the system will not be in a good condition or it will not
    boot if acpi_bus_init() fails, it is still necessary to put the
    kobject in the error path before returning to avoid leaking memory.
    
    Signed-off-by: Hanjun Guo <guohanjun@huawei.com>
    [ rjw: Subject and changelog edits ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d016ed2fba1d8213bd0dbc3d2305690652ecd4aa
Author: Richard Fitzgerald <rf@opensource.cirrus.com>
Date:   Tue May 25 13:20:12 2021 +0100

    random32: Fix implicit truncation warning in prandom_seed_state()
    
    [ Upstream commit d327ea15a305024ef0085252fa3657bbb1ce25f5 ]
    
    sparse generates the following warning:
    
     include/linux/prandom.h:114:45: sparse: sparse: cast truncates bits from
     constant value
    
    This is because the 64-bit seed value is manipulated and then placed in a
    u32, causing an implicit cast and truncation. A forced cast to u32 doesn't
    prevent this warning, which is reasonable because a typecast doesn't prove
    that truncation was expected.
    
    Logical-AND the value with 0xffffffff to make explicit that truncation to
    32-bit is intended.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Signed-off-by: Petr Mladek <pmladek@suse.com>
    Link: https://lore.kernel.org/r/20210525122012.6336-3-rf@opensource.cirrus.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 213451336b5f6d5f741046bc78466adee4176121
Author: Alexander Aring <aahringo@redhat.com>
Date:   Fri May 21 15:08:38 2021 -0400

    fs: dlm: cancel work sync othercon
    
    [ Upstream commit c6aa00e3d20c2767ba3f57b64eb862572b9744b3 ]
    
    These rx tx flags arguments are for signaling close_connection() from
    which worker they are called. Obviously the receive worker cannot cancel
    itself and vice versa for swork. For the othercon the receive worker
    should only be used, however to avoid deadlocks we should pass the same
    flags as the original close_connection() was called.
    
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ae5ce36f0987617795034a9522783148055899a
Author: zhangyi (F) <yi.zhang@huawei.com>
Date:   Sat Mar 13 11:01:44 2021 +0800

    block_dump: remove block_dump feature in mark_inode_dirty()
    
    [ Upstream commit 12e0613715e1cf305fffafaf0e89d810d9a85cc0 ]
    
    block_dump is an old debugging interface, one of it's functions is used
    to print the information about who write which file on disk. If we
    enable block_dump through /proc/sys/vm/block_dump and turn on debug log
    level, we can gather information about write process name, target file
    name and disk from kernel message. This feature is realized in
    block_dump___mark_inode_dirty(), it print above information into kernel
    message directly when marking inode dirty, so it is noisy and can easily
    trigger log storm. At the same time, get the dentry refcount is also not
    safe, we found it will lead to deadlock on ext4 file system with
    data=journal mode.
    
    After tracepoints has been introduced into the kernel, we got a
    tracepoint in __mark_inode_dirty(), which is a better replacement of
    block_dump___mark_inode_dirty(). The only downside is that it only trace
    the inode number and not a file name, but it probably doesn't matter
    because the original printed file name in block_dump is not accurate in
    some cases, and we can still find it through the inode number and device
    id. So this patch delete the dirting inode part of block_dump feature.
    
    Signed-off-by: zhangyi (F) <yi.zhang@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20210313030146.2882027-2-yi.zhang@huawei.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5a413fd31d05fb889f543176551d44754772c606
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Wed May 12 17:15:14 2021 -0500

    ACPI: processor idle: Fix up C-state latency if not ordered
    
    [ Upstream commit 65ea8f2c6e230bdf71fed0137cf9e9d1b307db32 ]
    
    Generally, the C-state latency is provided by the _CST method or
    FADT, but some OEM platforms using AMD Picasso, Renoir, Van Gogh,
    and Cezanne set the C2 latency greater than C3's which causes the
    C2 state to be skipped.
    
    That will block the core entering PC6, which prevents S0ix working
    properly on Linux systems.
    
    In other operating systems, the latency values are not validated and
    this does not cause problems by skipping states.
    
    To avoid this issue on Linux, detect when latencies are not an
    arithmetic progression and sort them.
    
    Link: https://gitlab.freedesktop.org/agd5f/linux/-/commit/026d186e4592c1ee9c1cb44295912d0294508725
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1230#note_712174
    Suggested-by: Prike Liang <Prike.Liang@amd.com>
    Suggested-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    [ rjw: Subject and changelog edits ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 363e4957005e8a1b4183e86111394503caa4ffd0
Author: Axel Lin <axel.lin@ingics.com>
Date:   Fri Jun 18 22:14:11 2021 +0800

    regulator: da9052: Ensure enough delay time for .set_voltage_time_sel
    
    [ Upstream commit a336dc8f683e5be794186b5643cd34cb28dd2c53 ]
    
    Use DIV_ROUND_UP to prevent truncation by integer division issue.
    This ensures we return enough delay time.
    
    Also fix returning negative value when new_sel < old_sel.
    
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Link: https://lore.kernel.org/r/20210618141412.4014912-1-axel.lin@ingics.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8a2d6b053dac1dbe05f9bc2101db69cf77573281
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Thu Jun 10 05:23:02 2021 +0000

    btrfs: disable build on platforms having page size 256K
    
    [ Upstream commit b05fbcc36be1f8597a1febef4892053a0b2f3f60 ]
    
    With a config having PAGE_SIZE set to 256K, BTRFS build fails
    with the following message
    
      include/linux/compiler_types.h:326:38: error: call to
      '__compiletime_assert_791' declared with attribute error:
      BUILD_BUG_ON failed: (BTRFS_MAX_COMPRESSED % PAGE_SIZE) != 0
    
    BTRFS_MAX_COMPRESSED being 128K, BTRFS cannot support platforms with
    256K pages at the time being.
    
    There are two platforms that can select 256K pages:
     - hexagon
     - powerpc
    
    Disable BTRFS when 256K page size is selected. Supporting this would
    require changes to the subpage mode that's currently being developed.
    Given that 256K is many times larger than page sizes commonly used and
    for what the algorithms and structures have been tuned, it's out of
    scope and disabling build is a reasonable option.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    [ update changelog ]
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit de2379fbd7e8fae8ff5773042ad0828ecf78ca0b
Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Date:   Wed Jun 16 13:13:54 2021 +0200

    media: dvb_net: avoid speculation from net slot
    
    [ Upstream commit abc0226df64dc137b48b911c1fe4319aec5891bb ]
    
    The risk of especulation is actually almost-non-existing here,
    as there are very few users of TCP/IP using the DVB stack,
    as, this is mainly used with DVB-S/S2 cards, and only by people
    that receives TCP/IP from satellite connections, which limits
    a lot the number of users of such feature(*).
    
    (*) In thesis, DVB-C cards could also benefit from it, but I'm
    yet to see a hardware that supports it.
    
    Yet, fixing it is trivial.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fc93ed14901fe41f555d198d7bb379d67c5a4f04
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Thu Jun 10 08:21:50 2021 +0200

    crypto: shash - avoid comparing pointers to exported functions under CFI
    
    [ Upstream commit 22ca9f4aaf431a9413dcc115dd590123307f274f ]
    
    crypto_shash_alg_has_setkey() is implemented by testing whether the
    .setkey() member of a struct shash_alg points to the default version,
    called shash_no_setkey(). As crypto_shash_alg_has_setkey() is a static
    inline, this requires shash_no_setkey() to be exported to modules.
    
    Unfortunately, when building with CFI, function pointers are routed
    via CFI stubs which are private to each module (or to the kernel proper)
    and so this function pointer comparison may fail spuriously.
    
    Let's fix this by turning crypto_shash_alg_has_setkey() into an out of
    line function.
    
    Cc: Sami Tolvanen <samitolvanen@google.com>
    Cc: Eric Biggers <ebiggers@kernel.org>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Reviewed-by: Eric Biggers <ebiggers@google.com>
    Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0998008153b322738585e71ec75e4a6a2db0cd1e
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Thu Jun 3 13:33:20 2021 +0000

    mmc: via-sdmmc: add a check against NULL pointer dereference
    
    [ Upstream commit 45c8ddd06c4b729c56a6083ab311bfbd9643f4a6 ]
    
    Before referencing 'host->data', the driver needs to check whether it is
    null pointer, otherwise it will cause a null pointer reference.
    
    This log reveals it:
    
    [   29.355199] BUG: kernel NULL pointer dereference, address:
    0000000000000014
    [   29.357323] #PF: supervisor write access in kernel mode
    [   29.357706] #PF: error_code(0x0002) - not-present page
    [   29.358088] PGD 0 P4D 0
    [   29.358280] Oops: 0002 [#1] PREEMPT SMP PTI
    [   29.358595] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 5.12.4-
    g70e7f0549188-dirty #102
    [   29.359164] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009),
    BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    [   29.359978] RIP: 0010:via_sdc_isr+0x21f/0x410
    [   29.360314] Code: ff ff e8 84 aa d0 fd 66 45 89 7e 28 66 41 f7 c4 00
    10 75 56 e8 72 aa d0 fd 66 41 f7 c4 00 c0 74 10 e8 65 aa d0 fd 48 8b 43
    18 <c7> 40 14 ac ff ff ff e8 55 aa d0 fd 48 89 df e8 ad fb ff ff e9 77
    [   29.361661] RSP: 0018:ffffc90000118e98 EFLAGS: 00010046
    [   29.362042] RAX: 0000000000000000 RBX: ffff888107d77880
    RCX: 0000000000000000
    [   29.362564] RDX: 0000000000000000 RSI: ffffffff835d20bb
    RDI: 00000000ffffffff
    [   29.363085] RBP: ffffc90000118ed8 R08: 0000000000000001
    R09: 0000000000000001
    [   29.363604] R10: 0000000000000000 R11: 0000000000000001
    R12: 0000000000008600
    [   29.364128] R13: ffff888107d779c8 R14: ffffc90009c00200
    R15: 0000000000008000
    [   29.364651] FS:  0000000000000000(0000) GS:ffff88817bc80000(0000)
    knlGS:0000000000000000
    [   29.365235] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   29.365655] CR2: 0000000000000014 CR3: 0000000005a2e000
    CR4: 00000000000006e0
    [   29.366170] DR0: 0000000000000000 DR1: 0000000000000000
    DR2: 0000000000000000
    [   29.366683] DR3: 0000000000000000 DR6: 00000000fffe0ff0
    DR7: 0000000000000400
    [   29.367197] Call Trace:
    [   29.367381]  <IRQ>
    [   29.367537]  __handle_irq_event_percpu+0x53/0x3e0
    [   29.367916]  handle_irq_event_percpu+0x35/0x90
    [   29.368247]  handle_irq_event+0x39/0x60
    [   29.368632]  handle_fasteoi_irq+0xc2/0x1d0
    [   29.368950]  __common_interrupt+0x7f/0x150
    [   29.369254]  common_interrupt+0xb4/0xd0
    [   29.369547]  </IRQ>
    [   29.369708]  asm_common_interrupt+0x1e/0x40
    [   29.370016] RIP: 0010:native_safe_halt+0x17/0x20
    [   29.370360] Code: 07 0f 00 2d db 80 43 00 f4 5d c3 0f 1f 84 00 00 00
    00 00 8b 05 c2 37 e5 01 55 48 89 e5 85 c0 7e 07 0f 00 2d bb 80 43 00 fb
    f4 <5d> c3 cc cc cc cc cc cc cc 55 48 89 e5 e8 67 53 ff ff 8b 0d f9 91
    [   29.371696] RSP: 0018:ffffc9000008fe90 EFLAGS: 00000246
    [   29.372079] RAX: 0000000000000000 RBX: 0000000000000002
    RCX: 0000000000000000
    [   29.372595] RDX: 0000000000000000 RSI: ffffffff854f67a4
    RDI: ffffffff85403406
    [   29.373122] RBP: ffffc9000008fe90 R08: 0000000000000001
    R09: 0000000000000001
    [   29.373646] R10: 0000000000000000 R11: 0000000000000001
    R12: ffffffff86009188
    [   29.374160] R13: 0000000000000000 R14: 0000000000000000
    R15: ffff888100258000
    [   29.374690]  default_idle+0x9/0x10
    [   29.374944]  arch_cpu_idle+0xa/0x10
    [   29.375198]  default_idle_call+0x6e/0x250
    [   29.375491]  do_idle+0x1f0/0x2d0
    [   29.375740]  cpu_startup_entry+0x18/0x20
    [   29.376034]  start_secondary+0x11f/0x160
    [   29.376328]  secondary_startup_64_no_verify+0xb0/0xbb
    [   29.376705] Modules linked in:
    [   29.376939] Dumping ftrace buffer:
    [   29.377187]    (ftrace buffer empty)
    [   29.377460] CR2: 0000000000000014
    [   29.377712] ---[ end trace 51a473dffb618c47 ]---
    [   29.378056] RIP: 0010:via_sdc_isr+0x21f/0x410
    [   29.378380] Code: ff ff e8 84 aa d0 fd 66 45 89 7e 28 66 41 f7 c4 00
    10 75 56 e8 72 aa d0 fd 66 41 f7 c4 00 c0 74 10 e8 65 aa d0 fd 48 8b 43
    18 <c7> 40 14 ac ff ff ff e8 55 aa d0 fd 48 89 df e8 ad fb ff ff e9 77
    [   29.379714] RSP: 0018:ffffc90000118e98 EFLAGS: 00010046
    [   29.380098] RAX: 0000000000000000 RBX: ffff888107d77880
    RCX: 0000000000000000
    [   29.380614] RDX: 0000000000000000 RSI: ffffffff835d20bb
    RDI: 00000000ffffffff
    [   29.381134] RBP: ffffc90000118ed8 R08: 0000000000000001
    R09: 0000000000000001
    [   29.381653] R10: 0000000000000000 R11: 0000000000000001
    R12: 0000000000008600
    [   29.382176] R13: ffff888107d779c8 R14: ffffc90009c00200
    R15: 0000000000008000
    [   29.382697] FS:  0000000000000000(0000) GS:ffff88817bc80000(0000)
    knlGS:0000000000000000
    [   29.383277] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   29.383697] CR2: 0000000000000014 CR3: 0000000005a2e000
    CR4: 00000000000006e0
    [   29.384223] DR0: 0000000000000000 DR1: 0000000000000000
    DR2: 0000000000000000
    [   29.384736] DR3: 0000000000000000 DR6: 00000000fffe0ff0
    DR7: 0000000000000400
    [   29.385260] Kernel panic - not syncing: Fatal exception in interrupt
    [   29.385882] Dumping ftrace buffer:
    [   29.386135]    (ftrace buffer empty)
    [   29.386401] Kernel Offset: disabled
    [   29.386656] Rebooting in 1 seconds..
    
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Link: https://lore.kernel.org/r/1622727200-15808-1-git-send-email-zheyuma97@gmail.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5be59b7be6949eaf49ff082ad77c0e7cadefd0d8
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Wed May 12 17:18:36 2021 +0200

    media: bt8xx: Fix a missing check bug in bt878_probe
    
    [ Upstream commit 1a4520090681853e6b850cbe54b27247a013e0e5 ]
    
    In 'bt878_irq', the driver calls 'tasklet_schedule', but this tasklet is
    set in 'dvb_bt8xx_load_card' of another driver 'dvb-bt8xx'.
    However, this two drivers are separate. The user may not load the
    'dvb-bt8xx' driver when loading the 'bt8xx' driver, that is, the tasklet
    has not been initialized when 'tasklet_schedule' is called, so it is
    necessary to check whether the tasklet is initialized in 'bt878_probe'.
    
    Fix this by adding a check at the end of bt878_probe.
    
    The KASAN's report reveals it:
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
    PGD 800000006aab2067 P4D 800000006aab2067 PUD 6b2ea067 PMD 0
    Oops: 0010 [#1] PREEMPT SMP KASAN PTI
    CPU: 2 PID: 8724 Comm: syz-executor.0 Not tainted 4.19.177-
    gdba4159c14ef-dirty #40
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-
    gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    RIP: 0010:          (null)
    Code: Bad RIP value.
    RSP: 0018:ffff88806c287ea0 EFLAGS: 00010246
    RAX: fffffbfff1b01774 RBX: dffffc0000000000 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: 1ffffffff1b01775 RDI: 0000000000000000
    RBP: ffff88806c287f00 R08: fffffbfff1b01774 R09: fffffbfff1b01774
    R10: 0000000000000001 R11: fffffbfff1b01773 R12: 0000000000000000
    R13: ffff88806c29f530 R14: ffffffff8d80bb88 R15: ffffffff8d80bb90
    FS:  00007f6b550e6700(0000) GS:ffff88806c280000(0000) knlGS:
    0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: ffffffffffffffd6 CR3: 000000005ec98000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <IRQ>
     tasklet_action_common.isra.17+0x141/0x420 kernel/softirq.c:522
     tasklet_action+0x50/0x70 kernel/softirq.c:540
     __do_softirq+0x224/0x92c kernel/softirq.c:292
     invoke_softirq kernel/softirq.c:372 [inline]
     irq_exit+0x15a/0x180 kernel/softirq.c:412
     exiting_irq arch/x86/include/asm/apic.h:535 [inline]
     do_IRQ+0x123/0x1e0 arch/x86/kernel/irq.c:260
     common_interrupt+0xf/0xf arch/x86/entry/entry_64.S:670
     </IRQ>
    RIP: 0010:__do_sys_interrupt kernel/sys.c:2593 [inline]
    RIP: 0010:__se_sys_interrupt kernel/sys.c:2584 [inline]
    RIP: 0010:__x64_sys_interrupt+0x5b/0x80 kernel/sys.c:2584
    Code: ba 00 04 00 00 48 c7 c7 c0 99 31 8c e8 ae 76 5e 01 48 85 c0 75 21 e8
    14 ae 24 00 48 c7 c3 c0 99 31 8c b8 0c 00 00 00 0f 01 c1 <31> db e8 fe ad
    24 00 48 89 d8 5b 5d c3 48 c7 c3 ea ff ff ff eb ec
    RSP: 0018:ffff888054167f10 EFLAGS: 00000212 ORIG_RAX: ffffffffffffffde
    RAX: 000000000000000c RBX: ffffffff8c3199c0 RCX: ffffc90001ca6000
    RDX: 000000000000001a RSI: ffffffff813478fc RDI: ffffffff8c319dc0
    RBP: ffff888054167f18 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000080 R11: fffffbfff18633b7 R12: ffff888054167f58
    R13: ffff88805f638000 R14: 0000000000000000 R15: 0000000000000000
     do_syscall_64+0xb0/0x4e0 arch/x86/entry/common.c:293
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x4692a9
    Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7
    48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff
    ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007f6b550e5c48 EFLAGS: 00000246 ORIG_RAX: 000000000000014f
    RAX: ffffffffffffffda RBX: 000000000077bf60 RCX: 00000000004692a9
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000020000140
    RBP: 00000000004cf7eb R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 000000000077bf60
    R13: 0000000000000000 R14: 000000000077bf60 R15: 00007fff55a1dca0
    Modules linked in:
    Dumping ftrace buffer:
       (ftrace buffer empty)
    CR2: 0000000000000000
    ---[ end trace 68e5849c3f77cbb6 ]---
    RIP: 0010:          (null)
    Code: Bad RIP value.
    RSP: 0018:ffff88806c287ea0 EFLAGS: 00010246
    RAX: fffffbfff1b01774 RBX: dffffc0000000000 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: 1ffffffff1b01775 RDI: 0000000000000000
    RBP: ffff88806c287f00 R08: fffffbfff1b01774 R09: fffffbfff1b01774
    R10: 0000000000000001 R11: fffffbfff1b01773 R12: 0000000000000000
    R13: ffff88806c29f530 R14: ffffffff8d80bb88 R15: ffffffff8d80bb90
    FS:  00007f6b550e6700(0000) GS:ffff88806c280000(0000) knlGS:
    0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: ffffffffffffffd6 CR3: 000000005ec98000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    
    Reported-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eec7de8ef2d72011f0c60b7e49da31de8229d51a
Author: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
Date:   Sun May 9 10:24:02 2021 +0200

    media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release
    
    [ Upstream commit 7dd0c9e547b6924e18712b6b51aa3cba1896ee2c ]
    
    A use after free bug caused by the dangling pointer
    filp->privitate_data in v4l2_fh_release.
    See https://lore.kernel.org/patchwork/patch/1419058/.
    
    My patch sets the dangling pointer to NULL to provide
    robust.
    
    Signed-off-by: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 335ffa643f35e9eca2c7fb24f7a60dda675acaa8
Author: Jack Xu <jack.xu@intel.com>
Date:   Mon May 17 05:13:16 2021 -0400

    crypto: qat - remove unused macro in FW loader
    
    [ Upstream commit 9afe77cf25d9670e61b489fd52cc6f75fd7f6803 ]
    
    Remove the unused macro ICP_DH895XCC_PESRAM_BAR_SIZE in the firmware
    loader.
    
    This is to fix the following warning when compiling the driver using the
    clang compiler with CC=clang W=2:
    
        drivers/crypto/qat/qat_common/qat_uclo.c:345:9: warning: macro is not used [-Wunused-macros]
    
    Signed-off-by: Jack Xu <jack.xu@intel.com>
    Co-developed-by: Zhehui Xiang <zhehui.xiang@intel.com>
    Signed-off-by: Zhehui Xiang <zhehui.xiang@intel.com>
    Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3261157cc5c66350e96090565f6b4a75d699228a
Author: Jack Xu <jack.xu@intel.com>
Date:   Mon May 17 05:13:15 2021 -0400

    crypto: qat - check return code of qat_hal_rd_rel_reg()
    
    [ Upstream commit 96b57229209490c8bca4335b01a426a96173dc56 ]
    
    Check the return code of the function qat_hal_rd_rel_reg() and return it
    to the caller.
    
    This is to fix the following warning when compiling the driver with
    clang scan-build:
    
        drivers/crypto/qat/qat_common/qat_hal.c:1436:2: warning: 6th function call argument is an uninitialized value
    
    Signed-off-by: Jack Xu <jack.xu@intel.com>
    Co-developed-by: Zhehui Xiang <zhehui.xiang@intel.com>
    Signed-off-by: Zhehui Xiang <zhehui.xiang@intel.com>
    Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ad598cf1ce2a134237cd48d1121d308d73a8c32e
Author: Anirudh Rayabharam <mail@anirudhrb.com>
Date:   Tue May 4 19:08:58 2021 +0200

    media: pvrusb2: fix warning in pvr2_i2c_core_done
    
    [ Upstream commit f8194e5e63fdcb349e8da9eef9e574d5b1d687cb ]
    
    syzbot has reported the following warning in pvr2_i2c_done:
    
            sysfs group 'power' not found for kobject '1-0043'
    
    When the device is disconnected (pvr_hdw_disconnect), the i2c adapter is
    not unregistered along with the USB and v4l2 teardown. As part of the USB
    device disconnect, the sysfs files of the subdevices are also deleted.
    So, by the time pvr_i2c_core_done is called by pvr_context_destroy, the
    sysfs files have been deleted.
    
    To fix this, unregister the i2c adapter too in pvr_hdw_disconnect. Make
    the device deregistration code shared by calling pvr_hdw_disconnect from
    pvr2_hdw_destroy.
    
    Reported-by: syzbot+e74a998ca8f1df9cc332@syzkaller.appspotmail.com
    Tested-by: syzbot+e74a998ca8f1df9cc332@syzkaller.appspotmail.com
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Anirudh Rayabharam <mail@anirudhrb.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ee999c20f18b9849ac2a18307a55be2569824c2
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Wed Apr 21 21:43:45 2021 +0200

    media: cpia2: fix memory leak in cpia2_usb_probe
    
    [ Upstream commit be8656e62e9e791837b606a027802b504a945c97 ]
    
    syzbot reported leak in cpia2 usb driver. The problem was
    in invalid error handling.
    
    v4l2_device_register() is called in cpia2_init_camera_struct(), but
    all error cases after cpia2_init_camera_struct() did not call the
    v4l2_device_unregister()
    
    Reported-by: syzbot+d1e69c888f0d3866ead4@syzkaller.appspotmail.com
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f715d669c8983d3429e6fdee1388941bf169e70d
Author: Bixuan Cui <cuibixuan@huawei.com>
Date:   Sat May 8 11:14:55 2021 +0800

    crypto: nx - add missing MODULE_DEVICE_TABLE
    
    [ Upstream commit 06676aa1f455c74e3ad1624cea3acb9ed2ef71ae ]
    
    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this driver when it is built
    as an external module.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Bixuan Cui <cuibixuan@huawei.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 59a05d64398f51c4e9d3ddf34d0cf71a1a98e125
Author: Tian Tao <tiantao6@hisilicon.com>
Date:   Thu Apr 29 19:20:48 2021 +0800

    spi: omap-100k: Fix the length judgment problem
    
    [ Upstream commit e7a1a3abea373e41ba7dfe0fbc93cb79b6a3a529 ]
    
    word_len should be checked in the omap1_spi100k_setup_transfer
    function to see if it exceeds 32.
    
    Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
    Link: https://lore.kernel.org/r/1619695248-39045-1-git-send-email-tiantao6@hisilicon.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0a82857600820c4907cccffff648d71ad50dd48e
Author: Jay Fang <f.fangjian@huawei.com>
Date:   Thu May 6 15:08:08 2021 +0800

    spi: spi-topcliff-pch: Fix potential double free in pch_spi_process_messages()
    
    [ Upstream commit 026a1dc1af52742c5897e64a3431445371a71871 ]
    
    pch_spi_set_tx() frees data->pkt_tx_buff on failure of kzalloc() for
    data->pkt_rx_buff, but its caller, pch_spi_process_messages(), will
    free data->pkt_tx_buff again. Set data->pkt_tx_buff to NULL after
    kfree() to avoid double free.
    
    Signed-off-by: Jay Fang <f.fangjian@huawei.com>
    Link: https://lore.kernel.org/r/1620284888-65215-1-git-send-email-f.fangjian@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 311aa02ce5a7a5762316fec9afbcdb555ece61da
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Tue Jun 22 09:15:35 2021 +0200

    fuse: check connected before queueing on fpq->io
    
    commit 80ef08670d4c28a06a3de954bd350368780bcfef upstream.
    
    A request could end up on the fpq->io list after fuse_abort_conn() has
    reset fpq->connected and aborted requests on that list:
    
    Thread-1                          Thread-2
    ========                          ========
    ->fuse_simple_request()           ->shutdown
      ->__fuse_request_send()
        ->queue_request()           ->fuse_abort_conn()
    ->fuse_dev_do_read()                ->acquire(fpq->lock)
      ->wait_for(fpq->lock)           ->set err to all req's in fpq->io
                                      ->release(fpq->lock)
      ->acquire(fpq->lock)
      ->add req to fpq->io
    
    After the userspace copy is done the request will be ended, but
    req->out.h.error will remain uninitialized.  Also the copy might block
    despite being already aborted.
    
    Fix both issues by not allowing the request to be queued on the fpq->io
    list after fuse_abort_conn() has processed this list.
    
    Reported-by: Pradeep P V K <pragalla@codeaurora.org>
    Fixes: fd22d62ed0c3 ("fuse: no fc->lock for iqueue parts")
    Cc: <stable@vger.kernel.org> # v4.2
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7b6c0fe43f9a472f10e9c5b480935edc3d0382f5
Author: Yun Zhou <yun.zhou@windriver.com>
Date:   Sat Jun 26 11:21:56 2021 +0800

    seq_buf: Make trace_seq_putmem_hex() support data longer than 8
    
    commit 6a2cbc58d6c9d90cd74288cc497c2b45815bc064 upstream.
    
    Since the raw memory 'data' does not go forward, it will dump repeated
    data if the data length is more than 8. If we want to dump longer data
    blocks, we need to repeatedly call macro SEQ_PUT_HEX_FIELD. I think it
    is a bit redundant, and multiple function calls also affect the performance.
    
    Link: https://lore.kernel.org/lkml/20210625122453.5e2fe304@oasis.local.home/
    Link: https://lkml.kernel.org/r/20210626032156.47889-2-yun.zhou@windriver.com
    
    Cc: stable@vger.kernel.org
    Fixes: 6d2289f3faa7 ("tracing: Make trace_seq_putmem_hex() more robust")
    Signed-off-by: Yun Zhou <yun.zhou@windriver.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 425fd9aa61c75f74fc5087be07a495d765ff38a5
Author: Michael Buesch <m@bues.ch>
Date:   Sat May 15 21:02:52 2021 +0200

    ssb: sdio: Don't overwrite const buffer if block_write fails
    
    commit 47ec636f7a25aa2549e198c48ecb6b1c25d05456 upstream.
    
    It doesn't make sense to clobber the const driver-side buffer, if a
    write-to-device attempt failed. All other SSB variants (PCI, PCMCIA and SoC)
    also don't corrupt the buffer on any failure in block_write.
    Therefore, remove this memset from the SDIO variant.
    
    Signed-off-by: Michael Büsch <m@bues.ch>
    Cc: stable@vger.kernel.org
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210515210252.318be2ba@wiggum
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 812af10ee880bd77d495bbc9e900a76eb2195f7f
Author: Pali Rohár <pali@kernel.org>
Date:   Mon May 31 17:41:27 2021 +0300

    ath9k: Fix kernel NULL pointer dereference during ath_reset_internal()
    
    commit fb312ac5ccb007e843f982b38d4d6886ba4b32f2 upstream.
    
    I got this crash more times during debugging of PCIe controller and crash
    happens somehow at the time when PCIe kernel code started link retraining (as
    part of ASPM code) when at the same time PCIe link went down and ath9k probably
    executed hw reset procedure.
    
    Currently I'm not able to reproduce this issue as it looks like to be
    some race condition between link training, ASPM, link down and reset
    path. And as always, race conditions which depends on more input
    parameters are hard to reproduce as it depends on precise timings.
    
    But it is clear that pointers are zero in this case and should be
    properly filled as same code pattern is used in ath9k_stop() function.
    Anyway I was able to reproduce this crash by manually triggering ath
    reset worker prior putting card up. I created simple patch to export
    reset functionality via debugfs and use it to "simulate" of triggering
    reset.    s proved that NULL-pointer dereference issue is there.
    
    Function ath9k_hw_reset() is dereferencing chan structure pointer, so it
    needs to be non-NULL pointer.
    
    Function ath9k_stop() already contains code which sets ah->curchan to valid
    non-NULL pointer prior calling ath9k_hw_reset() function.
    
    Add same code pattern also into ath_reset_internal() function to prevent
    kernel NULL pointer dereference in ath9k_hw_reset() function.
    
    This change fixes kernel NULL pointer dereference in ath9k_hw_reset() which
    is caused by calling ath9k_hw_reset() from ath_reset_internal() with NULL
    chan structure.
    
        [   45.334305] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
        [   45.344417] Mem abort info:
        [   45.347301]   ESR = 0x96000005
        [   45.350448]   EC = 0x25: DABT (current EL), IL = 32 bits
        [   45.356166]   SET = 0, FnV = 0
        [   45.359350]   EA = 0, S1PTW = 0
        [   45.362596] Data abort info:
        [   45.365756]   ISV = 0, ISS = 0x00000005
        [   45.369735]   CM = 0, WnR = 0
        [   45.372814] user pgtable: 4k pages, 39-bit VAs, pgdp=000000000685d000
        [   45.379663] [0000000000000008] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000
        [   45.388856] Internal error: Oops: 96000005 [#1] SMP
        [   45.393897] Modules linked in: ath9k ath9k_common ath9k_hw
        [   45.399574] CPU: 1 PID: 309 Comm: kworker/u4:2 Not tainted 5.12.0-rc2-dirty #785
        [   45.414746] Workqueue: phy0 ath_reset_work [ath9k]
        [   45.419713] pstate: 40000005 (nZcv daif -PAN -UAO -TCO BTYPE=--)
        [   45.425910] pc : ath9k_hw_reset+0xc4/0x1c48 [ath9k_hw]
        [   45.431234] lr : ath9k_hw_reset+0xc0/0x1c48 [ath9k_hw]
        [   45.436548] sp : ffffffc0118dbca0
        [   45.439961] x29: ffffffc0118dbca0 x28: 0000000000000000
        [   45.445442] x27: ffffff800dee4080 x26: 0000000000000000
        [   45.450923] x25: ffffff800df9b9d8 x24: 0000000000000000
        [   45.456404] x23: ffffffc0115f6000 x22: ffffffc008d0d408
        [   45.461885] x21: ffffff800dee5080 x20: ffffff800df9b9d8
        [   45.467366] x19: 0000000000000000 x18: 0000000000000000
        [   45.472846] x17: 0000000000000000 x16: 0000000000000000
        [   45.478326] x15: 0000000000000010 x14: ffffffffffffffff
        [   45.483807] x13: ffffffc0918db94f x12: ffffffc011498720
        [   45.489289] x11: 0000000000000003 x10: ffffffc0114806e0
        [   45.494770] x9 : ffffffc01014b2ec x8 : 0000000000017fe8
        [   45.500251] x7 : c0000000ffffefff x6 : 0000000000000001
        [   45.505733] x5 : 0000000000000000 x4 : 0000000000000000
        [   45.511213] x3 : 0000000000000000 x2 : ffffff801fece870
        [   45.516693] x1 : ffffffc00eded000 x0 : 000000000000003f
        [   45.522174] Call trace:
        [   45.524695]  ath9k_hw_reset+0xc4/0x1c48 [ath9k_hw]
        [   45.529653]  ath_reset_internal+0x1a8/0x2b8 [ath9k]
        [   45.534696]  ath_reset_work+0x2c/0x40 [ath9k]
        [   45.539198]  process_one_work+0x210/0x480
        [   45.543339]  worker_thread+0x5c/0x510
        [   45.547115]  kthread+0x12c/0x130
        [   45.550445]  ret_from_fork+0x10/0x1c
        [   45.554138] Code: 910922c2 9117e021 95ff0398 b4000294 (b9400a61)
        [   45.560430] ---[ end trace 566410ba90b50e8b ]---
        [   45.565193] Kernel panic - not syncing: Oops: Fatal exception in interrupt
        [   45.572282] SMP: stopping secondary CPUs
        [   45.576331] Kernel Offset: disabled
        [   45.579924] CPU features: 0x00040002,0000200c
        [   45.584416] Memory Limit: none
        [   45.587564] Rebooting in 3 seconds..
    
    Signed-off-by: Pali Rohár <pali@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210402122653.24014-1-pali@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14b0f870abcd8e5cc99dac6f951cb9e79895c8cb
Author: Ondrej Zary <linux@zary.sk>
Date:   Fri Jun 11 22:19:40 2021 +0200

    serial_cs: Add Option International GSM-Ready 56K/ISDN modem
    
    commit d495dd743d5ecd47288156e25c4d9163294a0992 upstream.
    
    Add support for Option International GSM-Ready 56K/ISDN PCMCIA modem
    card.
    
    Signed-off-by: Ondrej Zary <linux@zary.sk>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210611201940.23898-2-linux@zary.sk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61717982b1b5a26e62258183b313d5c3289dc240
Author: Oliver Lang <Oliver.Lang@gossenmetrawatt.com>
Date:   Thu Jun 10 15:46:18 2021 +0200

    iio: ltr501: ltr501_read_ps(): add missing endianness conversion
    
    commit 71b33f6f93ef9462c84560e2236ed22209d26a58 upstream.
    
    The PS ADC Channel data is spread over 2 registers in little-endian
    form. This patch adds the missing endianness conversion.
    
    Fixes: 2690be905123 ("iio: Add Lite-On ltr501 ambient light / proximity sensor driver")
    Signed-off-by: Oliver Lang <Oliver.Lang@gossenmetrawatt.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Tested-by: Nikita Travkin <nikita@trvn.ru> # ltr559
    Link: https://lore.kernel.org/r/20210610134619.2101372-4-mkl@pengutronix.de
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f74b93eedef14553d1a860ff2f8de3b9a811535
Author: Oliver Lang <Oliver.Lang@gossenmetrawatt.com>
Date:   Thu Jun 10 15:46:17 2021 +0200

    iio: ltr501: ltr559: fix initialization of LTR501_ALS_CONTR
    
    commit 421a26f3d7a7c3ca43f3a9dc0f3cb0f562d5bd95 upstream.
    
    The ltr559 chip uses only the lowest bit of the ALS_CONTR register to
    configure between active and stand-by mode. In the original driver
    BIT(1) is used, which does a software reset instead.
    
    This patch fixes the problem by using BIT(0) as als_mode_active for
    the ltr559 chip.
    
    Fixes: 8592a7eefa54 ("iio: ltr501: Add support for ltr559 chip")
    Signed-off-by: Oliver Lang <Oliver.Lang@gossenmetrawatt.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Tested-by: Nikita Travkin <nikita@trvn.ru> # ltr559
    Link: https://lore.kernel.org/r/20210610134619.2101372-3-mkl@pengutronix.de
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b5d8f08ed875a28cf4b3d89811a213f8af92000
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Thu Jun 10 15:46:16 2021 +0200

    iio: ltr501: mark register holding upper 8 bits of ALS_DATA{0,1} and PS_DATA as volatile, too
    
    commit 2ac0b029a04b673ce83b5089368f467c5dca720c upstream.
    
    The regmap is configured for 8 bit registers, uses a RB-Tree cache and
    marks several registers as volatile (i.e. do not cache).
    
    The ALS and PS data registers in the chip are 16 bit wide and spans
    two regmap registers. In the current driver only the base register is
    marked as volatile, resulting in the upper register only read once.
    
    Further the data sheet notes:
    
    | When the I2C read operation starts, all four ALS data registers are
    | locked until the I2C read operation of register 0x8B is completed.
    
    Which results in the registers never update after the 2nd read.
    
    This patch fixes the problem by marking the upper 8 bits of the ALS
    and PS registers as volatile, too.
    
    Fixes: 2f2c96338afc ("iio: ltr501: Add regmap support.")
    Reported-by: Oliver Lang <Oliver.Lang@gossenmetrawatt.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Tested-by: Nikita Travkin <nikita@trvn.ru> # ltr559
    Link: https://lore.kernel.org/r/20210610134619.2101372-2-mkl@pengutronix.de
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4be1fa6d2d193087ba9cda454ec3399e24b6c08d
Author: Vineeth Vijayan <vneethv@linux.ibm.com>
Date:   Wed Jun 9 09:21:08 2021 +0200

    s390/cio: dont call css_wait_for_slow_path() inside a lock
    
    commit c749d8c018daf5fba6dfac7b6c5c78b27efd7d65 upstream.
    
    Currently css_wait_for_slow_path() gets called inside the chp->lock.
    The path-verification-loop of slowpath inside this lock could lead to
    deadlock as reported by the lockdep validator.
    
    The ccw_device_get_chp_desc() during the instance of a device-set-online
    would try to acquire the same 'chp->lock' to read the chp->desc.
    The instance of this function can get called from multiple scenario,
    like probing or setting-device online manually. This could, in some
    corner-cases lead to the deadlock.
    
    lockdep validator reported this as,
    
            CPU0                    CPU1
            ----                    ----
       lock(&chp->lock);
                                    lock(kn->active#43);
                                    lock(&chp->lock);
       lock((wq_completion)cio);
    
    The chp->lock was introduced to serialize the access of struct
    channel_path. This lock is not needed for the css_wait_for_slow_path()
    function, so invoke the slow-path function outside this lock.
    
    Fixes: b730f3a93395 ("[S390] cio: add lock to struct channel_path")
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
    Signed-off-by: Vineeth Vijayan <vneethv@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3954583f4464c698e4d88317b3984004f66eb5ba
Author: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Date:   Sat Jun 26 15:50:42 2021 +0800

    SUNRPC: Should wake up the privileged task firstly.
    
    commit 5483b904bf336948826594610af4c9bbb0d9e3aa upstream.
    
    When find a task from wait queue to wake up, a non-privileged task may
    be found out, rather than the privileged. This maybe lead a deadlock
    same as commit dfe1fe75e00e ("NFSv4: Fix deadlock between nfs4_evict_inode()
    and nfs4_opendata_get_inode()"):
    
    Privileged delegreturn task is queued to privileged list because all
    the slots are assigned. If there has no enough slot to wake up the
    non-privileged batch tasks(session less than 8 slot), then the privileged
    delegreturn task maybe lost waked up because the found out task can't
    get slot since the session is on draining.
    
    So we should treate the privileged task as the emergency task, and
    execute it as for as we can.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: 5fcdfacc01f3 ("NFSv4: Return delegations synchronously in evict_inode")
    Cc: stable@vger.kernel.org
    Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d59cdc80c899d45c17b8423afe7fc60f448d1b2
Author: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Date:   Sat Jun 26 15:50:41 2021 +0800

    SUNRPC: Fix the batch tasks count wraparound.
    
    commit fcb170a9d825d7db4a3fb870b0300f5a40a8d096 upstream.
    
    The 'queue->nr' will wraparound from 0 to 255 when only current
    priority queue has tasks. This maybe lead a deadlock same as commit
    dfe1fe75e00e ("NFSv4: Fix deadlock between nfs4_evict_inode()
    and nfs4_opendata_get_inode()"):
    
    Privileged delegreturn task is queued to privileged list because all
    the slots are assigned. When non-privileged task complete and release
    the slot, a non-privileged maybe picked out. It maybe allocate slot
    failed when the session on draining.
    
    If the 'queue->nr' has wraparound to 255, and no enough slot to
    service it, then the privileged delegreturn will lost to wake up.
    
    So we should avoid the wraparound on 'queue->nr'.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: 5fcdfacc01f3 ("NFSv4: Return delegations synchronously in evict_inode")
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable@vger.kernel.org
    Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 781bfc008dabee85b1aba25f9fab11b09b219f83
Author: Pan Dong <pandong.peter@bytedance.com>
Date:   Tue May 25 15:36:56 2021 +0800

    ext4: fix avefreec in find_group_orlov
    
    commit c89849cc0259f3d33624cc3bd127685c3c0fa25d upstream.
    
    The avefreec should be average free clusters instead
    of average free blocks, otherwize Orlov's allocator
    will not work properly when bigalloc enabled.
    
    Cc: stable@kernel.org
    Signed-off-by: Pan Dong <pandong.peter@bytedance.com>
    Link: https://lore.kernel.org/r/20210525073656.31594-1-pandong.peter@bytedance.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b999db9ba45a1911e9e40343c89ab3b0ed247cf9
Author: Zhang Yi <yi.zhang@huawei.com>
Date:   Sat May 22 18:30:44 2021 +0800

    ext4: remove check for zero nr_to_scan in ext4_es_scan()
    
    commit e5e7010e5444d923e4091cafff61d05f2d19cada upstream.
    
    After converting fs shrinkers to new scan/count API, we are no longer
    pass zero nr_to_scan parameter to detect the number of objects to free,
    just remove this check.
    
    Fixes: 1ab6c4997e04 ("fs: convert fs shrinkers to new scan/count API")
    Cc: stable@vger.kernel.org # 3.12+
    Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20210522103045.690103-2-yi.zhang@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e22f67fd6afef936e034ccf3de3a44a08a1f1e3f
Author: Zhang Yi <yi.zhang@huawei.com>
Date:   Sat May 22 18:30:45 2021 +0800

    ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit
    
    commit 4fb7c70a889ead2e91e184895ac6e5354b759135 upstream.
    
    The cache_cnt parameter of tracepoint ext4_es_shrink_exit means the
    remaining cache count after shrink, but now it is the cache count before
    shrink, fix it by read sbi->s_extent_cache_cnt again.
    
    Fixes: 1ab6c4997e04 ("fs: convert fs shrinkers to new scan/count API")
    Cc: stable@vger.kernel.org # 3.12+
    Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20210522103045.690103-3-yi.zhang@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce14bff239a107344b153bd6504a2f8165f672e9
Author: Anirudh Rayabharam <mail@anirudhrb.com>
Date:   Fri May 7 00:26:54 2021 +0530

    ext4: fix kernel infoleak via ext4_extent_header
    
    commit ce3aba43599f0b50adbebff133df8d08a3d5fffe upstream.
    
    Initialize eh_generation of struct ext4_extent_header to prevent leaking
    info to userspace. Fixes KMSAN kernel-infoleak bug reported by syzbot at:
    http://syzkaller.appspot.com/bug?id=78e9ad0e6952a3ca16e8234724b2fa92d041b9b8
    
    Cc: stable@kernel.org
    Reported-by: syzbot+2dcfeaf8cb49b05e8f1a@syzkaller.appspotmail.com
    Fixes: a86c61812637 ("[PATCH] ext3: add extent map support")
    Signed-off-by: Anirudh Rayabharam <mail@anirudhrb.com>
    Link: https://lore.kernel.org/r/20210506185655.7118-1-mail@anirudhrb.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 12b4715523efc6844dc1fb1924441e9b990705fd
Author: David Sterba <dsterba@suse.com>
Date:   Tue Jul 7 18:30:06 2020 +0200

    btrfs: clear defrag status of a root if starting transaction fails
    
    commit 6819703f5a365c95488b07066a8744841bf14231 upstream.
    
    The defrag loop processes leaves in batches and starting transaction for
    each. The whole defragmentation on a given root is protected by a bit
    but in case the transaction fails, the bit is not cleared
    
    In case the transaction fails the bit would prevent starting
    defragmentation again, so make sure it's cleared.
    
    CC: stable@vger.kernel.org # 4.4+
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Reviewed-by: Anand Jain <anand.jain@oracle.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f9face58bd9190ca11795d763f7f894904485cc
Author: Ludovic Desroches <ludovic.desroches@microchip.com>
Date:   Fri Oct 25 10:42:10 2019 +0200

    ARM: dts: at91: sama5d4: fix pinctrl muxing
    
    commit 253adffb0e98eaf6da2e7cf73ae68695e21f2f3c upstream.
    
    Fix pinctrl muxing, PD28, PD29 and PD31 can be muxed to peripheral A. It
    allows to use SCK0, SCK1 and SPI0_NPCS2 signals.
    
    Signed-off-by: Ludovic Desroches <ludovic.desroches@microchip.com>
    Fixes: 679f8d92bb01 ("ARM: at91/dt: sama5d4: add pioD pin mux mask and enable pioD")
    Cc: stable@vger.kernel.org # v4.4+
    Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20191025084210.14726-1-ludovic.desroches@microchip.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 68a9d136eca8946c7a1ad8ffa0d0cf08a32f0f04
Author: Alexander Larkin <avlarkin82@gmail.com>
Date:   Sun Jul 4 22:39:36 2021 -0700

    Input: joydev - prevent use of not validated data in JSIOCSBTNMAP ioctl
    
    commit f8f84af5da9ee04ef1d271528656dac42a090d00 upstream.
    
    Even though we validate user-provided inputs we then traverse past
    validated data when applying the new map. The issue was originally
    discovered by Murray McAllister with this simple POC (if the following
    is executed by an unprivileged user it will instantly panic the system):
    
    int main(void) {
            int fd, ret;
            unsigned int buffer[10000];
    
            fd = open("/dev/input/js0", O_RDONLY);
            if (fd == -1)
                    printf("Error opening file\n");
    
            ret = ioctl(fd, JSIOCSBTNMAP & ~IOCSIZE_MASK, &buffer);
            printf("%d\n", ret);
    }
    
    The solution is to traverse internal buffer which is guaranteed to only
    contain valid date when constructing the map.
    
    Fixes: 182d679b2298 ("Input: joydev - prevent potential read overflow in ioctl")
    Fixes: 999b874f4aa3 ("Input: joydev - validate axis/button maps before clobbering current ones")
    Reported-by: Murray McAllister <murray.mcallister@gmail.com>
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Alexander Larkin <avlarkin82@gmail.com>
    Link: https://lore.kernel.org/r/20210620120030.1513655-1-avlarkin82@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe64755f5de79918053e3737f0187ce628195342
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Wed Jun 2 14:48:21 2021 -0400

    iov_iter_fault_in_readable() should do nothing in xarray case
    
    commit 0e8f0d67401589a141950856902c7d0ec8d9c985 upstream.
    
    ... and actually should just check it's given an iovec-backed iterator
    in the first place.
    
    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 e7d81e930a4d4b0dbb1a863643f3a47ea866c741
Author: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com>
Date:   Mon Jun 28 19:33:52 2021 -0700

    ntfs: fix validity check for file name attribute
    
    commit d98e4d95411bbde2220a7afa38dcc9c14d71acbe upstream.
    
    When checking the file name attribute, we want to ensure that it fits
    within the bounds of ATTR_RECORD.  To do this, we should check that (attr
    record + file name offset + file name length) < (attr record + attr record
    length).
    
    However, the original check did not include the file name offset in the
    calculation.  This means that corrupted on-disk metadata might not caught
    by the incorrect file name check, and lead to an invalid memory access.
    
    An example can be seen in the crash report of a memory corruption error
    found by Syzbot:
    https://syzkaller.appspot.com/bug?id=a1a1e379b225812688566745c3e2f7242bffc246
    
    Adding the file name offset to the validity check fixes this error and
    passes the Syzbot reproducer test.
    
    Link: https://lkml.kernel.org/r/20210614050540.289494-1-desmondcheongzx@gmail.com
    Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com>
    Reported-by: syzbot+213ac8bb98f7f4420840@syzkaller.appspotmail.com
    Tested-by: syzbot+213ac8bb98f7f4420840@syzkaller.appspotmail.com
    Acked-by: Anton Altaparmakov <anton@tuxera.com>
    Cc: Shuah Khan <skhan@linuxfoundation.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a289421d969de23708f8d2ff497d6eeeb2663cc9
Author: Hannu Hartikainen <hannu@hrtk.in>
Date:   Tue Jun 22 17:14:54 2021 +0300

    USB: cdc-acm: blacklist Heimann USB Appset device
    
    commit 4897807753e078655a78de39ed76044d784f3e63 upstream.
    
    The device (32a7:0000 Heimann Sensor GmbH USB appset demo) claims to be
    a CDC-ACM device in its descriptors but in fact is not. If it is run
    with echo disabled it returns garbled data, probably due to something
    that happens in the TTY layer. And when run with echo enabled (the
    default), it will mess up the calibration data of the sensor the first
    time any data is sent to the device.
    
    In short, I had a bad time after connecting the sensor and trying to get
    it to work. I hope blacklisting it in the cdc-acm driver will save
    someone else a bit of trouble.
    
    Signed-off-by: Hannu Hartikainen <hannu@hrtk.in>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210622141454.337948-1-hannu@hrtk.in
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d55a236f1bab102e353ea5abb7b7b6ff7e847294
Author: Linyu Yuan <linyyuan@codeaurora.com>
Date:   Wed Jun 16 19:51:42 2021 +0800

    usb: gadget: eem: fix echo command packet response issue
    
    commit 4249d6fbc10fd997abdf8a1ea49c0389a0edf706 upstream.
    
    when receive eem echo command, it will send a response,
    but queue this response to the usb request which allocate
    from gadget device endpoint zero,
    and transmit the request to IN endpoint of eem interface.
    
    on dwc3 gadget, it will trigger following warning in function
    __dwc3_gadget_ep_queue(),
    
            if (WARN(req->dep != dep, "request %pK belongs to '%s'\n",
                                    &req->request, req->dep->name))
                    return -EINVAL;
    
    fix it by allocating a usb request from IN endpoint of eem interface,
    and transmit the usb request to same IN endpoint of eem interface.
    
    Signed-off-by: Linyu Yuan <linyyuan@codeaurora.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210616115142.34075-1-linyyuan@codeaurora.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d1238a531bea740dc6438cfbe95e7a76416afeb
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Thu Jun 17 21:51:30 2021 +0300

    net: can: ems_usb: fix use-after-free in ems_usb_disconnect()
    
    commit ab4a0b8fcb9a95c02909b62049811bd2e586aaa4 upstream.
    
    In ems_usb_disconnect() dev pointer, which is netdev private data, is
    used after free_candev() call:
    |       if (dev) {
    |               unregister_netdev(dev->netdev);
    |               free_candev(dev->netdev);
    |
    |               unlink_all_urbs(dev);
    |
    |               usb_free_urb(dev->intr_urb);
    |
    |               kfree(dev->intr_in_buffer);
    |               kfree(dev->tx_msg_buffer);
    |       }
    
    Fix it by simply moving free_candev() at the end of the block.
    
    Fail log:
    | BUG: KASAN: use-after-free in ems_usb_disconnect
    | Read of size 8 at addr ffff88804e041008 by task kworker/1:2/2895
    |
    | CPU: 1 PID: 2895 Comm: kworker/1:2 Not tainted 5.13.0-rc5+ #164
    | Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a-rebuilt.opensuse.4
    | Workqueue: usb_hub_wq hub_event
    | Call Trace:
    |     dump_stack (lib/dump_stack.c:122)
    |     print_address_description.constprop.0.cold (mm/kasan/report.c:234)
    |     kasan_report.cold (mm/kasan/report.c:420 mm/kasan/report.c:436)
    |     ems_usb_disconnect (drivers/net/can/usb/ems_usb.c:683 drivers/net/can/usb/ems_usb.c:1058)
    
    Fixes: 702171adeed3 ("ems_usb: Added support for EMS CPC-USB/ARM7 CAN/USB interface")
    Link: https://lore.kernel.org/r/20210617185130.5834-1-paskripkin@gmail.com
    Cc: linux-stable <stable@vger.kernel.org>
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6dffe4a16a8a5f42228858510443392d1b84629
Author: Johan Hovold <johan@kernel.org>
Date:   Mon May 24 10:02:59 2021 -0700

    Input: usbtouchscreen - fix control-request directions
    
    commit 41e81022a04a0294c55cfa7e366bc14b9634c66e upstream.
    
    The direction of the pipe argument must match the request-type direction
    bit or control requests may fail depending on the host-controller-driver
    implementation.
    
    Fix the four control requests which erroneously used usb_rcvctrlpipe().
    
    Fixes: 1d3e20236d7a ("[PATCH] USB: usbtouchscreen: unified USB touchscreen driver")
    Fixes: 24ced062a296 ("usbtouchscreen: add support for DMC TSC-10/25 devices")
    Fixes: 9e3b25837a20 ("Input: usbtouchscreen - add support for e2i touchscreen controller")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Cc: stable@vger.kernel.org      # 2.6.17
    Link: https://lore.kernel.org/r/20210524092048.4443-1-johan@kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8f0e544429dac9357321bcba73fe9e263edf614
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Fri May 7 14:50:43 2021 +0200

    media: dvb-usb: fix wrong definition
    
    commit c680ed46e418e9c785d76cf44eb33bfd1e8cf3f6 upstream.
    
    syzbot reported WARNING in vmalloc. The problem
    was in zero size passed to vmalloc.
    
    The root case was in wrong cxusb_bluebird_lgz201_properties
    definition. adapter array has only 1 entry, but num_adapters was
    2.
    
    Call Trace:
     __vmalloc_node mm/vmalloc.c:2963 [inline]
     vmalloc+0x67/0x80 mm/vmalloc.c:2996
     dvb_dmx_init+0xe4/0xb90 drivers/media/dvb-core/dvb_demux.c:1251
     dvb_usb_adapter_dvb_init+0x564/0x860 drivers/media/usb/dvb-usb/dvb-usb-dvb.c:184
     dvb_usb_adapter_init drivers/media/usb/dvb-usb/dvb-usb-init.c:86 [inline]
     dvb_usb_init drivers/media/usb/dvb-usb/dvb-usb-init.c:184 [inline]
     dvb_usb_device_init.cold+0xc94/0x146e drivers/media/usb/dvb-usb/dvb-usb-init.c:308
     cxusb_probe+0x159/0x5e0 drivers/media/usb/dvb-usb/cxusb.c:1634
    
    Fixes: 4d43e13f723e ("V4L/DVB (4643): Multi-input patch for DVB-USB device")
    Cc: stable@vger.kernel.org
    Reported-by: syzbot+7336195c02c1bd2f64e1@syzkaller.appspotmail.com
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c14b2035036adc59881923f33975cd3c2160677
Author: Daehwan Jung <dh10.jung@samsung.com>
Date:   Wed Jun 16 18:34:55 2021 +0900

    ALSA: usb-audio: fix rate on Ozone Z90 USB headset
    
    commit aecc19ec404bdc745c781058ac97a373731c3089 upstream.
    
    It mislabels its 96 kHz altsetting and that's why it causes some noise
    
    Signed-off-by: Daehwan Jung <dh10.jung@samsung.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/1623836097-61918-1-git-send-email-dh10.jung@samsung.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>