commit 5a782a7fe1d98298d5671bdd1528751afdb7db9d
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Oct 27 09:34:01 2021 +0200

    Linux 4.9.288
    
    Link: https://lore.kernel.org/r/20211025190932.542632625@linuxfoundation.org
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cdd0f11420409470186e6612251e1a9bf64132cb
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Wed Sep 8 19:25:59 2021 +0100

    ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
    
    commit 9d417cbe36eee7afdd85c2e871685f8dab7c2dba upstream.
    
    tglx notes:
      This function [futex_detect_cmpxchg] is only needed when an
      architecture has to runtime discover whether the CPU supports it or
      not.  ARM has unconditional support for this, so the obvious thing to
      do is the below.
    
    Fixes linkage failure from Clang randconfigs:
    kernel/futex.o:(.text.fixup+0x5c): relocation truncated to fit: R_ARM_JUMP24 against `.init.text'
    and boot failures for CONFIG_THUMB2_KERNEL.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/325
    
    Comments from Nick Desaulniers:
    
     See-also: 03b8c7b623c8 ("futex: Allow architectures to skip
     futex_atomic_cmpxchg_inatomic() test")
    
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Reported-by: Nathan Chancellor <nathan@kernel.org>
    Suggested-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Cc: stable@vger.kernel.org # v3.14+
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 00b201c43c06689a8626ccbfc0469b79097a2a28
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Mon Oct 18 15:44:12 2021 -0400

    tracing: Have all levels of checks prevent recursion
    
    commit ed65df63a39a3f6ed04f7258de8b6789e5021c18 upstream.
    
    While writing an email explaining the "bit = 0" logic for a discussion on
    making ftrace_test_recursion_trylock() disable preemption, I discovered a
    path that makes the "not do the logic if bit is zero" unsafe.
    
    The recursion logic is done in hot paths like the function tracer. Thus,
    any code executed causes noticeable overhead. Thus, tricks are done to try
    to limit the amount of code executed. This included the recursion testing
    logic.
    
    Having recursion testing is important, as there are many paths that can
    end up in an infinite recursion cycle when tracing every function in the
    kernel. Thus protection is needed to prevent that from happening.
    
    Because it is OK to recurse due to different running context levels (e.g.
    an interrupt preempts a trace, and then a trace occurs in the interrupt
    handler), a set of bits are used to know which context one is in (normal,
    softirq, irq and NMI). If a recursion occurs in the same level, it is
    prevented*.
    
    Then there are infrastructure levels of recursion as well. When more than
    one callback is attached to the same function to trace, it calls a loop
    function to iterate over all the callbacks. Both the callbacks and the
    loop function have recursion protection. The callbacks use the
    "ftrace_test_recursion_trylock()" which has a "function" set of context
    bits to test, and the loop function calls the internal
    trace_test_and_set_recursion() directly, with an "internal" set of bits.
    
    If an architecture does not implement all the features supported by ftrace
    then the callbacks are never called directly, and the loop function is
    called instead, which will implement the features of ftrace.
    
    Since both the loop function and the callbacks do recursion protection, it
    was seemed unnecessary to do it in both locations. Thus, a trick was made
    to have the internal set of recursion bits at a more significant bit
    location than the function bits. Then, if any of the higher bits were set,
    the logic of the function bits could be skipped, as any new recursion
    would first have to go through the loop function.
    
    This is true for architectures that do not support all the ftrace
    features, because all functions being traced must first go through the
    loop function before going to the callbacks. But this is not true for
    architectures that support all the ftrace features. That's because the
    loop function could be called due to two callbacks attached to the same
    function, but then a recursion function inside the callback could be
    called that does not share any other callback, and it will be called
    directly.
    
    i.e.
    
     traced_function_1: [ more than one callback tracing it ]
       call loop_func
    
     loop_func:
       trace_recursion set internal bit
       call callback
    
     callback:
       trace_recursion [ skipped because internal bit is set, return 0 ]
       call traced_function_2
    
     traced_function_2: [ only traced by above callback ]
       call callback
    
     callback:
       trace_recursion [ skipped because internal bit is set, return 0 ]
       call traced_function_2
    
     [ wash, rinse, repeat, BOOM! out of shampoo! ]
    
    Thus, the "bit == 0 skip" trick is not safe, unless the loop function is
    call for all functions.
    
    Since we want to encourage architectures to implement all ftrace features,
    having them slow down due to this extra logic may encourage the
    maintainers to update to the latest ftrace features. And because this
    logic is only safe for them, remove it completely.
    
     [*] There is on layer of recursion that is allowed, and that is to allow
         for the transition between interrupt context (normal -> softirq ->
         irq -> NMI), because a trace may occur before the context update is
         visible to the trace recursion logic.
    
    Link: https://lore.kernel.org/all/609b565a-ed6e-a1da-f025-166691b5d994@linux.alibaba.com/
    Link: https://lkml.kernel.org/r/20211018154412.09fcad3c@gandalf.local.home
    
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>
    Cc: Helge Deller <deller@gmx.de>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Albert Ou <aou@eecs.berkeley.edu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Jiri Kosina <jikos@kernel.org>
    Cc: Miroslav Benes <mbenes@suse.cz>
    Cc: Joe Lawrence <joe.lawrence@redhat.com>
    Cc: Colin Ian King <colin.king@canonical.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Jisheng Zhang <jszhang@kernel.org>
    Cc: =?utf-8?b?546L6LSH?= <yun.wang@linux.alibaba.com>
    Cc: Guo Ren <guoren@kernel.org>
    Cc: stable@vger.kernel.org
    Fixes: edc15cafcbfa3 ("tracing: Avoid unnecessary multiple recursion checks")
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc5f2f3431ced08300e4cb3aff35f1da14c26433
Author: Yanfei Xu <yanfei.xu@windriver.com>
Date:   Sun Sep 26 12:53:13 2021 +0800

    net: mdiobus: Fix memory leak in __mdiobus_register
    
    commit ab609f25d19858513919369ff3d9a63c02cd9e2e upstream.
    
    Once device_register() failed, we should call put_device() to
    decrement reference count for cleanup. Or it will cause memory
    leak.
    
    BUG: memory leak
    unreferenced object 0xffff888114032e00 (size 256):
      comm "kworker/1:3", pid 2960, jiffies 4294943572 (age 15.920s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 08 2e 03 14 81 88 ff ff  ................
        08 2e 03 14 81 88 ff ff 90 76 65 82 ff ff ff ff  .........ve.....
      backtrace:
        [<ffffffff8265cfab>] kmalloc include/linux/slab.h:591 [inline]
        [<ffffffff8265cfab>] kzalloc include/linux/slab.h:721 [inline]
        [<ffffffff8265cfab>] device_private_init drivers/base/core.c:3203 [inline]
        [<ffffffff8265cfab>] device_add+0x89b/0xdf0 drivers/base/core.c:3253
        [<ffffffff828dd643>] __mdiobus_register+0xc3/0x450 drivers/net/phy/mdio_bus.c:537
        [<ffffffff828cb835>] __devm_mdiobus_register+0x75/0xf0 drivers/net/phy/mdio_devres.c:87
        [<ffffffff82b92a00>] ax88772_init_mdio drivers/net/usb/asix_devices.c:676 [inline]
        [<ffffffff82b92a00>] ax88772_bind+0x330/0x480 drivers/net/usb/asix_devices.c:786
        [<ffffffff82baa33f>] usbnet_probe+0x3ff/0xdf0 drivers/net/usb/usbnet.c:1745
        [<ffffffff82c36e17>] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
        [<ffffffff82661d17>] call_driver_probe drivers/base/dd.c:517 [inline]
        [<ffffffff82661d17>] really_probe.part.0+0xe7/0x380 drivers/base/dd.c:596
        [<ffffffff826620bc>] really_probe drivers/base/dd.c:558 [inline]
        [<ffffffff826620bc>] __driver_probe_device+0x10c/0x1e0 drivers/base/dd.c:751
        [<ffffffff826621ba>] driver_probe_device+0x2a/0x120 drivers/base/dd.c:781
        [<ffffffff82662a26>] __device_attach_driver+0xf6/0x140 drivers/base/dd.c:898
        [<ffffffff8265eca7>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:427
        [<ffffffff826625a2>] __device_attach+0x122/0x260 drivers/base/dd.c:969
        [<ffffffff82660916>] bus_probe_device+0xc6/0xe0 drivers/base/bus.c:487
        [<ffffffff8265cd0b>] device_add+0x5fb/0xdf0 drivers/base/core.c:3359
        [<ffffffff82c343b9>] usb_set_configuration+0x9d9/0xb90 drivers/usb/core/message.c:2170
        [<ffffffff82c4473c>] usb_generic_driver_probe+0x8c/0xc0 drivers/usb/core/generic.c:238
    
    BUG: memory leak
    unreferenced object 0xffff888116f06900 (size 32):
      comm "kworker/0:2", pid 2670, jiffies 4294944448 (age 7.160s)
      hex dump (first 32 bytes):
        75 73 62 2d 30 30 31 3a 30 30 33 00 00 00 00 00  usb-001:003.....
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<ffffffff81484516>] kstrdup+0x36/0x70 mm/util.c:60
        [<ffffffff814845a3>] kstrdup_const+0x53/0x80 mm/util.c:83
        [<ffffffff82296ba2>] kvasprintf_const+0xc2/0x110 lib/kasprintf.c:48
        [<ffffffff82358d4b>] kobject_set_name_vargs+0x3b/0xe0 lib/kobject.c:289
        [<ffffffff826575f3>] dev_set_name+0x63/0x90 drivers/base/core.c:3147
        [<ffffffff828dd63b>] __mdiobus_register+0xbb/0x450 drivers/net/phy/mdio_bus.c:535
        [<ffffffff828cb835>] __devm_mdiobus_register+0x75/0xf0 drivers/net/phy/mdio_devres.c:87
        [<ffffffff82b92a00>] ax88772_init_mdio drivers/net/usb/asix_devices.c:676 [inline]
        [<ffffffff82b92a00>] ax88772_bind+0x330/0x480 drivers/net/usb/asix_devices.c:786
        [<ffffffff82baa33f>] usbnet_probe+0x3ff/0xdf0 drivers/net/usb/usbnet.c:1745
        [<ffffffff82c36e17>] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
        [<ffffffff82661d17>] call_driver_probe drivers/base/dd.c:517 [inline]
        [<ffffffff82661d17>] really_probe.part.0+0xe7/0x380 drivers/base/dd.c:596
        [<ffffffff826620bc>] really_probe drivers/base/dd.c:558 [inline]
        [<ffffffff826620bc>] __driver_probe_device+0x10c/0x1e0 drivers/base/dd.c:751
        [<ffffffff826621ba>] driver_probe_device+0x2a/0x120 drivers/base/dd.c:781
        [<ffffffff82662a26>] __device_attach_driver+0xf6/0x140 drivers/base/dd.c:898
        [<ffffffff8265eca7>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:427
        [<ffffffff826625a2>] __device_attach+0x122/0x260 drivers/base/dd.c:969
    
    Reported-by: syzbot+398e7dc692ddbbb4cfec@syzkaller.appspotmail.com
    Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c6855c0542f64ecd4b6bebf845e5118215c5d21
Author: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Date:   Tue Oct 12 17:29:35 2021 +0300

    ALSA: hda: avoid write to STATESTS if controller is in reset
    
    [ Upstream commit b37a15188eae9d4c49c5bb035e0c8d4058e4d9b3 ]
    
    The snd_hdac_bus_reset_link() contains logic to clear STATESTS register
    before performing controller reset. This code dates back to an old
    bugfix in commit e8a7f136f5ed ("[ALSA] hda-intel - Improve HD-audio
    codec probing robustness"). Originally the code was added to
    azx_reset().
    
    The code was moved around in commit a41d122449be ("ALSA: hda - Embed bus
    into controller object") and ended up to snd_hdac_bus_reset_link() and
    called primarily via snd_hdac_bus_init_chip().
    
    The logic to clear STATESTS is correct when snd_hdac_bus_init_chip() is
    called when controller is not in reset. In this case, STATESTS can be
    cleared. This can be useful e.g. when forcing a controller reset to retry
    codec probe. A normal non-power-on reset will not clear the bits.
    
    However, this old logic is problematic when controller is already in
    reset. The HDA specification states that controller must be taken out of
    reset before writing to registers other than GCTL.CRST (1.0a spec,
    3.3.7). The write to STATESTS in snd_hdac_bus_reset_link() will be lost
    if the controller is already in reset per the HDA specification mentioned.
    
    This has been harmless on older hardware. On newer generation of Intel
    PCIe based HDA controllers, if configured to report issues, this write
    will emit an unsupported request error. If ACPI Platform Error Interface
    (APEI) is enabled in kernel, this will end up to kernel log.
    
    Fix the code in snd_hdac_bus_reset_link() to only clear the STATESTS if
    the function is called when controller is not in reset. Otherwise
    clearing the bits is not possible and should be skipped.
    
    Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20211012142935.3731820-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4519bd6b71d5c4aca3776945850d6f98b9e6e204
Author: Prashant Malani <pmalani@chromium.org>
Date:   Tue Sep 28 03:19:34 2021 -0700

    platform/x86: intel_scu_ipc: Update timeout value in comment
    
    [ Upstream commit a0c5814b9933f25ecb6de169483c5b88cf632bca ]
    
    The comment decribing the IPC timeout hadn't been updated when the
    actual timeout was changed from 3 to 5 seconds in
    commit a7d53dbbc70a ("platform/x86: intel_scu_ipc: Increase virtual
    timeout from 3 to 5 seconds") .
    
    Since the value is anyway updated to 10s now, take this opportunity to
    update the value in the comment too.
    
    Signed-off-by: Prashant Malani <pmalani@chromium.org>
    Cc: Benson Leung <bleung@chromium.org>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Link: https://lore.kernel.org/r/20210928101932.2543937-4-pmalani@chromium.org
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef269a8808cb1759245a98a7fe16fceaebad894c
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Sat Oct 9 11:33:49 2021 +0000

    isdn: mISDN: Fix sleeping function called from invalid context
    
    [ Upstream commit 6510e80a0b81b5d814e3aea6297ba42f5e76f73c ]
    
    The driver can call card->isac.release() function from an atomic
    context.
    
    Fix this by calling this function after releasing the lock.
    
    The following log reveals it:
    
    [   44.168226 ] BUG: sleeping function called from invalid context at kernel/workqueue.c:3018
    [   44.168941 ] in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 5475, name: modprobe
    [   44.169574 ] INFO: lockdep is turned off.
    [   44.169899 ] irq event stamp: 0
    [   44.170160 ] hardirqs last  enabled at (0): [<0000000000000000>] 0x0
    [   44.170627 ] hardirqs last disabled at (0): [<ffffffff814209ed>] copy_process+0x132d/0x3e00
    [   44.171240 ] softirqs last  enabled at (0): [<ffffffff81420a1a>] copy_process+0x135a/0x3e00
    [   44.171852 ] softirqs last disabled at (0): [<0000000000000000>] 0x0
    [   44.172318 ] Preemption disabled at:
    [   44.172320 ] [<ffffffffa009b0a9>] nj_release+0x69/0x500 [netjet]
    [   44.174441 ] Call Trace:
    [   44.174630 ]  dump_stack_lvl+0xa8/0xd1
    [   44.174912 ]  dump_stack+0x15/0x17
    [   44.175166 ]  ___might_sleep+0x3a2/0x510
    [   44.175459 ]  ? nj_release+0x69/0x500 [netjet]
    [   44.175791 ]  __might_sleep+0x82/0xe0
    [   44.176063 ]  ? start_flush_work+0x20/0x7b0
    [   44.176375 ]  start_flush_work+0x33/0x7b0
    [   44.176672 ]  ? trace_irq_enable_rcuidle+0x85/0x170
    [   44.177034 ]  ? kasan_quarantine_put+0xaa/0x1f0
    [   44.177372 ]  ? kasan_quarantine_put+0xaa/0x1f0
    [   44.177711 ]  __flush_work+0x11a/0x1a0
    [   44.177991 ]  ? flush_work+0x20/0x20
    [   44.178257 ]  ? lock_release+0x13c/0x8f0
    [   44.178550 ]  ? __kasan_check_write+0x14/0x20
    [   44.178872 ]  ? do_raw_spin_lock+0x148/0x360
    [   44.179187 ]  ? read_lock_is_recursive+0x20/0x20
    [   44.179530 ]  ? __kasan_check_read+0x11/0x20
    [   44.179846 ]  ? do_raw_spin_unlock+0x55/0x900
    [   44.180168 ]  ? ____kasan_slab_free+0x116/0x140
    [   44.180505 ]  ? _raw_spin_unlock_irqrestore+0x41/0x60
    [   44.180878 ]  ? skb_queue_purge+0x1a3/0x1c0
    [   44.181189 ]  ? kfree+0x13e/0x290
    [   44.181438 ]  flush_work+0x17/0x20
    [   44.181695 ]  mISDN_freedchannel+0xe8/0x100
    [   44.182006 ]  isac_release+0x210/0x260 [mISDNipac]
    [   44.182366 ]  nj_release+0xf6/0x500 [netjet]
    [   44.182685 ]  nj_remove+0x48/0x70 [netjet]
    [   44.182989 ]  pci_device_remove+0xa9/0x250
    
    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 fb3ec0d58b29986d2ef171f8370e3ac07506c780
Author: Herve Codina <herve.codina@bootlin.com>
Date:   Fri Oct 8 12:34:40 2021 +0200

    ARM: dts: spear3xx: Fix gmac node
    
    [ Upstream commit 6636fec29cdf6665bd219564609e8651f6ddc142 ]
    
    On SPEAr3xx, ethernet driver is not compatible with the SPEAr600
    one.
    Indeed, SPEAr3xx uses an earlier version of this IP (v3.40) and
    needs some driver tuning compare to SPEAr600.
    
    The v3.40 IP support was added to stmmac driver and this patch
    fixes this issue and use the correct compatible string for
    SPEAr3xx
    
    Signed-off-by: Herve Codina <herve.codina@bootlin.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a0dfc9d1956553a8228970a842af2b4e5e705a30
Author: Vegard Nossum <vegard.nossum@gmail.com>
Date:   Tue Oct 5 22:54:54 2021 +0200

    netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
    
    commit 77076934afdcd46516caf18ed88b2f88025c9ddb upstream.
    
    This option, NF_CONNTRACK_SECMARK, is a bool, so it can never be 'm'.
    
    Fixes: 33b8e77605620 ("[NETFILTER]: Add CONFIG_NETFILTER_ADVANCED option")
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 24219a977bfe3d658687e45615c70998acdbac5a
Author: Xiaolong Huang <butterflyhuangxx@gmail.com>
Date:   Fri Oct 8 14:58:30 2021 +0800

    isdn: cpai: check ctr->cnr to avoid array index out of bound
    
    commit 1f3e2e97c003f80c4b087092b225c8787ff91e4d upstream.
    
    The cmtp_add_connection() would add a cmtp session to a controller
    and run a kernel thread to process cmtp.
    
            __module_get(THIS_MODULE);
            session->task = kthread_run(cmtp_session, session, "kcmtpd_ctr_%d",
                                                                    session->num);
    
    During this process, the kernel thread would call detach_capi_ctr()
    to detach a register controller. if the controller
    was not attached yet, detach_capi_ctr() would
    trigger an array-index-out-bounds bug.
    
    [   46.866069][ T6479] UBSAN: array-index-out-of-bounds in
    drivers/isdn/capi/kcapi.c:483:21
    [   46.867196][ T6479] index -1 is out of range for type 'capi_ctr *[32]'
    [   46.867982][ T6479] CPU: 1 PID: 6479 Comm: kcmtpd_ctr_0 Not tainted
    5.15.0-rc2+ #8
    [   46.869002][ T6479] Hardware name: QEMU Standard PC (i440FX + PIIX,
    1996), BIOS 1.14.0-2 04/01/2014
    [   46.870107][ T6479] Call Trace:
    [   46.870473][ T6479]  dump_stack_lvl+0x57/0x7d
    [   46.870974][ T6479]  ubsan_epilogue+0x5/0x40
    [   46.871458][ T6479]  __ubsan_handle_out_of_bounds.cold+0x43/0x48
    [   46.872135][ T6479]  detach_capi_ctr+0x64/0xc0
    [   46.872639][ T6479]  cmtp_session+0x5c8/0x5d0
    [   46.873131][ T6479]  ? __init_waitqueue_head+0x60/0x60
    [   46.873712][ T6479]  ? cmtp_add_msgpart+0x120/0x120
    [   46.874256][ T6479]  kthread+0x147/0x170
    [   46.874709][ T6479]  ? set_kthread_struct+0x40/0x40
    [   46.875248][ T6479]  ret_from_fork+0x1f/0x30
    [   46.875773][ T6479]
    
    Signed-off-by: Xiaolong Huang <butterflyhuangxx@gmail.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20211008065830.305057-1-butterflyhuangxx@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a44904ce83ebcb1281b04c8d37ad7f8ab537a3d
Author: Lin Ma <linma@zju.edu.cn>
Date:   Thu Oct 7 19:44:30 2021 +0200

    nfc: nci: fix the UAF of rf_conn_info object
    
    commit 1b1499a817c90fd1ce9453a2c98d2a01cca0e775 upstream.
    
    The nci_core_conn_close_rsp_packet() function will release the conn_info
    with given conn_id. However, it needs to set the rf_conn_info to NULL to
    prevent other routines like nci_rf_intf_activated_ntf_packet() to trigger
    the UAF.
    
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: Lin Ma <linma@zju.edu.cn>
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b6ce310023ede06eb0eebe7f2133e0df87e6cbd
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 6 16:17:12 2021 +0200

    ASoC: DAPM: Fix missing kctl change notifications
    
    commit 5af82c81b2c49cfb1cad84d9eb6eab0e3d1c4842 upstream.
    
    The put callback of a kcontrol is supposed to return 1 when the value
    is changed, and this will be notified to user-space.  However, some
    DAPM kcontrols always return 0 (except for errors), hence the
    user-space misses the update of a control value.
    
    This patch corrects the behavior by properly returning 1 when the
    value gets updated.
    
    Reported-and-tested-by: Hans de Goede <hdegoede@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://lore.kernel.org/r/20211006141712.2439-1-tiwai@suse.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3200b40133d8b5c114665c3e92744ce5eb4b104
Author: Brendan Grieve <brendan@grieve.com.au>
Date:   Fri Oct 15 10:53:35 2021 +0800

    ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
    
    commit 3c414eb65c294719a91a746260085363413f91c1 upstream.
    
    As per discussion at: https://github.com/szszoke/sennheiser-gsp670-pulseaudio-profile/issues/13
    
    The GSP670 has 2 playback and 1 recording device that by default are
    detected in an incompatible order for alsa. This may have been done to make
    it compatible for the console by the manufacturer and only affects the
    latest firmware which uses its own ID.
    
    This quirk will resolve this by reordering the channels.
    
    Signed-off-by: Brendan Grieve <brendan@grieve.com.au>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20211015025335.196592-1-brendan@grieve.com.au
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52ed5a196b1146e0368e95edc23c38fa1b50825a
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Mon Oct 18 15:16:12 2021 -0700

    vfs: check fd has read access in kernel_read_file_from_fd()
    
    commit 032146cda85566abcd1c4884d9d23e4e30a07e9a upstream.
    
    If we open a file without read access and then pass the fd to a syscall
    whose implementation calls kernel_read_file_from_fd(), we get a warning
    from __kernel_read():
    
            if (WARN_ON_ONCE(!(file->f_mode & FMODE_READ)))
    
    This currently affects both finit_module() and kexec_file_load(), but it
    could affect other syscalls in the future.
    
    Link: https://lkml.kernel.org/r/20211007220110.600005-1-willy@infradead.org
    Fixes: b844f0ecbc56 ("vfs: define kernel_copy_file_from_fd()")
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Reported-by: Hao Sun <sunhao.th@gmail.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Mimi Zohar <zohar@linux.ibm.com>
    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 603cc38034f6c57608fa18211fd01f8f4cf4e859
Author: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Date:   Mon Oct 18 15:16:09 2021 -0700

    elfcore: correct reference to CONFIG_UML
    
    commit b0e901280d9860a0a35055f220e8e457f300f40a upstream.
    
    Commit 6e7b64b9dd6d ("elfcore: fix building with clang") introduces
    special handling for two architectures, ia64 and User Mode Linux.
    However, the wrong name, i.e., CONFIG_UM, for the intended Kconfig
    symbol for User-Mode Linux was used.
    
    Although the directory for User Mode Linux is ./arch/um; the Kconfig
    symbol for this architecture is called CONFIG_UML.
    
    Luckily, ./scripts/checkkconfigsymbols.py warns on non-existing configs:
    
      UM
      Referencing files: include/linux/elfcore.h
      Similar symbols: UML, NUMA
    
    Correct the name of the config to the intended one.
    
    [akpm@linux-foundation.org: fix um/x86_64, per Catalin]
      Link: https://lkml.kernel.org/r/20211006181119.2851441-1-catalin.marinas@arm.com
      Link: https://lkml.kernel.org/r/YV6pejGzLy5ppEpt@arm.com
    
    Link: https://lkml.kernel.org/r/20211006082209.417-1-lukas.bulwahn@gmail.com
    Fixes: 6e7b64b9dd6d ("elfcore: fix building with clang")
    Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Barret Rhoden <brho@google.com>
    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 4b74ddcc22ee6455946e80a9c4808801f8f8561e
Author: Valentin Vidic <vvidic@valentin-vidic.from.hr>
Date:   Mon Oct 18 15:15:42 2021 -0700

    ocfs2: mount fails with buffer overflow in strlen
    
    commit b15fa9224e6e1239414525d8d556d824701849fc upstream.
    
    Starting with kernel 5.11 built with CONFIG_FORTIFY_SOURCE mouting an
    ocfs2 filesystem with either o2cb or pcmk cluster stack fails with the
    trace below.  Problem seems to be that strings for cluster stack and
    cluster name are not guaranteed to be null terminated in the disk
    representation, while strlcpy assumes that the source string is always
    null terminated.  This causes a read outside of the source string
    triggering the buffer overflow detection.
    
      detected buffer overflow in strlen
      ------------[ cut here ]------------
      kernel BUG at lib/string.c:1149!
      invalid opcode: 0000 [#1] SMP PTI
      CPU: 1 PID: 910 Comm: mount.ocfs2 Not tainted 5.14.0-1-amd64 #1
        Debian 5.14.6-2
      RIP: 0010:fortify_panic+0xf/0x11
      ...
      Call Trace:
       ocfs2_initialize_super.isra.0.cold+0xc/0x18 [ocfs2]
       ocfs2_fill_super+0x359/0x19b0 [ocfs2]
       mount_bdev+0x185/0x1b0
       legacy_get_tree+0x27/0x40
       vfs_get_tree+0x25/0xb0
       path_mount+0x454/0xa20
       __x64_sys_mount+0x103/0x140
       do_syscall_64+0x3b/0xc0
       entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Link: https://lkml.kernel.org/r/20210929180654.32460-1-vvidic@valentin-vidic.from.hr
    Signed-off-by: Valentin Vidic <vvidic@valentin-vidic.from.hr>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Gang He <ghe@suse.com>
    Cc: Jun Piao <piaojun@huawei.com>
    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 560edd14de2bf9dbc0129681eeb4d5ef87cc105f
Author: Jan Kara <jack@suse.cz>
Date:   Mon Oct 18 15:15:39 2021 -0700

    ocfs2: fix data corruption after conversion from inline format
    
    commit 5314454ea3ff6fc746eaf71b9a7ceebed52888fa upstream.
    
    Commit 6dbf7bb55598 ("fs: Don't invalidate page buffers in
    block_write_full_page()") uncovered a latent bug in ocfs2 conversion
    from inline inode format to a normal inode format.
    
    The code in ocfs2_convert_inline_data_to_extents() attempts to zero out
    the whole cluster allocated for file data by grabbing, zeroing, and
    dirtying all pages covering this cluster.  However these pages are
    beyond i_size, thus writeback code generally ignores these dirty pages
    and no blocks were ever actually zeroed on the disk.
    
    This oversight was fixed by commit 693c241a5f6a ("ocfs2: No need to zero
    pages past i_size.") for standard ocfs2 write path, inline conversion
    path was apparently forgotten; the commit log also has a reasoning why
    the zeroing actually is not needed.
    
    After commit 6dbf7bb55598, things became worse as writeback code stopped
    invalidating buffers on pages beyond i_size and thus these pages end up
    with clean PageDirty bit but with buffers attached to these pages being
    still dirty.  So when a file is converted from inline format, then
    writeback triggers, and then the file is grown so that these pages
    become valid, the invalid dirtiness state is preserved,
    mark_buffer_dirty() does nothing on these pages (buffers are already
    dirty) but page is never written back because it is clean.  So data
    written to these pages is lost once pages are reclaimed.
    
    Simple reproducer for the problem is:
    
      xfs_io -f -c "pwrite 0 2000" -c "pwrite 2000 2000" -c "fsync" \
        -c "pwrite 4000 2000" ocfs2_file
    
    After unmounting and mounting the fs again, you can observe that end of
    'ocfs2_file' has lost its contents.
    
    Fix the problem by not doing the pointless zeroing during conversion
    from inline format similarly as in the standard write path.
    
    [akpm@linux-foundation.org: fix whitespace, per Joseph]
    
    Link: https://lkml.kernel.org/r/20210930095405.21433-1-jack@suse.cz
    Fixes: 6dbf7bb55598 ("fs: Don't invalidate page buffers in block_write_full_page()")
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Tested-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Acked-by: Gang He <ghe@suse.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: "Markov, Andrey" <Markov.Andrey@Dell.com>
    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 447d44cd2f67a20b596ede3ca3cd67086dfd9ca9
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Thu Oct 14 06:28:33 2021 +0000

    can: peak_pci: peak_pci_remove(): fix UAF
    
    commit 949fe9b35570361bc6ee2652f89a0561b26eec98 upstream.
    
    When remove the module peek_pci, referencing 'chan' again after
    releasing 'dev' will cause UAF.
    
    Fix this by releasing 'dev' later.
    
    The following log reveals it:
    
    [   35.961814 ] BUG: KASAN: use-after-free in peak_pci_remove+0x16f/0x270 [peak_pci]
    [   35.963414 ] Read of size 8 at addr ffff888136998ee8 by task modprobe/5537
    [   35.965513 ] Call Trace:
    [   35.965718 ]  dump_stack_lvl+0xa8/0xd1
    [   35.966028 ]  print_address_description+0x87/0x3b0
    [   35.966420 ]  kasan_report+0x172/0x1c0
    [   35.966725 ]  ? peak_pci_remove+0x16f/0x270 [peak_pci]
    [   35.967137 ]  ? trace_irq_enable_rcuidle+0x10/0x170
    [   35.967529 ]  ? peak_pci_remove+0x16f/0x270 [peak_pci]
    [   35.967945 ]  __asan_report_load8_noabort+0x14/0x20
    [   35.968346 ]  peak_pci_remove+0x16f/0x270 [peak_pci]
    [   35.968752 ]  pci_device_remove+0xa9/0x250
    
    Fixes: e6d9c80b7ca1 ("can: peak_pci: add support of some new PEAK-System PCI cards")
    Link: https://lore.kernel.org/all/1634192913-15639-1-git-send-email-zheyuma97@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4249f214670774b1f1b7e0a7d862771c460a6fc0
Author: Stephane Grosjean <s.grosjean@peak-system.com>
Date:   Wed Sep 29 16:21:10 2021 +0200

    can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification
    
    commit 3d031abc7e7249573148871180c28ecedb5e27df upstream.
    
    This corrects the lack of notification of a return to ERROR_ACTIVE
    state for USB - CANFD devices from PEAK-System.
    
    Fixes: 0a25e1f4f185 ("can: peak_usb: add support for PEAK new CANFD USB adapters")
    Link: https://lore.kernel.org/all/20210929142111.55757-1-s.grosjean@peak-system.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Stephane Grosjean <s.grosjean@peak-system.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94beba45fc983a49f5de7c9b90ea5687b5e7e4b4
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Fri Sep 24 16:55:56 2021 +0900

    can: rcar_can: fix suspend/resume
    
    commit f7c05c3987dcfde9a4e8c2d533db013fabebca0d upstream.
    
    If the driver was not opened, rcar_can_suspend() should not call
    clk_disable() because the clock was not enabled.
    
    Fixes: fd1159318e55 ("can: add Renesas R-Car CAN driver")
    Link: https://lore.kernel.org/all/20210924075556.223685-1-yoshihiro.shimoda.uh@renesas.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Tested-by: Ayumi Nakamichi <ayumi.nakamichi.kf@renesas.com>
    Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu>
    Tested-by: Biju Das <biju.das.jz@bp.renesas.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ebae306239a6f02a654c03565e0fa50aedfa0eb6
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Mon Oct 4 00:56:06 2021 -0700

    NIOS2: irqflags: rename a redefined register name
    
    [ Upstream commit 4cce60f15c04d69eff6ffc539ab09137dbe15070 ]
    
    Both arch/nios2/ and drivers/mmc/host/tmio_mmc.c define a macro
    with the name "CTL_STATUS". Change the one in arch/nios2/ to be
    "CTL_FSTATUS" (flags status) to eliminate the build warning.
    
    In file included from ../drivers/mmc/host/tmio_mmc.c:22:
    drivers/mmc/host/tmio_mmc.h:31: warning: "CTL_STATUS" redefined
       31 | #define CTL_STATUS 0x1c
    arch/nios2/include/asm/registers.h:14: note: this is the location of the previous definition
       14 | #define CTL_STATUS      0
    
    Fixes: b31ebd8055ea ("nios2: Nios2 registers")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Dinh Nguyen <dinguyen@kernel.org>
    Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb9094f4088ac8b5a9c90494c48148d6d7a6c579
Author: Antoine Tenart <atenart@kernel.org>
Date:   Tue Oct 12 16:54:37 2021 +0200

    netfilter: ipvs: make global sysctl readonly in non-init netns
    
    [ Upstream commit 174c376278949c44aad89c514a6b5db6cee8db59 ]
    
    Because the data pointer of net/ipv4/vs/debug_level is not updated per
    netns, it must be marked as read-only in non-init netns.
    
    Fixes: c6d2d445d8de ("IPVS: netns, final patch enabling network name space.")
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Acked-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cdf486aa6a2add843b805672e5af4062ff9e90a4
Author: Benjamin Coddington <bcodding@redhat.com>
Date:   Wed Oct 6 13:20:44 2021 -0400

    NFSD: Keep existing listeners on portlist error
    
    [ Upstream commit c20106944eb679fa3ab7e686fe5f6ba30fbc51e5 ]
    
    If nfsd has existing listening sockets without any processes, then an error
    returned from svc_create_xprt() for an additional transport will remove
    those existing listeners.  We're seeing this in practice when userspace
    attempts to create rpcrdma transports without having the rpcrdma modules
    present before creating nfsd kernel processes.  Fix this by checking for
    existing sockets before calling nfsd_destroy().
    
    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f40e21ef9da3ca9b75a37feac3ffa2125813a268
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Sun Aug 1 10:36:59 2021 -0700

    xtensa: xtfpga: Try software restart before simulating CPU reset
    
    [ Upstream commit 012e974501a270d8dfd4ee2039e1fdf7579c907e ]
    
    Rebooting xtensa images loaded with the '-kernel' option in qemu does
    not work. When executing a reboot command, the qemu session either hangs
    or experiences an endless sequence of error messages.
    
      Kernel panic - not syncing: Unrecoverable error in exception handler
    
    Reset code jumps to the CPU restart address, but Linux can not recover
    from there because code and data in the kernel init sections have been
    discarded and overwritten at this point.
    
    XTFPGA platforms have a means to reset the CPU by writing 0xdead into a
    specific FPGA IO address. When used in QEMU the kernel image loaded with
    the '-kernel' option gets restored to its original state allowing the
    machine to boot successfully.
    
    Use that mechanism to attempt a platform reset. If it does not work,
    fall back to the existing mechanism.
    
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4722f7320a1f8758751da141c81e73a36031f27d
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Tue Oct 5 11:36:01 2021 -0700

    xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
    
    [ Upstream commit f3d7c2cdf6dc0d5402ec29c3673893b3542c5ad1 ]
    
    Use platform data to initialize xtfpga device drivers when CONFIG_USE_OF
    is not selected. This fixes xtfpga networking when CONFIG_USE_OF is not
    selected but CONFIG_OF is.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4b345af2be6c2390dc69513017e44518ad639598
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 f500c9b64efa6ca7cbe89e2e6468084312e050d9
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 bacac7d26849c8e903ceb7466d9ce8dc3c2797eb
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 09773d592211a83775cbd582d8e621c08b214673
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 88c890b0b9a1fb9fcd01c61ada515e8b636c34f9
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 a67d47e32c91e2b10402cb8c081774cbf08edb2e
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 9285dbe89682b0892cd5e45d7728484779b3a8d2
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 8769315769d227edf1b26fd37f62498ffa571337
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 f043fac1133a6c5ef960a8422c0f6dd711dee462
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 1219abd691ea56157993f1bfb5818f88afce29cc
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 15e1de09debc5844e7a4776cb7ea9eed8de3196f
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 2fb536ba49670127c12ed2f8c9fef9c98d481a1b
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 6dfa2e95295e584873696c18a841b4cf166b447f
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 fe394514fbbceccb5f168f178addb3644b1b0e8c
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 223ff2e8065515d03ac041f89e1e87d394f51471
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 60df06bbdf497e37ed25ad40572c362e5b0998df
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 cf39d1c69ff4e5145edf65754810dcd2800e683f
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 99070c477b53659b76185d6428437c7abe913c41
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 d9a6cd99e29ce45f5a494101b65ca34ab8affe4f
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 1882965c67475bbc4448b1d03051e3f9f6746042
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 508fe9a16f4fa52e42a541bfcf41a0af247ab67b
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 ca3cf605901a17ad4cae5a4fd524d29849085c3c
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 bb39999b41356e81f9ac425ebff411c576930dce
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 b476b7ea7a59a9d90dc51869caffad93368e2e18
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 c6dbb65de6a2864e19058b15a2d8a01485925cf6
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>