commit fc074db66f4e239b9138205560736f5268f30d45
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jun 3 08:22:09 2021 +0200

    Linux 4.4.271
    
    Link: https://lore.kernel.org/r/20210531130635.070310929@linuxfoundation.org
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Jason Self <jason@bluehome.net>
    Link: https://lore.kernel.org/r/20210601103052.063407107@linuxfoundation.org
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 546d961c339339c07d02d6babf3a5673273d0b1f
Author: Jan Beulich <JBeulich@suse.com>
Date:   Mon Feb 26 04:11:21 2018 -0700

    x86/entry/64: Add instruction suffix
    
    commit a368d7fd2a3c6babb852fe974018dd97916bcd3b upstream.
    
    Omitting suffixes from instructions in AT&T mode is bad practice when
    operand size cannot be determined by the assembler from register
    operands, and is likely going to be warned about by upstream gas in the
    future (mine does already). Add the single missing suffix here.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lkml.kernel.org/r/5A93F96902000078001ABAC8@prv-mh.provo.novell.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eea4429288d1302f8699e78cab22cbcccc351f28
Author: Jan Beulich <JBeulich@suse.com>
Date:   Mon Feb 26 04:11:51 2018 -0700

    x86/asm: Add instruction suffixes to bitops
    
    commit 22636f8c9511245cb3c8412039f1dd95afb3aa59 upstream.
    
    Omitting suffixes from instructions in AT&T mode is bad practice when
    operand size cannot be determined by the assembler from register
    operands, and is likely going to be warned about by upstream gas in the
    future (mine does already). Add the missing suffixes here. Note that for
    64-bit this means some operations change from being 32-bit to 64-bit.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lkml.kernel.org/r/5A93F98702000078001ABACC@prv-mh.provo.novell.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5be66eab0bbcaf54857db40b1bbbe3b127631800
Author: H. Peter Anvin <hpa@zytor.com>
Date:   Wed Jun 8 12:38:39 2016 -0700

    x86, asm: change the GEN_*_RMWcc() macros to not quote the condition
    
    commit 18fe58229d80c7f4f138a07e84ba608e1ebd232b upstream.
    
    Change the lexical defintion of the GEN_*_RMWcc() macros to not take
    the condition code as a quoted string.  This will help support
    changing them to use the new __GCC_ASM_FLAG_OUTPUTS__ feature in a
    subsequent patch.
    
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Link: http://lkml.kernel.org/r/1465414726-197858-4-git-send-email-hpa@linux.intel.com
    Reviewed-by: Andy Lutomirski <luto@kernel.org>
    Reviewed-by: Borislav Petkov <bp@suse.de>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1552bf8b8b7c3f752e21d13a0cb211fce0cf1e1
Author: Chunfeng Yun <chunfeng.yun@mediatek.com>
Date:   Sat Apr 10 09:20:45 2021 +0800

    usb: core: reduce power-on-good delay time of root hub
    
    commit 90d28fb53d4a51299ff324dede015d5cb11b88a2 upstream.
    
    Return the exactly delay time given by root hub descriptor,
    this helps to reduce resume time etc.
    
    Due to the root hub descriptor is usually provided by the host
    controller driver, if there is compatibility for a root hub,
    we can fix it easily without affect other root hub
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
    Link: https://lore.kernel.org/r/1618017645-12259-1-git-send-email-chunfeng.yun@mediatek.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a7dc1c981038bbd5f7379148d7fd8821d2a7b9ae
Author: Lin Ma <linma@zju.edu.cn>
Date:   Mon Apr 12 19:17:57 2021 +0800

    bluetooth: eliminate the potential race condition when removing the HCI controller
    
    commit e2cb6b891ad2b8caa9131e3be70f45243df82a80 upstream.
    
    There is a possible race condition vulnerability between issuing a HCI
    command and removing the cont.  Specifically, functions hci_req_sync()
    and hci_dev_do_close() can race each other like below:
    
    thread-A in hci_req_sync()      |   thread-B in hci_dev_do_close()
                                    |   hci_req_sync_lock(hdev);
    test_bit(HCI_UP, &hdev->flags); |
    ...                             |   test_and_clear_bit(HCI_UP, &hdev->flags)
    hci_req_sync_lock(hdev);        |
                                    |
    In this commit we alter the sequence in function hci_req_sync(). Hence,
    the thread-A cannot issue th.
    
    Signed-off-by: Lin Ma <linma@zju.edu.cn>
    Cc: Marcel Holtmann <marcel@holtmann.org>
    Fixes: 7c6a329e4447 ("[Bluetooth] Fix regression from using default link policy")
    [iwamatsu: adjust filename, arguments of __hci_req_sync(). CVE-2021-32399]
    Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7dba431185d9e07be7b1d125b3290c5ee4d80525
Author: Mike Kravetz <mike.kravetz@oracle.com>
Date:   Sat Nov 30 17:56:30 2019 -0800

    hugetlbfs: hugetlb_fault_mutex_hash() cleanup
    
    commit 552546366a30d88bd1d6f5efe848b2ab50fd57e5 upstream.
    
    A new clang diagnostic (-Wsizeof-array-div) warns about the calculation
    to determine the number of u32's in an array of unsigned longs.
    Suppress warning by adding parentheses.
    
    While looking at the above issue, noticed that the 'address' parameter
    to hugetlb_fault_mutex_hash is no longer used.  So, remove it from the
    definition and all callers.
    
    No functional change.
    
    Link: http://lkml.kernel.org/r/20190919011847.18400-1-mike.kravetz@oracle.com
    Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
    Reported-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Davidlohr Bueso <dbueso@suse.de>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Ilie Halip <ilie.halip@gmail.com>
    Cc: David Bolvansky <david.bolvansky@gmail.com>
    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 78de841caf3c2f0e45e896a4f7e437a57a4c70d7
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun May 16 17:54:17 2021 -0700

    MIPS: ralink: export rt_sysc_membase for rt2880_wdt.c
    
    [ Upstream commit fef532ea0cd871afab7d9a7b6e9da99ac2c24371 ]
    
    rt2880_wdt.c uses (well, attempts to use) rt_sysc_membase. However,
    when this watchdog driver is built as a loadable module, there is a
    build error since the rt_sysc_membase symbol is not exported.
    Export it to quell the build error.
    
    ERROR: modpost: "rt_sysc_membase" [drivers/watchdog/rt2880_wdt.ko] undefined!
    
    Fixes: 473cf939ff34 ("watchdog: add ralink watchdog driver")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Wim Van Sebroeck <wim@iguana.be>
    Cc: John Crispin <john@phrozen.org>
    Cc: linux-mips@vger.kernel.org
    Cc: linux-watchdog@vger.kernel.org
    Acked-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 72f0a9bbbffb450b1020200b4c17ea5bac66ad79
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun May 16 17:01:08 2021 -0700

    MIPS: alchemy: xxs1500: add gpio-au1000.h header file
    
    [ Upstream commit ff4cff962a7eedc73e54b5096693da7f86c61346 ]
    
    board-xxs1500.c references 2 functions without declaring them, so add
    the header file to placate the build.
    
    ../arch/mips/alchemy/board-xxs1500.c: In function 'board_setup':
    ../arch/mips/alchemy/board-xxs1500.c:56:2: error: implicit declaration of function 'alchemy_gpio1_input_enable' [-Werror=implicit-function-declaration]
       56 |  alchemy_gpio1_input_enable();
    ../arch/mips/alchemy/board-xxs1500.c:57:2: error: implicit declaration of function 'alchemy_gpio2_enable'; did you mean 'alchemy_uart_enable'? [-Werror=implicit-function-declaration]
       57 |  alchemy_gpio2_enable();
    
    Fixes: 8e026910fcd4 ("MIPS: Alchemy: merge GPR/MTX-1/XXS1500 board code into single files")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: linux-mips@vger.kernel.org
    Cc: Manuel Lauss <manuel.lauss@googlemail.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Acked-by: Manuel Lauss <manuel.lauss@gmail.com>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3d0caf72b35605504abe36936fec7a241645b21
Author: Taehee Yoo <ap420073@gmail.com>
Date:   Sun May 23 14:38:53 2021 +0000

    sch_dsmark: fix a NULL deref in qdisc_reset()
    
    [ Upstream commit 9b76eade16423ef06829cccfe3e100cfce31afcd ]
    
    If Qdisc_ops->init() is failed, Qdisc_ops->reset() would be called.
    When dsmark_init(Qdisc_ops->init()) is failed, it possibly doesn't
    initialize dsmark_qdisc_data->q. But dsmark_reset(Qdisc_ops->reset())
    uses dsmark_qdisc_data->q pointer wihtout any null checking.
    So, panic would occur.
    
    Test commands:
        sysctl net.core.default_qdisc=dsmark -w
        ip link add dummy0 type dummy
        ip link add vw0 link dummy0 type virt_wifi
        ip link set vw0 up
    
    Splat looks like:
    KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]
    CPU: 3 PID: 684 Comm: ip Not tainted 5.12.0+ #910
    RIP: 0010:qdisc_reset+0x2b/0x680
    Code: 1f 44 00 00 48 b8 00 00 00 00 00 fc ff df 41 57 41 56 41 55 41 54
    55 48 89 fd 48 83 c7 18 53 48 89 fa 48 c1 ea 03 48 83 ec 20 <80> 3c 02
    00 0f 85 09 06 00 00 4c 8b 65 18 0f 1f 44 00 00 65 8b 1d
    RSP: 0018:ffff88800fda6bf8 EFLAGS: 00010282
    RAX: dffffc0000000000 RBX: ffff8880050ed800 RCX: 0000000000000000
    RDX: 0000000000000003 RSI: ffffffff99e34100 RDI: 0000000000000018
    RBP: 0000000000000000 R08: fffffbfff346b553 R09: fffffbfff346b553
    R10: 0000000000000001 R11: fffffbfff346b552 R12: ffffffffc0824940
    R13: ffff888109e83800 R14: 00000000ffffffff R15: ffffffffc08249e0
    FS:  00007f5042287680(0000) GS:ffff888119800000(0000)
    knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000055ae1f4dbd90 CR3: 0000000006760002 CR4: 00000000003706e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     ? rcu_read_lock_bh_held+0xa0/0xa0
     dsmark_reset+0x3d/0xf0 [sch_dsmark]
     qdisc_reset+0xa9/0x680
     qdisc_destroy+0x84/0x370
     qdisc_create_dflt+0x1fe/0x380
     attach_one_default_qdisc.constprop.41+0xa4/0x180
     dev_activate+0x4d5/0x8c0
     ? __dev_open+0x268/0x390
     __dev_open+0x270/0x390
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fb9d5418d3ac2cd3ed40e6dc65752ee982f7054b
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed May 19 17:20:27 2021 +0300

    scsi: libsas: Use _safe() loop in sas_resume_port()
    
    [ Upstream commit 8c7e7b8486cda21269d393245883c5e4737d5ee7 ]
    
    If sas_notify_lldd_dev_found() fails then this code calls:
    
            sas_unregister_dev(port, dev);
    
    which removes "dev", our list iterator, from the list.  This could lead to
    an endless loop.  We need to use list_for_each_entry_safe().
    
    Link: https://lore.kernel.org/r/YKUeq6gwfGcvvhty@mwanda
    Fixes: 303694eeee5e ("[SCSI] libsas: suspend / resume support")
    Reviewed-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0d1a943202acab4aeadd350fa2c7e867ee94f3b9
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed May 19 17:16:50 2021 +0300

    staging: emxx_udc: fix loop in _nbu2ss_nuke()
    
    [ Upstream commit e0112a7c9e847ada15a631b88e279d547e8f26a7 ]
    
    The _nbu2ss_ep_done() function calls:
    
            list_del_init(&req->queue);
    
    which means that the loop will never exit.
    
    Fixes: ca3d253eb967 ("Staging: emxx_udc: Iterate list using list_for_each_entry")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/YKUd0sDyjm/lkJfJ@mwanda
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0e35b7457b7b6e73ffeaaca1a577fdf1af0feca1
Author: Taehee Yoo <ap420073@gmail.com>
Date:   Sun May 16 14:44:42 2021 +0000

    mld: fix panic in mld_newpack()
    
    [ Upstream commit 020ef930b826d21c5446fdc9db80fd72a791bc21 ]
    
    mld_newpack() doesn't allow to allocate high order page,
    only order-0 allocation is allowed.
    If headroom size is too large, a kernel panic could occur in skb_put().
    
    Test commands:
        ip netns del A
        ip netns del B
        ip netns add A
        ip netns add B
        ip link add veth0 type veth peer name veth1
        ip link set veth0 netns A
        ip link set veth1 netns B
    
        ip netns exec A ip link set lo up
        ip netns exec A ip link set veth0 up
        ip netns exec A ip -6 a a 2001:db8:0::1/64 dev veth0
        ip netns exec B ip link set lo up
        ip netns exec B ip link set veth1 up
        ip netns exec B ip -6 a a 2001:db8:0::2/64 dev veth1
        for i in {1..99}
        do
            let A=$i-1
            ip netns exec A ip link add ip6gre$i type ip6gre \
            local 2001:db8:$A::1 remote 2001:db8:$A::2 encaplimit 100
            ip netns exec A ip -6 a a 2001:db8:$i::1/64 dev ip6gre$i
            ip netns exec A ip link set ip6gre$i up
    
            ip netns exec B ip link add ip6gre$i type ip6gre \
            local 2001:db8:$A::2 remote 2001:db8:$A::1 encaplimit 100
            ip netns exec B ip -6 a a 2001:db8:$i::2/64 dev ip6gre$i
            ip netns exec B ip link set ip6gre$i up
        done
    
    Splat looks like:
    kernel BUG at net/core/skbuff.c:110!
    invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN PTI
    CPU: 0 PID: 7 Comm: kworker/0:1 Not tainted 5.12.0+ #891
    Workqueue: ipv6_addrconf addrconf_dad_work
    RIP: 0010:skb_panic+0x15d/0x15f
    Code: 92 fe 4c 8b 4c 24 10 53 8b 4d 70 45 89 e0 48 c7 c7 00 ae 79 83
    41 57 41 56 41 55 48 8b 54 24 a6 26 f9 ff <0f> 0b 48 8b 6c 24 20 89
    34 24 e8 4a 4e 92 fe 8b 34 24 48 c7 c1 20
    RSP: 0018:ffff88810091f820 EFLAGS: 00010282
    RAX: 0000000000000089 RBX: ffff8881086e9000 RCX: 0000000000000000
    RDX: 0000000000000089 RSI: 0000000000000008 RDI: ffffed1020123efb
    RBP: ffff888005f6eac0 R08: ffffed1022fc0031 R09: ffffed1022fc0031
    R10: ffff888117e00187 R11: ffffed1022fc0030 R12: 0000000000000028
    R13: ffff888008284eb0 R14: 0000000000000ed8 R15: 0000000000000ec0
    FS:  0000000000000000(0000) GS:ffff888117c00000(0000)
    knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f8b801c5640 CR3: 0000000033c2c006 CR4: 00000000003706f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     ? ip6_mc_hdr.isra.26.constprop.46+0x12a/0x600
     ? ip6_mc_hdr.isra.26.constprop.46+0x12a/0x600
     skb_put.cold.104+0x22/0x22
     ip6_mc_hdr.isra.26.constprop.46+0x12a/0x600
     ? rcu_read_lock_sched_held+0x91/0xc0
     mld_newpack+0x398/0x8f0
     ? ip6_mc_hdr.isra.26.constprop.46+0x600/0x600
     ? lock_contended+0xc40/0xc40
     add_grhead.isra.33+0x280/0x380
     add_grec+0x5ca/0xff0
     ? mld_sendpack+0xf40/0xf40
     ? lock_downgrade+0x690/0x690
     mld_send_initial_cr.part.34+0xb9/0x180
     ipv6_mc_dad_complete+0x15d/0x1b0
     addrconf_dad_completed+0x8d2/0xbb0
     ? lock_downgrade+0x690/0x690
     ? addrconf_rs_timer+0x660/0x660
     ? addrconf_dad_work+0x73c/0x10e0
     addrconf_dad_work+0x73c/0x10e0
    
    Allowing high order page allocation could fix this problem.
    
    Fixes: 72e09ad107e7 ("ipv6: avoid high order allocations")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 49ee3cfe4314b5cd95cca33fbe8a329aa670d534
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Sat May 15 15:16:05 2021 +0800

    net: bnx2: Fix error return code in bnx2_init_board()
    
    [ Upstream commit 28c66b6da4087b8cfe81c2ec0a46eb6116dafda9 ]
    
    Fix to return -EPERM from the error handling case instead of 0, as done
    elsewhere in this function.
    
    Fixes: b6016b767397 ("[BNX2]: New Broadcom gigabit network driver.")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Reviewed-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6bf627dbf0f4decd8e188c6952d4932b4a53636b
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sat May 8 07:38:22 2021 +0200

    net: netcp: Fix an error message
    
    [ Upstream commit ddb6e00f8413e885ff826e32521cff7924661de0 ]
    
    'ret' is known to be 0 here.
    The expected error code is stored in 'tx_pipe->dma_queue', so use it
    instead.
    
    While at it, switch from %d to %pe which is more user friendly.
    
    Fixes: 84640e27f230 ("net: netcp: Add Keystone NetCP core ethernet driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0707c3fea8102d211631ba515ef2159707561b0d
Author: xinhui pan <xinhui.pan@amd.com>
Date:   Tue May 18 10:56:07 2021 +0800

    drm/amdgpu: Fix a use-after-free
    
    [ Upstream commit 1e5c37385097c35911b0f8a0c67ffd10ee1af9a2 ]
    
    looks like we forget to set ttm->sg to NULL.
    Hit panic below
    
    [ 1235.844104] general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b7b4b: 0000 [#1] SMP DEBUG_PAGEALLOC NOPTI
    [ 1235.989074] Call Trace:
    [ 1235.991751]  sg_free_table+0x17/0x20
    [ 1235.995667]  amdgpu_ttm_backend_unbind.cold+0x4d/0xf7 [amdgpu]
    [ 1236.002288]  amdgpu_ttm_backend_destroy+0x29/0x130 [amdgpu]
    [ 1236.008464]  ttm_tt_destroy+0x1e/0x30 [ttm]
    [ 1236.013066]  ttm_bo_cleanup_memtype_use+0x51/0xa0 [ttm]
    [ 1236.018783]  ttm_bo_release+0x262/0xa50 [ttm]
    [ 1236.023547]  ttm_bo_put+0x82/0xd0 [ttm]
    [ 1236.027766]  amdgpu_bo_unref+0x26/0x50 [amdgpu]
    [ 1236.032809]  amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu+0x7aa/0xd90 [amdgpu]
    [ 1236.040400]  kfd_ioctl_alloc_memory_of_gpu+0xe2/0x330 [amdgpu]
    [ 1236.046912]  kfd_ioctl+0x463/0x690 [amdgpu]
    
    Signed-off-by: xinhui pan <xinhui.pan@amd.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 76bfd8ac20bebeae599452a03dfc5724c0475dcf
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Fri May 14 10:56:16 2021 -0400

    btrfs: do not BUG_ON in link_to_fixup_dir
    
    [ Upstream commit 91df99a6eb50d5a1bc70fff4a09a0b7ae6aab96d ]
    
    While doing error injection testing I got the following panic
    
      kernel BUG at fs/btrfs/tree-log.c:1862!
      invalid opcode: 0000 [#1] SMP NOPTI
      CPU: 1 PID: 7836 Comm: mount Not tainted 5.13.0-rc1+ #305
      Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.13.0-2.fc32 04/01/2014
      RIP: 0010:link_to_fixup_dir+0xd5/0xe0
      RSP: 0018:ffffb5800180fa30 EFLAGS: 00010216
      RAX: fffffffffffffffb RBX: 00000000fffffffb RCX: ffff8f595287faf0
      RDX: ffffb5800180fa37 RSI: ffff8f5954978800 RDI: 0000000000000000
      RBP: ffff8f5953af9450 R08: 0000000000000019 R09: 0000000000000001
      R10: 000151f408682970 R11: 0000000120021001 R12: ffff8f5954978800
      R13: ffff8f595287faf0 R14: ffff8f5953c77dd0 R15: 0000000000000065
      FS:  00007fc5284c8c40(0000) GS:ffff8f59bbd00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007fc5287f47c0 CR3: 000000011275e002 CR4: 0000000000370ee0
      Call Trace:
       replay_one_buffer+0x409/0x470
       ? btree_read_extent_buffer_pages+0xd0/0x110
       walk_up_log_tree+0x157/0x1e0
       walk_log_tree+0xa6/0x1d0
       btrfs_recover_log_trees+0x1da/0x360
       ? replay_one_extent+0x7b0/0x7b0
       open_ctree+0x1486/0x1720
       btrfs_mount_root.cold+0x12/0xea
       ? __kmalloc_track_caller+0x12f/0x240
       legacy_get_tree+0x24/0x40
       vfs_get_tree+0x22/0xb0
       vfs_kern_mount.part.0+0x71/0xb0
       btrfs_mount+0x10d/0x380
       ? vfs_parse_fs_string+0x4d/0x90
       legacy_get_tree+0x24/0x40
       vfs_get_tree+0x22/0xb0
       path_mount+0x433/0xa10
       __x64_sys_mount+0xe3/0x120
       do_syscall_64+0x3d/0x80
       entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    We can get -EIO or any number of legitimate errors from
    btrfs_search_slot(), panicing here is not the appropriate response.  The
    error path for this code handles errors properly, simply return the
    error.
    
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ffe3b372c52920e0a4e12bc3162389b540b74693
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Apr 14 14:45:43 2021 +0200

    openrisc: Define memory barrier mb
    
    [ Upstream commit 8b549c18ae81dbc36fb11e4aa08b8378c599ca95 ]
    
    This came up in the discussion of the requirements of qspinlock on an
    architecture.  OpenRISC uses qspinlock, but it was noticed that the
    memmory barrier was not defined.
    
    Peter defined it in the mail thread writing:
    
        As near as I can tell this should do. The arch spec only lists
        this one instruction and the text makes it sound like a completion
        barrier.
    
    This is correct so applying this patch.
    
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    [shorne@gmail.com:Turned the mail into a patch]
    Signed-off-by: Stafford Horne <shorne@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 038dc339d6eac1e86b40c75d590f2f3b47723cb1
Author: Matt Wang <wwentao@vmware.com>
Date:   Tue May 11 03:04:37 2021 +0000

    scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic
    
    [ Upstream commit 56f396146af278135c0ff958c79b5ee1bd22453d ]
    
    Commit 391e2f25601e ("[SCSI] BusLogic: Port driver to 64-bit")
    introduced a serious issue for 64-bit systems.  With this commit,
    64-bit kernel will enumerate 8*15 non-existing disks.  This is caused
    by the broken CCB structure.  The change from u32 data to void *data
    increased CCB length on 64-bit system, which introduced an extra 4
    byte offset of the CDB.  This leads to incorrect response to INQUIRY
    commands during enumeration.
    
    Fix disk enumeration failure by reverting the portion of the commit
    above which switched the data pointer from u32 to void.
    
    Link: https://lore.kernel.org/r/C325637F-1166-4340-8F0F-3BCCD59D4D54@vmware.com
    Acked-by: Khalid Aziz <khalid@gonehiking.org>
    Signed-off-by: Matt Wang <wwentao@vmware.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7e8596496aa8f28882f058afb0b27d4fd653bbd9
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:57:30 2021 +0200

    media: gspca: properly check for errors in po1030_probe()
    
    [ Upstream commit dacb408ca6f0e34df22b40d8dd5fae7f8e777d84 ]
    
    If m5602_write_sensor() or m5602_write_bridge() fail, do not continue to
    initialize the device but return the error to the calling funtion.
    
    Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-64-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f7adc025facdc000053bfd89f552e3c33ed5cd22
Author: Alaa Emad <alaaemadhossney.ae@gmail.com>
Date:   Mon May 3 13:57:26 2021 +0200

    media: dvb: Add check on sp8870_readreg return
    
    [ Upstream commit c6d822c56e7fd29e6fa1b1bb91b98f6a1e942b3c ]
    
    The function sp8870_readreg returns a negative value when i2c_transfer
    fails so properly check for this and return the error if it happens.
    
    Cc: Sean Young <sean@mess.org>
    Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Alaa Emad <alaaemadhossney.ae@gmail.com>
    Link: https://lore.kernel.org/r/20210503115736.2104747-60-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7811cd97e1f83300ea90bb3ac9a38e2f6f9ae3b1
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:57:20 2021 +0200

    libertas: register sysfs groups properly
    
    [ Upstream commit 7e79b38fe9a403b065ac5915465f620a8fb3de84 ]
    
    The libertas driver was trying to register sysfs groups "by hand" which
    causes them to be created _after_ the device is initialized and
    announced to userspace, which causes races and can prevent userspace
    tools from seeing the sysfs files correctly.
    
    Fix this up by using the built-in sysfs_groups pointers in struct
    net_device which were created for this very reason, fixing the race
    condition, and properly allowing for any error that might have occured
    to be handled properly.
    
    Cc: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-54-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ca5641d581e8630dab67992ee63c91fb5122def
Author: Phillip Potter <phil@philpotter.co.uk>
Date:   Mon May 3 13:57:08 2021 +0200

    isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io
    
    [ Upstream commit c446f0d4702d316e1c6bf621f70e79678d28830a ]
    
    Move hw->cfg.mode and hw->addr.mode assignments from hw->ci->cfg_mode
    and hw->ci->addr_mode respectively, to be before the subsequent checks
    for memory IO mode (and possible ioremap calls in this case).
    
    Also introduce ioremap error checks at both locations. This allows
    resources to be properly freed on ioremap failure, as when the caller
    of setup_io then subsequently calls release_io via its error path,
    release_io can now correctly determine the mode as it has been set
    before the ioremap call.
    
    Finally, refactor release_io function so that it will call
    release_mem_region in the memory IO case, regardless of whether or not
    hw->cfg.p/hw->addr.p are NULL. This means resources are then properly
    released on failure.
    
    This properly implements the original reverted commit (d721fe99f6ad)
    from the University of Minnesota, whilst also implementing the ioremap
    check for the hw->ci->cfg_mode if block as well.
    
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: Phillip Potter <phil@philpotter.co.uk>
    Link: https://lore.kernel.org/r/20210503115736.2104747-42-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1b68b6d6742b0dd98c9d54b0360966c1479156f6
Author: Tom Seewald <tseewald@gmail.com>
Date:   Mon May 3 13:56:56 2021 +0200

    char: hpet: add checks after calling ioremap
    
    [ Upstream commit b11701c933112d49b808dee01cb7ff854ba6a77a ]
    
    The function hpet_resources() calls ioremap() two times, but in both
    cases it does not check if ioremap() returned a null pointer. Fix this
    by adding null pointer checks and returning an appropriate error.
    
    Signed-off-by: Tom Seewald <tseewald@gmail.com>
    Link: https://lore.kernel.org/r/20210503115736.2104747-30-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 669145ee2561e6cfc8027f617fc926d704cf2a67
Author: Du Cheng <ducheng2@gmail.com>
Date:   Mon May 3 13:56:46 2021 +0200

    net: caif: remove BUG_ON(dev == NULL) in caif_xmit
    
    [ Upstream commit 65a67792e3416f7c5d7daa47d99334cbb19a7449 ]
    
    The condition of dev == NULL is impossible in caif_xmit(), hence it is
    for the removal.
    
    Explanation:
    The static caif_xmit() is only called upon via a function pointer
    `ndo_start_xmit` defined in include/linux/netdevice.h:
    ```
    struct net_device_ops {
        ...
        netdev_tx_t     (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev);
        ...
    }
    ```
    
    The exhausive list of call points are:
    ```
    drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c
        dev->netdev_ops->ndo_start_xmit(skb, dev);
        ^                                    ^
    
    drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c
        struct opa_vnic_adapter *adapter = opa_vnic_priv(netdev);
                                 ^                       ^
        return adapter->rn_ops->ndo_start_xmit(skb, netdev); // adapter would crash first
               ^                                    ^
    
    drivers/usb/gadget/function/f_ncm.c
        ncm->netdev->netdev_ops->ndo_start_xmit(NULL, ncm->netdev);
                  ^                                   ^
    
    include/linux/netdevice.h
    static inline netdev_tx_t __netdev_start_xmit(...
    {
        return ops->ndo_start_xmit(skb, dev);
                                        ^
    }
    
        const struct net_device_ops *ops = dev->netdev_ops;
                                           ^
        rc = __netdev_start_xmit(ops, skb, dev, more);
                                           ^
    ```
    
    In each of the enumerated scenarios, it is impossible for the NULL-valued dev to
    reach the caif_xmit() without crashing the kernel earlier, therefore `BUG_ON(dev ==
    NULL)` is rather useless, hence the removal.
    
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: Du Cheng <ducheng2@gmail.com>
    Link: https://lore.kernel.org/r/20210503115736.2104747-20-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b92170e209f7746ed72eaac98f2c2f4b9af734e6
Author: Anirudh Rayabharam <mail@anirudhrb.com>
Date:   Mon May 3 13:56:42 2021 +0200

    net: fujitsu: fix potential null-ptr-deref
    
    [ Upstream commit 52202be1cd996cde6e8969a128dc27ee45a7cb5e ]
    
    In fmvj18x_get_hwinfo(), if ioremap fails there will be NULL pointer
    deref. To fix this, check the return value of ioremap and return -1
    to the caller in case of failure.
    
    Cc: "David S. Miller" <davem@davemloft.net>
    Acked-by: Dominik Brodowski <linux@dominikbrodowski.net>
    Signed-off-by: Anirudh Rayabharam <mail@anirudhrb.com>
    Link: https://lore.kernel.org/r/20210503115736.2104747-16-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf5502e81afe9d7a4abad999c79eb54d53316c2e
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Fri Apr 30 14:07:35 2021 +0800

    platform/x86: hp_accel: Avoid invoking _INI to speed up resume
    
    [ Upstream commit 79d341e26ebcdbc622348aaaab6f8f89b6fdb25f ]
    
    hp_accel can take almost two seconds to resume on some HP laptops.
    
    The bottleneck is on evaluating _INI, which is only needed to run once.
    
    Resolve the issue by only invoking _INI when it's necessary. Namely, on
    probe and on hibernation restore.
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Acked-by: Éric Piel <eric.piel@trempplin-utc.net>
    Link: https://lore.kernel.org/r/20210430060736.590321-1-kai.heng.feng@canonical.com
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f9469082126cebb7337db3992d143f5e4edfe629
Author: Jean Delvare <jdelvare@suse.de>
Date:   Tue May 25 17:03:36 2021 +0200

    i2c: i801: Don't generate an interrupt on bus reset
    
    commit e4d8716c3dcec47f1557024add24e1f3c09eb24b upstream.
    
    Now that the i2c-i801 driver supports interrupts, setting the KILL bit
    in a attempt to recover from a timed out transaction triggers an
    interrupt. Unfortunately, the interrupt handler (i801_isr) is not
    prepared for this situation and will try to process the interrupt as
    if it was signaling the end of a successful transaction. In the case
    of a block transaction, this can result in an out-of-range memory
    access.
    
    This condition was reproduced several times by syzbot:
    https://syzkaller.appspot.com/bug?extid=ed71512d469895b5b34e
    https://syzkaller.appspot.com/bug?extid=8c8dedc0ba9e03f6c79e
    https://syzkaller.appspot.com/bug?extid=c8ff0b6d6c73d81b610e
    https://syzkaller.appspot.com/bug?extid=33f6c360821c399d69eb
    https://syzkaller.appspot.com/bug?extid=be15dc0b1933f04b043a
    https://syzkaller.appspot.com/bug?extid=b4d3fd1dfd53e90afd79
    
    So disable interrupts while trying to reset the bus. Interrupts will
    be enabled again for the following transaction.
    
    Fixes: 636752bcb517 ("i2c-i801: Enable IRQ for SMBus transactions")
    Reported-by: syzbot+b4d3fd1dfd53e90afd79@syzkaller.appspotmail.com
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 572e5bf9765a864acbd6e6e3f8d7de2d5d9ca9c2
Author: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Date:   Wed May 26 08:39:37 2021 -0400

    i2c: s3c2410: fix possible NULL pointer deref on read message after write
    
    commit 24990423267ec283b9d86f07f362b753eb9b0ed5 upstream.
    
    Interrupt handler processes multiple message write requests one after
    another, till the driver message queue is drained.  However if driver
    encounters a read message without preceding START, it stops the I2C
    transfer as it is an invalid condition for the controller.  At least the
    comment describes a requirement "the controller forces us to send a new
    START when we change direction".  This stop results in clearing the
    message queue (i2c->msg = NULL).
    
    The code however immediately jumped back to label "retry_write" which
    dereferenced the "i2c->msg" making it a possible NULL pointer
    dereference.
    
    The Coverity analysis:
    1. Condition !is_msgend(i2c), taking false branch.
       if (!is_msgend(i2c)) {
    
    2. Condition !is_lastmsg(i2c), taking true branch.
       } else if (!is_lastmsg(i2c)) {
    
    3. Condition i2c->msg->flags & 1, taking true branch.
       if (i2c->msg->flags & I2C_M_RD) {
    
    4. write_zero_model: Passing i2c to s3c24xx_i2c_stop, which sets i2c->msg to NULL.
       s3c24xx_i2c_stop(i2c, -EINVAL);
    
    5. Jumping to label retry_write.
       goto retry_write;
    
    6. var_deref_model: Passing i2c to is_msgend, which dereferences null i2c->msg.
       if (!is_msgend(i2c)) {"
    
    All previous calls to s3c24xx_i2c_stop() in this interrupt service
    routine are followed by jumping to end of function (acknowledging
    the interrupt and returning).  This seems a reasonable choice also here
    since message buffer was entirely emptied.
    
    Addresses-Coverity: Explicit null dereferenced
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b2c8d28c34b3070407cb1741f9ba3f15d0284b8b
Author: Xin Long <lucien.xin@gmail.com>
Date:   Sat May 8 03:57:03 2021 +0800

    tipc: skb_linearize the head skb when reassembling msgs
    
    commit b7df21cf1b79ab7026f545e7bf837bd5750ac026 upstream.
    
    It's not a good idea to append the frag skb to a skb's frag_list if
    the frag_list already has skbs from elsewhere, such as this skb was
    created by pskb_copy() where the frag_list was cloned (all the skbs
    in it were skb_get'ed) and shared by multiple skbs.
    
    However, the new appended frag skb should have been only seen by the
    current skb. Otherwise, it will cause use after free crashes as this
    appended frag skb are seen by multiple skbs but it only got skb_get
    called once.
    
    The same thing happens with a skb updated by pskb_may_pull() with a
    skb_cloned skb. Li Shuang has reported quite a few crashes caused
    by this when doing testing over macvlan devices:
    
      [] kernel BUG at net/core/skbuff.c:1970!
      [] Call Trace:
      []  skb_clone+0x4d/0xb0
      []  macvlan_broadcast+0xd8/0x160 [macvlan]
      []  macvlan_process_broadcast+0x148/0x150 [macvlan]
      []  process_one_work+0x1a7/0x360
      []  worker_thread+0x30/0x390
    
      [] kernel BUG at mm/usercopy.c:102!
      [] Call Trace:
      []  __check_heap_object+0xd3/0x100
      []  __check_object_size+0xff/0x16b
      []  simple_copy_to_iter+0x1c/0x30
      []  __skb_datagram_iter+0x7d/0x310
      []  __skb_datagram_iter+0x2a5/0x310
      []  skb_copy_datagram_iter+0x3b/0x90
      []  tipc_recvmsg+0x14a/0x3a0 [tipc]
      []  ____sys_recvmsg+0x91/0x150
      []  ___sys_recvmsg+0x7b/0xc0
    
      [] kernel BUG at mm/slub.c:305!
      [] Call Trace:
      []  <IRQ>
      []  kmem_cache_free+0x3ff/0x400
      []  __netif_receive_skb_core+0x12c/0xc40
      []  ? kmem_cache_alloc+0x12e/0x270
      []  netif_receive_skb_internal+0x3d/0xb0
      []  ? get_rx_page_info+0x8e/0xa0 [be2net]
      []  be_poll+0x6ef/0xd00 [be2net]
      []  ? irq_exit+0x4f/0x100
      []  net_rx_action+0x149/0x3b0
    
      ...
    
    This patch is to fix it by linearizing the head skb if it has frag_list
    set in tipc_buf_append(). Note that we choose to do this before calling
    skb_unshare(), as __skb_linearize() will avoid skb_copy(). Also, we can
    not just drop the frag_list either as the early time.
    
    Fixes: 45c8b7b175ce ("tipc: allow non-linear first fragment buffer")
    Reported-by: Li Shuang <shuali@redhat.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Jon Maloy <jmaloy@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3917fe8933b3abfcd9f40bc354ec6dbfcdf61c1c
Author: Hoang Le <hoang.h.le@dektech.com.au>
Date:   Fri May 14 08:23:03 2021 +0700

    Revert "net:tipc: Fix a double free in tipc_sk_mcast_rcv"
    
    commit 75016891357a628d2b8acc09e2b9b2576c18d318 upstream.
    
    This reverts commit 6bf24dc0cc0cc43b29ba344b66d78590e687e046.
    Above fix is not correct and caused memory leak issue.
    
    Fixes: 6bf24dc0cc0c ("net:tipc: Fix a double free in tipc_sk_mcast_rcv")
    Acked-by: Jon Maloy <jmaloy@redhat.com>
    Acked-by: Tung Nguyen <tung.q.nguyen@dektech.com.au>
    Signed-off-by: Hoang Le <hoang.h.le@dektech.com.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d8d3059bbbaf3506445fe1df3ffe4ddc93993e2
Author: Vladyslav Tarasiuk <vladyslavt@nvidia.com>
Date:   Sun May 9 09:43:18 2021 +0300

    net/mlx4: Fix EEPROM dump support
    
    commit db825feefc6868896fed5e361787ba3bee2fd906 upstream.
    
    Fix SFP and QSFP* EEPROM queries by setting i2c_address, offset and page
    number correctly. For SFP set the following params:
    - I2C address for offsets 0-255 is 0x50. For 256-511 - 0x51.
    - Page number is zero.
    - Offset is 0-255.
    
    At the same time, QSFP* parameters are different:
    - I2C address is always 0x50.
    - Page number is not limited to zero.
    - Offset is 0-255 for page zero and 128-255 for others.
    
    To set parameters accordingly to cable used, implement function to query
    module ID and implement respective helper functions to set parameters
    correctly.
    
    Fixes: 135dd9594f12 ("net/mlx4_en: ethtool, Remove unsupported SFP EEPROM high pages query")
    Signed-off-by: Vladyslav Tarasiuk <vladyslavt@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42d76d267b9d791c29c1e62265adb0b1bedba449
Author: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Date:   Tue May 25 23:32:35 2021 -0400

    NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config
    
    commit e67afa7ee4a59584d7253e45d7f63b9528819a13 upstream.
    
    Since commit bdcc2cd14e4e ("NFSv4.2: handle NFS-specific llseek errors"),
    nfs42_proc_llseek would return -EOPNOTSUPP rather than -ENOTSUPP when
    SEEK_DATA on NFSv4.0/v4.1.
    
    This will lead xfstests generic/285 not run on NFSv4.0/v4.1 when set the
    CONFIG_NFS_V4_2, rather than run failed.
    
    Fixes: bdcc2cd14e4e ("NFSv4.2: handle NFS-specific llseek errors")
    Cc: <stable.vger.kernel.org> # 4.2
    Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8b8418ce14ae66ee55179901edd12191ab06a9e
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Tue May 25 10:40:12 2021 -0400

    NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce()
    
    commit 0d0ea309357dea0d85a82815f02157eb7fcda39f upstream.
    
    The value of mirror->pg_bytes_written should only be updated after a
    successful attempt to flush out the requests on the list.
    
    Fixes: a7d42ddb3099 ("nfs: add mirroring support to pgio layer")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d280ab53df1d4a1043bd7a9e7c6a2f9cfbfe040
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue May 11 11:49:42 2021 +0300

    NFS: fix an incorrect limit in filelayout_decode_layout()
    
    commit 769b01ea68b6c49dc3cde6adf7e53927dacbd3a8 upstream.
    
    The "sizeof(struct nfs_fh)" is two bytes too large and could lead to
    memory corruption.  It should be NFS_MAXFHSIZE because that's the size
    of the ->data[] buffer.
    
    I reversed the size of the arguments to put the variable on the left.
    
    Fixes: 16b374ca439f ("NFSv4.1: pnfs: filelayout: add driver's LAYOUTGET and GETDEVICEINFO infrastructure")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61a811e8f5229264b822361f8b23d7638fd8c914
Author: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Date:   Tue Apr 13 13:21:03 2021 -0300

    Bluetooth: cmtp: fix file refcount when cmtp_attach_device fails
    
    commit 8da3a0b87f4f1c3a3bbc4bfb78cf68476e97d183 upstream.
    
    When cmtp_attach_device fails, cmtp_add_connection returns the error value
    which leads to the caller to doing fput through sockfd_put. But
    cmtp_session kthread, which is stopped in this path will also call fput,
    leading to a potential refcount underflow or a use-after-free.
    
    Add a refcount before we signal the kthread to stop. The kthread will try
    to grab the cmtp_session_sem mutex before doing the fput, which is held
    when get_file is called, so there should be no races there.
    
    Reported-by: Ryota Shiga
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd047a839f0f1d0af99785c47c253804caefbf38
Author: Lukas Wunner <lukas@wunner.de>
Date:   Mon Dec 7 09:17:04 2020 +0100

    spi: spi-sh: Fix use-after-free on unbind
    
    commit e77df3eca12be4b17f13cf9f215cff248c57d98f upstream.
    
    spi_sh_remove() accesses the driver's private data after calling
    spi_unregister_master() even though that function releases the last
    reference on the spi_master and thereby frees the private data.
    
    Fix by switching over to the new devm_spi_alloc_master() helper which
    keeps the private data accessible until the driver has unbound.
    
    Fixes: 680c1305e259 ("spi/spi_sh: use spi_unregister_master instead of spi_master_put in remove path")
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Cc: <stable@vger.kernel.org> # v3.0+: 5e844cc37a5c: spi: Introduce device-managed SPI controller allocation
    Cc: <stable@vger.kernel.org> # v3.0+
    Cc: Axel Lin <axel.lin@ingics.com>
    Link: https://lore.kernel.org/r/6d97628b536baf01d5e3e39db61108f84d44c8b2.1607286887.git.lukas@wunner.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    [lukas: backport to v4.4.270]
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 62bb2c7f2411a0045c24831f11ecacfc35610815
Author: William A. Kennington III <wak@google.com>
Date:   Wed Apr 7 02:55:27 2021 -0700

    spi: Fix use-after-free with devm_spi_alloc_*
    
    commit 794aaf01444d4e765e2b067cba01cc69c1c68ed9 upstream.
    
    We can't rely on the contents of the devres list during
    spi_unregister_controller(), as the list is already torn down at the
    time we perform devres_find() for devm_spi_release_controller. This
    causes devices registered with devm_spi_alloc_{master,slave}() to be
    mistakenly identified as legacy, non-devm managed devices and have their
    reference counters decremented below 0.
    
    ------------[ cut here ]------------
    WARNING: CPU: 1 PID: 660 at lib/refcount.c:28 refcount_warn_saturate+0x108/0x174
    [<b0396f04>] (refcount_warn_saturate) from [<b03c56a4>] (kobject_put+0x90/0x98)
    [<b03c5614>] (kobject_put) from [<b0447b4c>] (put_device+0x20/0x24)
     r4:b6700140
    [<b0447b2c>] (put_device) from [<b07515e8>] (devm_spi_release_controller+0x3c/0x40)
    [<b07515ac>] (devm_spi_release_controller) from [<b045343c>] (release_nodes+0x84/0xc4)
     r5:b6700180 r4:b6700100
    [<b04533b8>] (release_nodes) from [<b0454160>] (devres_release_all+0x5c/0x60)
     r8:b1638c54 r7:b117ad94 r6:b1638c10 r5:b117ad94 r4:b163dc10
    [<b0454104>] (devres_release_all) from [<b044e41c>] (__device_release_driver+0x144/0x1ec)
     r5:b117ad94 r4:b163dc10
    [<b044e2d8>] (__device_release_driver) from [<b044f70c>] (device_driver_detach+0x84/0xa0)
     r9:00000000 r8:00000000 r7:b117ad94 r6:b163dc54 r5:b1638c10 r4:b163dc10
    [<b044f688>] (device_driver_detach) from [<b044d274>] (unbind_store+0xe4/0xf8)
    
    Instead, determine the devm allocation state as a flag on the
    controller which is guaranteed to be stable during cleanup.
    
    Fixes: 5e844cc37a5c ("spi: Introduce device-managed SPI controller allocation")
    Signed-off-by: William A. Kennington III <wak@google.com>
    Link: https://lore.kernel.org/r/20210407095527.2771582-1-wak@google.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    [lukas: backport to v4.4.270]
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 200dbfcad8011e50c3cec269ed7b980836eeb1fa
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Mon May 24 23:02:08 2021 +0300

    net: usb: fix memory leak in smsc75xx_bind
    
    commit 46a8b29c6306d8bbfd92b614ef65a47c900d8e70 upstream.
    
    Syzbot reported memory leak in smsc75xx_bind().
    The problem was is non-freed memory in case of
    errors after memory allocation.
    
    backtrace:
      [<ffffffff84245b62>] kmalloc include/linux/slab.h:556 [inline]
      [<ffffffff84245b62>] kzalloc include/linux/slab.h:686 [inline]
      [<ffffffff84245b62>] smsc75xx_bind+0x7a/0x334 drivers/net/usb/smsc75xx.c:1460
      [<ffffffff82b5b2e6>] usbnet_probe+0x3b6/0xc30 drivers/net/usb/usbnet.c:1728
    
    Fixes: d0cad871703b ("smsc75xx: SMSC LAN75xx USB gigabit ethernet adapter driver")
    Cc: stable@kernel.vger.org
    Reported-and-tested-by: syzbot+b558506ba8165425fee2@syzkaller.appspotmail.com
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eadb1c40392539061fbc1cfdfaad820011df3797
Author: Zolton Jheng <s6668c2t@gmail.com>
Date:   Mon May 10 10:32:00 2021 +0800

    USB: serial: pl2303: add device id for ADLINK ND-6530 GC
    
    commit f8e8c1b2f782e7391e8a1c25648ce756e2a7d481 upstream.
    
    This adds the device id for the ADLINK ND-6530 which is a PL2303GC based
    device.
    
    Signed-off-by: Zolton Jheng <s6668c2t@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 2d475af9d71a287051ac0d34b7932dec717337c8
Author: Dominik Andreas Schorpp <dominik.a.schorpp@ids.de>
Date:   Thu Apr 22 09:58:52 2021 +0200

    USB: serial: ftdi_sio: add IDs for IDS GmbH Products
    
    commit c5a80540e425a5f9a82b0f3163e3b6a4331f33bc upstream.
    
    Add the IDS GmbH Vendor ID and the Product IDs for SI31A (2xRS232)
    and CM31A (LoRaWAN Modem).
    
    Signed-off-by: Dominik Andreas Schorpp <dominik.a.schorpp@ids.de>
    Signed-off-by: Juergen Borleis <jbe@pengutronix.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ebabf75b335e9fd9968c72d8d3dea868df0c22ea
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Wed Apr 28 09:26:34 2021 +0200

    USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011
    
    commit e467714f822b5d167a7fb03d34af91b5b6af1827 upstream.
    
    Add support for the following Telit LE910-S1 compositions:
    
    0x7010: rndis, tty, tty, tty
    0x7011: ecm, tty, tty, tty
    
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Link: https://lore.kernel.org/r/20210428072634.5091-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 1e04d5d5fe5e76af68f834e1941fcbfa439653be
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Fri May 21 06:08:43 2021 +0000

    serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'
    
    commit 016002848c82eeb5d460489ce392d91fe18c475c upstream.
    
    In 'rp2_probe', the driver registers 'rp2_uart_interrupt' then calls
    'rp2_fw_cb' through 'request_firmware_nowait'. In 'rp2_fw_cb', if the
    firmware don't exists, function just return without initializing ports
    of 'rp2_card'. But now the interrupt handler function has been
    registered, and when an interrupt comes, 'rp2_uart_interrupt' may access
    those ports then causing NULL pointer dereference or other bugs.
    
    Because the driver does some initialization work in 'rp2_fw_cb', in
    order to make the driver ready to handle interrupts, 'request_firmware'
    should be used instead of asynchronous 'request_firmware_nowait'.
    
    This report reveals it:
    
    INFO: trying to register non-static key.
    the code is fine but needs lockdep annotation.
    turning off the locking correctness validator.
    CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.19.177-gdba4159c14ef-dirty #45
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-
    gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    Call Trace:
     <IRQ>
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0xec/0x156 lib/dump_stack.c:118
     assign_lock_key kernel/locking/lockdep.c:727 [inline]
     register_lock_class+0x14e5/0x1ba0 kernel/locking/lockdep.c:753
     __lock_acquire+0x187/0x3750 kernel/locking/lockdep.c:3303
     lock_acquire+0x124/0x340 kernel/locking/lockdep.c:3907
     __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
     _raw_spin_lock+0x32/0x50 kernel/locking/spinlock.c:144
     spin_lock include/linux/spinlock.h:329 [inline]
     rp2_ch_interrupt drivers/tty/serial/rp2.c:466 [inline]
     rp2_asic_interrupt.isra.9+0x15d/0x990 drivers/tty/serial/rp2.c:493
     rp2_uart_interrupt+0x49/0xe0 drivers/tty/serial/rp2.c:504
     __handle_irq_event_percpu+0xfb/0x770 kernel/irq/handle.c:149
     handle_irq_event_percpu+0x79/0x150 kernel/irq/handle.c:189
     handle_irq_event+0xac/0x140 kernel/irq/handle.c:206
     handle_fasteoi_irq+0x232/0x5c0 kernel/irq/chip.c:725
     generic_handle_irq_desc include/linux/irqdesc.h:155 [inline]
     handle_irq+0x230/0x3a0 arch/x86/kernel/irq_64.c:87
     do_IRQ+0xa7/0x1e0 arch/x86/kernel/irq.c:247
     common_interrupt+0xf/0xf arch/x86/entry/entry_64.S:670
     </IRQ>
    RIP: 0010:native_safe_halt+0x28/0x30 arch/x86/include/asm/irqflags.h:61
    Code: 00 00 55 be 04 00 00 00 48 c7 c7 00 c2 2f 8c 48 89 e5 e8 fb 31 e7 f8
    8b 05 75 af 8d 03 85 c0 7e 07 0f 00 2d 8a 61 65 00 fb f4 <5d> c3 90 90 90
    90 90 90 0f 1f 44 00 00 55 48 89 e5 41 57 41 56 41
    RSP: 0018:ffff88806b71fcc8 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffde
    RAX: 0000000000000000 RBX: ffffffff8bde7e48 RCX: ffffffff88a21285
    RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff8c2fc200
    RBP: ffff88806b71fcc8 R08: fffffbfff185f840 R09: fffffbfff185f840
    R10: 0000000000000001 R11: fffffbfff185f840 R12: 0000000000000002
    R13: ffffffff8bea18a0 R14: 0000000000000000 R15: 0000000000000000
     arch_safe_halt arch/x86/include/asm/paravirt.h:94 [inline]
     default_idle+0x6f/0x360 arch/x86/kernel/process.c:557
     arch_cpu_idle+0xf/0x20 arch/x86/kernel/process.c:548
     default_idle_call+0x3b/0x60 kernel/sched/idle.c:93
     cpuidle_idle_call kernel/sched/idle.c:153 [inline]
     do_idle+0x2ab/0x3c0 kernel/sched/idle.c:263
     cpu_startup_entry+0xcb/0xe0 kernel/sched/idle.c:369
     start_secondary+0x3b8/0x4e0 arch/x86/kernel/smpboot.c:271
     secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
    PGD 8000000056d27067 P4D 8000000056d27067 PUD 56d28067 PMD 0
    Oops: 0000 [#1] PREEMPT SMP KASAN PTI
    CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.19.177-gdba4159c14ef-dirty #45
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-
    gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    RIP: 0010:readl arch/x86/include/asm/io.h:59 [inline]
    RIP: 0010:rp2_ch_interrupt drivers/tty/serial/rp2.c:472 [inline]
    RIP: 0010:rp2_asic_interrupt.isra.9+0x181/0x990 drivers/tty/serial/rp2.c:
    493
    Code: df e8 43 5d c2 05 48 8d 83 e8 01 00 00 48 89 85 60 ff ff ff 48 c1 e8
    03 42 80 3c 30 00 0f 85 aa 07 00 00 48 8b 83 e8 01 00 00 <8b> 40 10 89 c1
    89 85 68 ff ff ff 48 8b 83 e8 01 00 00 89 48 10 83
    RSP: 0018:ffff88806c287cd0 EFLAGS: 00010046
    RAX: 0000000000000000 RBX: ffff88806ade6820 RCX: ffffffff814300b1
    RDX: 1ffff1100d5bcd06 RSI: 0000000000000004 RDI: ffff88806ade6820
    RBP: ffff88806c287db8 R08: ffffed100d5bcd05 R09: ffffed100d5bcd05
    R10: 0000000000000001 R11: ffffed100d5bcd04 R12: ffffc90001e00000
    R13: ffff888069654e10 R14: dffffc0000000000 R15: ffff888069654df0
    FS:  0000000000000000(0000) GS:ffff88806c280000(0000) knlGS:
    0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000010 CR3: 000000006892c000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <IRQ>
     rp2_uart_interrupt+0x49/0xe0 drivers/tty/serial/rp2.c:504
     __handle_irq_event_percpu+0xfb/0x770 kernel/irq/handle.c:149
     handle_irq_event_percpu+0x79/0x150 kernel/irq/handle.c:189
     handle_irq_event+0xac/0x140 kernel/irq/handle.c:206
     handle_fasteoi_irq+0x232/0x5c0 kernel/irq/chip.c:725
     generic_handle_irq_desc include/linux/irqdesc.h:155 [inline]
     handle_irq+0x230/0x3a0 arch/x86/kernel/irq_64.c:87
     do_IRQ+0xa7/0x1e0 arch/x86/kernel/irq.c:247
     common_interrupt+0xf/0xf arch/x86/entry/entry_64.S:670
     </IRQ>
    RIP: 0010:native_safe_halt+0x28/0x30 arch/x86/include/asm/irqflags.h:61
    Code: 00 00 55 be 04 00 00 00 48 c7 c7 00 c2 2f 8c 48 89 e5 e8 fb 31 e7
    f8 8b 05 75 af 8d 03 85 c0 7e 07 0f 00 2d 8a 61 65 00 fb f4 <5d> c3 90
    90 90 90 90 90 0f 1f 44 00 00 55 48 89 e5 41 57 41 56 41
    RSP: 0018:ffff88806b71fcc8 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffde
    RAX: 0000000000000000 RBX: ffffffff8bde7e48 RCX: ffffffff88a21285
    RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff8c2fc200
    RBP: ffff88806b71fcc8 R08: fffffbfff185f840 R09: fffffbfff185f840
    R10: 0000000000000001 R11: fffffbfff185f840 R12: 0000000000000002
    R13: ffffffff8bea18a0 R14: 0000000000000000 R15: 0000000000000000
     arch_safe_halt arch/x86/include/asm/paravirt.h:94 [inline]
     default_idle+0x6f/0x360 arch/x86/kernel/process.c:557
     arch_cpu_idle+0xf/0x20 arch/x86/kernel/process.c:548
     default_idle_call+0x3b/0x60 kernel/sched/idle.c:93
     cpuidle_idle_call kernel/sched/idle.c:153 [inline]
     do_idle+0x2ab/0x3c0 kernel/sched/idle.c:263
     cpu_startup_entry+0xcb/0xe0 kernel/sched/idle.c:369
     start_secondary+0x3b8/0x4e0 arch/x86/kernel/smpboot.c:271
     secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243
    Modules linked in:
    Dumping ftrace buffer:
       (ftrace buffer empty)
    CR2: 0000000000000010
    ---[ end trace 11804dbb55cb1a64 ]---
    RIP: 0010:readl arch/x86/include/asm/io.h:59 [inline]
    RIP: 0010:rp2_ch_interrupt drivers/tty/serial/rp2.c:472 [inline]
    RIP: 0010:rp2_asic_interrupt.isra.9+0x181/0x990 drivers/tty/serial/rp2.c:
    493
    Code: df e8 43 5d c2 05 48 8d 83 e8 01 00 00 48 89 85 60 ff ff ff 48 c1
    e8 03 42 80 3c 30 00 0f 85 aa 07 00 00 48 8b 83 e8 01 00 00 <8b> 40 10 89
    c1 89 85 68 ff ff ff 48 8b 83 e8 01 00 00 89 48 10 83
    RSP: 0018:ffff88806c287cd0 EFLAGS: 00010046
    RAX: 0000000000000000 RBX: ffff88806ade6820 RCX: ffffffff814300b1
    RDX: 1ffff1100d5bcd06 RSI: 0000000000000004 RDI: ffff88806ade6820
    RBP: ffff88806c287db8 R08: ffffed100d5bcd05 R09: ffffed100d5bcd05
    R10: 0000000000000001 R11: ffffed100d5bcd04 R12: ffffc90001e00000
    R13: ffff888069654e10 R14: dffffc0000000000 R15: ffff888069654df0
    FS:  0000000000000000(0000) GS:ffff88806c280000(0000) knlGS:
    0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000010 CR3: 000000006892c000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    
    Reported-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Link: https://lore.kernel.org/r/1621577323-1541-1-git-send-email-zheyuma97@gmail.com
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 789a339586977e2b1e5349287ad0a0a1bb2b769c
Author: Johan Hovold <johan@kernel.org>
Date:   Fri May 21 15:31:09 2021 +0200

    USB: trancevibrator: fix control-request direction
    
    commit 746e4acf87bcacf1406e05ef24a0b7139147c63e upstream.
    
    The direction of the pipe argument must match the request-type direction
    bit or control requests may fail depending on the host-controller-driver
    implementation.
    
    Fix the set-speed request which erroneously used USB_DIR_IN and update
    the default timeout argument to match (same value).
    
    Fixes: 5638e4d92e77 ("USB: add PlayStation 2 Trance Vibrator driver")
    Cc: stable@vger.kernel.org      # 2.6.19
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20210521133109.17396-1-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29b72cbb1b23b78b685f65664459b23f1ad1d044
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Fri May 14 16:02:54 2021 +0800

    iio: adc: ad7793: Add missing error code in ad7793_setup()
    
    commit 4ed243b1da169bcbc1ec5507867e56250c5f1ff9 upstream.
    
    Set error code while device ID query failed.
    
    Fixes: 88bc30548aae ("IIO: ADC: New driver for AD7792/AD7793 3 Channel SPI ADC")
    Signed-off-by: YueHaibing <yuehaibing@huawei.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 9792fd57de32752bc76f95cf9e81cb5363b59c74
Author: Lucas Stankus <lucas.p.stankus@gmail.com>
Date:   Tue May 11 17:54:18 2021 -0300

    staging: iio: cdc: ad7746: avoid overwrite of num_channels
    
    commit 04f5b9f539ce314f758d919a14dc7a669f3b7838 upstream.
    
    AD7745 devices don't have the CIN2 pins and therefore can't handle related
    channels. Forcing the number of AD7746 channels may lead to enabling more
    channels than what the hardware actually supports.
    Avoid num_channels being overwritten after first assignment.
    
    Signed-off-by: Lucas Stankus <lucas.p.stankus@gmail.com>
    Fixes: 83e416f458d53 ("staging: iio: adc: Replace, rewrite ad7745 from scratch.")
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 602c13a88594b2c6c343c731160c267b51fdc417
Author: Alexander Usyskin <alexander.usyskin@intel.com>
Date:   Wed May 26 22:33:34 2021 +0300

    mei: request autosuspend after sending rx flow control
    
    commit bbf0a94744edfeee298e4a9ab6fd694d639a5cdf upstream.
    
    A rx flow control waiting in the control queue may block autosuspend.
    Re-request autosuspend after flow control been sent to unblock
    the transition to the low power state.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Link: https://lore.kernel.org/r/20210526193334.445759-1-tomas.winkler@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f46b2410db2c8f26b8bb91b40deebf4ec184391
Author: Dongliang Mu <mudongliangabcd@gmail.com>
Date:   Fri May 14 20:43:48 2021 +0800

    misc/uss720: fix memory leak in uss720_probe
    
    commit dcb4b8ad6a448532d8b681b5d1a7036210b622de upstream.
    
    uss720_probe forgets to decrease the refcount of usbdev in uss720_probe.
    Fix this by decreasing the refcount of usbdev by usb_put_dev.
    
    BUG: memory leak
    unreferenced object 0xffff888101113800 (size 2048):
      comm "kworker/0:1", pid 7, jiffies 4294956777 (age 28.870s)
      hex dump (first 32 bytes):
        ff ff ff ff 31 00 00 00 00 00 00 00 00 00 00 00  ....1...........
        00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00  ................
      backtrace:
        [<ffffffff82b8e822>] kmalloc include/linux/slab.h:554 [inline]
        [<ffffffff82b8e822>] kzalloc include/linux/slab.h:684 [inline]
        [<ffffffff82b8e822>] usb_alloc_dev+0x32/0x450 drivers/usb/core/usb.c:582
        [<ffffffff82b98441>] hub_port_connect drivers/usb/core/hub.c:5129 [inline]
        [<ffffffff82b98441>] hub_port_connect_change drivers/usb/core/hub.c:5363 [inline]
        [<ffffffff82b98441>] port_event drivers/usb/core/hub.c:5509 [inline]
        [<ffffffff82b98441>] hub_event+0x1171/0x20c0 drivers/usb/core/hub.c:5591
        [<ffffffff81259229>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
        [<ffffffff81259b19>] worker_thread+0x59/0x5d0 kernel/workqueue.c:2421
        [<ffffffff81261228>] kthread+0x178/0x1b0 kernel/kthread.c:292
        [<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294
    
    Fixes: 0f36163d3abe ("[PATCH] usb: fix uss720 schedule with interrupts off")
    Cc: stable <stable@vger.kernel.org>
    Reported-by: syzbot+636c58f40a86b4a879e7@syzkaller.appspotmail.com
    Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
    Link: https://lore.kernel.org/r/20210514124348.6587-1-mudongliangabcd@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86366a28112b06e5feaeb3364bc6d6651df8b012
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu May 20 15:08:39 2021 +0200

    kgdb: fix gcc-11 warnings harder
    
    commit bda7d3ab06f19c02dcef61fefcb9dd954dfd5e4f upstream.
    
    40cc3a80bb42 ("kgdb: fix gcc-11 warning on indentation") tried to fix up
    the gcc-11 complaints in this file by just reformatting the #defines.
    That worked for gcc 11.1.0, but in gcc 11.1.1 as shipped by Fedora 34,
    the warning came back for one of the #defines.
    
    Fix this up again by putting { } around the if statement, now it is
    quiet again.
    
    Fixes: 40cc3a80bb42 ("kgdb: fix gcc-11 warning on indentation")
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Daniel Thompson <daniel.thompson@linaro.org>
    Cc: Jason Wessel <jason.wessel@windriver.com>
    Link: https://lore.kernel.org/r/20210520130839.51987-1-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb787192910ee8fca9764c376f392e0ab69de58e
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue May 25 13:17:19 2021 -0400

    dm snapshot: properly fix a crash when an origin has no snapshots
    
    commit 7e768532b2396bcb7fbf6f82384b85c0f1d2f197 upstream.
    
    If an origin target has no snapshots, o->split_boundary is set to 0.
    This causes BUG_ON(sectors <= 0) in block/bio.c:bio_split().
    
    Fix this by initializing chunk_size, and in turn split_boundary, to
    rounddown_pow_of_two(UINT_MAX) -- the largest power of two that fits
    into "unsigned" type.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6bc28ede7bf3fefd837210b6ba05c91983249796
Author: Wen Gong <wgong@codeaurora.org>
Date:   Mon May 31 22:28:34 2021 +0200

    mac80211: extend protection against mixed key and fragment cache attacks
    
    commit 3edc6b0d6c061a70d8ca3c3c72eb1f58ce29bfb1 upstream.
    
    For some chips/drivers, e.g., QCA6174 with ath10k, the decryption is
    done by the hardware, and the Protected bit in the Frame Control field
    is cleared in the lower level driver before the frame is passed to
    mac80211. In such cases, the condition for ieee80211_has_protected() is
    not met in ieee80211_rx_h_defragment() of mac80211 and the new security
    validation steps are not executed.
    
    Extend mac80211 to cover the case where the Protected bit has been
    cleared, but the frame is indicated as having been decrypted by the
    hardware. This extends protection against mixed key and fragment cache
    attack for additional drivers/chips. This fixes CVE-2020-24586 and
    CVE-2020-24587 for such cases.
    
    Tested-on: QCA6174 hw3.2 PCI WLAN.RM.4.4.1-00110-QCARMSWP-1
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Wen Gong <wgong@codeaurora.org>
    Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
    Link: https://lore.kernel.org/r/20210511200110.037aa5ca0390.I7bb888e2965a0db02a67075fcb5deb50eb7408aa@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3d4030498c304d7c36bccc6acdedacf55402387
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon May 31 22:28:33 2021 +0200

    mac80211: do not accept/forward invalid EAPOL frames
    
    commit a8c4d76a8dd4fb9666fc8919a703d85fb8f44ed8 upstream.
    
    EAPOL frames are used for authentication and key management between the
    AP and each individual STA associated in the BSS. Those frames are not
    supposed to be sent by one associated STA to another associated STA
    (either unicast for broadcast/multicast).
    
    Similarly, in 802.11 they're supposed to be sent to the authenticator
    (AP) address.
    
    Since it is possible for unexpected EAPOL frames to result in misbehavior
    in supplicant implementations, it is better for the AP to not allow such
    cases to be forwarded to other clients either directly, or indirectly if
    the AP interface is part of a bridge.
    
    Accept EAPOL (control port) frames only if they're transmitted to the
    own address, or, due to interoperability concerns, to the PAE group
    address.
    
    Disable forwarding of EAPOL (or well, the configured control port
    protocol) frames back to wireless medium in all cases. Previously, these
    frames were accepted from fully authenticated and authorized stations
    and also from unauthenticated stations for one of the cases.
    
    Additionally, to avoid forwarding by the bridge, rewrite the PAE group
    address case to the local MAC address.
    
    Cc: stable@vger.kernel.org
    Co-developed-by: Jouni Malinen <jouni@codeaurora.org>
    Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
    Link: https://lore.kernel.org/r/20210511200110.cb327ed0cabe.Ib7dcffa2a31f0913d660de65ba3c8aca75b1d10f@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c882f322aebcba8778677dd70916b48c04e144e8
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon May 31 22:28:32 2021 +0200

    mac80211: prevent attacks on TKIP/WEP as well
    
    commit 7e44a0b597f04e67eee8cdcbe7ee706c6f5de38b upstream.
    
    Similar to the issues fixed in previous patches, TKIP and WEP
    should be protected even if for TKIP we have the Michael MIC
    protecting it, and WEP is broken anyway.
    
    However, this also somewhat protects potential other algorithms
    that drivers might implement.
    
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210511200110.430e8c202313.Ia37e4e5b6b3eaab1a5ae050e015f6c92859dbe27@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 608b0a2ae928a74a2f89e02227339dd79cdb63cf
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon May 31 22:28:31 2021 +0200

    mac80211: check defrag PN against current frame
    
    commit bf30ca922a0c0176007e074b0acc77ed345e9990 upstream.
    
    As pointed out by Mathy Vanhoef, we implement the RX PN check
    on fragmented frames incorrectly - we check against the last
    received PN prior to the new frame, rather than to the one in
    this frame itself.
    
    Prior patches addressed the security issue here, but in order
    to be able to reason better about the code, fix it to really
    compare against the current frame's PN, not the last stored
    one.
    
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210511200110.bfbc340ff071.Id0b690e581da7d03d76df90bb0e3fd55930bc8a0@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1073dd6d45f1a9bd6fc586b2ae09ae822e28588
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon May 31 22:28:30 2021 +0200

    mac80211: add fragment cache to sta_info
    
    commit 3a11ce08c45b50d69c891d71760b7c5b92074709 upstream.
    
    Prior patches protected against fragmentation cache attacks
    by coloring keys, but this shows that it can lead to issues
    when multiple stations use the same sequence number. Add a
    fragment cache to struct sta_info (in addition to the one in
    the interface) to separate fragments for different stations
    properly.
    
    This then automatically clear most of the fragment cache when a
    station disconnects (or reassociates) from an AP, or when client
    interfaces disconnect from the network, etc.
    
    On the way, also fix the comment there since this brings us in line
    with the recommendation in 802.11-2016 ("An AP should support ...").
    Additionally, remove a useless condition (since there's no problem
    purging an already empty list).
    
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210511200110.fc35046b0d52.I1ef101e3784d13e8f6600d83de7ec9a3a45bcd52@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 53a9c079c1f00db46393d10cd1798c12de40fe77
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon May 31 22:28:29 2021 +0200

    mac80211: drop A-MSDUs on old ciphers
    
    commit 270032a2a9c4535799736142e1e7c413ca7b836e upstream.
    
    With old ciphers (WEP and TKIP) we shouldn't be using A-MSDUs
    since A-MSDUs are only supported if we know that they are, and
    the only practical way for that is HT support which doesn't
    support old ciphers.
    
    However, we would normally accept them anyway. Since we check
    the MMIC before deaggregating A-MSDUs, and the A-MSDU bit in
    the QoS header is not protected in TKIP (or WEP), this enables
    attacks similar to CVE-2020-24588. To prevent that, drop A-MSDUs
    completely with old ciphers.
    
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210511200110.076543300172.I548e6e71f1ee9cad4b9a37bf212ae7db723587aa@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit daea7ff51861cec93ff7f561095d9048b673b51f
Author: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
Date:   Mon May 31 22:28:28 2021 +0200

    cfg80211: mitigate A-MSDU aggregation attacks
    
    commit 2b8a1fee3488c602aca8bea004a087e60806a5cf upstream.
    
    Mitigate A-MSDU injection attacks (CVE-2020-24588) by detecting if the
    destination address of a subframe equals an RFC1042 (i.e., LLC/SNAP)
    header, and if so dropping the complete A-MSDU frame. This mitigates
    known attacks, although new (unknown) aggregation-based attacks may
    remain possible.
    
    This defense works because in A-MSDU aggregation injection attacks, a
    normal encrypted Wi-Fi frame is turned into an A-MSDU frame. This means
    the first 6 bytes of the first A-MSDU subframe correspond to an RFC1042
    header. In other words, the destination MAC address of the first A-MSDU
    subframe contains the start of an RFC1042 header during an aggregation
    attack. We can detect this and thereby prevent this specific attack.
    For details, see Section 7.2 of "Fragment and Forge: Breaking Wi-Fi
    Through Frame Aggregation and Fragmentation".
    
    Note that for kernel 4.9 and above this patch depends on "mac80211:
    properly handle A-MSDUs that start with a rfc1042 header". Otherwise
    this patch has no impact and attacks will remain possible.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
    Link: https://lore.kernel.org/r/20210511200110.25d93176ddaf.I9e265b597f2cd23eb44573f35b625947b386a9de@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e76511a6fbb5e568a2db4da8da5a120481c914fe
Author: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
Date:   Mon May 31 22:28:27 2021 +0200

    mac80211: properly handle A-MSDUs that start with an RFC 1042 header
    
    commit a1d5ff5651ea592c67054233b14b30bf4452999c upstream.
    
    Properly parse A-MSDUs whose first 6 bytes happen to equal a rfc1042
    header. This can occur in practice when the destination MAC address
    equals AA:AA:03:00:00:00. More importantly, this simplifies the next
    patch to mitigate A-MSDU injection attacks.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
    Link: https://lore.kernel.org/r/20210511200110.0b2b886492f0.I23dd5d685fe16d3b0ec8106e8f01b59f499dffed@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 229fa01b0bd72559e5c5b99e402f180e47ad86a8
Author: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
Date:   Mon May 31 22:28:26 2021 +0200

    mac80211: prevent mixed key and fragment cache attacks
    
    commit 94034c40ab4a3fcf581fbc7f8fdf4e29943c4a24 upstream.
    
    Simultaneously prevent mixed key attacks (CVE-2020-24587) and fragment
    cache attacks (CVE-2020-24586). This is accomplished by assigning a
    unique color to every key (per interface) and using this to track which
    key was used to decrypt a fragment. When reassembling frames, it is
    now checked whether all fragments were decrypted using the same key.
    
    To assure that fragment cache attacks are also prevented, the ID that is
    assigned to keys is unique even over (re)associations and (re)connects.
    This means fragments separated by a (re)association or (re)connect will
    not be reassembled. Because mac80211 now also prevents the reassembly of
    mixed encrypted and plaintext fragments, all cache attacks are prevented.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
    Link: https://lore.kernel.org/r/20210511200110.3f8290e59823.I622a67769ed39257327a362cfc09c812320eb979@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16cbc9756dd84e870867f003a200553931dd461b
Author: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
Date:   Mon May 31 22:28:25 2021 +0200

    mac80211: assure all fragments are encrypted
    
    commit 965a7d72e798eb7af0aa67210e37cf7ecd1c9cad upstream.
    
    Do not mix plaintext and encrypted fragments in protected Wi-Fi
    networks. This fixes CVE-2020-26147.
    
    Previously, an attacker was able to first forward a legitimate encrypted
    fragment towards a victim, followed by a plaintext fragment. The
    encrypted and plaintext fragment would then be reassembled. For further
    details see Section 6.3 and Appendix D in the paper "Fragment and Forge:
    Breaking Wi-Fi Through Frame Aggregation and Fragmentation".
    
    Because of this change there are now two equivalent conditions in the
    code to determine if a received fragment requires sequential PNs, so we
    also move this test to a separate function to make the code easier to
    maintain.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
    Link: https://lore.kernel.org/r/20210511200110.30c4394bb835.I5acfdb552cc1d20c339c262315950b3eac491397@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 077f87bfc545b779d33567e6b912bd41caf2e83e
Author: Johan Hovold <johan@kernel.org>
Date:   Mon May 24 11:25:11 2021 +0200

    net: hso: fix control-request directions
    
    commit 1a6e9a9c68c1f183872e4bcc947382111c2e04eb upstream.
    
    The direction of the pipe argument must match the request-type direction
    bit or control requests may fail depending on the host-controller-driver
    implementation.
    
    Fix the tiocmset and rfkill requests which erroneously used
    usb_rcvctrlpipe().
    
    Fixes: 72dc1c096c70 ("HSO: add option hso driver")
    Cc: stable@vger.kernel.org      # 2.6.27
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f5500e3c8414351566777335af82e72381468f7
Author: Kees Cook <keescook@chromium.org>
Date:   Tue May 25 12:37:35 2021 -0700

    proc: Check /proc/$pid/attr/ writes against file opener
    
    commit bfb819ea20ce8bbeeba17e1a6418bf8bda91fc28 upstream.
    
    Fix another "confused deputy" weakness[1]. Writes to /proc/$pid/attr/
    files need to check the opener credentials, since these fds do not
    transition state across execve(). Without this, it is possible to
    trick another process (which may have different credentials) to write
    to its own /proc/$pid/attr/ files, leading to unexpected and possibly
    exploitable behaviors.
    
    [1] https://www.kernel.org/doc/html/latest/security/credentials.html?highlight=confused#open-file-credentials
    
    Fixes: 1da177e4c3f41 ("Linux-2.6.12-rc2")
    Cc: stable@vger.kernel.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 448a1cb12977f52142e6feb12022c59662d88dc1
Author: Dongliang Mu <mudongliangabcd@gmail.com>
Date:   Sat May 15 07:29:06 2021 +0800

    NFC: nci: fix memory leak in nci_allocate_device
    
    commit e0652f8bb44d6294eeeac06d703185357f25d50b upstream.
    
    nfcmrvl_disconnect fails to free the hci_dev field in struct nci_dev.
    Fix this by freeing hci_dev in nci_free_device.
    
    BUG: memory leak
    unreferenced object 0xffff888111ea6800 (size 1024):
      comm "kworker/1:0", pid 19, jiffies 4294942308 (age 13.580s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 00 60 fd 0c 81 88 ff ff  .........`......
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<000000004bc25d43>] kmalloc include/linux/slab.h:552 [inline]
        [<000000004bc25d43>] kzalloc include/linux/slab.h:682 [inline]
        [<000000004bc25d43>] nci_hci_allocate+0x21/0xd0 net/nfc/nci/hci.c:784
        [<00000000c59cff92>] nci_allocate_device net/nfc/nci/core.c:1170 [inline]
        [<00000000c59cff92>] nci_allocate_device+0x10b/0x160 net/nfc/nci/core.c:1132
        [<00000000006e0a8e>] nfcmrvl_nci_register_dev+0x10a/0x1c0 drivers/nfc/nfcmrvl/main.c:153
        [<000000004da1b57e>] nfcmrvl_probe+0x223/0x290 drivers/nfc/nfcmrvl/usb.c:345
        [<00000000d506aed9>] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
        [<00000000bc632c92>] really_probe+0x159/0x4a0 drivers/base/dd.c:554
        [<00000000f5009125>] driver_probe_device+0x84/0x100 drivers/base/dd.c:740
        [<000000000ce658ca>] __device_attach_driver+0xee/0x110 drivers/base/dd.c:846
        [<000000007067d05f>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:431
        [<00000000f8e13372>] __device_attach+0x122/0x250 drivers/base/dd.c:914
        [<000000009cf68860>] bus_probe_device+0xc6/0xe0 drivers/base/bus.c:491
        [<00000000359c965a>] device_add+0x5be/0xc30 drivers/base/core.c:3109
        [<00000000086e4bd3>] usb_set_configuration+0x9d9/0xb90 drivers/usb/core/message.c:2164
        [<00000000ca036872>] usb_generic_driver_probe+0x8c/0xc0 drivers/usb/core/generic.c:238
        [<00000000d40d36f6>] usb_probe_device+0x5c/0x140 drivers/usb/core/driver.c:293
        [<00000000bc632c92>] really_probe+0x159/0x4a0 drivers/base/dd.c:554
    
    Reported-by: syzbot+19bcfc64a8df1318d1c3@syzkaller.appspotmail.com
    Fixes: 11f54f228643 ("NFC: nci: Add HCI over NCI protocol support")
    Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9bc6c1246941cf88cf06a27153d6a1108a240067
Author: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Date:   Mon Mar 8 14:24:13 2021 +1300

    netfilter: x_tables: Use correct memory barriers.
    
    commit 175e476b8cdf2a4de7432583b49c871345e4f8a1 upstream.
    
    When a new table value was assigned, it was followed by a write memory
    barrier. This ensured that all writes before this point would complete
    before any writes after this point. However, to determine whether the
    rules are unused, the sequence counter is read. To ensure that all
    writes have been done before these reads, a full memory barrier is
    needed, not just a write memory barrier. The same argument applies when
    incrementing the counter, before the rules are read.
    
    Changing to using smp_mb() instead of smp_wmb() fixes the kernel panic
    reported in cc00bcaa5899 (which is still present), while still
    maintaining the same speed of replacing tables.
    
    The smb_mb() barriers potentially slow the packet path, however testing
    has shown no measurable change in performance on a 4-core MIPS64
    platform.
    
    Fixes: 7f5c6d4f665b ("netfilter: get rid of atomic ops in fast path")
    Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    [Ported to stable, affected barrier is added by d3d40f237480abf3268956daf18cdc56edd32834 in mainline]
    Signed-off-by: Pavel Machek (CIP) <pavel@denx.de>
    Signed-off-by: Nobuhiro Iwamatsu (CIP) <nobuhiro1.iwamatsu@toshiba.co.jp>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 203bb4030dd736bf6ad12eb1a6516dd48013e111
Author: Stephen Brennan <stephen.s.brennan@oracle.com>
Date:   Wed May 26 10:46:13 2021 -0700

    mm, vmstat: drop zone->lock in /proc/pagetypeinfo
    
    Commit 93b3a674485f6a4b8ffff85d1682d5e8b7c51560 upstream
    
    Commit 93b3a674485f ("mm,vmstat: reduce zone->lock holding time by
    /proc/pagetypeinfo") upstream caps the number of iterations over each
    free_list at 100,000, and also drops the zone->lock in between each
    migrate type. Capping the iteration count alters the file contents in
    some cases, which means this approach may not be suitable for stable
    backports.
    
    However, dropping zone->lock in between migrate types (and, as a result,
    page orders) will not change the /proc/pagetypeinfo file contents. It
    can significantly reduce the length of time spent with IRQs disabled,
    which can prevent missed interrupts or soft lockups which we have
    observed on systems with particularly large memory.
    
    Thus, this commit is a modified version of the upstream one which only
    drops the lock in between migrate types.
    
    Fixes: 467c996c1e19 ("Print out statistics in relation to fragmentation avoidance to /proc/pagetypeinfo")
    Signed-off-by: Stephen Brennan <stephen.s.brennan@oracle.com>
    Reviewed-by: Aruna Ramakrishna <aruna.ramakrishna@oracle.com>
    Reviewed-by: Khalid Aziz <khalid.aziz@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>