commit 5b9a4104c902d7dec14c9e3c5652a638194487c6
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Feb 13 13:52:58 2021 +0100

    Linux 5.4.98
    
    Tested-by: Jason Self <jason@bluehome.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Ross Schmidt <ross.schm.dev@gmail.com>
    Link: https://lore.kernel.org/r/20210211150148.516371325@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3654a0ed0bdc6d70502bfc7c9fec9f1e243dfcad
Author: Phillip Lougher <phillip@squashfs.org.uk>
Date:   Tue Feb 9 13:42:00 2021 -0800

    squashfs: add more sanity checks in xattr id lookup
    
    commit 506220d2ba21791314af569211ffd8870b8208fa upstream.
    
    Sysbot has reported a warning where a kmalloc() attempt exceeds the
    maximum limit.  This has been identified as corruption of the xattr_ids
    count when reading the xattr id lookup table.
    
    This patch adds a number of additional sanity checks to detect this
    corruption and others.
    
    1. It checks for a corrupted xattr index read from the inode.  This could
       be because the metadata block is uncompressed, or because the
       "compression" bit has been corrupted (turning a compressed block
       into an uncompressed block).  This would cause an out of bounds read.
    
    2. It checks against corruption of the xattr_ids count.  This can either
       lead to the above kmalloc failure, or a smaller than expected
       table to be read.
    
    3. It checks the contents of the index table for corruption.
    
    [phillip@squashfs.org.uk: fix checkpatch issue]
      Link: https://lkml.kernel.org/r/270245655.754655.1612770082682@webmail.123-reg.co.uk
    
    Link: https://lkml.kernel.org/r/20210204130249.4495-5-phillip@squashfs.org.uk
    Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
    Reported-by: syzbot+2ccea6339d368360800d@syzkaller.appspotmail.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 d78a70667738de0a4cdcaf08ebc13c288507391d
Author: Phillip Lougher <phillip@squashfs.org.uk>
Date:   Tue Feb 9 13:41:56 2021 -0800

    squashfs: add more sanity checks in inode lookup
    
    commit eabac19e40c095543def79cb6ffeb3a8588aaff4 upstream.
    
    Sysbot has reported an "slab-out-of-bounds read" error which has been
    identified as being caused by a corrupted "ino_num" value read from the
    inode.  This could be because the metadata block is uncompressed, or
    because the "compression" bit has been corrupted (turning a compressed
    block into an uncompressed block).
    
    This patch adds additional sanity checks to detect this, and the
    following corruption.
    
    1. It checks against corruption of the inodes count.  This can either
       lead to a larger table to be read, or a smaller than expected
       table to be read.
    
       In the case of a too large inodes count, this would often have been
       trapped by the existing sanity checks, but this patch introduces
       a more exact check, which can identify too small values.
    
    2. It checks the contents of the index table for corruption.
    
    [phillip@squashfs.org.uk: fix checkpatch issue]
      Link: https://lkml.kernel.org/r/527909353.754618.1612769948607@webmail.123-reg.co.uk
    
    Link: https://lkml.kernel.org/r/20210204130249.4495-4-phillip@squashfs.org.uk
    Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
    Reported-by: syzbot+04419e3ff19d2970ea28@syzkaller.appspotmail.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 a814355e705758960d33931f1b6efaec58b865b3
Author: Phillip Lougher <phillip@squashfs.org.uk>
Date:   Tue Feb 9 13:41:53 2021 -0800

    squashfs: add more sanity checks in id lookup
    
    commit f37aa4c7366e23f91b81d00bafd6a7ab54e4a381 upstream.
    
    Sysbot has reported a number of "slab-out-of-bounds reads" and
    "use-after-free read" errors which has been identified as being caused
    by a corrupted index value read from the inode.  This could be because
    the metadata block is uncompressed, or because the "compression" bit has
    been corrupted (turning a compressed block into an uncompressed block).
    
    This patch adds additional sanity checks to detect this, and the
    following corruption.
    
    1. It checks against corruption of the ids count.  This can either
       lead to a larger table to be read, or a smaller than expected
       table to be read.
    
       In the case of a too large ids count, this would often have been
       trapped by the existing sanity checks, but this patch introduces
       a more exact check, which can identify too small values.
    
    2. It checks the contents of the index table for corruption.
    
    Link: https://lkml.kernel.org/r/20210204130249.4495-3-phillip@squashfs.org.uk
    Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
    Reported-by: syzbot+b06d57ba83f604522af2@syzkaller.appspotmail.com
    Reported-by: syzbot+c021ba012da41ee9807c@syzkaller.appspotmail.com
    Reported-by: syzbot+5024636e8b5fd19f0f19@syzkaller.appspotmail.com
    Reported-by: syzbot+bcbc661df46657d0fa4f@syzkaller.appspotmail.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 848bcb0a1d96f67d075465667d3a1ad4af56311e
Author: Peter Gonda <pgonda@google.com>
Date:   Wed Jan 27 08:15:24 2021 -0800

    Fix unsynchronized access to sev members through svm_register_enc_region
    
    commit 19a23da53932bc8011220bd8c410cb76012de004 upstream.
    
    Grab kvm->lock before pinning memory when registering an encrypted
    region; sev_pin_memory() relies on kvm->lock being held to ensure
    correctness when checking and updating the number of pinned pages.
    
    Add a lockdep assertion to help prevent future regressions.
    
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: Brijesh Singh <brijesh.singh@amd.com>
    Cc: Sean Christopherson <seanjc@google.com>
    Cc: x86@kernel.org
    Cc: kvm@vger.kernel.org
    Cc: stable@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Fixes: 1e80fdc09d12 ("KVM: SVM: Pin guest memory when SEV is active")
    Signed-off-by: Peter Gonda <pgonda@google.com>
    
    V2
     - Fix up patch description
     - Correct file paths svm.c -> sev.c
     - Add unlock of kvm->lock on sev_pin_memory error
    
    V1
     - https://lore.kernel.org/kvm/20210126185431.1824530-1-pgonda@google.com/
    
    Message-Id: <20210127161524.2832400-1-pgonda@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78e2f71b89b22222583f74803d14f3d90cdf9d12
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Tue Feb 9 18:46:10 2021 +0000

    bpf: Fix 32 bit src register truncation on div/mod
    
    commit e88b2c6e5a4d9ce30d75391e4d950da74bb2bd90 upstream.
    
    While reviewing a different fix, John and I noticed an oddity in one of the
    BPF program dumps that stood out, for example:
    
      # bpftool p d x i 13
       0: (b7) r0 = 808464450
       1: (b4) w4 = 808464432
       2: (bc) w0 = w0
       3: (15) if r0 == 0x0 goto pc+1
       4: (9c) w4 %= w0
      [...]
    
    In line 2 we noticed that the mov32 would 32 bit truncate the original src
    register for the div/mod operation. While for the two operations the dst
    register is typically marked unknown e.g. from adjust_scalar_min_max_vals()
    the src register is not, and thus verifier keeps tracking original bounds,
    simplified:
    
      0: R1=ctx(id=0,off=0,imm=0) R10=fp0
      0: (b7) r0 = -1
      1: R0_w=invP-1 R1=ctx(id=0,off=0,imm=0) R10=fp0
      1: (b7) r1 = -1
      2: R0_w=invP-1 R1_w=invP-1 R10=fp0
      2: (3c) w0 /= w1
      3: R0_w=invP(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R1_w=invP-1 R10=fp0
      3: (77) r1 >>= 32
      4: R0_w=invP(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R1_w=invP4294967295 R10=fp0
      4: (bf) r0 = r1
      5: R0_w=invP4294967295 R1_w=invP4294967295 R10=fp0
      5: (95) exit
      processed 6 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
    
    Runtime result of r0 at exit is 0 instead of expected -1. Remove the
    verifier mov32 src rewrite in div/mod and replace it with a jmp32 test
    instead. After the fix, we result in the following code generation when
    having dividend r1 and divisor r6:
    
      div, 64 bit:                             div, 32 bit:
    
       0: (b7) r6 = 8                           0: (b7) r6 = 8
       1: (b7) r1 = 8                           1: (b7) r1 = 8
       2: (55) if r6 != 0x0 goto pc+2           2: (56) if w6 != 0x0 goto pc+2
       3: (ac) w1 ^= w1                         3: (ac) w1 ^= w1
       4: (05) goto pc+1                        4: (05) goto pc+1
       5: (3f) r1 /= r6                         5: (3c) w1 /= w6
       6: (b7) r0 = 0                           6: (b7) r0 = 0
       7: (95) exit                             7: (95) exit
    
      mod, 64 bit:                             mod, 32 bit:
    
       0: (b7) r6 = 8                           0: (b7) r6 = 8
       1: (b7) r1 = 8                           1: (b7) r1 = 8
       2: (15) if r6 == 0x0 goto pc+1           2: (16) if w6 == 0x0 goto pc+1
       3: (9f) r1 %= r6                         3: (9c) w1 %= w6
       4: (b7) r0 = 0                           4: (b7) r0 = 0
       5: (95) exit                             5: (95) exit
    
    x86 in particular can throw a 'divide error' exception for div
    instruction not only for divisor being zero, but also for the case
    when the quotient is too large for the designated register. For the
    edx:eax and rdx:rax dividend pair it is not an issue in x86 BPF JIT
    since we always zero edx (rdx). Hence really the only protection
    needed is against divisor being zero.
    
    Fixes: 68fda450a7df ("bpf: fix 32-bit divide by zero")
    Co-developed-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8589eda99cb14ae2edf270ebd9cd1a09a1cdbe24
Author: Mark Brown <broonie@kernel.org>
Date:   Fri Jan 22 13:20:42 2021 +0000

    regulator: Fix lockdep warning resolving supplies
    
    [ Upstream commit 14a71d509ac809dcf56d7e3ca376b15d17bd0ddd ]
    
    With commit eaa7995c529b54 (regulator: core: avoid
    regulator_resolve_supply() race condition) we started holding the rdev
    lock while resolving supplies, an operation that requires holding the
    regulator_list_mutex. This results in lockdep warnings since in other
    places we take the list mutex then the mutex on an individual rdev.
    
    Since the goal is to make sure that we don't call set_supply() twice
    rather than a concern about the cost of resolution pull the rdev lock
    and check for duplicate resolution down to immediately before we do the
    set_supply() and drop it again once the allocation is done.
    
    Fixes: eaa7995c529b54 (regulator: core: avoid regulator_resolve_supply() race condition)
    Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20210122132042.10306-1-broonie@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 513fee2aee13cc4fd92dbeca0004581860c0ed26
Author: Baolin Wang <baolin.wang@linux.alibaba.com>
Date:   Thu Jan 28 13:58:15 2021 +0800

    blk-cgroup: Use cond_resched() when destroy blkgs
    
    [ Upstream commit 6c635caef410aa757befbd8857c1eadde5cc22ed ]
    
    On !PREEMPT kernel, we can get below softlockup when doing stress
    testing with creating and destroying block cgroup repeatly. The
    reason is it may take a long time to acquire the queue's lock in
    the loop of blkcg_destroy_blkgs(), or the system can accumulate a
    huge number of blkgs in pathological cases. We can add a need_resched()
    check on each loop and release locks and do cond_resched() if true
    to avoid this issue, since the blkcg_destroy_blkgs() is not called
    from atomic contexts.
    
    [ 4757.010308] watchdog: BUG: soft lockup - CPU#11 stuck for 94s!
    [ 4757.010698] Call trace:
    [ 4757.010700]  blkcg_destroy_blkgs+0x68/0x150
    [ 4757.010701]  cgwb_release_workfn+0x104/0x158
    [ 4757.010702]  process_one_work+0x1bc/0x3f0
    [ 4757.010704]  worker_thread+0x164/0x468
    [ 4757.010705]  kthread+0x108/0x138
    
    Suggested-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1eb41833408f8f5d980ebcc37b15fd8e14632d9
Author: Qii Wang <qii.wang@mediatek.com>
Date:   Sat Jan 9 16:29:50 2021 +0800

    i2c: mediatek: Move suspend and resume handling to NOIRQ phase
    
    [ Upstream commit de96c3943f591018727b862f51953c1b6c55bcc3 ]
    
    Some i2c device driver indirectly uses I2C driver when it is now
    being suspended. The i2c devices driver is suspended during the
    NOIRQ phase and this cannot be changed due to other dependencies.
    Therefore, we also need to move the suspend handling for the I2C
    controller driver to the NOIRQ phase as well.
    
    Signed-off-by: Qii Wang <qii.wang@mediatek.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 618b65dbde7a3b01c3cd9c69e4b90d7fbdf2896e
Author: Dave Wysochanski <dwysocha@redhat.com>
Date:   Thu Jan 21 16:17:24 2021 -0500

    SUNRPC: Handle 0 length opaque XDR object data properly
    
    [ Upstream commit e4a7d1f7707eb44fd953a31dd59eff82009d879c ]
    
    When handling an auth_gss downcall, it's possible to get 0-length
    opaque object for the acceptor.  In the case of a 0-length XDR
    object, make sure simple_get_netobj() fills in dest->data = NULL,
    and does not continue to kmemdup() which will set
    dest->data = ZERO_SIZE_PTR for the acceptor.
    
    The trace event code can handle NULL but not ZERO_SIZE_PTR for a
    string, and so without this patch the rpcgss_context trace event
    will crash the kernel as follows:
    
    [  162.887992] BUG: kernel NULL pointer dereference, address: 0000000000000010
    [  162.898693] #PF: supervisor read access in kernel mode
    [  162.900830] #PF: error_code(0x0000) - not-present page
    [  162.902940] PGD 0 P4D 0
    [  162.904027] Oops: 0000 [#1] SMP PTI
    [  162.905493] CPU: 4 PID: 4321 Comm: rpc.gssd Kdump: loaded Not tainted 5.10.0 #133
    [  162.908548] Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
    [  162.910978] RIP: 0010:strlen+0x0/0x20
    [  162.912505] Code: 48 89 f9 74 09 48 83 c1 01 80 39 00 75 f7 31 d2 44 0f b6 04 16 44 88 04 11 48 83 c2 01 45 84 c0 75 ee c3 0f 1f 80 00 00 00 00 <80> 3f 00 74 10 48 89 f8 48 83 c0 01 80 38 00 75 f7 48 29 f8 c3 31
    [  162.920101] RSP: 0018:ffffaec900c77d90 EFLAGS: 00010202
    [  162.922263] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00000000fffde697
    [  162.925158] RDX: 000000000000002f RSI: 0000000000000080 RDI: 0000000000000010
    [  162.928073] RBP: 0000000000000010 R08: 0000000000000e10 R09: 0000000000000000
    [  162.930976] R10: ffff8e698a590cb8 R11: 0000000000000001 R12: 0000000000000e10
    [  162.933883] R13: 00000000fffde697 R14: 000000010034d517 R15: 0000000000070028
    [  162.936777] FS:  00007f1e1eb93700(0000) GS:ffff8e6ab7d00000(0000) knlGS:0000000000000000
    [  162.940067] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  162.942417] CR2: 0000000000000010 CR3: 0000000104eba000 CR4: 00000000000406e0
    [  162.945300] Call Trace:
    [  162.946428]  trace_event_raw_event_rpcgss_context+0x84/0x140 [auth_rpcgss]
    [  162.949308]  ? __kmalloc_track_caller+0x35/0x5a0
    [  162.951224]  ? gss_pipe_downcall+0x3a3/0x6a0 [auth_rpcgss]
    [  162.953484]  gss_pipe_downcall+0x585/0x6a0 [auth_rpcgss]
    [  162.955953]  rpc_pipe_write+0x58/0x70 [sunrpc]
    [  162.957849]  vfs_write+0xcb/0x2c0
    [  162.959264]  ksys_write+0x68/0xe0
    [  162.960706]  do_syscall_64+0x33/0x40
    [  162.962238]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [  162.964346] RIP: 0033:0x7f1e1f1e57df
    
    Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 19b56e8433e7a0e23e582daf5d03859afc5e2a0f
Author: Dave Wysochanski <dwysocha@redhat.com>
Date:   Thu Jan 21 16:17:23 2021 -0500

    SUNRPC: Move simple_get_bytes and simple_get_netobj into private header
    
    [ Upstream commit ba6dfce47c4d002d96cd02a304132fca76981172 ]
    
    Remove duplicated helper functions to parse opaque XDR objects
    and place inside new file net/sunrpc/auth_gss/auth_gss_internal.h.
    In the new file carry the license and copyright from the source file
    net/sunrpc/auth_gss/auth_gss.c.  Finally, update the comment inside
    include/linux/sunrpc/xdr.h since lockd is not the only user of
    struct xdr_netobj.
    
    Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fa758032a546ef517ab49c33893c5e75e74d5247
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Jan 22 14:52:41 2021 +0200

    iwlwifi: mvm: guard against device removal in reprobe
    
    [ Upstream commit 7a21b1d4a728a483f07c638ccd8610d4b4f12684 ]
    
    If we get into a problem severe enough to attempt a reprobe,
    we schedule a worker to do that. However, if the problem gets
    more severe and the device is actually destroyed before this
    worker has a chance to run, we use a free device. Bump up the
    reference count of the device until the worker runs to avoid
    this situation.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/iwlwifi.20210122144849.871f0892e4b2.I94819e11afd68d875f3e242b98bef724b8236f1e@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2fa76f19dc15437c39c9521746a86ebfd03921c6
Author: Gregory Greenman <gregory.greenman@intel.com>
Date:   Fri Jan 22 14:52:37 2021 +0200

    iwlwifi: mvm: invalidate IDs of internal stations at mvm start
    
    [ Upstream commit e223e42aac30bf81f9302c676cdf58cf2bf36950 ]
    
    Having sta_id not set for aux_sta and snif_sta can potentially lead to a
    hard to debug issue in case remove station is called without an add. In
    this case sta_id 0, an unrelated regular station, will be removed.
    
    In fact, we do have a FW assert that occures rarely and from the debug
    data analysis it looks like sta_id 0 is removed by mistake, though it's
    hard to pinpoint the exact flow. The WARN_ON in this patch should help
    to find it.
    
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/iwlwifi.20210122144849.5dc6dd9b22d5.I2add1b5ad24d0d0a221de79d439c09f88fcaf15d@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c82793ef4f3b1661ac567c5cf67cbc12996c1429
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Jan 15 13:05:56 2021 +0200

    iwlwifi: pcie: fix context info memory leak
    
    [ Upstream commit 2d6bc752cc2806366d9a4fd577b3f6c1f7a7e04e ]
    
    If the image loader allocation fails, we leak all the previously
    allocated memory. Fix this.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/iwlwifi.20210115130252.97172cbaa67c.I3473233d0ad01a71aa9400832fb2b9f494d88a11@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b301eaf27f861dbd6ba146130eb2d7de65bd7101
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Fri Jan 15 13:05:55 2021 +0200

    iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap
    
    [ Upstream commit 98c7d21f957b10d9c07a3a60a3a5a8f326a197e5 ]
    
    I hit a NULL pointer exception in this function when the
    init flow went really bad.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/iwlwifi.20210115130252.2e8da9f2c132.I0234d4b8ddaf70aaa5028a20c863255e05bc1f84@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 01742ade928664ece1467e66645a757557e82175
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Jan 15 13:05:48 2021 +0200

    iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time()
    
    [ Upstream commit 5c56d862c749669d45c256f581eac4244be00d4d ]
    
    We need to take the mutex to call iwl_mvm_get_sync_time(), do it.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/iwlwifi.20210115130252.4bb5ccf881a6.I62973cbb081e80aa5b0447a5c3b9c3251a65cf6b@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8f630ed7e98e5d4faf25d2086fea69eebcd5273c
Author: Sara Sharon <sara.sharon@intel.com>
Date:   Fri Jan 15 13:05:47 2021 +0200

    iwlwifi: mvm: skip power command when unbinding vif during CSA
    
    [ Upstream commit bf544e9aa570034e094a8a40d5f9e1e2c4916d18 ]
    
    In the new CSA flow, we remain associated during CSA, but
    still do a unbind-bind to the vif. However, sending the power
    command right after when vif is unbound but still associated
    causes FW to assert (0x3400) since it cannot tell the LMAC id.
    
    Just skip this command, we will send it again in a bit, when
    assigning the new context.
    
    Signed-off-by: Sara Sharon <sara.sharon@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/iwlwifi.20210115130252.64a2254ac5c3.Iaa3a9050bf3d7c9cd5beaf561e932e6defc12ec3@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 589cf152fe47a29de17c268f074fdcf86b0db32e
Author: Eliot Blennerhassett <eliot@blennerhassett.gen.nz>
Date:   Fri Jan 22 21:27:08 2021 +1300

    ASoC: ak4458: correct reset polarity
    
    [ Upstream commit e953daeb68b1abd8a7d44902786349fdeef5c297 ]
    
    Reset (aka power off) happens when the reset gpio is made active.
    Change function name to ak4458_reset to match devicetree property "reset-gpios"
    
    Signed-off-by: Eliot Blennerhassett <eliot@blennerhassett.gen.nz>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/ce650f47-4ff6-e486-7846-cc3d033f3601@blennerhassett.gen.nz
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e96d1025022791cb7908e04ac283e43d2e315eb0
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Thu Jan 21 17:11:42 2021 -0500

    pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()
    
    [ Upstream commit 08bd8dbe88825760e953759d7ec212903a026c75 ]
    
    If the server returns a new stateid that does not match the one in our
    cache, then try to return the one we hold instead of just invalidating
    it on the client side. This ensures that both client and server will
    agree that the stateid is invalid.
    
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a5c70e57c4c1603cec04447cfeebda4b16cfa880
Author: Pan Bian <bianpan2016@163.com>
Date:   Thu Jan 21 06:57:38 2021 -0800

    chtls: Fix potential resource leak
    
    [ Upstream commit b6011966ac6f402847eb5326beee8da3a80405c7 ]
    
    The dst entry should be released if no neighbour is found. Goto label
    free_dst to fix the issue. Besides, the check of ndev against NULL is
    redundant.
    
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Link: https://lore.kernel.org/r/20210121145738.51091-1-bianpan2016@163.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8b6d5013cd707190619f341a8122f2d9cd8f9bfa
Author: Ricardo Ribalda <ribalda@chromium.org>
Date:   Thu Jan 21 18:16:44 2021 +0100

    ASoC: Intel: Skylake: Zero snd_ctl_elem_value
    
    [ Upstream commit 1d8fe0648e118fd495a2cb393a34eb8d428e7808 ]
    
    Clear struct snd_ctl_elem_value before calling ->put() to avoid any data
    leak.
    
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20210121171644.131059-2-ribalda@chromium.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit db272cd2bc9e27d441f1366f75fc49cbdca63280
Author: Shay Bar <shay.bar@celeno.com>
Date:   Tue Dec 22 08:47:14 2020 +0200

    mac80211: 160MHz with extended NSS BW in CSA
    
    [ Upstream commit dcf3c8fb32ddbfa3b8227db38aa6746405bd4527 ]
    
    Upon receiving CSA with 160MHz extended NSS BW from associated AP,
    STA should set the HT operation_mode based on new_center_freq_seg1
    because it is later used as ccfs2 in ieee80211_chandef_vht_oper().
    
    Signed-off-by: Aviad Brikman <aviad.brikman@celeno.com>
    Signed-off-by: Shay Bar <shay.bar@celeno.com>
    Link: https://lore.kernel.org/r/20201222064714.24888-1-shay.bar@celeno.com
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 26548561cb92aa5f18e29ea50bda337cbbb85abf
Author: David Collins <collinsd@codeaurora.org>
Date:   Thu Jan 7 17:16:02 2021 -0800

    regulator: core: avoid regulator_resolve_supply() race condition
    
    [ Upstream commit eaa7995c529b54d68d97a30f6344cc6ca2f214a7 ]
    
    The final step in regulator_register() is to call
    regulator_resolve_supply() for each registered regulator
    (including the one in the process of being registered).  The
    regulator_resolve_supply() function first checks if rdev->supply
    is NULL, then it performs various steps to try to find the supply.
    If successful, rdev->supply is set inside of set_supply().
    
    This procedure can encounter a race condition if two concurrent
    tasks call regulator_register() near to each other on separate CPUs
    and one of the regulators has rdev->supply_name specified.  There
    is currently nothing guaranteeing atomicity between the rdev->supply
    check and set steps.  Thus, both tasks can observe rdev->supply==NULL
    in their regulator_resolve_supply() calls.  This then results in
    both creating a struct regulator for the supply.  One ends up
    actually stored in rdev->supply and the other is lost (though still
    present in the supply's consumer_list).
    
    Here is a kernel log snippet showing the issue:
    
    [   12.421768] gpu_cc_gx_gdsc: supplied by pm8350_s5_level
    [   12.425854] gpu_cc_gx_gdsc: supplied by pm8350_s5_level
    [   12.429064] debugfs: Directory 'regulator.4-SUPPLY' with parent
                   '17a00000.rsc:rpmh-regulator-gfxlvl-pm8350_s5_level'
                   already present!
    
    Avoid this race condition by holding the rdev->mutex lock inside
    of regulator_resolve_supply() while checking and setting
    rdev->supply.
    
    Signed-off-by: David Collins <collinsd@codeaurora.org>
    Link: https://lore.kernel.org/r/1610068562-4410-1-git-send-email-collinsd@codeaurora.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 03d76df5f164a6bae2f10f0c9e29bc7da7e7c31e
Author: Cong Wang <cong.wang@bytedance.com>
Date:   Sat Dec 26 16:50:20 2020 -0800

    af_key: relax availability checks for skb size calculation
    
    [ Upstream commit afbc293add6466f8f3f0c3d944d85f53709c170f ]
    
    xfrm_probe_algs() probes kernel crypto modules and changes the
    availability of struct xfrm_algo_desc. But there is a small window
    where ealg->available and aalg->available get changed between
    count_ah_combs()/count_esp_combs() and dump_ah_combs()/dump_esp_combs(),
    in this case we may allocate a smaller skb but later put a larger
    amount of data and trigger the panic in skb_put().
    
    Fix this by relaxing the checks when counting the size, that is,
    skipping the test of ->available. We may waste some memory for a few
    of sizeof(struct sadb_comb), but it is still much better than a panic.
    
    Reported-by: syzbot+b2bf2652983d23734c5c@syzkaller.appspotmail.com
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 968b1b0341365e0657424bb6fd99f7bca2fb19e3
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu Jan 28 00:37:51 2021 +0900

    tracing/kprobe: Fix to support kretprobe events on unloaded modules
    
    commit 97c753e62e6c31a404183898d950d8c08d752dbd upstream.
    
    Fix kprobe_on_func_entry() returns error code instead of false so that
    register_kretprobe() can return an appropriate error code.
    
    append_trace_kprobe() expects the kprobe registration returns -ENOENT
    when the target symbol is not found, and it checks whether the target
    module is unloaded or not. If the target module doesn't exist, it
    defers to probe the target symbol until the module is loaded.
    
    However, since register_kretprobe() returns -EINVAL instead of -ENOENT
    in that case, it always fail on putting the kretprobe event on unloaded
    modules. e.g.
    
    Kprobe event:
    /sys/kernel/debug/tracing # echo p xfs:xfs_end_io >> kprobe_events
    [   16.515574] trace_kprobe: This probe might be able to register after target module is loaded. Continue.
    
    Kretprobe event: (p -> r)
    /sys/kernel/debug/tracing # echo r xfs:xfs_end_io >> kprobe_events
    sh: write error: Invalid argument
    /sys/kernel/debug/tracing # cat error_log
    [   41.122514] trace_kprobe: error: Failed to register probe event
      Command: r xfs:xfs_end_io
                 ^
    
    To fix this bug, change kprobe_on_func_entry() to detect symbol lookup
    failure and return -ENOENT in that case. Otherwise it returns -EINVAL
    or 0 (succeeded, given address is on the entry).
    
    Link: https://lkml.kernel.org/r/161176187132.1067016.8118042342894378981.stgit@devnote2
    
    Cc: stable@vger.kernel.org
    Fixes: 59158ec4aef7 ("tracing/kprobes: Check the probe on unloaded module correctly")
    Reported-by: Jianlin Lv <Jianlin.Lv@arm.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>