commit 283506fcd65de1bc10fcc6e2ca633a7b63171ffa
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Mar 10 07:09:02 2019 +0100

    Linux 5.0.1

commit a9bda122bd77a784933edde4120e12a28847aafd
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Tue Feb 19 10:10:38 2019 +0800

    exec: Fix mem leak in kernel_read_file
    
    commit f612acfae86af7ecad754ae6a46019be9da05b8e upstream.
    
    syzkaller report this:
    BUG: memory leak
    unreferenced object 0xffffc9000488d000 (size 9195520):
      comm "syz-executor.0", pid 2752, jiffies 4294787496 (age 18.757s)
      hex dump (first 32 bytes):
        ff ff ff ff ff ff ff ff a8 00 00 00 01 00 00 00  ................
        02 00 00 00 00 00 00 00 80 a1 7a c1 ff ff ff ff  ..........z.....
      backtrace:
        [<000000000863775c>] __vmalloc_node mm/vmalloc.c:1795 [inline]
        [<000000000863775c>] __vmalloc_node_flags mm/vmalloc.c:1809 [inline]
        [<000000000863775c>] vmalloc+0x8c/0xb0 mm/vmalloc.c:1831
        [<000000003f668111>] kernel_read_file+0x58f/0x7d0 fs/exec.c:924
        [<000000002385813f>] kernel_read_file_from_fd+0x49/0x80 fs/exec.c:993
        [<0000000011953ff1>] __do_sys_finit_module+0x13b/0x2a0 kernel/module.c:3895
        [<000000006f58491f>] do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
        [<00000000ee78baf4>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
        [<00000000241f889b>] 0xffffffffffffffff
    
    It should goto 'out_free' lable to free allocated buf while kernel_read
    fails.
    
    Fixes: 39d637af5aa7 ("vfs: forbid write access when reading a file into memory")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Thibaut Sautereau <thibaut@sautereau.fr>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc60931448e779c1f5650f7e0a27d2569df57841
Author: Matthias Kaehlcke <mka@chromium.org>
Date:   Wed Jan 2 16:11:20 2019 -0800

    Bluetooth: Fix locking in bt_accept_enqueue() for BH context
    
    commit c4f5627f7eeecde1bb6b646d8c0907b96dc2b2a6 upstream.
    
    With commit e16337622016 ("Bluetooth: Handle bt_accept_enqueue() socket
    atomically") lock_sock[_nested]() is used to acquire the socket lock
    before manipulating the socket. lock_sock[_nested]() may block, which
    is problematic since bt_accept_enqueue() can be called in bottom half
    context (e.g. from rfcomm_connect_ind()):
    
    [<ffffff80080d81ec>] __might_sleep+0x4c/0x80
    [<ffffff800876c7b0>] lock_sock_nested+0x24/0x58
    [<ffffff8000d7c27c>] bt_accept_enqueue+0x48/0xd4 [bluetooth]
    [<ffffff8000e67d8c>] rfcomm_connect_ind+0x190/0x218 [rfcomm]
    
    Add a parameter to bt_accept_enqueue() to indicate whether the
    function is called from BH context, and acquire the socket lock
    with bh_lock_sock_nested() if that's the case.
    
    Also adapt all callers of bt_accept_enqueue() to pass the new
    parameter:
    
    - l2cap_sock_new_connection_cb()
      - uses lock_sock() to lock the parent socket => process context
    
    - rfcomm_connect_ind()
      - acquires the parent socket lock with bh_lock_sock() => BH
        context
    
    - __sco_chan_add()
      - called from sco_chan_add(), which is called from sco_connect().
        parent is NULL, hence bt_accept_enqueue() isn't called in this
        code path and we can ignore it
      - also called from sco_conn_ready(). uses bh_lock_sock() to acquire
        the parent lock => BH context
    
    Fixes: e16337622016 ("Bluetooth: Handle bt_accept_enqueue() socket atomically")
    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95b6840860ee06e1826ace0c30561d8b7703a838
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Sun Jan 27 16:33:59 2019 +0800

    Bluetooth: btrtl: Restore old logic to assume firmware is already loaded
    
    commit 00df214b1faae520880cc5c57e206f21239ef741 upstream.
    
    Realtek bluetooth may not work after reboot:
    [   12.446130] Bluetooth: hci0: RTL: rtl: unknown IC info, lmp subver a99e, hci rev 826c, hci ver 0008
    
    This is a regression introduced by commit 26503ad25de8 ("Bluetooth:
    btrtl: split the device initialization into smaller parts"). The new
    logic errors out early when no matching IC info can be found, in this
    case it means the firmware is already loaded.
    
    So let's assume the firmware is already loaded when we can't find
    matching IC info, like the old logic did.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201921
    Fixes: 26503ad25de8 ("Bluetooth: btrtl: split the device initialization into smaller parts")
    Cc: stable@vger.kernel.org # 4.19+
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 302f4908d4f99ff84b714f2c9a990df8a667e91a
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Thu Feb 7 11:06:02 2019 -0800

    selftests: firmware: fix verify_reqs() return value
    
    commit 344c0152d878922365464b7140c74c2a5e073d99 upstream.
    
    commit a6a9be9270c87 ("selftests: firmware: return Kselftest Skip code
    for skipped tests") by Shuah modified failures to return the special
    error code of $ksft_skip (4). We have a corner case issue where we
    *do* want to verify_reqs().
    
    Cc: <stable@vger.kernel.org> # >= 4.18
    Fixes: a6a9be9270c87 ("selftests: firmware: return Kselftest Skip code for for skipped tests")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e73c19ca66e14f2eb62fff77ba31202e729ffea
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Thu Feb 7 11:06:01 2019 -0800

    Revert "selftests: firmware: remove use of non-standard diff -Z option"
    
    commit 13ac7db09c914e4991a08b7ad578267d5cdd9856 upstream.
    
    This reverts commit f70b472e937bb659a7b7a14e64f07308e230888c.
    
    This breaks testing on Debian, and this patch was NACKed anyway.
    The proper way to address this is a quirk for busybox as that is
    where the issue is present.
    
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Fixes: f70b472e937b ("selftests: firmware: remove use of non-standard diff -Z option")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66da661f94ebb943b54bb07e788a7371116d0a86
Author: Luis Chamberlain <mcgrof@kernel.org>
Date:   Thu Feb 7 11:06:00 2019 -0800

    Revert "selftests: firmware: add CONFIG_FW_LOADER_USER_HELPER_FALLBACK to config"
    
    commit d2b284d356e9758d2bafd505d482e3c9433ef424 upstream.
    
    This reverts commit 7492902e8d22b568463897fa967c0886764cf034.
    
    The commit tried to address an issue discovered by Dan where he got
    a message saying:
    
    'usermode helper disabled so ignoring test'.
    
    Dans's commit is forcing CONFIG_FW_LOADER_USER_HELPER_FALLBACK but just
    having CONFIG_FW_LOADER_USER_HELPER suffices to emulate the_FALLBACK
    functionality.
    
    Dan's commit is trying to fix an issue which is hidden from a previous
    commit. That issue will be addressed properly next.
    
    Fixes: 7492902e8d22 ("selftests: firmware: add CONFIG_FW_LOADER_USER_HELPER_FALLBACK to config")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44c81a48231012e510267b9fe26403325465a19a
Author: Karoly Pados <pados@pados.hu>
Date:   Sun Feb 17 18:59:01 2019 +0100

    USB: serial: cp210x: fix GPIO in autosuspend
    
    commit 7b0b644b9aa2de5032db0f468fddca091d0b7b90 upstream.
    
    Current GPIO code in cp210x fails to take USB autosuspend into account,
    making it practically impossible to use GPIOs with autosuspend enabled
    without user configuration. Fix this like for ftdi_sio in a previous patch.
    Tested on a CP2102N.
    
    Signed-off-by: Karoly Pados <pados@pados.hu>
    Fixes: cf5276ce7867 ("USB: serial: cp210x: Adding GPIO support for CP2105")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02c66213c80ab85a78b494711d530ac20760efb2
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jan 22 18:22:53 2019 +0100

    gnss: sirf: fix premature wakeup interrupt enable
    
    commit 82f844c22588bf47132c82faeda50b6db473162c upstream.
    
    Make sure the receiver is powered (and booted) before enabling the
    wakeup interrupt to avoid spurious interrupts due to a floating input.
    
    Similarly, disable the interrupt before powering off on probe errors and
    on unbind.
    
    Fixes: d2efbbd18b1e ("gnss: add driver for sirfstar-based receivers")
    Cc: stable <stable@vger.kernel.org>     # 4.19
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff204bb4c71b067b91225104b241cd670e7b6fdd
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Wed Jan 2 01:08:32 2019 -0800

    xtensa: fix get_wchan
    
    commit d90b88fd3653f1fb66ecc6571b860d5a5749fa56 upstream.
    
    Stack unwinding is implemented incorrectly in xtensa get_wchan: instead
    of extracting a0 and a1 registers from the spill location under the
    stack pointer it extracts a word pointed to by the stack pointer and
    subtracts 4 or 3 from it.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9255e2479efb61dd68a5f6bed598631ece21295
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Feb 8 16:59:49 2019 -0800

    aio: Fix locking in aio_poll()
    
    commit d3d6a18d7d351cbcc9b33dbedf710e65f8ce1595 upstream.
    
    wake_up_locked() may but does not have to be called with interrupts
    disabled. Since the fuse filesystem calls wake_up_locked() without
    disabling interrupts aio_poll_wake() may be called with interrupts
    enabled. Since the kioctx.ctx_lock may be acquired from IRQ context,
    all code that acquires that lock from thread context must disable
    interrupts. Hence change the spin_trylock() call in aio_poll_wake()
    into a spin_trylock_irqsave() call. This patch fixes the following
    lockdep complaint:
    
    =====================================================
    WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected
    5.0.0-rc4-next-20190131 #23 Not tainted
    -----------------------------------------------------
    syz-executor2/13779 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
    0000000098ac1230 (&fiq->waitq){+.+.}, at: spin_lock include/linux/spinlock.h:329 [inline]
    0000000098ac1230 (&fiq->waitq){+.+.}, at: aio_poll fs/aio.c:1772 [inline]
    0000000098ac1230 (&fiq->waitq){+.+.}, at: __io_submit_one fs/aio.c:1875 [inline]
    0000000098ac1230 (&fiq->waitq){+.+.}, at: io_submit_one+0xedf/0x1cf0 fs/aio.c:1908
    
    and this task is already holding:
    000000003c46111c (&(&ctx->ctx_lock)->rlock){..-.}, at: spin_lock_irq include/linux/spinlock.h:354 [inline]
    000000003c46111c (&(&ctx->ctx_lock)->rlock){..-.}, at: aio_poll fs/aio.c:1771 [inline]
    000000003c46111c (&(&ctx->ctx_lock)->rlock){..-.}, at: __io_submit_one fs/aio.c:1875 [inline]
    000000003c46111c (&(&ctx->ctx_lock)->rlock){..-.}, at: io_submit_one+0xeb6/0x1cf0 fs/aio.c:1908
    which would create a new lock dependency:
     (&(&ctx->ctx_lock)->rlock){..-.} -> (&fiq->waitq){+.+.}
    
    but this new dependency connects a SOFTIRQ-irq-safe lock:
     (&(&ctx->ctx_lock)->rlock){..-.}
    
    ... which became SOFTIRQ-irq-safe at:
      lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
      __raw_spin_lock_irq include/linux/spinlock_api_smp.h:128 [inline]
      _raw_spin_lock_irq+0x60/0x80 kernel/locking/spinlock.c:160
      spin_lock_irq include/linux/spinlock.h:354 [inline]
      free_ioctx_users+0x2d/0x4a0 fs/aio.c:610
      percpu_ref_put_many include/linux/percpu-refcount.h:285 [inline]
      percpu_ref_put include/linux/percpu-refcount.h:301 [inline]
      percpu_ref_call_confirm_rcu lib/percpu-refcount.c:123 [inline]
      percpu_ref_switch_to_atomic_rcu+0x3e7/0x520 lib/percpu-refcount.c:158
      __rcu_reclaim kernel/rcu/rcu.h:240 [inline]
      rcu_do_batch kernel/rcu/tree.c:2486 [inline]
      invoke_rcu_callbacks kernel/rcu/tree.c:2799 [inline]
      rcu_core+0x928/0x1390 kernel/rcu/tree.c:2780
      __do_softirq+0x266/0x95a kernel/softirq.c:292
      run_ksoftirqd kernel/softirq.c:654 [inline]
      run_ksoftirqd+0x8e/0x110 kernel/softirq.c:646
      smpboot_thread_fn+0x6ab/0xa10 kernel/smpboot.c:164
      kthread+0x357/0x430 kernel/kthread.c:247
      ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352
    
    to a SOFTIRQ-irq-unsafe lock:
     (&fiq->waitq){+.+.}
    
    ... which became SOFTIRQ-irq-unsafe at:
    ...
      lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
      __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
      _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:144
      spin_lock include/linux/spinlock.h:329 [inline]
      flush_bg_queue+0x1f3/0x3c0 fs/fuse/dev.c:415
      fuse_request_queue_background+0x2d1/0x580 fs/fuse/dev.c:676
      fuse_request_send_background+0x58/0x120 fs/fuse/dev.c:687
      fuse_send_init fs/fuse/inode.c:989 [inline]
      fuse_fill_super+0x13bb/0x1730 fs/fuse/inode.c:1214
      mount_nodev+0x68/0x110 fs/super.c:1392
      fuse_mount+0x2d/0x40 fs/fuse/inode.c:1239
      legacy_get_tree+0xf2/0x200 fs/fs_context.c:590
      vfs_get_tree+0x123/0x450 fs/super.c:1481
      do_new_mount fs/namespace.c:2610 [inline]
      do_mount+0x1436/0x2c40 fs/namespace.c:2932
      ksys_mount+0xdb/0x150 fs/namespace.c:3148
      __do_sys_mount fs/namespace.c:3162 [inline]
      __se_sys_mount fs/namespace.c:3159 [inline]
      __x64_sys_mount+0xbe/0x150 fs/namespace.c:3159
      do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
      entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    other info that might help us debug this:
    
     Possible interrupt unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(&fiq->waitq);
                                   local_irq_disable();
                                   lock(&(&ctx->ctx_lock)->rlock);
                                   lock(&fiq->waitq);
      <Interrupt>
        lock(&(&ctx->ctx_lock)->rlock);
    
     *** DEADLOCK ***
    
    1 lock held by syz-executor2/13779:
     #0: 000000003c46111c (&(&ctx->ctx_lock)->rlock){..-.}, at: spin_lock_irq include/linux/spinlock.h:354 [inline]
     #0: 000000003c46111c (&(&ctx->ctx_lock)->rlock){..-.}, at: aio_poll fs/aio.c:1771 [inline]
     #0: 000000003c46111c (&(&ctx->ctx_lock)->rlock){..-.}, at: __io_submit_one fs/aio.c:1875 [inline]
     #0: 000000003c46111c (&(&ctx->ctx_lock)->rlock){..-.}, at: io_submit_one+0xeb6/0x1cf0 fs/aio.c:1908
    
    the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
    -> (&(&ctx->ctx_lock)->rlock){..-.} {
       IN-SOFTIRQ-W at:
                        lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
                        __raw_spin_lock_irq include/linux/spinlock_api_smp.h:128 [inline]
                        _raw_spin_lock_irq+0x60/0x80 kernel/locking/spinlock.c:160
                        spin_lock_irq include/linux/spinlock.h:354 [inline]
                        free_ioctx_users+0x2d/0x4a0 fs/aio.c:610
                        percpu_ref_put_many include/linux/percpu-refcount.h:285 [inline]
                        percpu_ref_put include/linux/percpu-refcount.h:301 [inline]
                        percpu_ref_call_confirm_rcu lib/percpu-refcount.c:123 [inline]
                        percpu_ref_switch_to_atomic_rcu+0x3e7/0x520 lib/percpu-refcount.c:158
                        __rcu_reclaim kernel/rcu/rcu.h:240 [inline]
                        rcu_do_batch kernel/rcu/tree.c:2486 [inline]
                        invoke_rcu_callbacks kernel/rcu/tree.c:2799 [inline]
                        rcu_core+0x928/0x1390 kernel/rcu/tree.c:2780
                        __do_softirq+0x266/0x95a kernel/softirq.c:292
                        run_ksoftirqd kernel/softirq.c:654 [inline]
                        run_ksoftirqd+0x8e/0x110 kernel/softirq.c:646
                        smpboot_thread_fn+0x6ab/0xa10 kernel/smpboot.c:164
                        kthread+0x357/0x430 kernel/kthread.c:247
                        ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352
       INITIAL USE at:
                       lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
                       __raw_spin_lock_irq include/linux/spinlock_api_smp.h:128 [inline]
                       _raw_spin_lock_irq+0x60/0x80 kernel/locking/spinlock.c:160
                       spin_lock_irq include/linux/spinlock.h:354 [inline]
                       __do_sys_io_cancel fs/aio.c:2052 [inline]
                       __se_sys_io_cancel fs/aio.c:2035 [inline]
                       __x64_sys_io_cancel+0xd5/0x5a0 fs/aio.c:2035
                       do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
                       entry_SYSCALL_64_after_hwframe+0x49/0xbe
     }
     ... key      at: [<ffffffff8a574140>] __key.52370+0x0/0x40
     ... acquired at:
       lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
       __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
       _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:144
       spin_lock include/linux/spinlock.h:329 [inline]
       aio_poll fs/aio.c:1772 [inline]
       __io_submit_one fs/aio.c:1875 [inline]
       io_submit_one+0xedf/0x1cf0 fs/aio.c:1908
       __do_sys_io_submit fs/aio.c:1953 [inline]
       __se_sys_io_submit fs/aio.c:1923 [inline]
       __x64_sys_io_submit+0x1bd/0x580 fs/aio.c:1923
       do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    the dependencies between the lock to be acquired
     and SOFTIRQ-irq-unsafe lock:
    -> (&fiq->waitq){+.+.} {
       HARDIRQ-ON-W at:
                        lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
                        __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
                        _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:144
                        spin_lock include/linux/spinlock.h:329 [inline]
                        flush_bg_queue+0x1f3/0x3c0 fs/fuse/dev.c:415
                        fuse_request_queue_background+0x2d1/0x580 fs/fuse/dev.c:676
                        fuse_request_send_background+0x58/0x120 fs/fuse/dev.c:687
                        fuse_send_init fs/fuse/inode.c:989 [inline]
                        fuse_fill_super+0x13bb/0x1730 fs/fuse/inode.c:1214
                        mount_nodev+0x68/0x110 fs/super.c:1392
                        fuse_mount+0x2d/0x40 fs/fuse/inode.c:1239
                        legacy_get_tree+0xf2/0x200 fs/fs_context.c:590
                        vfs_get_tree+0x123/0x450 fs/super.c:1481
                        do_new_mount fs/namespace.c:2610 [inline]
                        do_mount+0x1436/0x2c40 fs/namespace.c:2932
                        ksys_mount+0xdb/0x150 fs/namespace.c:3148
                        __do_sys_mount fs/namespace.c:3162 [inline]
                        __se_sys_mount fs/namespace.c:3159 [inline]
                        __x64_sys_mount+0xbe/0x150 fs/namespace.c:3159
                        do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
                        entry_SYSCALL_64_after_hwframe+0x49/0xbe
       SOFTIRQ-ON-W at:
                        lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
                        __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
                        _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:144
                        spin_lock include/linux/spinlock.h:329 [inline]
                        flush_bg_queue+0x1f3/0x3c0 fs/fuse/dev.c:415
                        fuse_request_queue_background+0x2d1/0x580 fs/fuse/dev.c:676
                        fuse_request_send_background+0x58/0x120 fs/fuse/dev.c:687
                        fuse_send_init fs/fuse/inode.c:989 [inline]
                        fuse_fill_super+0x13bb/0x1730 fs/fuse/inode.c:1214
                        mount_nodev+0x68/0x110 fs/super.c:1392
                        fuse_mount+0x2d/0x40 fs/fuse/inode.c:1239
                        legacy_get_tree+0xf2/0x200 fs/fs_context.c:590
                        vfs_get_tree+0x123/0x450 fs/super.c:1481
                        do_new_mount fs/namespace.c:2610 [inline]
                        do_mount+0x1436/0x2c40 fs/namespace.c:2932
                        ksys_mount+0xdb/0x150 fs/namespace.c:3148
                        __do_sys_mount fs/namespace.c:3162 [inline]
                        __se_sys_mount fs/namespace.c:3159 [inline]
                        __x64_sys_mount+0xbe/0x150 fs/namespace.c:3159
                        do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
                        entry_SYSCALL_64_after_hwframe+0x49/0xbe
       INITIAL USE at:
                       lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
                       __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
                       _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:144
                       spin_lock include/linux/spinlock.h:329 [inline]
                       flush_bg_queue+0x1f3/0x3c0 fs/fuse/dev.c:415
                       fuse_request_queue_background+0x2d1/0x580 fs/fuse/dev.c:676
                       fuse_request_send_background+0x58/0x120 fs/fuse/dev.c:687
                       fuse_send_init fs/fuse/inode.c:989 [inline]
                       fuse_fill_super+0x13bb/0x1730 fs/fuse/inode.c:1214
                       mount_nodev+0x68/0x110 fs/super.c:1392
                       fuse_mount+0x2d/0x40 fs/fuse/inode.c:1239
                       legacy_get_tree+0xf2/0x200 fs/fs_context.c:590
                       vfs_get_tree+0x123/0x450 fs/super.c:1481
                       do_new_mount fs/namespace.c:2610 [inline]
                       do_mount+0x1436/0x2c40 fs/namespace.c:2932
                       ksys_mount+0xdb/0x150 fs/namespace.c:3148
                       __do_sys_mount fs/namespace.c:3162 [inline]
                       __se_sys_mount fs/namespace.c:3159 [inline]
                       __x64_sys_mount+0xbe/0x150 fs/namespace.c:3159
                       do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
                       entry_SYSCALL_64_after_hwframe+0x49/0xbe
     }
     ... key      at: [<ffffffff8a60dec0>] __key.43450+0x0/0x40
     ... acquired at:
       lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
       __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
       _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:144
       spin_lock include/linux/spinlock.h:329 [inline]
       aio_poll fs/aio.c:1772 [inline]
       __io_submit_one fs/aio.c:1875 [inline]
       io_submit_one+0xedf/0x1cf0 fs/aio.c:1908
       __do_sys_io_submit fs/aio.c:1953 [inline]
       __se_sys_io_submit fs/aio.c:1923 [inline]
       __x64_sys_io_submit+0x1bd/0x580 fs/aio.c:1923
       do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    stack backtrace:
    CPU: 0 PID: 13779 Comm: syz-executor2 Not tainted 5.0.0-rc4-next-20190131 #23
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x172/0x1f0 lib/dump_stack.c:113
     print_bad_irq_dependency kernel/locking/lockdep.c:1573 [inline]
     check_usage.cold+0x60f/0x940 kernel/locking/lockdep.c:1605
     check_irq_usage kernel/locking/lockdep.c:1650 [inline]
     check_prev_add_irq kernel/locking/lockdep_states.h:8 [inline]
     check_prev_add kernel/locking/lockdep.c:1860 [inline]
     check_prevs_add kernel/locking/lockdep.c:1968 [inline]
     validate_chain kernel/locking/lockdep.c:2339 [inline]
     __lock_acquire+0x1f12/0x4790 kernel/locking/lockdep.c:3320
     lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:3826
     __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
     _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:144
     spin_lock include/linux/spinlock.h:329 [inline]
     aio_poll fs/aio.c:1772 [inline]
     __io_submit_one fs/aio.c:1875 [inline]
     io_submit_one+0xedf/0x1cf0 fs/aio.c:1908
     __do_sys_io_submit fs/aio.c:1953 [inline]
     __se_sys_io_submit fs/aio.c:1923 [inline]
     __x64_sys_io_submit+0x1bd/0x580 fs/aio.c:1923
     do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Avi Kivity <avi@scylladb.com>
    Cc: Miklos Szeredi <miklos@szeredi.hu>
    Cc: <stable@vger.kernel.org>
    Fixes: e8693bcfa0b4 ("aio: allow direct aio poll comletions for keyed wakeups") # v4.19
    Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
    [ bvanassche: added a comment ]
    Reluctantly-Acked-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ac0fa7f3373295a8a9fe8f9dc940fa9ac1a82f8
Author: Liu Xiang <liu.xiang6@zte.com.cn>
Date:   Sat Feb 16 17:12:24 2019 +0800

    MIPS: irq: Allocate accurate order pages for irq stack
    
    commit 72faa7a773ca59336f3c889e878de81445c5a85c upstream.
    
    The irq_pages is the number of pages for irq stack, but not the
    order which is needed by __get_free_pages().
    We can use get_order() to calculate the accurate order.
    
    Signed-off-by: Liu Xiang <liu.xiang6@zte.com.cn>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Fixes: fe8bd18ffea5 ("MIPS: Introduce irq_stack")
    Cc: linux-mips@vger.kernel.org
    Cc: stable@vger.kernel.org # v4.11+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8cc62bd8806809ddc5e172c04483f3553d6c2e8
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Jan 3 22:10:26 2019 +0100

    alpha: wire up io_pgetevents system call
    
    commit d012d1325ba523b8ef3e55ba79c943e220154fdc upstream.
    
    The io_pgetevents system call was added in linux-4.18 but has
    no entry for alpha:
    
    warning: #warning syscall io_pgetevents not implemented [-Wcpp]
    
    Assign a the next system call number here.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46ce9ec42b78777900447bc4d79ab242b599a26c
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Wed Jan 9 16:05:10 2019 -0600

    applicom: Fix potential Spectre v1 vulnerabilities
    
    commit d7ac3c6ef5d8ce14b6381d52eb7adafdd6c8bb3c upstream.
    
    IndexCard is indirectly controlled by user-space, hence leading to
    a potential exploitation of the Spectre variant 1 vulnerability.
    
    This issue was detected with the help of Smatch:
    
    drivers/char/applicom.c:418 ac_write() warn: potential spectre issue 'apbs' [r]
    drivers/char/applicom.c:728 ac_ioctl() warn: potential spectre issue 'apbs' [r] (local cap)
    
    Fix this by sanitizing IndexCard before using it to index apbs.
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    [1] https://lore.kernel.org/lkml/20180423164740.GY17484@dhcp22.suse.cz/
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92424a6839151126bc925c4de05da90a7df23ece
Author: Balaji Manoharan <m.balaji@intel.com>
Date:   Wed Feb 20 19:50:53 2019 +0200

    usb: xhci: Fix for Enabling USB ROLE SWITCH QUIRK on INTEL_SUNRISEPOINT_LP_XHCI
    
    commit 8fde481ef3674ae5ad0dbfef4df18ff507c5675a upstream.
    
    This fix enables USB role feature on intel commercial nuc
    platform which is based on Kabylake chipset.
    
    Signed-off-by: Balaji Manoharan <m.balaji@intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 511ba5f2287c55f45a4bf45358cd5c06012c8d3c
Author: Thierry Reding <treding@nvidia.com>
Date:   Wed Feb 20 14:48:41 2019 +0100

    xhci: tegra: Prevent error pointer dereference
    
    commit 0326ccb5feac6eac35ba6254260e2774277cd976 upstream.
    
    During initialization, the host and super-speed power domains will
    contain an ERR_PTR() encoded error code rather than being NULL. To
    avoid a crash, use a !IS_ERR_OR_NULL() condition during cleanup.
    
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Fixes: 6494a9ad86de ("usb: xhci: tegra: Add genpd support")
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
    Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1eadda06dcda82a8fe48b603b346261bdd495542
Author: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
Date:   Thu Aug 23 13:25:34 2018 +0300

    tracing: Fix event filters and triggers to handle negative numbers
    
    commit 6a072128d262d2b98d31626906a96700d1fc11eb upstream.
    
    Then tracing syscall exit event it is extremely useful to filter exit
    codes equal to some negative value, to react only to required errors.
    But negative numbers does not work:
    
    [root@snorch sys_exit_read]# echo "ret == -1" > filter
    bash: echo: write error: Invalid argument
    [root@snorch sys_exit_read]# cat filter
    ret == -1
            ^
    parse_error: Invalid value (did you forget quotes)?
    
    Similar thing happens when setting triggers.
    
    These is a regression in v4.17 introduced by the commit mentioned below,
    testing without these commit shows no problem with negative numbers.
    
    Link: http://lkml.kernel.org/r/20180823102534.7642-1-ptikhomirov@virtuozzo.com
    
    Cc: stable@vger.kernel.org
    Fixes: 80765597bc58 ("tracing: Rewrite filter logic to be simpler and faster")
    Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad0051c0d6da31261c4795a67ce6f5ca2710bedc
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Tue Feb 19 10:52:24 2019 +0300

    x86/boot/compressed/64: Do not read legacy ROM on EFI system
    
    commit 6f913de3231e1d70a871135b38219da7810df218 upstream.
    
    EFI systems do not necessarily provide a legacy ROM. If the ROM is missing
    the memory is not mapped at all.
    
    Trying to dereference values in the legacy ROM area leads to a crash on
    Macbook Pro.
    
    Only look for values in the legacy ROM area for non-EFI system.
    
    Fixes: 3548e131ec6a ("x86/boot/compressed/64: Find a place for 32-bit trampoline")
    Reported-by: Pitam Mitra <pitamm@gmail.com>
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Bockjoo Kim <bockjoo@phys.ufl.edu>
    Cc: bp@alien8.de
    Cc: hpa@zytor.com
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190219075224.35058-1-kirill.shutemov@linux.intel.com
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202351
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8907034edaf2e5d942930711824a1d311517f25
Author: Jiaxun Yang <jiaxun.yang@flygoat.com>
Date:   Tue Nov 20 11:00:18 2018 +0800

    x86/CPU/AMD: Set the CPB bit unconditionally on F17h
    
    commit 0237199186e7a4aa5310741f0a6498a20c820fd7 upstream.
    
    Some F17h models do not have CPB set in CPUID even though the CPU
    supports it. Set the feature bit unconditionally on all F17h.
    
     [ bp: Rewrite commit message and patch. ]
    
    Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Sherry Hurwitz <sherry.hurwitz@amd.com>
    Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20181120030018.5185-1-jiaxun.yang@flygoat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 258c4bfcea44f0729187c05185a99bfc3ccc77e1
Author: Erik Hugne <erik.hugne@gmail.com>
Date:   Mon Mar 4 23:26:10 2019 +0100

    tipc: fix RDM/DGRAM connect() regression
    
    [ Upstream commit 0e63208915a8d7590d0a6218dadb2a6a00ac705a ]
    
    Fix regression bug introduced in
    commit 365ad353c256 ("tipc: reduce risk of user starvation during link
    congestion")
    
    Only signal -EDESTADDRREQ for RDM/DGRAM if we don't have a cached
    sockaddr.
    
    Fixes: 365ad353c256 ("tipc: reduce risk of user starvation during link congestion")
    Signed-off-by: Erik Hugne <erik.hugne@gmail.com>
    Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0c649843a76cece77a569702a13183d9991c5d8
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Sun Mar 3 07:35:51 2019 +0000

    team: Free BPF filter when unregistering netdev
    
    [ Upstream commit 692c31bd4054212312396b1d303bffab2c5b93a7 ]
    
    When team is used in loadbalance mode a BPF filter can be used to
    provide a hash which will determine the Tx port.
    
    When the netdev is later unregistered the filter is not freed which
    results in memory leaks [1].
    
    Fix by freeing the program and the corresponding filter when
    unregistering the netdev.
    
    [1]
    unreferenced object 0xffff8881dbc47cc8 (size 16):
      comm "teamd", pid 3068, jiffies 4294997779 (age 438.247s)
      hex dump (first 16 bytes):
        a3 00 6b 6b 6b 6b 6b 6b 88 a5 82 e1 81 88 ff ff  ..kkkkkk........
      backtrace:
        [<000000008a3b47e3>] team_nl_cmd_options_set+0x88f/0x11b0
        [<00000000c4f4f27e>] genl_family_rcv_msg+0x78f/0x1080
        [<00000000610ef838>] genl_rcv_msg+0xca/0x170
        [<00000000a281df93>] netlink_rcv_skb+0x132/0x380
        [<000000004d9448a2>] genl_rcv+0x29/0x40
        [<000000000321b2f4>] netlink_unicast+0x4c0/0x690
        [<000000008c25dffb>] netlink_sendmsg+0x929/0xe10
        [<00000000068298c5>] sock_sendmsg+0xc8/0x110
        [<0000000082a61ff0>] ___sys_sendmsg+0x77a/0x8f0
        [<00000000663ae29d>] __sys_sendmsg+0xf7/0x250
        [<0000000027c5f11a>] do_syscall_64+0x14d/0x610
        [<000000006cfbc8d3>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
        [<00000000e23197e2>] 0xffffffffffffffff
    unreferenced object 0xffff8881e182a588 (size 2048):
      comm "teamd", pid 3068, jiffies 4294997780 (age 438.247s)
      hex dump (first 32 bytes):
        20 00 00 00 02 00 00 00 30 00 00 00 28 f0 ff ff   .......0...(...
        07 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00  ........(.......
      backtrace:
        [<000000002daf01fb>] lb_bpf_func_set+0x45c/0x6d0
        [<000000008a3b47e3>] team_nl_cmd_options_set+0x88f/0x11b0
        [<00000000c4f4f27e>] genl_family_rcv_msg+0x78f/0x1080
        [<00000000610ef838>] genl_rcv_msg+0xca/0x170
        [<00000000a281df93>] netlink_rcv_skb+0x132/0x380
        [<000000004d9448a2>] genl_rcv+0x29/0x40
        [<000000000321b2f4>] netlink_unicast+0x4c0/0x690
        [<000000008c25dffb>] netlink_sendmsg+0x929/0xe10
        [<00000000068298c5>] sock_sendmsg+0xc8/0x110
        [<0000000082a61ff0>] ___sys_sendmsg+0x77a/0x8f0
        [<00000000663ae29d>] __sys_sendmsg+0xf7/0x250
        [<0000000027c5f11a>] do_syscall_64+0x14d/0x610
        [<000000006cfbc8d3>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
        [<00000000e23197e2>] 0xffffffffffffffff
    
    Fixes: 01d7f30a9f96 ("team: add loadbalance mode")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Reported-by: Amit Cohen <amitc@mellanox.com>
    Acked-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3445d44b8330ab2219f3fb77d453c6068f11406c
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Mon Mar 4 15:00:03 2019 +0800

    sky2: Disable MSI on Dell Inspiron 1545 and Gateway P-79
    
    [ Upstream commit b33b7cd6fd86478dd2890a9abeb6f036aa01fdf7 ]
    
    Some sky2 chips fire IRQ after S3, before the driver is fully resumed:
    [ 686.804877] do_IRQ: 1.37 No irq handler for vector
    
    This is likely a platform bug that device isn't fully quiesced during
    S3. Use MSI-X, maskable MSI or INTx can prevent this issue from
    happening.
    
    Since MSI-X and maskable MSI are not supported by this device, fallback
    to use INTx on affected platforms.
    
    BugLink: https://bugs.launchpad.net/bugs/1807259
    BugLink: https://bugs.launchpad.net/bugs/1809843
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9dc9563fbb3885826d9786eb5d5000995dc57b75
Author: Xin Long <lucien.xin@gmail.com>
Date:   Sun Mar 3 16:50:26 2019 +0800

    sctp: call iov_iter_revert() after sending ABORT
    
    [ Upstream commit 901efe12318b1ea8d3e2c88a7b75ed6e6d5d7245 ]
    
    The user msg is also copied to the abort packet when doing SCTP_ABORT in
    sctp_sendmsg_check_sflags(). When SCTP_SENDALL is set, iov_iter_revert()
    should have been called for sending abort on the next asoc with copying
    this msg. Otherwise, memcpy_from_msg() in sctp_make_abort_user() will
    fail and return error.
    
    Fixes: 4910280503f3 ("sctp: add support for snd flag SCTP_SENDALL process in sendmsg")
    Reported-by: Ying Xu <yinxu@redhat.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43610748b73d309c17276a2042d94e6fa06df27e
Author: Kristian Evensen <kristian.evensen@gmail.com>
Date:   Sat Mar 2 13:32:26 2019 +0100

    qmi_wwan: Add support for Quectel EG12/EM12
    
    [ Upstream commit 822e44b45eb991c63487c5e2ce7d636411870a8d ]
    
    Quectel EG12 (module)/EM12 (M.2 card) is a Cat. 12 LTE modem. The modem
    behaves in the same way as the EP06, so the "set DTR"-quirk must be
    applied and the diagnostic-interface check performed. Since the
    diagnostic-check now applies to more modems, I have renamed the function
    from quectel_ep06_diag_detected() to quectel_diag_detected().
    
    Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ba2882157049c54324cd703060a11dc4e493efe
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Sat Mar 2 10:34:55 2019 +0800

    net-sysfs: Fix mem leak in netdev_register_kobject
    
    [ Upstream commit 895a5e96dbd6386c8e78e5b78e067dcc67b7f0ab ]
    
    syzkaller report this:
    BUG: memory leak
    unreferenced object 0xffff88837a71a500 (size 256):
      comm "syz-executor.2", pid 9770, jiffies 4297825125 (age 17.843s)
      hex dump (first 32 bytes):
        00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
        ff ff ff ff ff ff ff ff 20 c0 ef 86 ff ff ff ff  ........ .......
      backtrace:
        [<00000000db12624b>] netdev_register_kobject+0x124/0x2e0 net/core/net-sysfs.c:1751
        [<00000000dc49a994>] register_netdevice+0xcc1/0x1270 net/core/dev.c:8516
        [<00000000e5f3fea0>] tun_set_iff drivers/net/tun.c:2649 [inline]
        [<00000000e5f3fea0>] __tun_chr_ioctl+0x2218/0x3d20 drivers/net/tun.c:2883
        [<000000001b8ac127>] vfs_ioctl fs/ioctl.c:46 [inline]
        [<000000001b8ac127>] do_vfs_ioctl+0x1a5/0x10e0 fs/ioctl.c:690
        [<0000000079b269f8>] ksys_ioctl+0x89/0xa0 fs/ioctl.c:705
        [<00000000de649beb>] __do_sys_ioctl fs/ioctl.c:712 [inline]
        [<00000000de649beb>] __se_sys_ioctl fs/ioctl.c:710 [inline]
        [<00000000de649beb>] __x64_sys_ioctl+0x74/0xb0 fs/ioctl.c:710
        [<000000007ebded1e>] do_syscall_64+0xc8/0x580 arch/x86/entry/common.c:290
        [<00000000db315d36>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
        [<00000000115be9bb>] 0xffffffffffffffff
    
    It should call kset_unregister to free 'dev->queues_kset'
    in error path of register_queue_kobjects, otherwise will cause a mem leak.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: 1d24eb4815d1 ("xps: Transmit Packet Steering")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd267ea6a70cf261eadac6273bcb13b198f29062
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Feb 28 12:55:43 2019 -0800

    net: sched: put back q.qlen into a single location
    
    [ Upstream commit 46b1c18f9deb326a7e18348e668e4c7ab7c7458b ]
    
    In the series fc8b81a5981f ("Merge branch 'lockless-qdisc-series'")
    John made the assumption that the data path had no need to read
    the qdisc qlen (number of packets in the qdisc).
    
    It is true when pfifo_fast is used as the root qdisc, or as direct MQ/MQPRIO
    children.
    
    But pfifo_fast can be used as leaf in class full qdiscs, and existing
    logic needs to access the child qlen in an efficient way.
    
    HTB breaks badly, since it uses cl->leaf.q->q.qlen in :
      htb_activate() -> WARN_ON()
      htb_dequeue_tree() to decide if a class can be htb_deactivated
      when it has no more packets.
    
    HFSC, DRR, CBQ, QFQ have similar issues, and some calls to
    qdisc_tree_reduce_backlog() also read q.qlen directly.
    
    Using qdisc_qlen_sum() (which iterates over all possible cpus)
    in the data path is a non starter.
    
    It seems we have to put back qlen in a central location,
    at least for stable kernels.
    
    For all qdisc but pfifo_fast, qlen is guarded by the qdisc lock,
    so the existing q.qlen{++|--} are correct.
    
    For 'lockless' qdisc (pfifo_fast so far), we need to use atomic_{inc|dec}()
    because the spinlock might be not held (for example from
    pfifo_fast_enqueue() and pfifo_fast_dequeue())
    
    This patch adds atomic_qlen (in the same location than qlen)
    and renames the following helpers, since we want to express
    they can be used without qdisc lock, and that qlen is no longer percpu.
    
    - qdisc_qstats_cpu_qlen_dec -> qdisc_qstats_atomic_qlen_dec()
    - qdisc_qstats_cpu_qlen_inc -> qdisc_qstats_atomic_qlen_inc()
    
    Later (net-next) we might revert this patch by tracking all these
    qlen uses and replace them by a more efficient method (not having
    to access a precise qlen, but an empty/non_empty status that might
    be less expensive to maintain/track).
    
    Another possibility is to have a legacy pfifo_fast version that would
    be used when used a a child qdisc, since the parent qdisc needs
    a spinlock anyway. But then, future lockless qdiscs would also
    have the same problem.
    
    Fixes: 7e66016f2c65 ("net: sched: helpers to sum qlen and qlen for per cpu logic")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: John Fastabend <john.fastabend@gmail.com>
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Cc: Cong Wang <xiyou.wangcong@gmail.com>
    Cc: Jiri Pirko <jiri@resnulli.us>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1c9e3fe2d343758f189cd682c3b23cdd4f20601
Author: Kavya Sree Kotagiri <kavyasree.kotagiri@microchip.com>
Date:   Thu Feb 28 07:32:22 2019 +0000

    net: mscc: Enable all ports in QSGMII
    
    [ Upstream commit 084e5bb16bd7dc2b551bbd9fb358bf73e03ee8d8 ]
    
    When Ocelot phy-mode is QSGMII, all 4 ports involved in
    QSGMII shall be kept out of reset and
    Tx lanes shall be enabled to pass the data.
    
    Fixes: a556c76adc05 ("net: mscc: Add initial Ocelot switch support")
    Signed-off-by: Kavya Sree Kotagiri <kavyasree.kotagiri@microchip.com>
    Signed-off-by: Steen Hegelund <Steen.Hegelund@microchip.com>
    Co-developed-by: Steen Hegelund <Steen.Hegelund@microchip.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 050c7ff6f46c9d368b2dab7fa88c838cc07b3f9e
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Sat Mar 2 10:06:05 2019 +0100

    net: dsa: mv8e6xxx: fix number of internal PHYs for 88E6x90 family
    
    [ Upstream commit 95150f29ae480276e76368cdf8a9524b5a96c0ca ]
    
    Ports 9 and 10 don't have internal PHY's but are (dependent on the
    version) SERDES/SGMII/XAUI/RXAUI ports.
    
    v2:
    - fix it for all 88E6x90 family members
    
    Fixes: bc3931557d1d ("net: dsa: mv88e6xxx: Add number of internal PHYs")
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2e346e38c2ab9977f38fbd1943eaa63f295e8b7
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Fri Mar 1 19:53:57 2019 +0100

    net: dsa: mv88e6xxx: handle unknown duplex modes gracefully in mv88e6xxx_port_set_duplex
    
    [ Upstream commit c6195a8bdfc62a7cecf7df685e64847a4b700275 ]
    
    When testing another issue I faced the problem that
    mv88e6xxx_port_setup_mac() failed due to DUPLEX_UNKNOWN being passed
    as argument to mv88e6xxx_port_set_duplex(). We should handle this case
    gracefully and return -EOPNOTSUPP, like e.g. mv88e6xxx_port_set_speed()
    is doing it.
    
    Fixes: 7f1ae07b51e8 ("net: dsa: mv88e6xxx: add port duplex setter")
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9590cdffe8c4ccc7d9201751aa1fd48203db6027
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Mon Mar 4 19:39:03 2019 +0100

    net: dsa: mv88e6xxx: add call to mv88e6xxx_ports_cmode_init to probe for new DSA framework
    
    [ Upstream commit 3acca1dd17060332cfab15693733cdaf9fba1c90 ]
    
    In the original patch I missed to add mv88e6xxx_ports_cmode_init()
    to the second probe function, the one for the new DSA framework.
    
    Fixes: ed8fe20205ac ("net: dsa: mv88e6xxx: prevent interrupt storm caused by mv88e6390x_port_set_cmode")
    Reported-by: Shaokun Zhang <zhangshaokun@hisilicon.com>
    Suggested-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b3149338ace20a0f40bbf0b03091d7ea6f4c2fd
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Sun Mar 3 07:34:57 2019 +0000

    ip6mr: Do not call __IP6_INC_STATS() from preemptible context
    
    [ Upstream commit 87c11f1ddbbad38ad8bad47af133a8208985fbdf ]
    
    Similar to commit 44f49dd8b5a6 ("ipmr: fix possible race resulting from
    improper usage of IP_INC_STATS_BH() in preemptible context."), we cannot
    assume preemption is disabled when incrementing the counter and
    accessing a per-CPU variable.
    
    Preemption can be enabled when we add a route in process context that
    corresponds to packets stored in the unresolved queue, which are then
    forwarded using this route [1].
    
    Fix this by using IP6_INC_STATS() which takes care of disabling
    preemption on architectures where it is needed.
    
    [1]
    [  157.451447] BUG: using __this_cpu_add() in preemptible [00000000] code: smcrouted/2314
    [  157.460409] caller is ip6mr_forward2+0x73e/0x10e0
    [  157.460434] CPU: 3 PID: 2314 Comm: smcrouted Not tainted 5.0.0-rc7-custom-03635-g22f2712113f1 #1336
    [  157.460449] Hardware name: Mellanox Technologies Ltd. MSN2100-CB2FO/SA001017, BIOS 5.6.5 06/07/2016
    [  157.460461] Call Trace:
    [  157.460486]  dump_stack+0xf9/0x1be
    [  157.460553]  check_preemption_disabled+0x1d6/0x200
    [  157.460576]  ip6mr_forward2+0x73e/0x10e0
    [  157.460705]  ip6_mr_forward+0x9a0/0x1510
    [  157.460771]  ip6mr_mfc_add+0x16b3/0x1e00
    [  157.461155]  ip6_mroute_setsockopt+0x3cb/0x13c0
    [  157.461384]  do_ipv6_setsockopt.isra.8+0x348/0x4060
    [  157.462013]  ipv6_setsockopt+0x90/0x110
    [  157.462036]  rawv6_setsockopt+0x4a/0x120
    [  157.462058]  __sys_setsockopt+0x16b/0x340
    [  157.462198]  __x64_sys_setsockopt+0xbf/0x160
    [  157.462220]  do_syscall_64+0x14d/0x610
    [  157.462349]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Fixes: 0912ea38de61 ("[IPV6] MROUTE: Add stats in multicast routing module method ip6_mr_forward().")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Reported-by: Amit Cohen <amitc@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b592247edd6ba2498cf4948b61913632443ab782
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Fri Feb 22 20:03:55 2019 +0900

    staging: android: ashmem: Avoid range_alloc() allocation with ashmem_mutex held.
    
    commit ecd182cbf4e107928077866399100228d2359c60 upstream.
    
    ashmem_pin() is calling range_shrink() without checking whether
    range_alloc() succeeded. Also, doing memory allocation with ashmem_mutex
    held should be avoided because ashmem_shrink_scan() tries to hold it.
    
    Therefore, move memory allocation for range_alloc() to ashmem_pin_unpin()
    and make range_alloc() not to fail.
    
    This patch is mostly meant for backporting purpose for fuzz testing on
    stable/distributor kernels, for there is a plan to remove this code in
    near future.
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: stable@vger.kernel.org
    Reviewed-by: Joel Fernandes <joel@joelfernandes.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a6b0c1b4731bde4d28e73f7a0eb9d6ddcc84724
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Tue Feb 5 19:28:40 2019 +0900

    staging: android: ashmem: Don't call fallocate() with ashmem_mutex held.
    
    commit fb4415a12632f0b9078a0aa80c16745d48fcfc74 upstream.
    
    syzbot is hitting lockdep warnings [1][2][3]. This patch tries to fix
    the warning by eliminating ashmem_shrink_scan() => {shmem|vfs}_fallocate()
    sequence.
    
    [1] https://syzkaller.appspot.com/bug?id=87c399f6fa6955006080b24142e2ce7680295ad4
    [2] https://syzkaller.appspot.com/bug?id=7ebea492de7521048355fc84210220e1038a7908
    [3] https://syzkaller.appspot.com/bug?id=e02419c12131c24e2a957ea050c2ab6dcbbc3270
    
    Reported-by: syzbot <syzbot+a76129f18c89f3e2ddd4@syzkaller.appspotmail.com>
    Reported-by: syzbot <syzbot+148c2885d71194f18d28@syzkaller.appspotmail.com>
    Reported-by: syzbot <syzbot+4b8b031b89e6b96c4b2e@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: stable@vger.kernel.org
    Acked-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e2cda2e854bbaa3d72b5eff9edf06bac205ccec
Author: Qing Xia <saberlily.xia@hisilicon.com>
Date:   Fri Feb 1 14:59:46 2019 +0800

    staging: android: ion: fix sys heap pool's gfp_flags
    
    commit 9bcf065e28122588a6cbee08cf847826dacbb438 upstream.
    
    In the first loop, gfp_flags will be modified to high_order_gfp_flags,
    and there will be no chance to change back to low_order_gfp_flags.
    
    Fixes: e7f63771b60e ("ION: Sys_heap: Add cached pool to spead up cached buffer alloc")
    Signed-off-by: Qing Xia <saberlily.xia@hisilicon.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Jing Xia <jing.xia@unisoc.com>
    Reviewed-by: Yuming Han <yuming.han@unisoc.com>
    Reviewed-by: Zhaoyang Huang <zhaoyang.huang@unisoc.com>
    Reviewed-by: Orson Zhai <orson.zhai@unisoc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f14ab1e367d2f0623b01780cf3a6a01a1fd16f09
Author: Ajay Singh <ajay.kathat@microchip.com>
Date:   Thu Feb 7 11:28:58 2019 +0000

    staging: wilc1000: fix to set correct value for 'vif_num'
    
    commit dda037057a572f5c82ac2499eb4e6fb17600ba3e upstream.
    
    Set correct value in '->vif_num' for the total number of interfaces and
    set '->idx' value using 'i'.
    
    Fixes: 735bb39ca3be ("staging: wilc1000: simplify vif[i]->ndev accesses")
    Fixes: 0e490657c721 ("staging: wilc1000: Fix problem with wrong vif index")
    Cc: <stable@vger.kernel.org>
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e872d586158c27401f98a1f5bedaa6e4b9b1fd63
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Tue Feb 12 12:44:50 2019 -0600

    staging: comedi: ni_660x: fix missing break in switch statement
    
    commit 479826cc86118e0d87e5cefb3df5b748e0480924 upstream.
    
    Add missing break statement in order to prevent the code from falling
    through to the default case and return -EINVAL every time.
    
    This bug was found thanks to the ongoing efforts to enable
    -Wimplicit-fallthrough.
    
    Fixes: aa94f2888825 ("staging: comedi: ni_660x: tidy up ni_660x_set_pfi_routing()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 116ad909da648d58a6a84024a537274106c68819
Author: Gao Xiang <gaoxiang25@huawei.com>
Date:   Wed Feb 27 13:33:31 2019 +0800

    staging: erofs: fix illegal address access under memory pressure
    
    commit 1e5ceeab6929585512c63d05911d6657064abf7b upstream.
    
    Considering a read request with two decompressed file pages,
    If a decompression work cannot be started on the previous page
    due to memory pressure but in-memory LTP map lookup is done,
    builder->work should be still NULL.
    
    Moreover, if the current page also belongs to the same map,
    it won't try to start the decompression work again and then
    run into trouble.
    
    This patch aims to solve the above issue only with little changes
    as much as possible in order to make the fix backport easier.
    
    kernel message is:
    <4>[1051408.015930s]SLUB: Unable to allocate memory on node -1, gfp=0x2408040(GFP_NOFS|__GFP_ZERO)
    <4>[1051408.015930s]  cache: erofs_compress, object size: 144, buffer size: 144, default order: 0, min order: 0
    <4>[1051408.015930s]  node 0: slabs: 98, objs: 2744, free: 0
      * Cannot allocate the decompression work
    
    <3>[1051408.015960s]erofs: z_erofs_vle_normalaccess_readpages, readahead error at page 1008 of nid 5391488
      * Note that the previous page was failed to read
    
    <0>[1051408.015960s]Internal error: Accessing user space memory outside uaccess.h routines: 96000005 [#1] PREEMPT SMP
    ...
    <4>[1051408.015991s]Hardware name: kirin710 (DT)
    ...
    <4>[1051408.016021s]PC is at z_erofs_vle_work_add_page+0xa0/0x17c
    <4>[1051408.016021s]LR is at z_erofs_do_read_page+0x12c/0xcf0
    ...
    <4>[1051408.018096s][<ffffff80c6fb0fd4>] z_erofs_vle_work_add_page+0xa0/0x17c
    <4>[1051408.018096s][<ffffff80c6fb3814>] z_erofs_vle_normalaccess_readpages+0x1a0/0x37c
    <4>[1051408.018096s][<ffffff80c6d670b8>] read_pages+0x70/0x190
    <4>[1051408.018127s][<ffffff80c6d6736c>] __do_page_cache_readahead+0x194/0x1a8
    <4>[1051408.018127s][<ffffff80c6d59318>] filemap_fault+0x398/0x684
    <4>[1051408.018127s][<ffffff80c6d8a9e0>] __do_fault+0x8c/0x138
    <4>[1051408.018127s][<ffffff80c6d8f90c>] handle_pte_fault+0x730/0xb7c
    <4>[1051408.018127s][<ffffff80c6d8fe04>] __handle_mm_fault+0xac/0xf4
    <4>[1051408.018157s][<ffffff80c6d8fec8>] handle_mm_fault+0x7c/0x118
    <4>[1051408.018157s][<ffffff80c8c52998>] do_page_fault+0x354/0x474
    <4>[1051408.018157s][<ffffff80c8c52af8>] do_translation_fault+0x40/0x48
    <4>[1051408.018157s][<ffffff80c6c002f4>] do_mem_abort+0x80/0x100
    <4>[1051408.018310s]---[ end trace 9f4009a3283bd78b ]---
    
    Fixes: 3883a79abd02 ("staging: erofs: introduce VLE decompression support")
    Cc: <stable@vger.kernel.org> # 4.19+
    Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fa42199d9dab6c82222d4786ed9674f12909611b
Author: Gao Xiang <gaoxiang25@huawei.com>
Date:   Mon Feb 18 15:19:04 2019 +0800

    staging: erofs: fix race of initializing xattrs of a inode at the same time
    
    commit 62dc45979f3f8cb0ea67302a93bff686f0c46c5a upstream.
    
    In real scenario, there could be several threads accessing xattrs
    of the same xattr-uninitialized inode, and init_inode_xattrs()
    almost at the same time.
    
    That's actually an unexpected behavior, this patch closes the race.
    
    Fixes: b17500a0fdba ("staging: erofs: introduce xattr & acl support")
    Cc: <stable@vger.kernel.org> # 4.19+
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6df0b3ebdade371d94663353654fa6d6f0d1ca1a
Author: Sheng Yong <shengyong1@huawei.com>
Date:   Thu Feb 14 14:46:36 2019 +0800

    staging: erofs: fix memleak of inode's shared xattr array
    
    commit 3b1b5291f79d040d549d7c746669fc30e8045b9b upstream.
    
    If it fails to read a shared xattr page, the inode's shared xattr array
    is not freed. The next time the inode's xattr is accessed, the previously
    allocated array is leaked.
    
    Signed-off-by: Sheng Yong <shengyong1@huawei.com>
    Fixes: b17500a0fdba ("staging: erofs: introduce xattr & acl support")
    Cc: <stable@vger.kernel.org> # 4.19+
    Reviewed-by: Gao Xiang <gaoxiang25@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27f2f4877a004fa0360d63b8c5baa3ec90e6f022
Author: Gao Xiang <gaoxiang25@huawei.com>
Date:   Mon Jan 14 19:40:23 2019 +0800

    staging: erofs: fix fast symlink w/o xattr when fs xattr is on
    
    commit 7077fffcb0b0b65dc75e341306aeef4d0e7f2ec6 upstream.
    
    Currently, this will hit a BUG_ON for these symlinks as follows:
    
    - kernel message
    ------------[ cut here ]------------
    kernel BUG at drivers/staging/erofs/xattr.c:59!
    SMP PTI
    CPU: 1 PID: 1170 Comm: getllxattr Not tainted 4.20.0-rc6+ #92
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-2.fc27 04/01/2014
    RIP: 0010:init_inode_xattrs+0x22b/0x270
    Code: 48 0f 45 ea f0 ff 4d 34 74 0d 41 83 4c 24 e0 01 31 c0 e9 00 fe ff ff 48 89 ef e8 e0 31 9e ff eb e9 89 e8 e9 ef fd ff ff 0f 0$
     <0f> 0b 48 89 ef e8 fb f6 9c ff 48 8b 45 08 a8 01 75 24 f0 ff 4d 34
    RSP: 0018:ffffa03ac026bdf8 EFLAGS: 00010246
    ------------[ cut here ]------------
    ...
    Call Trace:
     erofs_listxattr+0x30/0x2c0
     ? selinux_inode_listxattr+0x5a/0x80
     ? kmem_cache_alloc+0x33/0x170
     ? security_inode_listxattr+0x27/0x40
     listxattr+0xaf/0xc0
     path_listxattr+0x5a/0xa0
     do_syscall_64+0x43/0xf0
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    ...
    ---[ end trace 3c24b49408dc0c72 ]---
    
    Fix it by checking ->xattr_isize in init_inode_xattrs(),
    and it also fixes improper return value -ENOTSUPP
    (it should be -ENODATA if xattr is enabled) for those inodes.
    
    Fixes: b17500a0fdba ("staging: erofs: introduce xattr & acl support")
    Cc: <stable@vger.kernel.org> # 4.19+
    Reported-by: Li Guifu <bluce.liguifu@huawei.com>
    Tested-by: Li Guifu <bluce.liguifu@huawei.com>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 091520a140861d43fc8973a26996202ce3062acd
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Feb 7 20:36:53 2019 +0100

    driver core: Postpone DMA tear-down until after devres release
    
    commit 376991db4b6464e906d699ef07681e2ffa8ab08c upstream.
    
    When unbinding the (IOMMU-enabled) R-Car SATA device on Salvator-XS
    (R-Car H3 ES2.0), in preparation of rebinding against vfio-platform for
    device pass-through for virtualization:
    
        echo ee300000.sata > /sys/bus/platform/drivers/sata_rcar/unbind
    
    the kernel crashes with:
    
        Unable to handle kernel paging request at virtual address ffffffbf029ffffc
        Mem abort info:
          ESR = 0x96000006
          Exception class = DABT (current EL), IL = 32 bits
          SET = 0, FnV = 0
          EA = 0, S1PTW = 0
        Data abort info:
          ISV = 0, ISS = 0x00000006
          CM = 0, WnR = 0
        swapper pgtable: 4k pages, 39-bit VAs, pgdp = 000000007e8c586c
        [ffffffbf029ffffc] pgd=000000073bfc6003, pud=000000073bfc6003, pmd=0000000000000000
        Internal error: Oops: 96000006 [#1] SMP
        Modules linked in:
        CPU: 0 PID: 1098 Comm: bash Not tainted 5.0.0-rc5-salvator-x-00452-g37596f884f4318ef #287
        Hardware name: Renesas Salvator-X 2nd version board based on r8a7795 ES2.0+ (DT)
        pstate: 60400005 (nZCv daif +PAN -UAO)
        pc : __free_pages+0x8/0x58
        lr : __dma_direct_free_pages+0x50/0x5c
        sp : ffffff801268baa0
        x29: ffffff801268baa0 x28: 0000000000000000
        x27: ffffffc6f9c60bf0 x26: ffffffc6f9c60bf0
        x25: ffffffc6f9c60810 x24: 0000000000000000
        x23: 00000000fffff000 x22: ffffff8012145000
        x21: 0000000000000800 x20: ffffffbf029fffc8
        x19: 0000000000000000 x18: ffffffc6f86c42c8
        x17: 0000000000000000 x16: 0000000000000070
        x15: 0000000000000003 x14: 0000000000000000
        x13: ffffff801103d7f8 x12: 0000000000000028
        x11: ffffff8011117604 x10: 0000000000009ad8
        x9 : ffffff80110126d0 x8 : ffffffc6f7563000
        x7 : 6b6b6b6b6b6b6b6b x6 : 0000000000000018
        x5 : ffffff8011cf3cc8 x4 : 0000000000004000
        x3 : 0000000000080000 x2 : 0000000000000001
        x1 : 0000000000000000 x0 : ffffffbf029fffc8
        Process bash (pid: 1098, stack limit = 0x00000000c38e3e32)
        Call trace:
         __free_pages+0x8/0x58
         __dma_direct_free_pages+0x50/0x5c
         arch_dma_free+0x1c/0x98
         dma_direct_free+0x14/0x24
         dma_free_attrs+0x9c/0xdc
         dmam_release+0x18/0x20
         release_nodes+0x25c/0x28c
         devres_release_all+0x48/0x4c
         device_release_driver_internal+0x184/0x1f0
         device_release_driver+0x14/0x1c
         unbind_store+0x70/0xb8
         drv_attr_store+0x24/0x34
         sysfs_kf_write+0x4c/0x64
         kernfs_fop_write+0x154/0x1c4
         __vfs_write+0x34/0x164
         vfs_write+0xb4/0x16c
         ksys_write+0x5c/0xbc
         __arm64_sys_write+0x14/0x1c
         el0_svc_common+0x98/0x114
         el0_svc_handler+0x1c/0x24
         el0_svc+0x8/0xc
        Code: d51b4234 17fffffa a9bf7bfd 910003fd (b9403404)
        ---[ end trace 8c564cdd3a1a840f ]---
    
    While I've bisected this to commit e8e683ae9a736407 ("iommu/of: Fix
    probe-deferral"), and reverting that commit on post-v5.0-rc4 kernels
    does fix the problem, this turned out to be a red herring.
    
    On arm64, arch_teardown_dma_ops() resets dev->dma_ops to NULL.
    Hence if a driver has used a managed DMA allocation API, the allocated
    DMA memory will be freed using the direct DMA ops, while it may have
    been allocated using a custom DMA ops (iommu_dma_ops in this case).
    
    Fix this by reversing the order of the calls to devres_release_all() and
    arch_teardown_dma_ops().
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Acked-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e14eb6e3f423a4b380a631653790a1f41da77ed
Author: Mans Rullgard <mans@mansr.com>
Date:   Thu Feb 14 19:45:33 2019 +0000

    USB: serial: ftdi_sio: add ID for Hjelmslund Electronics USB485
    
    commit 8d7fa3d4ea3f0ca69554215e87411494e6346fdc upstream.
    
    This adds the USB ID of the Hjelmslund Electronics USB485 Iso stick.
    
    Signed-off-by: Mans Rullgard <mans@mansr.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eefd31d3c9af3c494a15d5cb852f6248135c569f
Author: Ivan Mironov <mironov.ivan@gmail.com>
Date:   Wed Feb 6 21:14:13 2019 +0500

    USB: serial: cp210x: add ID for Ingenico 3070
    
    commit dd9d3d86b08d6a106830364879c42c78db85389c upstream.
    
    Here is how this device appears in kernel log:
    
            usb 3-1: new full-speed USB device number 18 using xhci_hcd
            usb 3-1: New USB device found, idVendor=0b00, idProduct=3070
            usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
            usb 3-1: Product: Ingenico 3070
            usb 3-1: Manufacturer: Silicon Labs
            usb 3-1: SerialNumber: 0001
    
    Apparently this is a POS terminal with embedded USB-to-Serial converter.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ivan Mironov <mironov.ivan@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8510d6a23c3d1182c209764f7efebcedd7b8ee53
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Wed Feb 20 11:43:17 2019 +0100

    USB: serial: option: add Telit ME910 ECM composition
    
    commit 6431866b6707d27151be381252d6eef13025cfce upstream.
    
    This patch adds Telit ME910 family ECM composition 0x1102.
    
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed1776bb5d0b38dc134de0487c06f8080cde0b8d
Author: Todd Kjos <tkjos@android.com>
Date:   Mon Jan 14 09:10:21 2019 -0800

    binder: create node flag to request sender's security context
    
    commit ec74136ded792deed80780a2f8baf3521eeb72f9 upstream.
    
    To allow servers to verify client identity, allow a node
    flag to be set that causes the sender's security context
    to be delivered with the transaction. The BR_TRANSACTION
    command is extended in BR_TRANSACTION_SEC_CTX to
    contain a pointer to the security context string.
    
    Signed-off-by: Todd Kjos <tkjos@google.com>
    Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e93cd6500ff940c3f394868e31f4036622936c7a
Author: Gao Xiang <gaoxiang25@huawei.com>
Date:   Wed Feb 27 13:33:32 2019 +0800

    staging: erofs: fix mis-acted TAIL merging behavior
    
    commit a112152f6f3a2a88caa6f414d540bd49e406af60 upstream.
    
    EROFS has an optimized path called TAIL merging, which is designed
    to merge multiple reads and the corresponding decompressions into
    one if these requests read continuous pages almost at the same time.
    
    In general, it behaves as follows:
     ________________________________________________________________
      ... |  TAIL  .  HEAD  |  PAGE  |  PAGE  |  TAIL    . HEAD | ...
     _____|_combined page A_|________|________|_combined page B_|____
            1  ]  ->  [  2                          ]  ->  [ 3
    If the above three reads are requested in the order 1-2-3, it will
    generate a large work chain rather than 3 individual work chains
    to reduce scheduling overhead and boost up sequential read.
    
    However, if Read 2 is processed slightly earlier than Read 1,
    currently it still generates 2 individual work chains (chain 1, 2)
    but it does in-place decompression for combined page A, moreover,
    if chain 2 decompresses ahead of chain 1, it will be a race and
    lead to corrupted decompressed page. This patch fixes it.
    
    Fixes: 3883a79abd02 ("staging: erofs: introduce VLE decompression support")
    Cc: <stable@vger.kernel.org> # 4.19+
    Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e36e066ffa78ded681272ff6b5b253e1a165f44c
Author: Viresh Kumar <viresh.kumar@linaro.org>
Date:   Fri Jan 25 12:53:07 2019 +0530

    cpufreq: Use struct kobj_attribute instead of struct global_attr
    
    commit 625c85a62cb7d3c79f6e16de3cfa972033658250 upstream.
    
    The cpufreq_global_kobject is created using kobject_create_and_add()
    helper, which assigns the kobj_type as dynamic_kobj_ktype and show/store
    routines are set to kobj_attr_show() and kobj_attr_store().
    
    These routines pass struct kobj_attribute as an argument to the
    show/store callbacks. But all the cpufreq files created using the
    cpufreq_global_kobject expect the argument to be of type struct
    attribute. Things work fine currently as no one accesses the "attr"
    argument. We may not see issues even if the argument is used, as struct
    kobj_attribute has struct attribute as its first element and so they
    will both get same address.
    
    But this is logically incorrect and we should rather use struct
    kobj_attribute instead of struct global_attr in the cpufreq core and
    drivers and the show/store callbacks should take struct kobj_attribute
    as argument instead.
    
    This bug is caught using CFI CLANG builds in android kernel which
    catches mismatch in function prototypes for such callbacks.
    
    Reported-by: Donghee Han <dh.han@samsung.com>
    Reported-by: Sangkyu Kim <skwith.kim@samsung.com>
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>