commit 2760370b164918bd9311e6bf445cf4c118d3463c
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Oct 20 10:42:06 2021 +0200

    Linux 4.14.252
    
    Link: https://lore.kernel.org/r/20211018132325.426739023@linuxfoundation.org
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Hulk Robot <hulkrobot@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d955af66d2a8a27cebd897d3e30724fba71625cb
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Mon Oct 11 17:22:49 2021 +0200

    r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256
    
    commit 9973a43012b6ad1720dbc4d5faf5302c28635b8c upstream.
    
    Fix the following build/link errors by adding a dependency on
    CRYPTO, CRYPTO_HASH, CRYPTO_SHA256 and CRC32:
    
      ld: drivers/net/usb/r8152.o: in function `rtl8152_fw_verify_checksum':
      r8152.c:(.text+0x2b2a): undefined reference to `crypto_alloc_shash'
      ld: r8152.c:(.text+0x2bed): undefined reference to `crypto_shash_digest'
      ld: r8152.c:(.text+0x2c50): undefined reference to `crypto_destroy_tfm'
      ld: drivers/net/usb/r8152.o: in function `_rtl8152_set_rx_mode':
      r8152.c:(.text+0xdcb0): undefined reference to `crc32_le'
    
    Fixes: 9370f2d05a2a1 ("r8152: support request_firmware for RTL8153")
    Fixes: ac718b69301c7 ("net/usb: new driver for RTL8152")
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1bb18987cadeb7cd455aa98e4ec6bc360df286de
Author: chongjiapeng <jiapeng.chong@linux.alibaba.com>
Date:   Sat Oct 9 16:09:26 2021 +0800

    qed: Fix missing error code in qed_slowpath_start()
    
    commit a5a14ea7b4e55604acb0dc9d88fdb4cb6945bc77 upstream.
    
    The error code is missing in this code scenario, add the error code
    '-EINVAL' to the return value 'rc'.
    
    Eliminate the follow smatch warning:
    
    drivers/net/ethernet/qlogic/qed/qed_main.c:1298 qed_slowpath_start()
    warn: missing error code 'rc'.
    
    Reported-by: Abaci Robot <abaci@linux.alibaba.com>
    Fixes: d51e4af5c209 ("qed: aRFS infrastructure support")
    Signed-off-by: chongjiapeng <jiapeng.chong@linux.alibaba.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b493e891a274b64af1da940a42fb050dd631918c
Author: Jackie Liu <liuyun01@kylinos.cn>
Date:   Mon Aug 23 17:25:26 2021 +0800

    acpi/arm64: fix next_platform_timer() section mismatch error
    
    commit 596143e3aec35c93508d6b7a05ddc999ee209b61 upstream.
    
    Fix modpost Section mismatch error in next_platform_timer().
    
      [...]
      WARNING: modpost: vmlinux.o(.text.unlikely+0x26e60): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
      The function next_platform_timer() references
      the variable __initdata acpi_gtdt_desc.
      This is often because next_platform_timer lacks a __initdata
      annotation or the annotation of acpi_gtdt_desc is wrong.
    
      WARNING: modpost: vmlinux.o(.text.unlikely+0x26e64): Section mismatch in reference from the function next_platform_timer() to the variable .init.data:acpi_gtdt_desc
      The function next_platform_timer() references
      the variable __initdata acpi_gtdt_desc.
      This is often because next_platform_timer lacks a __initdata
      annotation or the annotation of acpi_gtdt_desc is wrong.
    
      ERROR: modpost: Section mismatches detected.
      Set CONFIG_SECTION_MISMATCH_WARN_ONLY=y to allow them.
      make[1]: *** [scripts/Makefile.modpost:59: vmlinux.symvers] Error 1
      make[1]: *** Deleting file 'vmlinux.symvers'
      make: *** [Makefile:1176: vmlinux] Error 2
      [...]
    
    Fixes: a712c3ed9b8a ("acpi/arm64: Add memory-mapped timer support in GTDT driver")
    Signed-off-by: Jackie Liu <liuyun01@kylinos.cn>
    Acked-by: Hanjun Guo <guohanjun@huawei.com>
    Link: https://lore.kernel.org/r/20210823092526.2407526-1-liu.yun@linux.dev
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2590ac875a4e45023b5c57aaf0a828056394a453
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Oct 1 15:34:09 2021 +0300

    drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
    
    commit c8f01ffc83923a91e8087aaa077de13354a7aa59 upstream.
    
    This disables a lock which wasn't enabled and it does not disable
    the first lock in the array.
    
    Fixes: 6e0eb52eba9e ("drm/msm/dsi: Parse bus clocks from a list")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20211001123409.GG2283@kili
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0cd063aa0a09822cc1620fc59a67fe2f9f6338ac
Author: Colin Ian King <colin.king@canonical.com>
Date:   Wed Sep 29 13:18:57 2021 +0100

    drm/msm: Fix null pointer dereference on pointer edp
    
    commit 2133c4fc8e1348dcb752f267a143fe2254613b34 upstream.
    
    The initialization of pointer dev dereferences pointer edp before
    edp is null checked, so there is a potential null pointer deference
    issue. Fix this by only dereferencing edp after edp has been null
    checked.
    
    Addresses-Coverity: ("Dereference before null check")
    Fixes: ab5b0107ccf3 ("drm/msm: Initial add eDP support in msm drm driver (v5)")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20210929121857.213922-1-colin.king@canonical.com
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 606fe5fbff23edfd478dcbd6caab4f80bc76a181
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Oct 6 10:34:19 2021 +0300

    pata_legacy: fix a couple uninitialized variable bugs
    
    commit 013923477cb311293df9079332cf8b806ed0e6f2 upstream.
    
    The last byte of "pad" is used without being initialized.
    
    Fixes: 55dba3120fbc ("libata: update ->data_xfer hook for ATAPI")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fcce6e5255474ca33c27dda0cdf9bf5087278873
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Wed Oct 13 15:50:32 2021 +0800

    NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
    
    commit 291c932fc3692e4d211a445ba8aa35663831bac7 upstream.
    
    'skb' is allocated in digital_in_send_sdd_req(), but not free when
    digital_in_send_cmd() failed, which will cause memory leak. Fix it
    by freeing 'skb' if digital_in_send_cmd() return failed.
    
    Fixes: 2c66daecc409 ("NFC Digital: Add NFC-A technology support")
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7b023e6ff567e991c31cd425b0e1d16779c938b
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Wed Oct 13 15:50:12 2021 +0800

    NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
    
    commit 58e7dcc9ca29c14e44267a4d0ea61e3229124907 upstream.
    
    'params' is allocated in digital_tg_listen_mdaa(), but not free when
    digital_send_cmd() failed, which will cause memory leak. Fix it by
    freeing 'params' if digital_send_cmd() return failed.
    
    Fixes: 1c7a4c24fbfd ("NFC Digital: Add target NFC-DEP support")
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b7b36a24713a1ab0cd53032e0199d5dbeef71d0
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Wed Oct 13 11:49:32 2021 +0800

    nfc: fix error handling of nfc_proto_register()
    
    commit 0911ab31896f0e908540746414a77dd63912748d upstream.
    
    When nfc proto id is using, nfc_proto_register() return -EBUSY error
    code, but forgot to unregister proto. Fix it by adding proto_unregister()
    in the error handling case.
    
    Fixes: c7fe3b52c128 ("NFC: add NFC socket family")
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Link: https://lore.kernel.org/r/20211013034932.2833737-1-william.xuanziyang@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 00f1d84844d42531611c97081ec2097644f18319
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Oct 13 16:35:49 2021 +0200

    ethernet: s2io: fix setting mac address during resume
    
    commit 40507e7aada8422c38aafa0c8a1a09e4623c712a upstream.
    
    After recent cleanups, gcc started warning about a suspicious
    memcpy() call during the s2io_io_resume() function:
    
    In function '__dev_addr_set',
        inlined from 'eth_hw_addr_set' at include/linux/etherdevice.h:318:2,
        inlined from 's2io_set_mac_addr' at drivers/net/ethernet/neterion/s2io.c:5205:2,
        inlined from 's2io_io_resume' at drivers/net/ethernet/neterion/s2io.c:8569:7:
    arch/x86/include/asm/string_32.h:182:25: error: '__builtin_memcpy' accessing 6 bytes at offsets 0 and 2 overlaps 4 bytes at offset 2 [-Werror=restrict]
      182 | #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
          |                         ^~~~~~~~~~~~~~~~~~~~~~~~~
    include/linux/netdevice.h:4648:9: note: in expansion of macro 'memcpy'
     4648 |         memcpy(dev->dev_addr, addr, len);
          |         ^~~~~~
    
    What apparently happened is that an old cleanup changed the calling
    conventions for s2io_set_mac_addr() from taking an ethernet address
    as a character array to taking a struct sockaddr, but one of the
    callers was not changed at the same time.
    
    Change it to instead call the low-level do_s2io_prog_unicast() function
    that still takes the old argument type.
    
    Fixes: 2fd376884558 ("S2io: Added support set_mac_address driver entry point")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20211013143613.2049096-1-arnd@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fddc7f678d7fb93caa0d7bc512f968ff1e2bddbc
Author: Nanyong Sun <sunnanyong@huawei.com>
Date:   Tue Oct 12 20:59:01 2021 +0800

    net: encx24j600: check error in devm_regmap_init_encx24j600
    
    commit f03dca0c9e2297c84a018e306f8a9cd534ee4287 upstream.
    
    devm_regmap_init may return error which caused by like out of memory,
    this will results in null pointer dereference later when reading
    or writing register:
    
    general protection fault in encx24j600_spi_probe
    KASAN: null-ptr-deref in range [0x0000000000000090-0x0000000000000097]
    CPU: 0 PID: 286 Comm: spi-encx24j600- Not tainted 5.15.0-rc2-00142-g9978db750e31-dirty #11 9c53a778c1306b1b02359f3c2bbedc0222cba652
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
    RIP: 0010:regcache_cache_bypass drivers/base/regmap/regcache.c:540
    Code: 54 41 89 f4 55 53 48 89 fb 48 83 ec 08 e8 26 94 a8 fe 48 8d bb a0 00 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 4a 03 00 00 4c 8d ab b0 00 00 00 48 8b ab a0 00
    RSP: 0018:ffffc900010476b8 EFLAGS: 00010207
    RAX: dffffc0000000000 RBX: fffffffffffffff4 RCX: 0000000000000000
    RDX: 0000000000000012 RSI: ffff888002de0000 RDI: 0000000000000094
    RBP: ffff888013c9a000 R08: 0000000000000000 R09: fffffbfff3f9cc6a
    R10: ffffc900010476e8 R11: fffffbfff3f9cc69 R12: 0000000000000001
    R13: 000000000000000a R14: ffff888013c9af54 R15: ffff888013c9ad08
    FS:  00007ffa984ab580(0000) GS:ffff88801fe00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000055a6384136c8 CR3: 000000003bbe6003 CR4: 0000000000770ef0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     encx24j600_spi_probe drivers/net/ethernet/microchip/encx24j600.c:459
     spi_probe drivers/spi/spi.c:397
     really_probe drivers/base/dd.c:517
     __driver_probe_device drivers/base/dd.c:751
     driver_probe_device drivers/base/dd.c:782
     __device_attach_driver drivers/base/dd.c:899
     bus_for_each_drv drivers/base/bus.c:427
     __device_attach drivers/base/dd.c:971
     bus_probe_device drivers/base/bus.c:487
     device_add drivers/base/core.c:3364
     __spi_add_device drivers/spi/spi.c:599
     spi_add_device drivers/spi/spi.c:641
     spi_new_device drivers/spi/spi.c:717
     new_device_store+0x18c/0x1f1 [spi_stub 4e02719357f1ff33f5a43d00630982840568e85e]
     dev_attr_store drivers/base/core.c:2074
     sysfs_kf_write fs/sysfs/file.c:139
     kernfs_fop_write_iter fs/kernfs/file.c:300
     new_sync_write fs/read_write.c:508 (discriminator 4)
     vfs_write fs/read_write.c:594
     ksys_write fs/read_write.c:648
     do_syscall_64 arch/x86/entry/common.c:50
     entry_SYSCALL_64_after_hwframe arch/x86/entry/entry_64.S:113
    
    Add error check in devm_regmap_init_encx24j600 to avoid this situation.
    
    Fixes: 04fbfce7a222 ("net: Microchip encx24j600 driver")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Nanyong Sun <sunnanyong@huawei.com>
    Link: https://lore.kernel.org/r/20211012125901.3623144-1-sunnanyong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d2397d19f4386d31a130d28e2ce5efcc0a693bcb
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Tue Oct 12 17:25:09 2021 +0200

    net: korina: select CRC32
    
    commit 427f974d9727ca681085ddcd0530c97ab5811ae0 upstream.
    
    Fix the following build/link error by adding a dependency on the CRC32
    routines:
    
      ld: drivers/net/ethernet/korina.o: in function `korina_multicast_list':
      korina.c:(.text+0x1af): undefined reference to `crc32_le'
    
    Fixes: ef11291bcd5f9 ("Add support the Korina (IDT RC32434) Ethernet MAC")
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Acked-by: Florian fainelli <f.fainelli@gmail.com>
    Link: https://lore.kernel.org/r/20211012152509.21771-1-vegard.nossum@oracle.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ccf43a62c63937dc4f8587f22aa4e6d72728be6
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Tue Oct 12 11:34:46 2021 +0200

    net: arc: select CRC32
    
    commit e599ee234ad4fdfe241d937bbabd96e0d8f9d868 upstream.
    
    Fix the following build/link error by adding a dependency on the CRC32
    routines:
    
      ld: drivers/net/ethernet/arc/emac_main.o: in function `arc_emac_set_rx_mode':
      emac_main.c:(.text+0xb11): undefined reference to `crc32_le'
    
    The crc32_le() call comes through the ether_crc_le() call in
    arc_emac_set_rx_mode().
    
    [v2: moved the select to ARC_EMAC_CORE; the Makefile is a bit confusing,
    but the error comes from emac_main.o, which is part of the arc_emac module,
    which in turn is enabled by CONFIG_ARC_EMAC_CORE. Note that arc_emac is
    different from emac_arc...]
    
    Fixes: 775dd682e2b0ec ("arc_emac: implement promiscuous mode and multicast filtering")
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Link: https://lore.kernel.org/r/20211012093446.1575-1-vegard.nossum@oracle.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41f0bcc7d9eac315259d4e9fb441552f60e8ec9e
Author: Eiichi Tsukata <eiichi.tsukata@nutanix.com>
Date:   Wed Oct 13 17:27:29 2021 -0300

    sctp: account stream padding length for reconf chunk
    
    commit a2d859e3fc97e79d907761550dbc03ff1b36479c upstream.
    
    sctp_make_strreset_req() makes repeated calls to sctp_addto_chunk()
    which will automatically account for padding on each call. inreq and
    outreq are already 4 bytes aligned, but the payload is not and doing
    SCTP_PAD4(a + b) (which _sctp_make_chunk() did implicitly here) is
    different from SCTP_PAD4(a) + SCTP_PAD4(b) and not enough. It led to
    possible attempt to use more buffer than it was allocated and triggered
    a BUG_ON.
    
    Cc: Vlad Yasevich <vyasevich@gmail.com>
    Cc: Neil Horman <nhorman@tuxdriver.com>
    Cc: Greg KH <gregkh@linuxfoundation.org>
    Fixes: cc16f00f6529 ("sctp: add support for generating stream reconf ssn reset request chunk")
    Reported-by: Eiichi Tsukata <eiichi.tsukata@nutanix.com>
    Signed-off-by: Eiichi Tsukata <eiichi.tsukata@nutanix.com>
    Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
    Reviewed-by: Xin Long <lucien.xin@gmail.com>
    Link: https://lore.kernel.org/r/b97c1f8b0c7ff79ac4ed206fc2c49d3612e0850c.1634156849.git.mleitner@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3bfe6035324a56dfdfb6ba9a2c87daf17d1bbd0
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Sep 14 13:53:33 2021 +0300

    iio: ssp_sensors: fix error code in ssp_print_mcu_debug()
    
    commit 4170d3dd1467e9d78cb9af374b19357dc324b328 upstream.
    
    The ssp_print_mcu_debug() function should return negative error codes on
    error.  Returning "length" is meaningless.  This change does not affect
    runtime because the callers only care about zero/non-zero.
    
    Reported-by: Jonathan Cameron <jic23@kernel.org>
    Fixes: 50dd64d57eee ("iio: common: ssp_sensors: Add sensorhub driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/20210914105333.GA11657@kili
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 00b43c97840b6fd57ed9a92c16e336bf08471de1
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Sep 9 12:13:36 2021 +0300

    iio: ssp_sensors: add more range checking in ssp_parse_dataframe()
    
    commit 8167c9a375ccceed19048ad9d68cb2d02ed276e0 upstream.
    
    The "idx" is validated at the start of the loop but it gets incremented
    during the iteration so it needs to be checked again.
    
    Fixes: 50dd64d57eee ("iio: common: ssp_sensors: Add sensorhub driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/20210909091336.GA26312@kili
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8bd6227e76bebbae3134e67d27b20fc0657c28b7
Author: Jiri Valek - 2N <valek@2n.cz>
Date:   Mon Sep 20 14:53:48 2021 +0200

    iio: light: opt3001: Fixed timeout error when 0 lux
    
    commit 26d90b5590579def54382a2fc34cfbe8518a9851 upstream.
    
    Reading from sensor returned timeout error under
    zero light conditions.
    
    Signed-off-by: Jiri Valek - 2N <valek@2n.cz>
    Fixes: ac663db3678a ("iio: light: opt3001: enable operation w/o IRQ")
    Link: https://lore.kernel.org/r/20210920125351.6569-1-valek@2n.cz
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42518695ad9c65b5605634f4270ca9a53f329890
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat Aug 21 12:37:24 2021 +0200

    iio: adc128s052: Fix the error handling path of 'adc128_probe()'
    
    commit bbcf40816b547b3c37af49168950491d20d81ce1 upstream.
    
    A successful 'regulator_enable()' call should be balanced by a
    corresponding 'regulator_disable()' call in the error handling path of the
    probe, as already done in the remove function.
    
    Update the error handling path accordingly.
    
    Fixes: 913b86468674 ("iio: adc: Add TI ADC128S052")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Alexandru Ardelean <ardeleanalex@gmail.com>
    Link: https://lore.kernel.org/r/85189f1cfcf6f5f7b42d8730966f2a074b07b5f5.1629542160.git.christophe.jaillet@wanadoo.fr
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b867607cf56f65db3242a0cd1a61f27783ddda0c
Author: Billy Tsai <billy_tsai@aspeedtech.com>
Date:   Tue Aug 31 15:14:44 2021 +0800

    iio: adc: aspeed: set driver data when adc probe.
    
    commit eb795cd97365a3d3d9da3926d234a7bc32a3bb15 upstream.
    
    Fix the issue when adc remove will get the null driver data.
    
    Fixed: commit 573803234e72 ("iio: Aspeed ADC")
    Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
    Link: https://lore.kernel.org/r/20210831071458.2334-2-billy_tsai@aspeedtech.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f9527414867764018639968df457a1a26aec1e1
Author: Borislav Petkov <bp@suse.de>
Date:   Wed Oct 6 19:34:55 2021 +0200

    x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically
    
    commit 711885906b5c2df90746a51f4cd674f1ab9fbb1d upstream.
    
    This Kconfig option was added initially so that memory encryption is
    enabled by default on machines which support it.
    
    However, devices which have DMA masks that are less than the bit
    position of the encryption bit, aka C-bit, require the use of an IOMMU
    or the use of SWIOTLB.
    
    If the IOMMU is disabled or in passthrough mode, the kernel would switch
    to SWIOTLB bounce-buffering for those transfers.
    
    In order to avoid that,
    
      2cc13bb4f59f ("iommu: Disable passthrough mode when SME is active")
    
    disables the default IOMMU passthrough mode so that devices for which the
    default 256K DMA is insufficient, can use the IOMMU instead.
    
    However 2, there are cases where the IOMMU is disabled in the BIOS, etc.
    (think the usual hardware folk "oops, I dropped the ball there" cases) or a
    driver doesn't properly use the DMA APIs or a device has a firmware or
    hardware bug, e.g.:
    
      ea68573d408f ("drm/amdgpu: Fail to load on RAVEN if SME is active")
    
    However 3, in the above GPU use case, there are APIs like Vulkan and
    some OpenGL/OpenCL extensions which are under the assumption that
    user-allocated memory can be passed in to the kernel driver and both the
    GPU and CPU can do coherent and concurrent access to the same memory.
    That cannot work with SWIOTLB bounce buffers, of course.
    
    So, in order for those devices to function, drop the "default y" for the
    SME by default active option so that users who want to have SME enabled,
    will need to either enable it in their config or use "mem_encrypt=on" on
    the kernel command line.
    
     [ tlendacky: Generalize commit message. ]
    
    Fixes: 7744ccdbc16f ("x86/mm: Add Secure Memory Encryption (SME) support")
    Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/8bbacd0e-4580-3194-19d2-a0ecad7df09c@molgen.mpg.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2df6c023050205c4d04ffc121bc549f65cb8d1df
Author: Stephen Boyd <swboyd@chromium.org>
Date:   Wed Oct 13 13:45:11 2021 +0100

    nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
    
    commit 5d388fa01fa6eb310ac023a363a6cb216d9d8fe9 upstream.
    
    If a cell has 'nbits' equal to a multiple of BITS_PER_BYTE the logic
    
     *p &= GENMASK((cell->nbits%BITS_PER_BYTE) - 1, 0);
    
    will become undefined behavior because nbits modulo BITS_PER_BYTE is 0, and we
    subtract one from that making a large number that is then shifted more than the
    number of bits that fit into an unsigned long.
    
    UBSAN reports this problem:
    
     UBSAN: shift-out-of-bounds in drivers/nvmem/core.c:1386:8
     shift exponent 64 is too large for 64-bit type 'unsigned long'
     CPU: 6 PID: 7 Comm: kworker/u16:0 Not tainted 5.15.0-rc3+ #9
     Hardware name: Google Lazor (rev3+) with KB Backlight (DT)
     Workqueue: events_unbound deferred_probe_work_func
     Call trace:
      dump_backtrace+0x0/0x170
      show_stack+0x24/0x30
      dump_stack_lvl+0x64/0x7c
      dump_stack+0x18/0x38
      ubsan_epilogue+0x10/0x54
      __ubsan_handle_shift_out_of_bounds+0x180/0x194
      __nvmem_cell_read+0x1ec/0x21c
      nvmem_cell_read+0x58/0x94
      nvmem_cell_read_variable_common+0x4c/0xb0
      nvmem_cell_read_variable_le_u32+0x40/0x100
      a6xx_gpu_init+0x170/0x2f4
      adreno_bind+0x174/0x284
      component_bind_all+0xf0/0x264
      msm_drm_bind+0x1d8/0x7a0
      try_to_bring_up_master+0x164/0x1ac
      __component_add+0xbc/0x13c
      component_add+0x20/0x2c
      dp_display_probe+0x340/0x384
      platform_probe+0xc0/0x100
      really_probe+0x110/0x304
      __driver_probe_device+0xb8/0x120
      driver_probe_device+0x4c/0xfc
      __device_attach_driver+0xb0/0x128
      bus_for_each_drv+0x90/0xdc
      __device_attach+0xc8/0x174
      device_initial_probe+0x20/0x2c
      bus_probe_device+0x40/0xa4
      deferred_probe_work_func+0x7c/0xb8
      process_one_work+0x128/0x21c
      process_scheduled_works+0x40/0x54
      worker_thread+0x1ec/0x2a8
      kthread+0x138/0x158
      ret_from_fork+0x10/0x20
    
    Fix it by making sure there are any bits to mask out.
    
    Fixes: 69aba7948cbe ("nvmem: Add a simple NVMEM framework for consumers")
    Cc: Douglas Anderson <dianders@chromium.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20211013124511.18726-1-srinivas.kandagatla@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f5c147c0d9c0da96f26b9e0cf74d9a6d6bf265c7
Author: Halil Pasic <pasic@linux.ibm.com>
Date:   Mon Oct 11 07:39:21 2021 +0200

    virtio: write back F_VERSION_1 before validate
    
    commit 2f9a174f918e29608564c7a4e8329893ab604fb4 upstream.
    
    The virtio specification virtio-v1.1-cs01 states: "Transitional devices
    MUST detect Legacy drivers by detecting that VIRTIO_F_VERSION_1 has not
    been acknowledged by the driver."  This is exactly what QEMU as of 6.1
    has done relying solely on VIRTIO_F_VERSION_1 for detecting that.
    
    However, the specification also says: "... the driver MAY read (but MUST
    NOT write) the device-specific configuration fields to check that it can
    support the device ..." before setting FEATURES_OK.
    
    In that case, any transitional device relying solely on
    VIRTIO_F_VERSION_1 for detecting legacy drivers will return data in
    legacy format.  In particular, this implies that it is in big endian
    format for big endian guests. This naturally confuses the driver which
    expects little endian in the modern mode.
    
    It is probably a good idea to amend the spec to clarify that
    VIRTIO_F_VERSION_1 can only be relied on after the feature negotiation
    is complete. Before validate callback existed, config space was only
    read after FEATURES_OK. However, we already have two regressions, so
    let's address this here as well.
    
    The regressions affect the VIRTIO_NET_F_MTU feature of virtio-net and
    the VIRTIO_BLK_F_BLK_SIZE feature of virtio-blk for BE guests when
    virtio 1.0 is used on both sides. The latter renders virtio-blk unusable
    with DASD backing, because things simply don't work with the default.
    See Fixes tags for relevant commits.
    
    For QEMU, we can work around the issue by writing out the feature bits
    with VIRTIO_F_VERSION_1 bit set.  We (ab)use the finalize_features
    config op for this. This isn't enough to address all vhost devices since
    these do not get the features until FEATURES_OK, however it looks like
    the affected devices actually never handled the endianness for legacy
    mode correctly, so at least that's not a regression.
    
    No devices except virtio net and virtio blk seem to be affected.
    
    Long term the right thing to do is to fix the hypervisors.
    
    Cc: <stable@vger.kernel.org> #v4.11
    Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
    Fixes: 82e89ea077b9 ("virtio-blk: Add validation for block size in config space")
    Fixes: fe36cbe0671e ("virtio_net: clear MTU when out of range")
    Reported-by: markver@us.ibm.com
    Reviewed-by: Cornelia Huck <cohuck@redhat.com>
    Link: https://lore.kernel.org/r/20211011053921.1198936-1-pasic@linux.ibm.com
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 89235f4dc278126f83832d1dd7dcbc1c6e657085
Author: Tomaz Solc <tomaz.solc@tablix.org>
Date:   Wed Oct 6 14:57:50 2021 +0200

    USB: serial: option: add prod. id for Quectel EG91
    
    commit c184accc4a42c7872dc8e8d0fc97a740dc61fe24 upstream.
    
    Adding support for Quectel EG91 LTE module.
    
    The interface layout is same as for EG95.
    
    usb-devices output:
    T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=2c7c ProdID=0191 Rev=03.18
    S:  Manufacturer=Android
    S:  Product=Android
    C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    I:  If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    
    Interfaces:
    
    0: Diag
    1: GNSS
    2: AT-command interface/modem
    3: Modem
    4: QMI
    
    Signed-off-by: Tomaz Solc <tomaz.solc@tablix.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8915d2f489a914d95c91f8814facef9d8ae29ea9
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Mon Oct 4 12:56:55 2021 +0200

    USB: serial: option: add Telit LE910Cx composition 0x1204
    
    commit f5a8a07edafed8bede17a95ef8940fe3a57a77d5 upstream.
    
    Add the following Telit LE910Cx composition:
    
    0x1204: tty, adb, mbim, tty, tty, tty, tty
    
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Link: https://lore.kernel.org/r/20211004105655.8515-1-dnlplm@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83f380ece7079ceb23aeb23e29b95a6c799ed92d
Author: Yu-Tung Chang <mtwget@gmail.com>
Date:   Thu Sep 30 10:11:12 2021 +0800

    USB: serial: option: add Quectel EC200S-CN module support
    
    commit 2263eb7370060bdb0013bc14e1a7c9bf33617a55 upstream.
    
    Add usb product id of the Quectel EC200S-CN module.
    
    usb-devices output for 0x6002:
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=2c7c ProdID=6002 Rev=03.18
    S:  Manufacturer=Android
    S:  Product=Android
    S:  SerialNumber=0000
    C:  #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
    I:  If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
    I:  If#=0x2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
    
    Signed-off-by: Yu-Tung Chang <mtwget@gmail.com>
    Link: https://lore.kernel.org/r/20210930021112.330396-1-mtwget@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1fe3573eba37525c82de85cb53b505d352a16a2e
Author: Aleksander Morgado <aleksander@aleksander.es>
Date:   Thu Oct 7 14:25:01 2021 +0200

    USB: serial: qcserial: add EM9191 QDL support
    
    commit 11c52d250b34a0862edc29db03fbec23b30db6da upstream.
    
    When the module boots into QDL download mode it exposes the 1199:90d2
    ids, which can be mapped to the qcserial driver, and used to run
    firmware upgrades (e.g. with the qmi-firmware-update program).
    
      T:  Bus=01 Lev=03 Prnt=08 Port=03 Cnt=01 Dev#= 10 Spd=480 MxCh= 0
      D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
      P:  Vendor=1199 ProdID=90d2 Rev=00.00
      S:  Manufacturer=Sierra Wireless, Incorporated
      S:  Product=Sierra Wireless EM9191
      S:  SerialNumber=8W0382004102A109
      C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=2mA
      I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=10 Driver=qcserial
    
    Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2019df031a4559fedcddd45610d7e5b851621963
Author: Michael Cullen <michael@michaelcullen.name>
Date:   Fri Oct 15 13:17:50 2021 -0700

    Input: xpad - add support for another USB ID of Nacon GC-100
    
    commit 3378a07daa6cdd11e042797454c706d1c69f9ca6 upstream.
    
    The Nacon GX100XF is already mapped, but it seems there is a Nacon
    GC-100 (identified as NC5136Wht PCGC-100WHITE though I believe other
    colours exist) with a different USB ID when in XInput mode.
    
    Signed-off-by: Michael Cullen <michael@michaelcullen.name>
    Link: https://lore.kernel.org/r/20211015192051.5196-1-michael@michaelcullen.name
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ed60a430fb5f3d93e7fef66264daef466b4d10c
Author: Miquel Raynal <miquel.raynal@bootlin.com>
Date:   Wed Oct 6 00:16:31 2021 +0200

    usb: musb: dsps: Fix the probe error path
    
    commit c2115b2b16421d93d4993f3fe4c520e91d6fe801 upstream.
    
    Commit 7c75bde329d7 ("usb: musb: musb_dsps: request_irq() after
    initializing musb") has inverted the calls to
    dsps_setup_optional_vbus_irq() and dsps_create_musb_pdev() without
    updating correctly the error path. dsps_create_musb_pdev() allocates and
    registers a new platform device which must be unregistered and freed
    with platform_device_unregister(), and this is missing upon
    dsps_setup_optional_vbus_irq() error.
    
    While on the master branch it seems not to trigger any issue, I observed
    a kernel crash because of a NULL pointer dereference with a v5.10.70
    stable kernel where the patch mentioned above was backported. With this
    kernel version, -EPROBE_DEFER is returned the first time
    dsps_setup_optional_vbus_irq() is called which triggers the probe to
    error out without unregistering the platform device. Unfortunately, on
    the Beagle Bone Black Wireless, the platform device still living in the
    system is being used by the USB Ethernet gadget driver, which during the
    boot phase triggers the crash.
    
    My limited knowledge of the musb world prevents me to revert this commit
    which was sent to silence a robot warning which, as far as I understand,
    does not make sense. The goal of this patch was to prevent an IRQ to
    fire before the platform device being registered. I think this cannot
    ever happen due to the fact that enabling the interrupts is done by the
    ->enable() callback of the platform musb device, and this platform
    device must be already registered in order for the core or any other
    user to use this callback.
    
    Hence, I decided to fix the error path, which might prevent future
    errors on mainline kernels while also fixing older ones.
    
    Fixes: 7c75bde329d7 ("usb: musb: musb_dsps: request_irq() after initializing musb")
    Cc: stable@vger.kernel.org
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/r/20211005221631.1529448-1-miquel.raynal@bootlin.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d1792c078cd1b9f28ee3c7d3f1f8c2087ea39fd
Author: Zhang Jianhua <chris.zjh@huawei.com>
Date:   Thu Sep 23 10:53:40 2021 +0800

    efi: Change down_interruptible() in virt_efi_reset_system() to down_trylock()
    
    commit 38fa3206bf441911258e5001ac8b6738693f8d82 upstream.
    
    While reboot the system by sysrq, the following bug will be occur.
    
    BUG: sleeping function called from invalid context at kernel/locking/semaphore.c:90
    in_atomic(): 0, irqs_disabled(): 128, non_block: 0, pid: 10052, name: rc.shutdown
    CPU: 3 PID: 10052 Comm: rc.shutdown Tainted: G        W O      5.10.0 #1
    Call trace:
     dump_backtrace+0x0/0x1c8
     show_stack+0x18/0x28
     dump_stack+0xd0/0x110
     ___might_sleep+0x14c/0x160
     __might_sleep+0x74/0x88
     down_interruptible+0x40/0x118
     virt_efi_reset_system+0x3c/0xd0
     efi_reboot+0xd4/0x11c
     machine_restart+0x60/0x9c
     emergency_restart+0x1c/0x2c
     sysrq_handle_reboot+0x1c/0x2c
     __handle_sysrq+0xd0/0x194
     write_sysrq_trigger+0xbc/0xe4
     proc_reg_write+0xd4/0xf0
     vfs_write+0xa8/0x148
     ksys_write+0x6c/0xd8
     __arm64_sys_write+0x18/0x28
     el0_svc_common.constprop.3+0xe4/0x16c
     do_el0_svc+0x1c/0x2c
     el0_svc+0x20/0x30
     el0_sync_handler+0x80/0x17c
     el0_sync+0x158/0x180
    
    The reason for this problem is that irq has been disabled in
    machine_restart() and then it calls down_interruptible() in
    virt_efi_reset_system(), which would occur sleep in irq context,
    it is dangerous! Commit 99409b935c9a("locking/semaphore: Add
    might_sleep() to down_*() family") add might_sleep() in
    down_interruptible(), so the bug info is here. down_trylock()
    can solve this problem, cause there is no might_sleep.
    
    --------
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Zhang Jianhua <chris.zjh@huawei.com>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2f5f0fe1a5770d98374916575e56842f8a550fd
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Wed Sep 1 08:33:19 2021 +0200

    efi/cper: use stack buffer for error record decoding
    
    commit b3a72ca80351917cc23f9e24c35f3c3979d3c121 upstream.
    
    Joe reports that using a statically allocated buffer for converting CPER
    error records into human readable text is probably a bad idea. Even
    though we are not aware of any actual issues, a stack buffer is clearly
    a better choice here anyway, so let's move the buffer into the stack
    frames of the two functions that refer to it.
    
    Cc: <stable@vger.kernel.org>
    Reported-by: Joe Perches <joe@perches.com>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf79c98d528ee1b7c3b4e915fff434f6192664e0
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Sep 27 14:13:57 2021 +0200

    cb710: avoid NULL pointer subtraction
    
    commit 42641042c10c757fe10cc09088cf3f436cec5007 upstream.
    
    clang-14 complains about an unusual way of converting a pointer to
    an integer:
    
    drivers/misc/cb710/sgbuf2.c:50:15: error: performing pointer subtraction with a null pointer has undefined behavior [-Werror,-Wnull-pointer-subtraction]
            return ((ptr - NULL) & 3) != 0;
    
    Replace this with a normal cast to uintptr_t.
    
    Fixes: 5f5bac8272be ("mmc: Driver for CB710/720 memory card reader (MMC part)")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20210927121408.939246-1-arnd@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf979fa5d0eb8345a48f577a53abc74374fa213f
Author: Nikolay Martynov <mar.kolya@gmail.com>
Date:   Fri Oct 8 12:25:47 2021 +0300

    xhci: Enable trust tx length quirk for Fresco FL11 USB controller
    
    commit ea0f69d8211963c4b2cc1998b86779a500adb502 upstream.
    
    Tested on SD5200T TB3 dock which has Fresco Logic FL1100 USB 3.0 Host
    Controller.
    Before this patch streaming video from USB cam made mouse and keyboard
    connected to the same USB bus unusable. Also video was jerky.
    With this patch streaming video doesn't have any effect on other
    periferals and video is smooth.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20211008092547.3996295-6-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22bcb65ea41072ab5d03c0c6290e04e0df6d09a0
Author: Pavankumar Kondeti <pkondeti@codeaurora.org>
Date:   Fri Oct 8 12:25:46 2021 +0300

    xhci: Fix command ring pointer corruption while aborting a command
    
    commit ff0e50d3564f33b7f4b35cadeabd951d66cfc570 upstream.
    
    The command ring pointer is located at [6:63] bits of the command
    ring control register (CRCR). All the control bits like command stop,
    abort are located at [0:3] bits. While aborting a command, we read the
    CRCR and set the abort bit and write to the CRCR. The read will always
    give command ring pointer as all zeros. So we essentially write only
    the control bits. Since we split the 64 bit write into two 32 bit writes,
    there is a possibility of xHC command ring stopped before the upper
    dword (all zeros) is written. If that happens, xHC updates the upper
    dword of its internal command ring pointer with all zeros. Next time,
    when the command ring is restarted, we see xHC memory access failures.
    Fix this issue by only writing to the lower dword of CRCR where all
    control bits are located.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20211008092547.3996295-5-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f418475b74b8191b389f2eea387823142940fa4d
Author: Filipe Manana <fdmanana@suse.com>
Date:   Fri Oct 1 13:48:18 2021 +0100

    btrfs: check for error when looking up inode during dir entry replay
    
    commit cfd312695b71df04c3a2597859ff12c470d1e2e4 upstream.
    
    At replay_one_name(), we are treating any error from btrfs_lookup_inode()
    as if the inode does not exists. Fix this by checking for an error and
    returning it to the caller.
    
    CC: stable@vger.kernel.org # 4.14+
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d096ad57ebcd136cf59e5242e7040809e75e2fd6
Author: Filipe Manana <fdmanana@suse.com>
Date:   Fri Oct 1 13:52:32 2021 +0100

    btrfs: deal with errors when adding inode reference during log replay
    
    commit 52db77791fe24538c8aa2a183248399715f6b380 upstream.
    
    At __inode_add_ref(), we treating any error returned from
    btrfs_lookup_dir_item() or from btrfs_lookup_dir_index_item() as meaning
    that there is no existing directory entry in the fs/subvolume tree.
    This is not correct since we can get errors such as, for example, -EIO
    when reading extent buffers while searching the fs/subvolume's btree.
    
    So fix that and return the error to the caller when it is not -ENOENT.
    
    CC: stable@vger.kernel.org # 4.14+
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 861e5f03ab5455f2b750097830fa1c14cf4f8cad
Author: Filipe Manana <fdmanana@suse.com>
Date:   Fri Oct 1 13:52:31 2021 +0100

    btrfs: deal with errors when replaying dir entry during log replay
    
    commit e15ac6413745e3def00e663de00aea5a717311c1 upstream.
    
    At replay_one_one(), we are treating any error returned from
    btrfs_lookup_dir_item() or from btrfs_lookup_dir_index_item() as meaning
    that there is no existing directory entry in the fs/subvolume tree.
    This is not correct since we can get errors such as, for example, -EIO
    when reading extent buffers while searching the fs/subvolume's btree.
    
    So fix that and return the error to the caller when it is not -ENOENT.
    
    CC: stable@vger.kernel.org # 4.14+
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 12d9315b0faa56ff788e280a6c2a34fa049a2d89
Author: Roberto Sassu <roberto.sassu@huawei.com>
Date:   Tue Oct 5 14:08:36 2021 +0200

    s390: fix strrchr() implementation
    
    commit 8e0ab8e26b72a80e991c66a8abc16e6c856abe3d upstream.
    
    Fix two problems found in the strrchr() implementation for s390
    architectures: evaluate empty strings (return the string address instead of
    NULL, if '\0' is passed as second argument); evaluate the first character
    of non-empty strings (the current implementation stops at the second).
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable@vger.kernel.org
    Reported-by: Heiko Carstens <hca@linux.ibm.com> (incorrect behavior with empty strings)
    Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
    Link: https://lore.kernel.org/r/20211005120836.60630-1-roberto.sassu@huawei.com
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd49da93654a5979f8fb17dc478a827fea2e5846
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Sep 30 13:41:14 2021 +0200

    ALSA: seq: Fix a potential UAF by wrong private_free call order
    
    commit 1f8763c59c4ec6254d629fe77c0a52220bd907aa upstream.
    
    John Keeping reported and posted a patch for a potential UAF in
    rawmidi sequencer destruction: the snd_rawmidi_dev_seq_free() may be
    called after the associated rawmidi object got already freed.
    After a deeper look, it turned out that the bug is rather the
    incorrect private_free call order for a snd_seq_device.  The
    snd_seq_device private_free gets called at the release callback of the
    sequencer device object, while this was rather expected to be executed
    at the snd_device call chains that runs at the beginning of the whole
    card-free procedure.  It's been broken since the rewrite of
    sequencer-device binding (although it hasn't surfaced because the
    sequencer device release happens usually right along with the card
    device release).
    
    This patch corrects the private_free call to be done in the right
    place, at snd_seq_device_dev_free().
    
    Fixes: 7c37ae5c625a ("ALSA: seq: Rewrite sequencer device binding with standard bus")
    Reported-and-tested-by: John Keeping <john@metanate.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210930114114.8645-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e131e0e880f942f138c4b5e6af944c7ddcd7ec96
Author: Sasha Levin <sashal@kernel.org>
Date:   Fri Feb 5 12:47:02 2021 -0500

    stable: clamp SUBLEVEL in 4.14
    
    Right now SUBLEVEL is overflowing, and some userspace may start treating
    4.14.256 as 4.15. While out of tree modules have different ways of
    extracting the version number (and we're generally ok with breaking
    them), we do care about breaking userspace and it would appear that this
    overflow might do just that.
    
    Our rules around userspace ABI in the stable kernel are pretty simple:
    we don't break it. Thus, while userspace may be checking major/minor, it
    shouldn't be doing anything with sublevel.
    
    This patch applies a big band-aid to the 4.14 kernel in the form of
    clamping the sublevel to 255.
    
    The clamp is done for the purpose of LINUX_VERSION_CODE only, and
    extracting the version number from the Makefile or "make kernelversion"
    will continue to work as intended.
    
    We might need to do it later in newer trees, but maybe we'll have a
    better solution by then, so I'm ignoring that problem for now.
    
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>