commit 78fba0641f54c8dc3624eba7cbc1252be35fa18e
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Jun 16 11:34:54 2021 +0200

    Linux 4.4.273
    
    Link: https://lore.kernel.org/r/20210614102641.582612289@linuxfoundation.org
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Jason Self <jason@bluehome.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0646b0f9f31cce61823ef9fcdcee4a3b9c6117b8
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jun 15 09:26:19 2021 -0700

    proc: only require mm_struct for writing
    
    commit 94f0b2d4a1d0c52035aef425da5e022bd2cb1c71 upstream.
    
    Commit 591a22c14d3f ("proc: Track /proc/$pid/attr/ opener mm_struct") we
    started using __mem_open() to track the mm_struct at open-time, so that
    we could then check it for writes.
    
    But that also ended up making the permission checks at open time much
    stricter - and not just for writes, but for reads too.  And that in turn
    caused a regression for at least Fedora 29, where NIC interfaces fail to
    start when using NetworkManager.
    
    Since only the write side wanted the mm_struct test, ignore any failures
    by __mem_open() at open time, leaving reads unaffected.  The write()
    time verification of the mm_struct pointer will then catch the failure
    case because a NULL pointer will not match a valid 'current->mm'.
    
    Link: https://lore.kernel.org/netdev/YMjTlp2FSJYvoyFa@unreal/
    Fixes: 591a22c14d3f ("proc: Track /proc/$pid/attr/ opener mm_struct")
    Reported-and-tested-by: Leon Romanovsky <leon@kernel.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: Andrea Righi <andrea.righi@canonical.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0bc62e398bbd9e600959e610def5109957437b28
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Mon Jun 7 21:39:08 2021 -0400

    ftrace: Do not blindly read the ip address in ftrace_bug()
    
    commit 6c14133d2d3f768e0a35128faac8aa6ed4815051 upstream.
    
    It was reported that a bug on arm64 caused a bad ip address to be used for
    updating into a nop in ftrace_init(), but the error path (rightfully)
    returned -EINVAL and not -EFAULT, as the bug caused more than one error to
    occur. But because -EINVAL was returned, the ftrace_bug() tried to report
    what was at the location of the ip address, and read it directly. This
    caused the machine to panic, as the ip was not pointing to a valid memory
    address.
    
    Instead, read the ip address with copy_from_kernel_nofault() to safely
    access the memory, and if it faults, report that the address faulted,
    otherwise report what was in that location.
    
    Link: https://lore.kernel.org/lkml/20210607032329.28671-1-mark-pk.tsai@mediatek.com/
    
    Cc: stable@vger.kernel.org
    Fixes: 05736a427f7e1 ("ftrace: warn on failure to disable mcount callers")
    Reported-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
    Tested-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f949bb6e67a363682a85f82797e70838d798086d
Author: Ming Lei <ming.lei@redhat.com>
Date:   Wed Jun 2 21:30:29 2021 +0800

    scsi: core: Only put parent device if host state differs from SHOST_CREATED
    
    commit 1e0d4e6225996f05271de1ebcb1a7c9381af0b27 upstream.
    
    get_device(shost->shost_gendev.parent) is called after host state has
    switched to SHOST_RUNNING. scsi_host_dev_release() shouldn't release the
    parent device if host state is still SHOST_CREATED.
    
    Link: https://lore.kernel.org/r/20210602133029.2864069-5-ming.lei@redhat.com
    Cc: Bart Van Assche <bvanassche@acm.org>
    Cc: John Garry <john.garry@huawei.com>
    Cc: Hannes Reinecke <hare@suse.de>
    Tested-by: John Garry <john.garry@huawei.com>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ec682250dc20574792ba85f030fdbe6a0dd1af7
Author: Dai Ngo <dai.ngo@oracle.com>
Date:   Wed May 19 17:15:10 2021 -0400

    NFSv4: nfs4_proc_set_acl needs to restore NFS_CAP_UIDGID_NOMAP on error.
    
    commit f8849e206ef52b584cd9227255f4724f0cc900bb upstream.
    
    Currently if __nfs4_proc_set_acl fails with NFS4ERR_BADOWNER it
    re-enables the idmapper by clearing NFS_CAP_UIDGID_NOMAP before
    retrying again. The NFS_CAP_UIDGID_NOMAP remains cleared even if
    the retry fails. This causes problem for subsequent setattr
    requests for v4 server that does not have idmapping configured.
    
    This patch modifies nfs4_proc_set_acl to detect NFS4ERR_BADOWNER
    and NFS4ERR_BADNAME and skips the retry, since the kernel isn't
    involved in encoding the ACEs, and return -EINVAL.
    
    Steps to reproduce the problem:
    
     # mount -o vers=4.1,sec=sys server:/export/test /tmp/mnt
     # touch /tmp/mnt/file1
     # chown 99 /tmp/mnt/file1
     # nfs4_setfacl -a A::unknown.user@xyz.com:wrtncy /tmp/mnt/file1
     Failed setxattr operation: Invalid argument
     # chown 99 /tmp/mnt/file1
     chown: changing ownership of ‘/tmp/mnt/file1’: Invalid argument
     # umount /tmp/mnt
     # mount -o vers=4.1,sec=sys server:/export/test /tmp/mnt
     # chown 99 /tmp/mnt/file1
     #
    
    v2: detect NFS4ERR_BADOWNER and NFS4ERR_BADNAME and skip retry
           in nfs4_proc_set_acl.
    Signed-off-by: Dai Ngo <dai.ngo@oracle.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8060cc42c79a1b182511c11e25b7c06966a81c92
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Wed Jun 9 01:49:13 2021 -0400

    kvm: fix previous commit for 32-bit builds
    
    commit 4422829e8053068e0225e4d0ef42dc41ea7c9ef5 upstream.
    
    array_index_nospec does not work for uint64_t on 32-bit builds.
    However, the size of a memory slot must be less than 20 bits wide
    on those system, since the memory slot must fit in the user
    address space.  So just store it in an unsigned long.
    
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 066f0c688cbf394dbb7fc743acee2cdeca1307fb
Author: Leo Yan <leo.yan@linaro.org>
Date:   Sat Jun 5 13:29:57 2021 +0800

    perf session: Correct buffer copying when peeking events
    
    [ Upstream commit 197eecb6ecae0b04bd694432f640ff75597fed9c ]
    
    When peeking an event, it has a short path and a long path.  The short
    path uses the session pointer "one_mmap_addr" to directly fetch the
    event; and the long path needs to read out the event header and the
    following event data from file and fill into the buffer pointer passed
    through the argument "buf".
    
    The issue is in the long path that it copies the event header and event
    data into the same destination address which pointer "buf", this means
    the event header is overwritten.  We are just lucky to run into the
    short path in most cases, so we don't hit the issue in the long path.
    
    This patch adds the offset "hdr_sz" to the pointer "buf" when copying
    the event data, so that it can reserve the event header which can be
    used properly by its caller.
    
    Fixes: 5a52f33adf02 ("perf session: Add perf_session__peek_event()")
    Signed-off-by: Leo Yan <leo.yan@linaro.org>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210605052957.1070720-1-leo.yan@linaro.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fab8bfdfb4aac9e4e8363666333adfdf21e89106
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Jun 3 15:37:53 2021 +0300

    NFS: Fix a potential NULL dereference in nfs_get_client()
    
    [ Upstream commit 09226e8303beeec10f2ff844d2e46d1371dc58e0 ]
    
    None of the callers are expecting NULL returns from nfs_get_client() so
    this code will lead to an Oops.  It's better to return an error
    pointer.  I expect that this is dead code so hopefully no one is
    affected.
    
    Fixes: 31434f496abb ("nfs: check hostname in nfs_get_client")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 668bd53c549e1d6de8873c9037de98f042240b1e
Author: Marco Elver <elver@google.com>
Date:   Thu May 27 12:47:11 2021 +0200

    perf: Fix data race between pin_count increment/decrement
    
    commit 6c605f8371159432ec61cbb1488dcf7ad24ad19a upstream.
    
    KCSAN reports a data race between increment and decrement of pin_count:
    
      write to 0xffff888237c2d4e0 of 4 bytes by task 15740 on cpu 1:
       find_get_context             kernel/events/core.c:4617
       __do_sys_perf_event_open     kernel/events/core.c:12097 [inline]
       __se_sys_perf_event_open     kernel/events/core.c:11933
       ...
      read to 0xffff888237c2d4e0 of 4 bytes by task 15743 on cpu 0:
       perf_unpin_context           kernel/events/core.c:1525 [inline]
       __do_sys_perf_event_open     kernel/events/core.c:12328 [inline]
       __se_sys_perf_event_open     kernel/events/core.c:11933
       ...
    
    Because neither read-modify-write here is atomic, this can lead to one
    of the operations being lost, resulting in an inconsistent pin_count.
    Fix it by adding the missing locking in the CPU-event case.
    
    Fixes: fe4b04fa31a6 ("perf: Cure task_oncpu_function_call() races")
    Reported-by: syzbot+142c9018f5962db69c7e@syzkaller.appspotmail.com
    Signed-off-by: Marco Elver <elver@google.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/20210527104711.2671610-1-elver@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e0d9280b6b13556f9f39dba0854cc670151653f
Author: Linyu Yuan <linyyuan@codeaurora.com>
Date:   Wed Jun 9 07:35:47 2021 +0800

    usb: gadget: eem: fix wrong eem header operation
    
    commit 305f670846a31a261462577dd0b967c4fa796871 upstream.
    
    when skb_clone() or skb_copy_expand() fail,
    it should pull skb with lengh indicated by header,
    or not it will read network data and check it as header.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Linyu Yuan <linyyuan@codeaurora.com>
    Link: https://lore.kernel.org/r/20210608233547.3767-1-linyyuan@codeaurora.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c6db1c0f08eaabf4cd490b9689cf5b02cca84b57
Author: Johan Hovold <johan@kernel.org>
Date:   Mon May 24 11:17:05 2021 +0200

    USB: serial: quatech2: fix control-request directions
    
    commit eb8dbe80326c3d44c1e38ee4f40e0d8d3e06f2d0 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 three requests which erroneously used usb_rcvctrlpipe().
    
    Fixes: f7a33e608d9a ("USB: serial: add quatech2 usb to serial driver")
    Cc: stable@vger.kernel.org      # 3.5
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d307cd0830b08831c5224ea21988ae038be33b36
Author: Alexandre GRIVEAUX <agriveaux@deutnet.info>
Date:   Sun May 23 18:35:21 2021 +0200

    USB: serial: omninet: add device id for Zyxel Omni 56K Plus
    
    commit fc0b3dc9a11771c3919eaaaf9d649138b095aa0f upstream.
    
    Add device id for Zyxel Omni 56K Plus modem, this modem include:
    
    USB chip:
    NetChip
    NET2888
    
    Main chip:
    901041A
    F721501APGF
    
    Another modem using the same chips is the Zyxel Omni 56K DUO/NEO,
    could be added with the right USB ID.
    
    Signed-off-by: Alexandre GRIVEAUX <agriveaux@deutnet.info>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a6cff02901852a1ee8975bbd8fb29e51f2d8628f
Author: George McCollister <george.mccollister@gmail.com>
Date:   Thu Jun 3 19:32:08 2021 -0500

    USB: serial: ftdi_sio: add NovaTech OrionMX product ID
    
    commit bc96c72df33ee81b24d87eab953c73f7bcc04f29 upstream.
    
    Add PID for the NovaTech OrionMX so it can be automatically detected.
    
    Signed-off-by: George McCollister <george.mccollister@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 96b74a99d360235c24052f1d060e64ac53f43528
Author: Marian-Cristian Rotariu <marian.c.rotariu@gmail.com>
Date:   Tue Jun 8 19:26:50 2021 +0300

    usb: dwc3: ep0: fix NULL pointer exception
    
    commit d00889080ab60051627dab1d85831cd9db750e2a upstream.
    
    There is no validation of the index from dwc3_wIndex_to_dep() and we might
    be referring a non-existing ep and trigger a NULL pointer exception. In
    certain configurations we might use fewer eps and the index might wrongly
    indicate a larger ep index than existing.
    
    By adding this validation from the patch we can actually report a wrong
    index back to the caller.
    
    In our usecase we are using a composite device on an older kernel, but
    upstream might use this fix also. Unfortunately, I cannot describe the
    hardware for others to reproduce the issue as it is a proprietary
    implementation.
    
    [   82.958261] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a4
    [   82.966891] Mem abort info:
    [   82.969663]   ESR = 0x96000006
    [   82.972703]   Exception class = DABT (current EL), IL = 32 bits
    [   82.978603]   SET = 0, FnV = 0
    [   82.981642]   EA = 0, S1PTW = 0
    [   82.984765] Data abort info:
    [   82.987631]   ISV = 0, ISS = 0x00000006
    [   82.991449]   CM = 0, WnR = 0
    [   82.994409] user pgtable: 4k pages, 39-bit VAs, pgdp = 00000000c6210ccc
    [   83.000999] [00000000000000a4] pgd=0000000053aa5003, pud=0000000053aa5003, pmd=0000000000000000
    [   83.009685] Internal error: Oops: 96000006 [#1] PREEMPT SMP
    [   83.026433] Process irq/62-dwc3 (pid: 303, stack limit = 0x000000003985154c)
    [   83.033470] CPU: 0 PID: 303 Comm: irq/62-dwc3 Not tainted 4.19.124 #1
    [   83.044836] pstate: 60000085 (nZCv daIf -PAN -UAO)
    [   83.049628] pc : dwc3_ep0_handle_feature+0x414/0x43c
    [   83.054558] lr : dwc3_ep0_interrupt+0x3b4/0xc94
    
    ...
    
    [   83.141788] Call trace:
    [   83.144227]  dwc3_ep0_handle_feature+0x414/0x43c
    [   83.148823]  dwc3_ep0_interrupt+0x3b4/0xc94
    [   83.181546] ---[ end trace aac6b5267d84c32f ]---
    
    Signed-off-by: Marian-Cristian Rotariu <marian.c.rotariu@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210608162650.58426-1-marian.c.rotariu@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be4c15bc9f393348def2ea8383513c022bbe49af
Author: Maciej Żenczykowski <maze@google.com>
Date:   Mon Jun 7 17:53:44 2021 -0700

    USB: f_ncm: ncm_bitrate (speed) is unsigned
    
    commit 3370139745853f7826895293e8ac3aec1430508e upstream.
    
    [  190.544755] configfs-gadget gadget: notify speed -44967296
    
    This is because 4250000000 - 2**32 is -44967296.
    
    Fixes: 9f6ce4240a2b ("usb: gadget: f_ncm.c added")
    Cc: Brooke Basile <brookebasile@gmail.com>
    Cc: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
    Cc: Felipe Balbi <balbi@kernel.org>
    Cc: Lorenzo Colitti <lorenzo@google.com>
    Cc: Yauheni Kaliuta <yauheni.kaliuta@nokia.com>
    Cc: Linux USB Mailing List <linux-usb@vger.kernel.org>
    Acked-By: Lorenzo Colitti <lorenzo@google.com>
    Signed-off-by: Maciej Żenczykowski <maze@google.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210608005344.3762668-1-zenczykowski@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5eda8a8c3c268f99e3fb9b19b0fb66e68b8c9f88
Author: Alexander Kuznetsov <wwfq@yandex-team.ru>
Date:   Wed Jun 9 10:17:19 2021 +0300

    cgroup1: don't allow '\n' in renaming
    
    commit b7e24eb1caa5f8da20d405d262dba67943aedc42 upstream.
    
    cgroup_mkdir() have restriction on newline usage in names:
    $ mkdir $'/sys/fs/cgroup/cpu/test\ntest2'
    mkdir: cannot create directory
    '/sys/fs/cgroup/cpu/test\ntest2': Invalid argument
    
    But in cgroup1_rename() such check is missed.
    This allows us to make /proc/<pid>/cgroup unparsable:
    $ mkdir /sys/fs/cgroup/cpu/test
    $ mv /sys/fs/cgroup/cpu/test $'/sys/fs/cgroup/cpu/test\ntest2'
    $ echo $$ > $'/sys/fs/cgroup/cpu/test\ntest2'
    $ cat /proc/self/cgroup
    11:pids:/
    10:freezer:/
    9:hugetlb:/
    8:cpuset:/
    7:blkio:/user.slice
    6:memory:/user.slice
    5:net_cls,net_prio:/
    4:perf_event:/
    3:devices:/user.slice
    2:cpu,cpuacct:/test
    test2
    1:name=systemd:/
    0::/
    
    Signed-off-by: Alexander Kuznetsov <wwfq@yandex-team.ru>
    Reported-by: Andrey Krasichkov <buglloc@yandex-team.ru>
    Acked-by: Dmitry Yakunin <zeil@yandex-team.ru>
    Cc: stable@vger.kernel.org
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 39b6d3368d30048123d963543b64452c0ac63afb
Author: Ritesh Harjani <riteshh@linux.ibm.com>
Date:   Sun May 30 20:24:05 2021 +0530

    btrfs: return value from btrfs_mark_extent_written() in case of error
    
    commit e7b2ec3d3d4ebeb4cff7ae45cf430182fa6a49fb upstream.
    
    We always return 0 even in case of an error in btrfs_mark_extent_written().
    Fix it to return proper error value in case of a failure. All callers
    handle it.
    
    CC: stable@vger.kernel.org # 4.4+
    Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3098b86390a6b9ea52657689f08410baf130ceff
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Jun 8 15:31:42 2021 -0400

    kvm: avoid speculation-based attacks from out-of-range memslot accesses
    
    commit da27a83fd6cc7780fea190e1f5c19e87019da65c upstream.
    
    KVM's mechanism for accessing guest memory translates a guest physical
    address (gpa) to a host virtual address using the right-shifted gpa
    (also known as gfn) and a struct kvm_memory_slot.  The translation is
    performed in __gfn_to_hva_memslot using the following formula:
    
          hva = slot->userspace_addr + (gfn - slot->base_gfn) * PAGE_SIZE
    
    It is expected that gfn falls within the boundaries of the guest's
    physical memory.  However, a guest can access invalid physical addresses
    in such a way that the gfn is invalid.
    
    __gfn_to_hva_memslot is called from kvm_vcpu_gfn_to_hva_prot, which first
    retrieves a memslot through __gfn_to_memslot.  While __gfn_to_memslot
    does check that the gfn falls within the boundaries of the guest's
    physical memory or not, a CPU can speculate the result of the check and
    continue execution speculatively using an illegal gfn. The speculation
    can result in calculating an out-of-bounds hva.  If the resulting host
    virtual address is used to load another guest physical address, this
    is effectively a Spectre gadget consisting of two consecutive reads,
    the second of which is data dependent on the first.
    
    Right now it's not clear if there are any cases in which this is
    exploitable.  One interesting case was reported by the original author
    of this patch, and involves visiting guest page tables on x86.  Right
    now these are not vulnerable because the hva read goes through get_user(),
    which contains an LFENCE speculation barrier.  However, there are
    patches in progress for x86 uaccess.h to mask kernel addresses instead of
    using LFENCE; once these land, a guest could use speculation to read
    from the VMM's ring 3 address space.  Other architectures such as ARM
    already use the address masking method, and would be susceptible to
    this same kind of data-dependent access gadgets.  Therefore, this patch
    proactively protects from these attacks by masking out-of-bounds gfns
    in __gfn_to_hva_memslot, which blocks speculation of invalid hvas.
    
    Sean Christopherson noted that this patch does not cover
    kvm_read_guest_offset_cached.  This however is limited to a few bytes
    past the end of the cache, and therefore it is unlikely to be useful in
    the context of building a chain of data dependent accesses.
    
    Reported-by: Artemiy Margaritov <artemiy.margaritov@gmail.com>
    Co-developed-by: Artemiy Margaritov <artemiy.margaritov@gmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f631a7f01aecf401ba72caeb06ae73a1748eb44
Author: Chris Packham <chris.packham@alliedtelesis.co.nz>
Date:   Wed May 12 09:20:52 2021 +1200

    i2c: mpc: implement erratum A-004447 workaround
    
    [ Upstream commit 8f0cdec8b5fd94135d643662506ee94ae9e98785 ]
    
    The P2040/P2041 has an erratum where the normal i2c recovery mechanism
    does not work. Implement the alternative recovery mechanism documented
    in the P2040 Chip Errata Rev Q.
    
    Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9e6f2571ab35d5d50b8e8a47466ea6e43ad2906
Author: Chris Packham <chris.packham@alliedtelesis.co.nz>
Date:   Mon Mar 29 14:52:03 2021 +1300

    i2c: mpc: Make use of i2c_recover_bus()
    
    [ Upstream commit 65171b2df15eb7545431d75c2729b5062da89b43 ]
    
    Move the existing calls of mpc_i2c_fixup() to a recovery function
    registered via bus_recovery_info. This makes it more obvious that
    recovery is supported and allows for a future where recovery is
    triggered by the i2c core.
    
    Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 841fd967746db13d7ef3cd7291b57b2dc7f86e04
Author: Chris Packham <chris.packham@alliedtelesis.co.nz>
Date:   Wed May 12 09:20:51 2021 +1200

    powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P1010 i2c controllers
    
    [ Upstream commit 19ae697a1e4edf1d755b413e3aa38da65e2db23b ]
    
    The i2c controllers on the P1010 have an erratum where the documented
    scheme for i2c bus recovery will not work (A-004447). A different
    mechanism is needed which is documented in the P1010 Chip Errata Rev L.
    
    Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
    Acked-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 172df61a8a133976d0937afbd5413a81ff4336b4
Author: Chris Packham <chris.packham@alliedtelesis.co.nz>
Date:   Wed May 12 09:20:50 2021 +1200

    powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P2041 i2c controllers
    
    [ Upstream commit 7adc7b225cddcfd0f346d10144fd7a3d3d9f9ea7 ]
    
    The i2c controllers on the P2040/P2041 have an erratum where the
    documented scheme for i2c bus recovery will not work (A-004447). A
    different mechanism is needed which is documented in the P2040 Chip
    Errata Rev Q (latest available at the time of writing).
    
    Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
    Acked-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c83f46610857ee9e4ade19e381420eee5199be3b
Author: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Date:   Tue May 25 19:00:12 2021 +0800

    bnx2x: Fix missing error code in bnx2x_iov_init_one()
    
    [ Upstream commit 65161c35554f7135e6656b3df1ce2c500ca0bdcf ]
    
    Eliminate the follow smatch warning:
    
    drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c:1227
    bnx2x_iov_init_one() warn: missing error code 'err'.
    
    Reported-by: Abaci Robot <abaci@linux.alibaba.com>
    Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d069f110fb74b1dc206e524fc6b187b3dd5486d1
Author: Tiezhu Yang <yangtiezhu@loongson.cn>
Date:   Sat May 15 19:02:01 2021 +0800

    MIPS: Fix kernel hang under FUNCTION_GRAPH_TRACER and PREEMPT_TRACER
    
    [ Upstream commit 78cf0eb926cb1abeff2106bae67752e032fe5f3e ]
    
    When update the latest mainline kernel with the following three configs,
    the kernel hangs during startup:
    
    (1) CONFIG_FUNCTION_GRAPH_TRACER=y
    (2) CONFIG_PREEMPT_TRACER=y
    (3) CONFIG_FTRACE_STARTUP_TEST=y
    
    When update the latest mainline kernel with the above two configs (1)
    and (2), the kernel starts normally, but it still hangs when execute
    the following command:
    
    echo "function_graph" > /sys/kernel/debug/tracing/current_tracer
    
    Without CONFIG_PREEMPT_TRACER=y, the above two kinds of kernel hangs
    disappeared, so it seems that CONFIG_PREEMPT_TRACER has some influences
    with function_graph tracer at the first glance.
    
    I use ejtag to find out the epc address is related with preempt_enable()
    in the file arch/mips/lib/mips-atomic.c, because function tracing can
    trace the preempt_{enable,disable} calls that are traced, replace them
    with preempt_{enable,disable}_notrace to prevent function tracing from
    going into an infinite loop, and then it can fix the kernel hang issue.
    
    By the way, it seems that this commit is a complement and improvement of
    commit f93a1a00f2bd ("MIPS: Fix crash that occurs when function tracing
    is enabled").
    
    Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff4aab297538058ad25783edc8e9ac2e49231d25
Author: Saubhik Mukherjee <saubhik.mukherjee@gmail.com>
Date:   Mon May 24 19:07:12 2021 +0530

    net: appletalk: cops: Fix data race in cops_probe1
    
    [ Upstream commit a4dd4fc6105e54393d637450a11d4cddb5fabc4f ]
    
    In cops_probe1(), there is a write to dev->base_addr after requesting an
    interrupt line and registering the interrupt handler cops_interrupt().
    The handler might be called in parallel to handle an interrupt.
    cops_interrupt() tries to read dev->base_addr leading to a potential
    data race. So write to dev->base_addr before calling request_irq().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Saubhik Mukherjee <saubhik.mukherjee@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13b036fe4eaa8ea169803fb4794aa9b2031a19dc
Author: Zong Li <zong.li@sifive.com>
Date:   Sat May 22 17:16:11 2021 +0800

    net: macb: ensure the device is available before accessing GEMGXL control registers
    
    [ Upstream commit 5eff1461a6dec84f04fafa9128548bad51d96147 ]
    
    If runtime power menagement is enabled, the gigabit ethernet PLL would
    be disabled after macb_probe(). During this period of time, the system
    would hang up if we try to access GEMGXL control registers.
    
    We can't put runtime_pm_get/runtime_pm_put/ there due to the issue of
    sleep inside atomic section (7fa2955ff70ce453 ("sh_eth: Fix sleeping
    function called from invalid context"). Add netif_running checking to
    ensure the device is available before accessing GEMGXL device.
    
    Changed in v2:
     - Use netif_running instead of its own flag
    
    Signed-off-by: Zong Li <zong.li@sifive.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94d22d54e7858adf59476a06e74ed449695f081d
Author: Dmitry Bogdanov <d.bogdanov@yadro.com>
Date:   Thu Apr 15 23:35:54 2021 +0300

    scsi: target: qla2xxx: Wait for stop_phase1 at WWN removal
    
    [ Upstream commit 2ef7665dfd88830f15415ba007c7c9a46be7acd8 ]
    
    Target de-configuration panics at high CPU load because TPGT and WWPN can
    be removed on separate threads.
    
    TPGT removal requests a reset HBA on a separate thread and waits for reset
    complete (phase1). Due to high CPU load that HBA reset can be delayed for
    some time.
    
    WWPN removal does qlt_stop_phase2(). There it is believed that phase1 has
    already completed and thus tgt.tgt_ops is subsequently cleared. However,
    tgt.tgt_ops is needed to process incoming traffic and therefore this will
    cause one of the following panics:
    
    NIP qlt_reset+0x7c/0x220 [qla2xxx]
    LR  qlt_reset+0x68/0x220 [qla2xxx]
    Call Trace:
    0xc000003ffff63a78 (unreliable)
    qlt_handle_imm_notify+0x800/0x10c0 [qla2xxx]
    qlt_24xx_atio_pkt+0x208/0x590 [qla2xxx]
    qlt_24xx_process_atio_queue+0x33c/0x7a0 [qla2xxx]
    qla83xx_msix_atio_q+0x54/0x90 [qla2xxx]
    
    or
    
    NIP qlt_24xx_handle_abts+0xd0/0x2a0 [qla2xxx]
    LR  qlt_24xx_handle_abts+0xb4/0x2a0 [qla2xxx]
    Call Trace:
    qlt_24xx_handle_abts+0x90/0x2a0 [qla2xxx] (unreliable)
    qlt_24xx_process_atio_queue+0x500/0x7a0 [qla2xxx]
    qla83xx_msix_atio_q+0x54/0x90 [qla2xxx]
    
    or
    
    NIP qlt_create_sess+0x90/0x4e0 [qla2xxx]
    LR  qla24xx_do_nack_work+0xa8/0x180 [qla2xxx]
    Call Trace:
    0xc0000000348fba30 (unreliable)
    qla24xx_do_nack_work+0xa8/0x180 [qla2xxx]
    qla2x00_do_work+0x674/0xbf0 [qla2xxx]
    qla2x00_iocb_work_fn
    
    The patch fixes the issue by serializing qlt_stop_phase1() and
    qlt_stop_phase2() functions to make WWPN removal wait for phase1
    completion.
    
    Link: https://lore.kernel.org/r/20210415203554.27890-1-d.bogdanov@yadro.com
    Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com>
    Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1054659ebbbf6856dff7c89b1788c63e88480ec
Author: Matt Wang <wwentao@vmware.com>
Date:   Wed May 19 09:49:32 2021 +0000

    scsi: vmw_pvscsi: Set correct residual data length
    
    [ Upstream commit e662502b3a782d479e67736a5a1c169a703d853a ]
    
    Some commands (such as INQUIRY) may return less data than the initiator
    requested. To avoid conducting useless information, set the right residual
    count to make upper layer aware of this.
    
    Before (INQUIRY PAGE 0xB0 with 128B buffer):
    
    $ sg_raw -r 128 /dev/sda 12 01 B0 00 80 00
    SCSI Status: Good
    
    Received 128 bytes of data:
     00 00 b0 00 3c 01 00 00 00 00 00 00 00 00 00 00 00 ...<............
     10 00 00 00 00 00 01 00 00 00 00 00 40 00 00 08 00 ...........@....
     20 80 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 .......... .....
     30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
     40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
     50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
     60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
     70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    
    After:
    
    $ sg_raw -r 128 /dev/sda 12 01 B0 00 80 00
    SCSI Status: Good
    
    Received 64 bytes of data:
    00 00 b0 00 3c 01 00 00 00 00 00 00 00 00 00 00 00 ...<............
    10 00 00 00 00 00 01 00 00 00 00 00 40 00 00 08 00 ...........@....
    20 80 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 .......... .....
    30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    
    [mkp: clarified description]
    
    Link: https://lore.kernel.org/r/03C41093-B62E-43A2-913E-CFC92F1C70C3@vmware.com
    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 9cfaf83a961115f4d63a6fed029bf56aae6713cd
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Thu May 20 12:32:36 2021 +0000

    net/qla3xxx: fix schedule while atomic in ql_sem_spinlock
    
    [ Upstream commit 13a6f3153922391e90036ba2267d34eed63196fc ]
    
    When calling the 'ql_sem_spinlock', the driver has already acquired the
    spin lock, so the driver should not call 'ssleep' in atomic context.
    
    This bug can be fixed by using 'mdelay' instead of 'ssleep'.
    
    The KASAN's log reveals it:
    
    [    3.238124 ] BUG: scheduling while atomic: swapper/0/1/0x00000002
    [    3.238748 ] 2 locks held by swapper/0/1:
    [    3.239151 ]  #0: ffff88810177b240 (&dev->mutex){....}-{3:3}, at:
    __device_driver_lock+0x41/0x60
    [    3.240026 ]  #1: ffff888107c60e28 (&qdev->hw_lock){....}-{2:2}, at:
    ql3xxx_probe+0x2aa/0xea0
    [    3.240873 ] Modules linked in:
    [    3.241187 ] irq event stamp: 460854
    [    3.241541 ] hardirqs last  enabled at (460853): [<ffffffff843051bf>]
    _raw_spin_unlock_irqrestore+0x4f/0x70
    [    3.242245 ] hardirqs last disabled at (460854): [<ffffffff843058ca>]
    _raw_spin_lock_irqsave+0x2a/0x70
    [    3.242245 ] softirqs last  enabled at (446076): [<ffffffff846002e4>]
    __do_softirq+0x2e4/0x4b1
    [    3.242245 ] softirqs last disabled at (446069): [<ffffffff811ba5e0>]
    irq_exit_rcu+0x100/0x110
    [    3.242245 ] Preemption disabled at:
    [    3.242245 ] [<ffffffff828ca5ba>] ql3xxx_probe+0x2aa/0xea0
    [    3.242245 ] Kernel panic - not syncing: scheduling while atomic
    [    3.242245 ] CPU: 2 PID: 1 Comm: swapper/0 Not tainted
    5.13.0-rc1-00145
    -gee7dc339169-dirty #16
    [    3.242245 ] Call Trace:
    [    3.242245 ]  dump_stack+0xba/0xf5
    [    3.242245 ]  ? ql3xxx_probe+0x1f0/0xea0
    [    3.242245 ]  panic+0x15a/0x3f2
    [    3.242245 ]  ? vprintk+0x76/0x150
    [    3.242245 ]  ? ql3xxx_probe+0x2aa/0xea0
    [    3.242245 ]  __schedule_bug+0xae/0xe0
    [    3.242245 ]  __schedule+0x72e/0xa00
    [    3.242245 ]  schedule+0x43/0xf0
    [    3.242245 ]  schedule_timeout+0x28b/0x500
    [    3.242245 ]  ? del_timer_sync+0xf0/0xf0
    [    3.242245 ]  ? msleep+0x2f/0x70
    [    3.242245 ]  msleep+0x59/0x70
    [    3.242245 ]  ql3xxx_probe+0x307/0xea0
    [    3.242245 ]  ? _raw_spin_unlock_irqrestore+0x3a/0x70
    [    3.242245 ]  ? pci_device_remove+0x110/0x110
    [    3.242245 ]  local_pci_probe+0x45/0xa0
    [    3.242245 ]  pci_device_probe+0x12b/0x1d0
    [    3.242245 ]  really_probe+0x2a9/0x610
    [    3.242245 ]  driver_probe_device+0x90/0x1d0
    [    3.242245 ]  ? mutex_lock_nested+0x1b/0x20
    [    3.242245 ]  device_driver_attach+0x68/0x70
    [    3.242245 ]  __driver_attach+0x124/0x1b0
    [    3.242245 ]  ? device_driver_attach+0x70/0x70
    [    3.242245 ]  bus_for_each_dev+0xbb/0x110
    [    3.242245 ]  ? rdinit_setup+0x45/0x45
    [    3.242245 ]  driver_attach+0x27/0x30
    [    3.242245 ]  bus_add_driver+0x1eb/0x2a0
    [    3.242245 ]  driver_register+0xa9/0x180
    [    3.242245 ]  __pci_register_driver+0x82/0x90
    [    3.242245 ]  ? yellowfin_init+0x25/0x25
    [    3.242245 ]  ql3xxx_driver_init+0x23/0x25
    [    3.242245 ]  do_one_initcall+0x7f/0x3d0
    [    3.242245 ]  ? rdinit_setup+0x45/0x45
    [    3.242245 ]  ? rcu_read_lock_sched_held+0x4f/0x80
    [    3.242245 ]  kernel_init_freeable+0x2aa/0x301
    [    3.242245 ]  ? rest_init+0x2c0/0x2c0
    [    3.242245 ]  kernel_init+0x18/0x190
    [    3.242245 ]  ? rest_init+0x2c0/0x2c0
    [    3.242245 ]  ? rest_init+0x2c0/0x2c0
    [    3.242245 ]  ret_from_fork+0x1f/0x30
    [    3.242245 ] Dumping ftrace buffer:
    [    3.242245 ]    (ftrace buffer empty)
    [    3.242245 ] Kernel Offset: disabled
    [    3.242245 ] Rebooting in 1 seconds.
    
    Reported-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38fe49aae205d010ce9a40f8b95cb7772b91cabf
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon May 17 12:04:13 2021 +0300

    net: mdiobus: get rid of a BUG_ON()
    
    [ Upstream commit 1dde47a66d4fb181830d6fa000e5ea86907b639e ]
    
    We spotted a bug recently during a review where a driver was
    unregistering a bus that wasn't registered, which would trigger this
    BUG_ON().  Let's handle that situation more gracefully, and just print
    a warning and return.
    
    Reported-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f155c4046200f067b1dc3140ea99ef56e4e0b74
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon May 17 16:38:09 2021 +0200

    netlink: disable IRQs for netlink_lock_table()
    
    [ Upstream commit 1d482e666b8e74c7555dbdfbfb77205eeed3ff2d ]
    
    Syzbot reports that in mac80211 we have a potential deadlock
    between our "local->stop_queue_reasons_lock" (spinlock) and
    netlink's nl_table_lock (rwlock). This is because there's at
    least one situation in which we might try to send a netlink
    message with this spinlock held while it is also possible to
    take the spinlock from a hardirq context, resulting in the
    following deadlock scenario reported by lockdep:
    
           CPU0                    CPU1
           ----                    ----
      lock(nl_table_lock);
                                   local_irq_disable();
                                   lock(&local->queue_stop_reason_lock);
                                   lock(nl_table_lock);
      <Interrupt>
        lock(&local->queue_stop_reason_lock);
    
    This seems valid, we can take the queue_stop_reason_lock in
    any kind of context ("CPU0"), and call ieee80211_report_ack_skb()
    with the spinlock held and IRQs disabled ("CPU1") in some
    code path (ieee80211_do_stop() via ieee80211_free_txskb()).
    
    Short of disallowing netlink use in scenarios like these
    (which would be rather complex in mac80211's case due to
    the deep callchain), it seems the only fix for this is to
    disable IRQs while nl_table_lock is held to avoid hitting
    this scenario, this disallows the "CPU0" portion of the
    reported deadlock.
    
    Note that the writer side (netlink_table_grab()) already
    disables IRQs for this lock.
    
    Unfortunately though, this seems like a huge hammer, and
    maybe the whole netlink table locking should be reworked.
    
    Reported-by: syzbot+69ff9dff50dcfe14ddd4@syzkaller.appspotmail.com
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 818298d54aa0d7b3baf5635c94ff3b39b48d037f
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon May 17 16:13:35 2021 +0200

    bonding: init notify_work earlier to avoid uninitialized use
    
    [ Upstream commit 35d96e631860226d5dc4de0fad0a415362ec2457 ]
    
    If bond_kobj_init() or later kzalloc() in bond_alloc_slave() fail,
    then we call kobject_put() on the slave->kobj. This in turn calls
    the release function slave_kobj_release() which will always try to
    cancel_delayed_work_sync(&slave->notify_work), which shouldn't be
    done on an uninitialized work struct.
    
    Always initialize the work struct earlier to avoid problems here.
    
    Syzbot bisected this down to a completely pointless commit, some
    fault injection may have been at work here that caused the alloc
    failure in the first place, which may interact badly with bisect.
    
    Reported-by: syzbot+bfda097c12a00c8cae67@syzkaller.appspotmail.com
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 958cb1078ca60d214826fd90a0961a447fade59a
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Sun May 16 07:11:40 2021 +0000

    isdn: mISDN: netjet: Fix crash in nj_probe:
    
    [ Upstream commit 9f6f852550d0e1b7735651228116ae9d300f69b3 ]
    
    'nj_setup' in netjet.c might fail with -EIO and in this case
    'card->irq' is initialized and is bigger than zero. A subsequent call to
    'nj_release' will free the irq that has not been requested.
    
    Fix this bug by deleting the previous assignment to 'card->irq' and just
    keep the assignment before 'request_irq'.
    
    The KASAN's log reveals it:
    
    [    3.354615 ] WARNING: CPU: 0 PID: 1 at kernel/irq/manage.c:1826
    free_irq+0x100/0x480
    [    3.355112 ] Modules linked in:
    [    3.355310 ] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
    5.13.0-rc1-00144-g25a1298726e #13
    [    3.355816 ] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
    rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    [    3.356552 ] RIP: 0010:free_irq+0x100/0x480
    [    3.356820 ] Code: 6e 08 74 6f 4d 89 f4 e8 5e ac 09 00 4d 8b 74 24 18
    4d 85 f6 75 e3 e8 4f ac 09 00 8b 75 c8 48 c7 c7 78 c1 2e 85 e8 e0 cf f5
    ff <0f> 0b 48 8b 75 c0 4c 89 ff e8 72 33 0b 03 48 8b 43 40 4c 8b a0 80
    [    3.358012 ] RSP: 0000:ffffc90000017b48 EFLAGS: 00010082
    [    3.358357 ] RAX: 0000000000000000 RBX: ffff888104dc8000 RCX:
    0000000000000000
    [    3.358814 ] RDX: ffff8881003c8000 RSI: ffffffff8124a9e6 RDI:
    00000000ffffffff
    [    3.359272 ] RBP: ffffc90000017b88 R08: 0000000000000000 R09:
    0000000000000000
    [    3.359732 ] R10: ffffc900000179f0 R11: 0000000000001d04 R12:
    0000000000000000
    [    3.360195 ] R13: ffff888107dc6000 R14: ffff888107dc6928 R15:
    ffff888104dc80a8
    [    3.360652 ] FS:  0000000000000000(0000) GS:ffff88817bc00000(0000)
    knlGS:0000000000000000
    [    3.361170 ] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    3.361538 ] CR2: 0000000000000000 CR3: 000000000582e000 CR4:
    00000000000006f0
    [    3.362003 ] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
    0000000000000000
    [    3.362175 ] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:
    0000000000000400
    [    3.362175 ] Call Trace:
    [    3.362175 ]  nj_release+0x51/0x1e0
    [    3.362175 ]  nj_probe+0x450/0x950
    [    3.362175 ]  ? pci_device_remove+0x110/0x110
    [    3.362175 ]  local_pci_probe+0x45/0xa0
    [    3.362175 ]  pci_device_probe+0x12b/0x1d0
    [    3.362175 ]  really_probe+0x2a9/0x610
    [    3.362175 ]  driver_probe_device+0x90/0x1d0
    [    3.362175 ]  ? mutex_lock_nested+0x1b/0x20
    [    3.362175 ]  device_driver_attach+0x68/0x70
    [    3.362175 ]  __driver_attach+0x124/0x1b0
    [    3.362175 ]  ? device_driver_attach+0x70/0x70
    [    3.362175 ]  bus_for_each_dev+0xbb/0x110
    [    3.362175 ]  ? rdinit_setup+0x45/0x45
    [    3.362175 ]  driver_attach+0x27/0x30
    [    3.362175 ]  bus_add_driver+0x1eb/0x2a0
    [    3.362175 ]  driver_register+0xa9/0x180
    [    3.362175 ]  __pci_register_driver+0x82/0x90
    [    3.362175 ]  ? w6692_init+0x38/0x38
    [    3.362175 ]  nj_init+0x36/0x38
    [    3.362175 ]  do_one_initcall+0x7f/0x3d0
    [    3.362175 ]  ? rdinit_setup+0x45/0x45
    [    3.362175 ]  ? rcu_read_lock_sched_held+0x4f/0x80
    [    3.362175 ]  kernel_init_freeable+0x2aa/0x301
    [    3.362175 ]  ? rest_init+0x2c0/0x2c0
    [    3.362175 ]  kernel_init+0x18/0x190
    [    3.362175 ]  ? rest_init+0x2c0/0x2c0
    [    3.362175 ]  ? rest_init+0x2c0/0x2c0
    [    3.362175 ]  ret_from_fork+0x1f/0x30
    [    3.362175 ] Kernel panic - not syncing: panic_on_warn set ...
    [    3.362175 ] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
    5.13.0-rc1-00144-g25a1298726e #13
    [    3.362175 ] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
    rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
    [    3.362175 ] Call Trace:
    [    3.362175 ]  dump_stack+0xba/0xf5
    [    3.362175 ]  ? free_irq+0x100/0x480
    [    3.362175 ]  panic+0x15a/0x3f2
    [    3.362175 ]  ? __warn+0xf2/0x150
    [    3.362175 ]  ? free_irq+0x100/0x480
    [    3.362175 ]  __warn+0x108/0x150
    [    3.362175 ]  ? free_irq+0x100/0x480
    [    3.362175 ]  report_bug+0x119/0x1c0
    [    3.362175 ]  handle_bug+0x3b/0x80
    [    3.362175 ]  exc_invalid_op+0x18/0x70
    [    3.362175 ]  asm_exc_invalid_op+0x12/0x20
    [    3.362175 ] RIP: 0010:free_irq+0x100/0x480
    [    3.362175 ] Code: 6e 08 74 6f 4d 89 f4 e8 5e ac 09 00 4d 8b 74 24 18
    4d 85 f6 75 e3 e8 4f ac 09 00 8b 75 c8 48 c7 c7 78 c1 2e 85 e8 e0 cf f5
    ff <0f> 0b 48 8b 75 c0 4c 89 ff e8 72 33 0b 03 48 8b 43 40 4c 8b a0 80
    [    3.362175 ] RSP: 0000:ffffc90000017b48 EFLAGS: 00010082
    [    3.362175 ] RAX: 0000000000000000 RBX: ffff888104dc8000 RCX:
    0000000000000000
    [    3.362175 ] RDX: ffff8881003c8000 RSI: ffffffff8124a9e6 RDI:
    00000000ffffffff
    [    3.362175 ] RBP: ffffc90000017b88 R08: 0000000000000000 R09:
    0000000000000000
    [    3.362175 ] R10: ffffc900000179f0 R11: 0000000000001d04 R12:
    0000000000000000
    [    3.362175 ] R13: ffff888107dc6000 R14: ffff888107dc6928 R15:
    ffff888104dc80a8
    [    3.362175 ]  ? vprintk+0x76/0x150
    [    3.362175 ]  ? free_irq+0x100/0x480
    [    3.362175 ]  nj_release+0x51/0x1e0
    [    3.362175 ]  nj_probe+0x450/0x950
    [    3.362175 ]  ? pci_device_remove+0x110/0x110
    [    3.362175 ]  local_pci_probe+0x45/0xa0
    [    3.362175 ]  pci_device_probe+0x12b/0x1d0
    [    3.362175 ]  really_probe+0x2a9/0x610
    [    3.362175 ]  driver_probe_device+0x90/0x1d0
    [    3.362175 ]  ? mutex_lock_nested+0x1b/0x20
    [    3.362175 ]  device_driver_attach+0x68/0x70
    [    3.362175 ]  __driver_attach+0x124/0x1b0
    [    3.362175 ]  ? device_driver_attach+0x70/0x70
    [    3.362175 ]  bus_for_each_dev+0xbb/0x110
    [    3.362175 ]  ? rdinit_setup+0x45/0x45
    [    3.362175 ]  driver_attach+0x27/0x30
    [    3.362175 ]  bus_add_driver+0x1eb/0x2a0
    [    3.362175 ]  driver_register+0xa9/0x180
    [    3.362175 ]  __pci_register_driver+0x82/0x90
    [    3.362175 ]  ? w6692_init+0x38/0x38
    [    3.362175 ]  nj_init+0x36/0x38
    [    3.362175 ]  do_one_initcall+0x7f/0x3d0
    [    3.362175 ]  ? rdinit_setup+0x45/0x45
    [    3.362175 ]  ? rcu_read_lock_sched_held+0x4f/0x80
    [    3.362175 ]  kernel_init_freeable+0x2aa/0x301
    [    3.362175 ]  ? rest_init+0x2c0/0x2c0
    [    3.362175 ]  kernel_init+0x18/0x190
    [    3.362175 ]  ? rest_init+0x2c0/0x2c0
    [    3.362175 ]  ? rest_init+0x2c0/0x2c0
    [    3.362175 ]  ret_from_fork+0x1f/0x30
    [    3.362175 ] Dumping ftrace buffer:
    [    3.362175 ]    (ftrace buffer empty)
    [    3.362175 ] Kernel Offset: disabled
    [    3.362175 ] Rebooting in 1 seconds..
    
    Reported-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 62d2083f546edd0facfd6b2bcd8e2661bd581cd8
Author: Zou Wei <zou_wei@huawei.com>
Date:   Wed May 12 11:12:25 2021 +0800

    ASoC: sti-sas: add missing MODULE_DEVICE_TABLE
    
    [ Upstream commit e072b2671606c77538d6a4dd5dda80b508cb4816 ]
    
    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this driver when it is built
    as an external module.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Link: https://lore.kernel.org/r/1620789145-14936-1-git-send-email-zou_wei@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c08e0be44759d0b5affc5888be4aa5e536873335
Author: Jeimon <jjjinmeng.zhou@gmail.com>
Date:   Sat May 8 11:52:30 2021 +0800

    net/nfc/rawsock.c: fix a permission check bug
    
    [ Upstream commit 8ab78863e9eff11910e1ac8bcf478060c29b379e ]
    
    The function rawsock_create() calls a privileged function sk_alloc(), which requires a ns-aware check to check net->user_ns, i.e., ns_capable(). However, the original code checks the init_user_ns using capable(). So we replace the capable() with ns_capable().
    
    Signed-off-by: Jeimon <jjjinmeng.zhou@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bd354c01cb175c50533899743e0e5736e3e36ab0
Author: Kees Cook <keescook@chromium.org>
Date:   Tue Jun 8 10:12:21 2021 -0700

    proc: Track /proc/$pid/attr/ opener mm_struct
    
    commit 591a22c14d3f45cc38bd1931c593c221df2f1881 upstream.
    
    Commit bfb819ea20ce ("proc: Check /proc/$pid/attr/ writes against file opener")
    tried to make sure that there could not be a confusion between the opener of
    a /proc/$pid/attr/ file and the writer. It used struct cred to make sure
    the privileges didn't change. However, there were existing cases where a more
    privileged thread was passing the opened fd to a differently privileged thread
    (during container setup). Instead, use mm_struct to track whether the opener
    and writer are still the same process. (This is what several other proc files
    already do, though for different reasons.)
    
    Reported-by: Christian Brauner <christian.brauner@ubuntu.com>
    Reported-by: Andrea Righi <andrea.righi@canonical.com>
    Tested-by: Andrea Righi <andrea.righi@canonical.com>
    Fixes: bfb819ea20ce ("proc: Check /proc/$pid/attr/ writes against file opener")
    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>