commit c9fda4f22428e09728b611ec9100157199039bfe
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Nov 6 12:43:42 2019 +0100

    Linux 4.14.152

commit 79fd25943d0fcedd032c0a337c8ff3e01eda999d
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Oct 28 09:10:56 2019 +0100

    Revert "ALSA: hda: Flush interrupts on disabling"
    
    [ Upstream commit 1a7f60b9df614bb36d14dc0c0bc898a31b2b506f ]
    
    This reverts commit caa8422d01e983782548648e125fd617cadcec3f.
    
    It turned out that this commit caused a regression at shutdown /
    reboot, as the synchronize_irq() calls seems blocking the whole
    shutdown.  Also another part of the change about shuffling the call
    order looks suspicious; the azx_stop_chip() call disables the CORB /
    RIRB while the others may still need the CORB/RIRB update.
    
    Since the original commit itself was a cargo-fix, let's revert the
    whole patch.
    
    Fixes: caa8422d01e9 ("ALSA: hda: Flush interrupts on disabling")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205333
    BugLinK: https://bugs.freedesktop.org/show_bug.cgi?id=111174
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Link: https://lore.kernel.org/r/20191028081056.22010-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1ff779c530064839511d5b327cd2ade7a17a2651
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 30 22:42:57 2019 +0100

    ALSA: timer: Fix mutex deadlock at releasing card
    
    [ Upstream commit a39331867335d4a94b6165e306265c9e24aca073 ]
    
    When a card is disconnected while in use, the system waits until all
    opened files are closed then releases the card.  This is done via
    put_device() of the card device in each device release code.
    
    The recently reported mutex deadlock bug happens in this code path;
    snd_timer_close() for the timer device deals with the global
    register_mutex and it calls put_device() there.  When this timer
    device is the last one, the card gets freed and it eventually calls
    snd_timer_free(), which has again the protection with the global
    register_mutex -- boom.
    
    Basically put_device() call itself is race-free, so a relative simple
    workaround is to move this put_device() call out of the mutex.  For
    achieving that, in this patch, snd_timer_close_locked() got a new
    argument to store the card device pointer in return, and each caller
    invokes put_device() with the returned object after the mutex unlock.
    
    Reported-and-tested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b617db2ebf29bc60768df01a831d79582630ee8a
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Mar 28 17:11:10 2019 +0100

    ALSA: timer: Simplify error path in snd_timer_open()
    
    [ Upstream commit 41672c0c24a62699d20aab53b98d843b16483053 ]
    
    Just a minor refactoring to use the standard goto for error paths in
    snd_timer_open() instead of open code.  The first mutex_lock() is
    moved to the beginning of the function to make the code clearer.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b195f26ab82529e8e8ea4525ce6aef5e694c3393
Author: Vratislav Bendel <vbendel@redhat.com>
Date:   Tue Mar 6 17:07:44 2018 -0800

    xfs: Correctly invert xfs_buftarg LRU isolation logic
    
    commit 19957a181608d25c8f4136652d0ea00b3738972d upstream.
    
    Due to an inverted logic mistake in xfs_buftarg_isolate()
    the xfs_buffers with zero b_lru_ref will take another trip
    around LRU, while isolating buffers with non-zero b_lru_ref.
    
    Additionally those isolated buffers end up right back on the LRU
    once they are released, because b_lru_ref remains elevated.
    
    Fix that circuitous route by leaving them on the LRU
    as originally intended.
    
    Signed-off-by: Vratislav Bendel <vbendel@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Alex Lyakas <alex@zadara.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c3c0d51129a1914e36f1942b1c226e894859f08
Author: Xin Long <lucien.xin@gmail.com>
Date:   Wed Jun 26 16:31:39 2019 +0800

    sctp: not bind the socket in sctp_connect
    
    commit 9b6c08878e23adb7cc84bdca94d8a944b03f099e upstream.
    
    Now when sctp_connect() is called with a wrong sa_family, it binds
    to a port but doesn't set bp->port, then sctp_get_af_specific will
    return NULL and sctp_connect() returns -EINVAL.
    
    Then if sctp_bind() is called to bind to another port, the last
    port it has bound will leak due to bp->port is NULL by then.
    
    sctp_connect() doesn't need to bind ports, as later __sctp_connect
    will do it if bp->port is NULL. So remove it from sctp_connect().
    While at it, remove the unnecessary sockaddr.sa_family len check
    as it's already done in sctp_inet_connect.
    
    Fixes: 644fbdeacf1d ("sctp: fix the issue that flags are ignored when using kernel_connect")
    Reported-by: syzbot+079bf326b38072f849d9@syzkaller.appspotmail.com
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8afb9f5344c42d648e565df3239f8746a7a7ed8f
Author: Xin Long <lucien.xin@gmail.com>
Date:   Sun May 20 16:39:10 2018 +0800

    sctp: fix the issue that flags are ignored when using kernel_connect
    
    commit 644fbdeacf1d3edd366e44b8ba214de9d1dd66a9 upstream.
    
    Now sctp uses inet_dgram_connect as its proto_ops .connect, and the flags
    param can't be passed into its proto .connect where this flags is really
    needed.
    
    sctp works around it by getting flags from socket file in __sctp_connect.
    It works for connecting from userspace, as inherently the user sock has
    socket file and it passes f_flags as the flags param into the proto_ops
    .connect.
    
    However, the sock created by sock_create_kern doesn't have a socket file,
    and it passes the flags (like O_NONBLOCK) by using the flags param in
    kernel_connect, which calls proto_ops .connect later.
    
    So to fix it, this patch defines a new proto_ops .connect for sctp,
    sctp_inet_connect, which calls __sctp_connect() directly with this
    flags param. After this, the sctp's proto .connect can be removed.
    
    Note that sctp_inet_connect doesn't need to do some checks that are not
    needed for sctp, which makes thing better than with inet_dgram_connect.
    
    Suggested-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Reviewed-by: Michal Kubecek <mkubecek@suse.cz>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd7d823f30fa290c9a28274ed16a42c7721049f8
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Sep 24 13:11:26 2019 -0700

    sch_netem: fix rcu splat in netem_enqueue()
    
    commit 159d2c7d8106177bd9a986fd005a311fe0d11285 upstream.
    
    qdisc_root() use from netem_enqueue() triggers a lockdep warning.
    
    __dev_queue_xmit() uses rcu_read_lock_bh() which is
    not equivalent to rcu_read_lock() + local_bh_disable_bh as far
    as lockdep is concerned.
    
    WARNING: suspicious RCU usage
    5.3.0-rc7+ #0 Not tainted
    -----------------------------
    include/net/sch_generic.h:492 suspicious rcu_dereference_check() usage!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    3 locks held by syz-executor427/8855:
     #0: 00000000b5525c01 (rcu_read_lock_bh){....}, at: lwtunnel_xmit_redirect include/net/lwtunnel.h:92 [inline]
     #0: 00000000b5525c01 (rcu_read_lock_bh){....}, at: ip_finish_output2+0x2dc/0x2570 net/ipv4/ip_output.c:214
     #1: 00000000b5525c01 (rcu_read_lock_bh){....}, at: __dev_queue_xmit+0x20a/0x3650 net/core/dev.c:3804
     #2: 00000000364bae92 (&(&sch->q.lock)->rlock){+.-.}, at: spin_lock include/linux/spinlock.h:338 [inline]
     #2: 00000000364bae92 (&(&sch->q.lock)->rlock){+.-.}, at: __dev_xmit_skb net/core/dev.c:3502 [inline]
     #2: 00000000364bae92 (&(&sch->q.lock)->rlock){+.-.}, at: __dev_queue_xmit+0x14b8/0x3650 net/core/dev.c:3838
    
    stack backtrace:
    CPU: 0 PID: 8855 Comm: syz-executor427 Not tainted 5.3.0-rc7+ #0
    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
     lockdep_rcu_suspicious+0x153/0x15d kernel/locking/lockdep.c:5357
     qdisc_root include/net/sch_generic.h:492 [inline]
     netem_enqueue+0x1cfb/0x2d80 net/sched/sch_netem.c:479
     __dev_xmit_skb net/core/dev.c:3527 [inline]
     __dev_queue_xmit+0x15d2/0x3650 net/core/dev.c:3838
     dev_queue_xmit+0x18/0x20 net/core/dev.c:3902
     neigh_hh_output include/net/neighbour.h:500 [inline]
     neigh_output include/net/neighbour.h:509 [inline]
     ip_finish_output2+0x1726/0x2570 net/ipv4/ip_output.c:228
     __ip_finish_output net/ipv4/ip_output.c:308 [inline]
     __ip_finish_output+0x5fc/0xb90 net/ipv4/ip_output.c:290
     ip_finish_output+0x38/0x1f0 net/ipv4/ip_output.c:318
     NF_HOOK_COND include/linux/netfilter.h:294 [inline]
     ip_mc_output+0x292/0xf40 net/ipv4/ip_output.c:417
     dst_output include/net/dst.h:436 [inline]
     ip_local_out+0xbb/0x190 net/ipv4/ip_output.c:125
     ip_send_skb+0x42/0xf0 net/ipv4/ip_output.c:1555
     udp_send_skb.isra.0+0x6b2/0x1160 net/ipv4/udp.c:887
     udp_sendmsg+0x1e96/0x2820 net/ipv4/udp.c:1174
     inet_sendmsg+0x9e/0xe0 net/ipv4/af_inet.c:807
     sock_sendmsg_nosec net/socket.c:637 [inline]
     sock_sendmsg+0xd7/0x130 net/socket.c:657
     ___sys_sendmsg+0x3e2/0x920 net/socket.c:2311
     __sys_sendmmsg+0x1bf/0x4d0 net/socket.c:2413
     __do_sys_sendmmsg net/socket.c:2442 [inline]
     __se_sys_sendmmsg net/socket.c:2439 [inline]
     __x64_sys_sendmmsg+0x9d/0x100 net/socket.c:2439
     do_syscall_64+0xfd/0x6a0 arch/x86/entry/common.c:296
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18efc2e3889e4d4a0e4901d342fc7206a30c0b9e
Author: Valentin Vidic <vvidic@valentin-vidic.from.hr>
Date:   Tue Oct 15 22:20:20 2019 +0200

    net: usb: sr9800: fix uninitialized local variable
    
    commit 77b6d09f4ae66d42cd63b121af67780ae3d1a5e9 upstream.
    
    Make sure res does not contain random value if the call to
    sr_read_cmd fails for some reason.
    
    Reported-by: syzbot+f1842130bbcfb335bac1@syzkaller.appspotmail.com
    Signed-off-by: Valentin Vidic <vvidic@valentin-vidic.from.hr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f1b77f0137b62e781a0d7a7cf7bb94157da9d9c
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Oct 7 15:43:01 2019 -0700

    bonding: fix potential NULL deref in bond_update_slave_arr
    
    commit a7137534b597b7c303203e6bc3ed87e87a273bb8 upstream.
    
    syzbot got a NULL dereference in bond_update_slave_arr() [1],
    happening after a failure to allocate bond->slave_arr
    
    A workqueue (bond_slave_arr_handler) is supposed to retry
    the allocation later, but if the slave is removed before
    the workqueue had a chance to complete, bond->slave_arr
    can still be NULL.
    
    [1]
    
    Failed to build slave-array.
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] SMP KASAN PTI
    Modules linked in:
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:bond_update_slave_arr.cold+0xc6/0x198 drivers/net/bonding/bond_main.c:4039
    RSP: 0018:ffff88018fe33678 EFLAGS: 00010246
    RAX: dffffc0000000000 RBX: 0000000000000000 RCX: ffffc9000290b000
    RDX: 0000000000000000 RSI: ffffffff82b63037 RDI: ffff88019745ea20
    RBP: ffff88018fe33760 R08: ffff880170754280 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
    R13: ffff88019745ea00 R14: 0000000000000000 R15: ffff88018fe338b0
    FS:  00007febd837d700(0000) GS:ffff8801dad00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000004540a0 CR3: 00000001c242e005 CR4: 00000000001626f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     [<ffffffff82b5b45e>] __bond_release_one+0x43e/0x500 drivers/net/bonding/bond_main.c:1923
     [<ffffffff82b5b966>] bond_release drivers/net/bonding/bond_main.c:2039 [inline]
     [<ffffffff82b5b966>] bond_do_ioctl+0x416/0x870 drivers/net/bonding/bond_main.c:3562
     [<ffffffff83ae25f4>] dev_ifsioc+0x6f4/0x940 net/core/dev_ioctl.c:328
     [<ffffffff83ae2e58>] dev_ioctl+0x1b8/0xc70 net/core/dev_ioctl.c:495
     [<ffffffff83995ffd>] sock_do_ioctl+0x1bd/0x300 net/socket.c:1088
     [<ffffffff83996a80>] sock_ioctl+0x300/0x5d0 net/socket.c:1196
     [<ffffffff81b124db>] vfs_ioctl fs/ioctl.c:47 [inline]
     [<ffffffff81b124db>] file_ioctl fs/ioctl.c:501 [inline]
     [<ffffffff81b124db>] do_vfs_ioctl+0xacb/0x1300 fs/ioctl.c:688
     [<ffffffff81b12dc6>] SYSC_ioctl fs/ioctl.c:705 [inline]
     [<ffffffff81b12dc6>] SyS_ioctl+0xb6/0xe0 fs/ioctl.c:696
     [<ffffffff8101ccc8>] do_syscall_64+0x528/0x770 arch/x86/entry/common.c:305
     [<ffffffff84400091>] entry_SYSCALL_64_after_hwframe+0x42/0xb7
    
    Fixes: ee6377147409 ("bonding: Simplify the xmit function for modes that use xmit_hash")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Mahesh Bandewar <maheshb@google.com>
    Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a571bd399084762a67519f35ef586407fbd3cb2
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Oct 7 18:40:59 2019 +0200

    NFC: pn533: fix use-after-free and memleaks
    
    commit 6af3aa57a0984e061f61308fe181a9a12359fecc upstream.
    
    The driver would fail to deregister and its class device and free
    related resources on late probe errors.
    
    Reported-by: syzbot+cb035c75c03dbe34b796@syzkaller.appspotmail.com
    Fixes: 32ecc75ded72 ("NFC: pn533: change order operations in dev registation")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43159c9ec156e7363ba24528fced7a9d7b2f3134
Author: David Howells <dhowells@redhat.com>
Date:   Mon Oct 7 10:58:28 2019 +0100

    rxrpc: Fix call ref leak
    
    commit c48fc11b69e95007109206311b0187a3090591f3 upstream.
    
    When sendmsg() finds a call to continue on with, if the call is in an
    inappropriate state, it doesn't release the ref it just got on that call
    before returning an error.
    
    This causes the following symptom to show up with kasan:
    
            BUG: KASAN: use-after-free in rxrpc_send_keepalive+0x8a2/0x940
            net/rxrpc/output.c:635
            Read of size 8 at addr ffff888064219698 by task kworker/0:3/11077
    
    where line 635 is:
    
            whdr.epoch      = htonl(peer->local->rxnet->epoch);
    
    The local endpoint (which cannot be pinned by the call) has been released,
    but not the peer (which is pinned by the call).
    
    Fix this by releasing the call in the error path.
    
    Fixes: 37411cad633f ("rxrpc: Fix potential NULL-pointer exception")
    Reported-by: syzbot+d850c266e3df14da1d31@syzkaller.appspotmail.com
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c87091ed19935f90b6cfefd8e984c41b47caed65
Author: Eric Biggers <ebiggers@google.com>
Date:   Sun Oct 6 14:24:25 2019 -0700

    llc: fix sk_buff leak in llc_conn_service()
    
    commit b74555de21acd791f12c4a1aeaf653dd7ac21133 upstream.
    
    syzbot reported:
    
        BUG: memory leak
        unreferenced object 0xffff88811eb3de00 (size 224):
           comm "syz-executor559", pid 7315, jiffies 4294943019 (age 10.300s)
           hex dump (first 32 bytes):
             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
             00 a0 38 24 81 88 ff ff 00 c0 f2 15 81 88 ff ff  ..8$............
           backtrace:
             [<000000008d1c66a1>] kmemleak_alloc_recursive  include/linux/kmemleak.h:55 [inline]
             [<000000008d1c66a1>] slab_post_alloc_hook mm/slab.h:439 [inline]
             [<000000008d1c66a1>] slab_alloc_node mm/slab.c:3269 [inline]
             [<000000008d1c66a1>] kmem_cache_alloc_node+0x153/0x2a0 mm/slab.c:3579
             [<00000000447d9496>] __alloc_skb+0x6e/0x210 net/core/skbuff.c:198
             [<000000000cdbf82f>] alloc_skb include/linux/skbuff.h:1058 [inline]
             [<000000000cdbf82f>] llc_alloc_frame+0x66/0x110 net/llc/llc_sap.c:54
             [<000000002418b52e>] llc_conn_ac_send_sabme_cmd_p_set_x+0x2f/0x140  net/llc/llc_c_ac.c:777
             [<000000001372ae17>] llc_exec_conn_trans_actions net/llc/llc_conn.c:475  [inline]
             [<000000001372ae17>] llc_conn_service net/llc/llc_conn.c:400 [inline]
             [<000000001372ae17>] llc_conn_state_process+0x1ac/0x640  net/llc/llc_conn.c:75
             [<00000000f27e53c1>] llc_establish_connection+0x110/0x170  net/llc/llc_if.c:109
             [<00000000291b2ca0>] llc_ui_connect+0x10e/0x370 net/llc/af_llc.c:477
             [<000000000f9c740b>] __sys_connect+0x11d/0x170 net/socket.c:1840
             [...]
    
    The bug is that most callers of llc_conn_send_pdu() assume it consumes a
    reference to the skb, when actually due to commit b85ab56c3f81 ("llc:
    properly handle dev_queue_xmit() return value") it doesn't.
    
    Revert most of that commit, and instead make the few places that need
    llc_conn_send_pdu() to *not* consume a reference call skb_get() before.
    
    Fixes: b85ab56c3f81 ("llc: properly handle dev_queue_xmit() return value")
    Reported-by: syzbot+6b825a6494a04cc0e3f7@syzkaller.appspotmail.com
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9139c010ab57713eca549542a6765e9ec3eb7e1
Author: Eric Biggers <ebiggers@google.com>
Date:   Sun Oct 6 14:24:24 2019 -0700

    llc: fix sk_buff leak in llc_sap_state_process()
    
    commit c6ee11c39fcc1fb55130748990a8f199e76263b4 upstream.
    
    syzbot reported:
    
        BUG: memory leak
        unreferenced object 0xffff888116270800 (size 224):
           comm "syz-executor641", pid 7047, jiffies 4294947360 (age 13.860s)
           hex dump (first 32 bytes):
             00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
             00 20 e1 2a 81 88 ff ff 00 40 3d 2a 81 88 ff ff  . .*.....@=*....
           backtrace:
             [<000000004d41b4cc>] kmemleak_alloc_recursive  include/linux/kmemleak.h:55 [inline]
             [<000000004d41b4cc>] slab_post_alloc_hook mm/slab.h:439 [inline]
             [<000000004d41b4cc>] slab_alloc_node mm/slab.c:3269 [inline]
             [<000000004d41b4cc>] kmem_cache_alloc_node+0x153/0x2a0 mm/slab.c:3579
             [<00000000506a5965>] __alloc_skb+0x6e/0x210 net/core/skbuff.c:198
             [<000000001ba5a161>] alloc_skb include/linux/skbuff.h:1058 [inline]
             [<000000001ba5a161>] alloc_skb_with_frags+0x5f/0x250  net/core/skbuff.c:5327
             [<0000000047d9c78b>] sock_alloc_send_pskb+0x269/0x2a0  net/core/sock.c:2225
             [<000000003828fe54>] sock_alloc_send_skb+0x32/0x40 net/core/sock.c:2242
             [<00000000e34d94f9>] llc_ui_sendmsg+0x10a/0x540 net/llc/af_llc.c:933
             [<00000000de2de3fb>] sock_sendmsg_nosec net/socket.c:652 [inline]
             [<00000000de2de3fb>] sock_sendmsg+0x54/0x70 net/socket.c:671
             [<000000008fe16e7a>] __sys_sendto+0x148/0x1f0 net/socket.c:1964
             [...]
    
    The bug is that llc_sap_state_process() always takes an extra reference
    to the skb, but sometimes neither llc_sap_next_state() nor
    llc_sap_state_process() itself drops this reference.
    
    Fix it by changing llc_sap_next_state() to never consume a reference to
    the skb, rather than sometimes do so and sometimes not.  Then remove the
    extra skb_get() and kfree_skb() from llc_sap_state_process().
    
    Reported-by: syzbot+6bf095f9becf5efef645@syzkaller.appspotmail.com
    Reported-by: syzbot+31c16aa4202dace3812e@syzkaller.appspotmail.com
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a7313ae7163cb2c206abf071a4e098a3ba7f140
Author: Tony Lindgren <tony@atomide.com>
Date:   Wed Oct 23 08:31:38 2019 -0700

    dmaengine: cppi41: Fix cppi41_dma_prep_slave_sg() when idle
    
    commit bacdcb6675e170bb2e8d3824da220e10274f42a7 upstream.
    
    Yegor Yefremov <yegorslists@googlemail.com> reported that musb and ftdi
    uart can fail for the first open of the uart unless connected using
    a hub.
    
    This is because the first dma call done by musb_ep_program() must wait
    if cppi41 is PM runtime suspended. Otherwise musb_ep_program() continues
    with other non-dma packets before the DMA transfer is started causing at
    least ftdi uarts to fail to receive data.
    
    Let's fix the issue by waking up cppi41 with PM runtime calls added to
    cppi41_dma_prep_slave_sg() and return NULL if still idled. This way we
    have musb_ep_program() continue with PIO until cppi41 is awake.
    
    Fixes: fdea2d09b997 ("dmaengine: cppi41: Add basic PM runtime support")
    Reported-by: Yegor Yefremov <yegorslists@googlemail.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Cc: stable@vger.kernel.org # v4.9+
    Link: https://lore.kernel.org/r/20191023153138.23442-1-tony@atomide.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b940dd55d42133791d7ba4841adfcf436fab98e
Author: Laura Abbott <labbott@redhat.com>
Date:   Fri Oct 18 07:43:21 2019 -0400

    rtlwifi: Fix potential overflow on P2P code
    
    commit 8c55dedb795be8ec0cf488f98c03a1c2176f7fb1 upstream.
    
    Nicolas Waisman noticed that even though noa_len is checked for
    a compatible length it's still possible to overrun the buffers
    of p2pinfo since there's no check on the upper bound of noa_num.
    Bound noa_num against P2P_MAX_NOA_NUM.
    
    Reported-by: Nicolas Waisman <nico@semmle.com>
    Signed-off-by: Laura Abbott <labbott@redhat.com>
    Acked-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 343e5699b74e8b9806b8627d59aa00243f5c96c8
Author: Catalin Marinas <catalin.marinas@arm.com>
Date:   Tue Oct 29 15:30:51 2019 +0000

    arm64: Ensure VM_WRITE|VM_SHARED ptes are clean by default
    
    commit aa57157be69fb599bd4c38a4b75c5aad74a60ec0 upstream.
    
    Shared and writable mappings (__S.1.) should be clean (!dirty) initially
    and made dirty on a subsequent write either through the hardware DBM
    (dirty bit management) mechanism or through a write page fault. A clean
    pte for the arm64 kernel is one that has PTE_RDONLY set and PTE_DIRTY
    clear.
    
    The PAGE_SHARED{,_EXEC} attributes have PTE_WRITE set (PTE_DBM) and
    PTE_DIRTY clear. Prior to commit 73e86cb03cf2 ("arm64: Move PTE_RDONLY
    bit handling out of set_pte_at()"), it was the responsibility of
    set_pte_at() to set the PTE_RDONLY bit and mark the pte clean if the
    software PTE_DIRTY bit was not set. However, the above commit removed
    the pte_sw_dirty() check and the subsequent setting of PTE_RDONLY in
    set_pte_at() while leaving the PAGE_SHARED{,_EXEC} definitions
    unchanged. The result is that shared+writable mappings are now dirty by
    default
    
    Fix the above by explicitly setting PTE_RDONLY in PAGE_SHARED{,_EXEC}.
    In addition, remove the superfluous PTE_DIRTY bit from the kernel PROT_*
    attributes.
    
    Fixes: 73e86cb03cf2 ("arm64: Move PTE_RDONLY bit handling out of set_pte_at()")
    Cc: <stable@vger.kernel.org> # 4.14.x-
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c12fc95b876904ef2e8037554eb395609974bbea
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Mon Oct 28 11:03:27 2019 +0100

    s390/idle: fix cpu idle time calculation
    
    commit 3d7efa4edd07be5c5c3ffa95ba63e97e070e1f3f upstream.
    
    The idle time reported in /proc/stat sometimes incorrectly contains
    huge values on s390. This is caused by a bug in arch_cpu_idle_time().
    
    The kernel tries to figure out when a different cpu entered idle by
    accessing its per-cpu data structure. There is an ordering problem: if
    the remote cpu has an idle_enter value which is not zero, and an
    idle_exit value which is zero, it is assumed it is idle since
    "now". The "now" timestamp however is taken before the idle_enter
    value is read.
    
    Which in turn means that "now" can be smaller than idle_enter of the
    remote cpu. Unconditionally subtracting idle_enter from "now" can thus
    lead to a negative value (aka large unsigned value).
    
    Fix this by moving the get_tod_clock() invocation out of the
    loop. While at it also make the code a bit more readable.
    
    A similar bug also exists for show_idle_time(). Fix this is as well.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 119e9aef452a6b6976d20dac8f35aa2dc3e01348
Author: Yihui ZENG <yzeng56@asu.edu>
Date:   Fri Oct 25 12:31:48 2019 +0300

    s390/cmm: fix information leak in cmm_timeout_handler()
    
    commit b8e51a6a9db94bc1fb18ae831b3dab106b5a4b5f upstream.
    
    The problem is that we were putting the NUL terminator too far:
    
            buf[sizeof(buf) - 1] = '\0';
    
    If the user input isn't NUL terminated and they haven't initialized the
    whole buffer then it leads to an info leak.  The NUL terminator should
    be:
    
            buf[len - 1] = '\0';
    
    Signed-off-by: Yihui Zeng <yzeng56@asu.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    [heiko.carstens@de.ibm.com: keep semantics of how *lenp and *ppos are handled]
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b56c89ae8345cc328e4f8d5c1949acc5e51ea74
Author: Markus Theil <markus.theil@tu-ilmenau.de>
Date:   Tue Oct 29 10:30:03 2019 +0100

    nl80211: fix validation of mesh path nexthop
    
    commit 1fab1b89e2e8f01204a9c05a39fd0b6411a48593 upstream.
    
    Mesh path nexthop should be a ethernet address, but current validation
    checks against 4 byte integers.
    
    Cc: stable@vger.kernel.org
    Fixes: 2ec600d672e74 ("nl80211/cfg80211: support for mesh, sta dumping")
    Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
    Link: https://lore.kernel.org/r/20191029093003.10355-1-markus.theil@tu-ilmenau.de
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb045a172952adde158e85b0e8d8028e516545d4
Author: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date:   Fri Aug 23 21:15:27 2019 +0200

    HID: fix error message in hid_open_report()
    
    commit b3a81c777dcb093020680490ab970d85e2f6f04f upstream.
    
    On HID report descriptor parsing error the code displays bogus
    pointer instead of error offset (subtracts start=NULL from end).
    Make the message more useful by displaying correct error offset
    and include total buffer size for reference.
    
    This was carried over from ancient times - "Fixed" commit just
    promoted the message from DEBUG to ERROR.
    
    Cc: stable@vger.kernel.org
    Fixes: 8c3d52fc393b ("HID: make parser more verbose about parsing errors by default")
    Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e13a3d84494ca7b560551a9927231e7ecf27d96a
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Thu Oct 3 14:53:59 2019 -0400

    HID: Fix assumption that devices have inputs
    
    commit d9d4b1e46d9543a82c23f6df03f4ad697dab361b upstream.
    
    The syzbot fuzzer found a slab-out-of-bounds write bug in the hid-gaff
    driver.  The problem is caused by the driver's assumption that the
    device must have an input report.  While this will be true for all
    normal HID input devices, a suitably malicious device can violate the
    assumption.
    
    The same assumption is present in over a dozen other HID drivers.
    This patch fixes them by checking that the list of hid_inputs for the
    hid_device is nonempty before allowing it to be used.
    
    Reported-and-tested-by: syzbot+403741a091bf41d4ae79@syzkaller.appspotmail.com
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    CC: <stable@vger.kernel.org>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8390ff01a88d2f0dab63e8c50ba7e666f52a38ab
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Mon Oct 7 20:56:26 2019 +0200

    HID: i2c-hid: add Trekstor Primebook C11B to descriptor override
    
    commit 09f3dbe474735df13dd8a66d3d1231048d9b373f upstream.
    
    The Primebook C11B uses the SIPODEV SP1064 touchpad. There are 2 versions
    of this 2-in-1 and the touchpad in the older version does not supply
    descriptors, so it has to be added to the override list.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 661c68cf1787d5754c3cb43a6c5934ca568e604b
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Oct 23 13:21:50 2019 -0700

    scsi: target: cxgbit: Fix cxgbit_fw4_ack()
    
    commit fc5b220b2dcf8b512d9bd46fd17f82257e49bf89 upstream.
    
    Use the pointer 'p' after having tested that pointer instead of before.
    
    Fixes: 5cadafb236df ("target/cxgbit: Fix endianness annotations")
    Cc: Varun Prakash <varun@chelsio.com>
    Cc: Nicholas Bellinger <nab@linux-iscsi.org>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191023202150.22173-1-bvanassche@acm.org
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 294da39e05db61cbad1f3367de15176215fdf422
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Oct 29 11:23:54 2019 +0100

    USB: serial: whiteheat: fix line-speed endianness
    
    commit 84968291d7924261c6a0624b9a72f952398e258b upstream.
    
    Add missing endianness conversion when setting the line speed so that
    this driver might work also on big-endian machines.
    
    Also use an unsigned format specifier in the corresponding debug
    message.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191029102354.2733-3-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 906f9f252be650eee94f2f1f7d9ac1efdb136044
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Oct 29 11:23:53 2019 +0100

    USB: serial: whiteheat: fix potential slab corruption
    
    commit 1251dab9e0a2c4d0d2d48370ba5baa095a5e8774 upstream.
    
    Fix a user-controlled slab buffer overflow due to a missing sanity check
    on the bulk-out transfer buffer used for control requests.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20191029102354.2733-2-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0675c81abe0424be839cbc64a4dd233de8297170
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Oct 22 17:31:27 2019 +0200

    USB: ldusb: fix control-message timeout
    
    commit 52403cfbc635d28195167618690595013776ebde upstream.
    
    USB control-message timeouts are specified in milliseconds, not jiffies.
    Waiting 83 minutes for a transfer to complete is a bit excessive.
    
    Fixes: 2824bd250f0b ("[PATCH] USB: add ldusb driver")
    Cc: stable <stable@vger.kernel.org>     # 2.6.13
    Reported-by: syzbot+a4fbb3bb76cda0ea4e58@syzkaller.appspotmail.com
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20191022153127.22295-1-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 739ad3b6e596cd87e212df5998e3ea86baf0e496
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Oct 22 16:32:02 2019 +0200

    USB: ldusb: fix ring-buffer locking
    
    commit d98ee2a19c3334e9343df3ce254b496f1fc428eb upstream.
    
    The custom ring-buffer implementation was merged without any locking or
    explicit memory barriers, but a spinlock was later added by commit
    9d33efd9a791 ("USB: ldusb bugfix").
    
    The lock did not cover the update of the tail index once the entry had
    been processed, something which could lead to memory corruption on
    weakly ordered architectures or due to compiler optimisations.
    
    Specifically, a completion handler running on another CPU might observe
    the incremented tail index and update the entry before ld_usb_read() is
    done with it.
    
    Fixes: 2824bd250f0b ("[PATCH] USB: add ldusb driver")
    Fixes: 9d33efd9a791 ("USB: ldusb bugfix")
    Cc: stable <stable@vger.kernel.org>     # 2.6.13
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20191022143203.5260-2-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98ada19cc6512627e771dffa99363ad2e25bf6b2
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Oct 21 11:48:06 2019 -0400

    usb-storage: Revert commit 747668dbc061 ("usb-storage: Set virt_boundary_mask to avoid SG overflows")
    
    commit 9a976949613132977098fc49510b46fa8678d864 upstream.
    
    Commit 747668dbc061 ("usb-storage: Set virt_boundary_mask to avoid SG
    overflows") attempted to solve a problem involving scatter-gather I/O
    and USB/IP by setting the virt_boundary_mask for mass-storage devices.
    
    However, it now turns out that this interacts badly with commit
    09324d32d2a0 ("block: force an unlimited segment size on queues with a
    virt boundary"), which was added later.  A typical error message is:
    
            ehci-pci 0000:00:13.2: swiotlb buffer is full (sz: 327680 bytes),
            total 32768 (slots), used 97 (slots)
    
    There is no longer any reason to keep the virt_boundary_mask setting
    for usb-storage.  It was needed in the first place only for handling
    devices with a block size smaller than the maxpacket size and where
    the host controller was not capable of fully general scatter-gather
    operation (that is, able to merge two SG segments into a single USB
    packet).  But:
    
            High-speed or slower connections never use a bulk maxpacket
            value larger than 512;
    
            The SCSI layer does not handle block devices with a block size
            smaller than 512 bytes;
    
            All the host controllers capable of SuperSpeed operation can
            handle fully general SG;
    
            Since commit ea44d190764b ("usbip: Implement SG support to
            vhci-hcd and stub driver") was merged, the USB/IP driver can
            also handle SG.
    
    Therefore all supported device/controller combinations should be okay
    with no need for any special virt_boundary_mask.  So in order to fix
    the swiotlb problem, this patch reverts commit 747668dbc061.
    
    Reported-and-tested-by: Piergiorgio Sartor <piergiorgio.sartor@nexgo.de>
    Link: https://marc.info/?l=linux-usb&m=157134199501202&w=2
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    CC: Seth Bollinger <Seth.Bollinger@digi.com>
    CC: <stable@vger.kernel.org>
    Fixes: 747668dbc061 ("usb-storage: Set virt_boundary_mask to avoid SG overflows")
    Acked-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/Pine.LNX.4.44L0.1910211145520.1673-100000@iolanthe.rowland.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94f5de2eefae22c449e367c2dacafe869af73e3f
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Oct 28 10:54:26 2019 -0400

    USB: gadget: Reject endpoints with 0 maxpacket value
    
    commit 54f83b8c8ea9b22082a496deadf90447a326954e upstream.
    
    Endpoints with a maxpacket length of 0 are probably useless.  They
    can't transfer any data, and it's not at all unlikely that a UDC will
    crash or hang when trying to handle a non-zero-length usb_request for
    such an endpoint.  Indeed, dummy-hcd gets a divide error when trying
    to calculate the remainder of a transfer length by the maxpacket
    value, as discovered by the syzbot fuzzer.
    
    Currently the gadget core does not check for endpoints having a
    maxpacket value of 0.  This patch adds a check to usb_ep_enable(),
    preventing such endpoints from being used.
    
    As far as I know, none of the gadget drivers in the kernel tries to
    create an endpoint with maxpacket = 0, but until now there has been
    nothing to prevent userspace programs under gadgetfs or configfs from
    doing it.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-and-tested-by: syzbot+8ab8bf161038a8768553@syzkaller.appspotmail.com
    CC: <stable@vger.kernel.org>
    Acked-by: Felipe Balbi <balbi@kernel.org>
    Link: https://lore.kernel.org/r/Pine.LNX.4.44L0.1910281052370.1485-100000@iolanthe.rowland.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b5a7e7d8d85160d874ce382ba690a41a158ecc7
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Oct 23 11:34:33 2019 -0400

    UAS: Revert commit 3ae62a42090f ("UAS: fix alignment of scatter/gather segments")
    
    commit 1186f86a71130a7635a20843e355bb880c7349b2 upstream.
    
    Commit 3ae62a42090f ("UAS: fix alignment of scatter/gather segments"),
    copying a similar commit for usb-storage, attempted to solve a problem
    involving scatter-gather I/O and USB/IP by setting the
    virt_boundary_mask for mass-storage devices.
    
    However, it now turns out that the analogous change in usb-storage
    interacted badly with commit 09324d32d2a0 ("block: force an unlimited
    segment size on queues with a virt boundary"), which was added later.
    A typical error message is:
    
            ehci-pci 0000:00:13.2: swiotlb buffer is full (sz: 327680 bytes),
            total 32768 (slots), used 97 (slots)
    
    There is no longer any reason to keep the virt_boundary_mask setting
    in the uas driver.  It was needed in the first place only for
    handling devices with a block size smaller than the maxpacket size and
    where the host controller was not capable of fully general
    scatter-gather operation (that is, able to merge two SG segments into
    a single USB packet).  But:
    
            High-speed or slower connections never use a bulk maxpacket
            value larger than 512;
    
            The SCSI layer does not handle block devices with a block size
            smaller than 512 bytes;
    
            All the host controllers capable of SuperSpeed operation can
            handle fully general SG;
    
            Since commit ea44d190764b ("usbip: Implement SG support to
            vhci-hcd and stub driver") was merged, the USB/IP driver can
            also handle SG.
    
    Therefore all supported device/controller combinations should be okay
    with no need for any special virt_boundary_mask.  So in order to head
    off potential problems similar to those affecting usb-storage, this
    patch reverts commit 3ae62a42090f.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    CC: Oliver Neukum <oneukum@suse.com>
    CC: <stable@vger.kernel.org>
    Acked-by: Christoph Hellwig <hch@lst.de>
    Fixes: 3ae62a42090f ("UAS: fix alignment of scatter/gather segments")
    Link: https://lore.kernel.org/r/Pine.LNX.4.44L0.1910231132470.1878-100000@iolanthe.rowland.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d7336ac28f7a169f327fe6a30debbc01682b366
Author: Kailang Yang <kailang@realtek.com>
Date:   Thu Oct 24 15:13:32 2019 +0800

    ALSA: hda/realtek - Add support for ALC623
    
    commit f0778871a13889b86a65d4ad34bef8340af9d082 upstream.
    
    Support new codec ALC623.
    
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/ed97b6a8bd9445ecb48bc763d9aaba7a@realtek.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 224db95138624aea6070df2446fd199233f42755
Author: Aaron Ma <aaron.ma@canonical.com>
Date:   Thu Oct 24 19:44:39 2019 +0800

    ALSA: hda/realtek - Fix 2 front mics of codec 0x623
    
    commit 8a6c55d0f883e9a7e7c91841434f3b6bbf932bb2 upstream.
    
    These 2 ThinkCentres installed a new realtek codec ID 0x623,
    it has 2 front mics with the same location on pin 0x18 and 0x19.
    
    Apply fixup ALC283_FIXUP_HEADSET_MIC to change 1 front mic
    location to right, then pulseaudio can handle them.
    One "Front Mic" and one "Mic" will be shown, and audio output works
    fine.
    
    Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191024114439.31522-1-aaron.ma@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 317314cb8061083622a1e44efd9cfe99b545c0ed
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Sat Oct 26 12:06:20 2019 +0900

    ALSA: bebob: Fix prototype of helper function to return negative value
    
    commit f2bbdbcb075f3977a53da3bdcb7cd460bc8ae5f2 upstream.
    
    A helper function of ALSA bebob driver returns negative value in a
    function which has a prototype to return unsigned value.
    
    This commit fixes it by changing the prototype.
    
    Fixes: eb7b3a056cd8 ("ALSA: bebob: Add commands and connections/streams management")
    Cc: <stable@vger.kernel.org> # v3.16+
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20191026030620.12077-1-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93f4021f0dd62089db7c56a767f6a92cb9473dee
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Wed Oct 23 14:26:37 2019 +0200

    fuse: truncate pending writes on O_TRUNC
    
    commit e4648309b85a78f8c787457832269a8712a8673e upstream.
    
    Make sure cached writes are not reordered around open(..., O_TRUNC), with
    the obvious wrong results.
    
    Fixes: 4d99ff8f12eb ("fuse: Turn writeback cache on")
    Cc: <stable@vger.kernel.org> # v3.15+
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 525c270c1fac4ba6659e12ccd3348606e53fe9ea
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Wed Oct 23 14:26:37 2019 +0200

    fuse: flush dirty data/metadata before non-truncate setattr
    
    commit b24e7598db62386a95a3c8b9c75630c5d56fe077 upstream.
    
    If writeback cache is enabled, then writes might get reordered with
    chmod/chown/utimes.  The problem with this is that performing the write in
    the fuse daemon might itself change some of these attributes.  In such case
    the following sequence of operations will result in file ending up with the
    wrong mode, for example:
    
      int fd = open ("suid", O_WRONLY|O_CREAT|O_EXCL);
      write (fd, "1", 1);
      fchown (fd, 0, 0);
      fchmod (fd, 04755);
      close (fd);
    
    This patch fixes this by flushing pending writes before performing
    chown/chmod/utimes.
    
    Reported-by: Giuseppe Scrivano <gscrivan@redhat.com>
    Tested-by: Giuseppe Scrivano <gscrivan@redhat.com>
    Fixes: 4d99ff8f12eb ("fuse: Turn writeback cache on")
    Cc: <stable@vger.kernel.org> # v3.15+
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce1dee3c1a88a534f561310f16e2eed3e686f28a
Author: Hui Peng <benquike@gmail.com>
Date:   Sat Aug 3 20:29:04 2019 -0400

    ath6kl: fix a NULL-ptr-deref bug in ath6kl_usb_alloc_urb_from_pipe()
    
    [ Upstream commit 39d170b3cb62ba98567f5c4f40c27b5864b304e5 ]
    
    The `ar_usb` field of `ath6kl_usb_pipe_usb_pipe` objects
    are initialized to point to the containing `ath6kl_usb` object
    according to endpoint descriptors read from the device side, as shown
    below in `ath6kl_usb_setup_pipe_resources`:
    
    for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
            endpoint = &iface_desc->endpoint[i].desc;
    
            // get the address from endpoint descriptor
            pipe_num = ath6kl_usb_get_logical_pipe_num(ar_usb,
                                                    endpoint->bEndpointAddress,
                                                    &urbcount);
            ......
            // select the pipe object
            pipe = &ar_usb->pipes[pipe_num];
    
            // initialize the ar_usb field
            pipe->ar_usb = ar_usb;
    }
    
    The driver assumes that the addresses reported in endpoint
    descriptors from device side  to be complete. If a device is
    malicious and does not report complete addresses, it may trigger
    NULL-ptr-deref `ath6kl_usb_alloc_urb_from_pipe` and
    `ath6kl_usb_free_urb_to_pipe`.
    
    This patch fixes the bug by preventing potential NULL-ptr-deref
    (CVE-2019-15098).
    
    Signed-off-by: Hui Peng <benquike@gmail.com>
    Reported-by: Hui Peng <benquike@gmail.com>
    Reported-by: Mathias Payer <mathias.payer@nebelwelt.net>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 56ab84408da105d46aa565e9221bf9926e814b91
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Wed Jul 4 08:46:07 2018 +0300

    thunderbolt: Use 32-bit writes when writing ring producer/consumer
    
    [ Upstream commit 943795219d3cb9f8ce6ce51cad3ffe1f61e95c6b ]
    
    The register access should be using 32-bit reads/writes according to the
    datasheet. With the previous generation hardware 16-bit writes have been
    working but starting with ICL this is not the case anymore so fix
    producer/consumer register update to use correct width register address.
    
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: Yehezkel Bernat <YehezkelShB@gmail.com>
    Tested-by: Mario Limonciello <mario.limonciello@dell.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54b9f5791846d2de59e8c65502b3f1071f65424f
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Thu Oct 31 11:42:59 2019 -0700

    net_sched: check cops->tcf_block in tc_bind_tclass()
    
    commit 8b142a00edcf8422ca48b8de88d286efb500cb53 upstream
    
    At least sch_red and sch_tbf don't implement ->tcf_block()
    while still have a non-zero tc "class".
    
    Instead of adding nop implementations to each of such qdisc's,
    we can just relax the check of cops->tcf_block() in
    tc_bind_tclass(). They don't support TC filter anyway.
    
    Reported-by: syzbot+21b29db13c065852f64b@syzkaller.appspotmail.com
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Cc: Jiri Pirko <jiri@resnulli.us>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Zubin Mithra <zsm@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d7030f05a84cf6ce9587dce5fab9774666597cd5
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Oct 11 17:11:15 2019 +0300

    USB: legousbtower: fix a signedness bug in tower_probe()
    
    [ Upstream commit fd47a417e75e2506eb3672ae569b1c87e3774155 ]
    
    The problem is that sizeof() is unsigned long so negative error codes
    are type promoted to high positive values and the condition becomes
    false.
    
    Fixes: 1d427be4a39d ("USB: legousbtower: fix slab info leak at probe")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20191011141115.GA4521@mwanda
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4df728651b8a99693c69962d8e5a5b9e5a3bbcc7
Author: Mike Christie <mchristi@redhat.com>
Date:   Thu Oct 17 16:27:34 2019 -0500

    nbd: verify socket is supported during setup
    
    [ Upstream commit cf1b2326b734896734c6e167e41766f9cee7686a ]
    
    nbd requires socket families to support the shutdown method so the nbd
    recv workqueue can be woken up from its sock_recvmsg call. If the socket
    does not support the callout we will leave recv works running or get hangs
    later when the device or module is removed.
    
    This adds a check during socket connection/reconnection to make sure the
    socket being passed in supports the needed callout.
    
    Reported-by: syzbot+24c12fa8d218ed26011a@syzkaller.appspotmail.com
    Fixes: e9e006f5fcf2 ("nbd: fix max number of supported devs")
    Tested-by: Richard W.M. Jones <rjones@redhat.com>
    Signed-off-by: Mike Christie <mchristi@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2a7ad49ad210e80780964807f241eeb3bdc23f1f
Author: Petr Mladek <pmladek@suse.com>
Date:   Fri Oct 11 16:21:34 2019 +0200

    tracing: Initialize iter->seq after zeroing in tracing_read_pipe()
    
    [ Upstream commit d303de1fcf344ff7c15ed64c3f48a991c9958775 ]
    
    A customer reported the following softlockup:
    
    [899688.160002] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [test.sh:16464]
    [899688.160002] CPU: 0 PID: 16464 Comm: test.sh Not tainted 4.12.14-6.23-azure #1 SLE12-SP4
    [899688.160002] RIP: 0010:up_write+0x1a/0x30
    [899688.160002] Kernel panic - not syncing: softlockup: hung tasks
    [899688.160002] RIP: 0010:up_write+0x1a/0x30
    [899688.160002] RSP: 0018:ffffa86784d4fde8 EFLAGS: 00000257 ORIG_RAX: ffffffffffffff12
    [899688.160002] RAX: ffffffff970fea00 RBX: 0000000000000001 RCX: 0000000000000000
    [899688.160002] RDX: ffffffff00000001 RSI: 0000000000000080 RDI: ffffffff970fea00
    [899688.160002] RBP: ffffffffffffffff R08: ffffffffffffffff R09: 0000000000000000
    [899688.160002] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8b59014720d8
    [899688.160002] R13: ffff8b59014720c0 R14: ffff8b5901471090 R15: ffff8b5901470000
    [899688.160002]  tracing_read_pipe+0x336/0x3c0
    [899688.160002]  __vfs_read+0x26/0x140
    [899688.160002]  vfs_read+0x87/0x130
    [899688.160002]  SyS_read+0x42/0x90
    [899688.160002]  do_syscall_64+0x74/0x160
    
    It caught the process in the middle of trace_access_unlock(). There is
    no loop. So, it must be looping in the caller tracing_read_pipe()
    via the "waitagain" label.
    
    Crashdump analyze uncovered that iter->seq was completely zeroed
    at this point, including iter->seq.seq.size. It means that
    print_trace_line() was never able to print anything and
    there was no forward progress.
    
    The culprit seems to be in the code:
    
            /* reset all but tr, trace, and overruns */
            memset(&iter->seq, 0,
                   sizeof(struct trace_iterator) -
                   offsetof(struct trace_iterator, seq));
    
    It was added by the commit 53d0aa773053ab182877 ("ftrace:
    add logic to record overruns"). It was v2.6.27-rc1.
    It was the time when iter->seq looked like:
    
         struct trace_seq {
            unsigned char           buffer[PAGE_SIZE];
            unsigned int            len;
         };
    
    There was no "size" variable and zeroing was perfectly fine.
    
    The solution is to reinitialize the structure after or without
    zeroing.
    
    Link: http://lkml.kernel.org/r/20191011142134.11997-1-pmladek@suse.com
    
    Signed-off-by: Petr Mladek <pmladek@suse.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fbfd8dadf521784fd2fbb1cfc61e318979593c41
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Tue Oct 8 17:02:32 2019 +0200

    s390/uaccess: avoid (false positive) compiler warnings
    
    [ Upstream commit 062795fcdcb2d22822fb42644b1d76a8ad8439b3 ]
    
    Depending on inlining decisions by the compiler, __get/put_user_fn
    might become out of line. Then the compiler is no longer able to tell
    that size can only be 1,2,4 or 8 due to the check in __get/put_user
    resulting in false positives like
    
    ./arch/s390/include/asm/uaccess.h: In function ‘__put_user_fn’:
    ./arch/s390/include/asm/uaccess.h:113:9: warning: ‘rc’ may be used uninitialized in this function [-Wmaybe-uninitialized]
      113 |  return rc;
          |         ^~
    ./arch/s390/include/asm/uaccess.h: In function ‘__get_user_fn’:
    ./arch/s390/include/asm/uaccess.h:143:9: warning: ‘rc’ may be used uninitialized in this function [-Wmaybe-uninitialized]
      143 |  return rc;
          |         ^~
    
    These functions are supposed to be always inlined. Mark it as such.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 640fb32d61f32d1011bf9a96805e5a8d033abcea
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Fri Oct 4 09:58:54 2019 -0400

    NFSv4: Fix leak of clp->cl_acceptor string
    
    [ Upstream commit 1047ec868332034d1fbcb2fae19fe6d4cb869ff2 ]
    
    Our client can issue multiple SETCLIENTID operations to the same
    server in some circumstances. Ensure that calls to
    nfs4_proc_setclientid() after the first one do not overwrite the
    previously allocated cl_acceptor string.
    
    unreferenced object 0xffff888461031800 (size 32):
      comm "mount.nfs", pid 2227, jiffies 4294822467 (age 1407.749s)
      hex dump (first 32 bytes):
        6e 66 73 40 6b 6c 69 6d 74 2e 69 62 2e 31 30 31  nfs@klimt.ib.101
        35 67 72 61 6e 67 65 72 2e 6e 65 74 00 00 00 00  5granger.net....
      backtrace:
        [<00000000ab820188>] __kmalloc+0x128/0x176
        [<00000000eeaf4ec8>] gss_stringify_acceptor+0xbd/0x1a7 [auth_rpcgss]
        [<00000000e85e3382>] nfs4_proc_setclientid+0x34e/0x46c [nfsv4]
        [<000000003d9cf1fa>] nfs40_discover_server_trunking+0x7a/0xed [nfsv4]
        [<00000000b81c3787>] nfs4_discover_server_trunking+0x81/0x244 [nfsv4]
        [<000000000801b55f>] nfs4_init_client+0x1b0/0x238 [nfsv4]
        [<00000000977daf7f>] nfs4_set_client+0xfe/0x14d [nfsv4]
        [<0000000053a68a2a>] nfs4_create_server+0x107/0x1db [nfsv4]
        [<0000000088262019>] nfs4_remote_mount+0x2c/0x59 [nfsv4]
        [<00000000e84a2fd0>] legacy_get_tree+0x2d/0x4c
        [<00000000797e947c>] vfs_get_tree+0x20/0xc7
        [<00000000ecabaaa8>] fc_mount+0xe/0x36
        [<00000000f15fafc2>] vfs_kern_mount+0x74/0x8d
        [<00000000a3ff4e26>] nfs_do_root_mount+0x8a/0xa3 [nfsv4]
        [<00000000d1c2b337>] nfs4_try_mount+0x58/0xad [nfsv4]
        [<000000004c9bddee>] nfs_fs_mount+0x820/0x869 [nfs]
    
    Fixes: f11b2a1cfbf5 ("nfs4: copy acceptor name from context ... ")
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff9edf3f778cb853a18dd00e1c1820df8a4e183e
Author: Xiubo Li <xiubli@redhat.com>
Date:   Thu Sep 19 11:44:27 2019 +0530

    nbd: fix possible sysfs duplicate warning
    
    [ Upstream commit 862488105b84ca744b3d8ff131e0fcfe10644be1 ]
    
    1. nbd_put takes the mutex and drops nbd->ref to 0. It then does
    idr_remove and drops the mutex.
    
    2. nbd_genl_connect takes the mutex. idr_find/idr_for_each fails
    to find an existing device, so it does nbd_dev_add.
    
    3. just before the nbd_put could call nbd_dev_remove or not finished
    totally, but if nbd_dev_add try to add_disk, we can hit:
    
    debugfs: Directory 'nbd1' with parent 'block' already present!
    
    This patch will make sure all the disk add/remove stuff are done
    by holding the nbd_index_mutex lock.
    
    Reported-by: Mike Christie <mchristi@redhat.com>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Xiubo Li <xiubli@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 205cb89c17cb490ffbfe55c9e6ae1c6ee5366ea5
Author: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Date:   Wed Oct 9 17:10:56 2019 +0200

    MIPS: fw: sni: Fix out of bounds init of o32 stack
    
    [ Upstream commit efcb529694c3b707dc0471b312944337ba16e4dd ]
    
    Use ARRAY_SIZE to caluculate the top of the o32 stack.
    
    Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ca1e2d0660a9f53a87b88738c43e64fd376eb026
Author: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Date:   Wed Oct 9 12:06:00 2019 +0200

    MIPS: include: Mark __xchg as __always_inline
    
    [ Upstream commit 46f1619500d022501a4f0389f9f4c349ab46bb86 ]
    
    Commit ac7c3e4ff401 ("compiler: enable CONFIG_OPTIMIZE_INLINING
    forcibly") allows compiler to uninline functions marked as 'inline'.
    In cace of __xchg this would cause to reference function
    __xchg_called_with_bad_pointer, which is an error case
    for catching bugs and will not happen for correct code, if
    __xchg is inlined.
    
    Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
    Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7731cb5a229c476b0069b8e2a7d0793e1bf8577
Author: Tom Lendacky <thomas.lendacky@amd.com>
Date:   Thu Aug 1 18:57:41 2019 +0000

    perf/x86/amd: Change/fix NMI latency mitigation to use a timestamp
    
    [ Upstream commit df4d29732fdad43a51284f826bec3e6ded177540 ]
    
    It turns out that the NMI latency workaround from commit:
    
      6d3edaae16c6 ("x86/perf/amd: Resolve NMI latency issues for active PMCs")
    
    ends up being too conservative and results in the perf NMI handler claiming
    NMIs too easily on AMD hardware when the NMI watchdog is active.
    
    This has an impact, for example, on the hpwdt (HPE watchdog timer) module.
    This module can produce an NMI that is used to reset the system. It
    registers an NMI handler for the NMI_UNKNOWN type and relies on the fact
    that nothing has claimed an NMI so that its handler will be invoked when
    the watchdog device produces an NMI. After the referenced commit, the
    hpwdt module is unable to process its generated NMI if the NMI watchdog is
    active, because the current NMI latency mitigation results in the NMI
    being claimed by the perf NMI handler.
    
    Update the AMD perf NMI latency mitigation workaround to, instead, use a
    window of time. Whenever a PMC is handled in the perf NMI handler, set a
    timestamp which will act as a perf NMI window. Any NMIs arriving within
    that window will be claimed by perf. Anything outside that window will
    not be claimed by perf. The value for the NMI window is set to 100 msecs.
    This is a conservative value that easily covers any NMI latency in the
    hardware. While this still results in a window in which the hpwdt module
    will not receive its NMI, the window is now much, much smaller.
    
    Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Jerry Hoemann <jerry.hoemann@hpe.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: 6d3edaae16c6 ("x86/perf/amd: Resolve NMI latency issues for active PMCs")
    Link: https://lkml.kernel.org/r/Message-ID:
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6234d485e30c0d8c904d695c97ab74eb56174576
Author: Frederic Weisbecker <frederic@kernel.org>
Date:   Wed Sep 25 23:42:42 2019 +0200

    sched/vtime: Fix guest/system mis-accounting on task switch
    
    [ Upstream commit 68e7a4d66b0ce04bf18ff2ffded5596ab3618585 ]
    
    vtime_account_system() assumes that the target task to account cputime
    to is always the current task. This is most often true indeed except on
    task switch where we call:
    
            vtime_common_task_switch(prev)
                    vtime_account_system(prev)
    
    Here prev is the scheduling-out task where we account the cputime to. It
    doesn't match current that is already the scheduling-in task at this
    stage of the context switch.
    
    So we end up checking the wrong task flags to determine if we are
    accounting guest or system time to the previous task.
    
    As a result the wrong task is used to check if the target is running in
    guest mode. We may then spuriously account or leak either system or
    guest time on task switch.
    
    Fix this assumption and also turn vtime_guest_enter/exit() to use the
    task passed in parameter as well to avoid future similar issues.
    
    Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Wanpeng Li <wanpengli@tencent.com>
    Fixes: 2a42eb9594a1 ("sched/cputime: Accumulate vtime on top of nsec clocksource")
    Link: https://lkml.kernel.org/r/20190925214242.21873-1-frederic@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 22731e226b8f47fd4843673ed68d5e7c43c48ebc
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Sun Oct 6 17:57:57 2019 -0700

    fs: ocfs2: fix a possible null-pointer dereference in ocfs2_info_scan_inode_alloc()
    
    [ Upstream commit 2abb7d3b12d007c30193f48bebed781009bebdd2 ]
    
    In ocfs2_info_scan_inode_alloc(), there is an if statement on line 283
    to check whether inode_alloc is NULL:
    
        if (inode_alloc)
    
    When inode_alloc is NULL, it is used on line 287:
    
        ocfs2_inode_lock(inode_alloc, &bh, 0);
            ocfs2_inode_lock_full_nested(inode, ...)
                struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
    
    Thus, a possible null-pointer dereference may occur.
    
    To fix this bug, inode_alloc is checked on line 286.
    
    This bug is found by a static analysis tool STCheck written by us.
    
    Link: http://lkml.kernel.org/r/20190726033717.32359-1-baijiaju1990@gmail.com
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Gang He <ghe@suse.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 16508e0aa53aac12d1dba97aaca4f8acd6faaeeb
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Sun Oct 6 17:57:54 2019 -0700

    fs: ocfs2: fix a possible null-pointer dereference in ocfs2_write_end_nolock()
    
    [ Upstream commit 583fee3e12df0e6f1f66f063b989d8e7fed0e65a ]
    
    In ocfs2_write_end_nolock(), there are an if statement on lines 1976,
    2047 and 2058, to check whether handle is NULL:
    
        if (handle)
    
    When handle is NULL, it is used on line 2045:
    
            ocfs2_update_inode_fsync_trans(handle, inode, 1);
            oi->i_sync_tid = handle->h_transaction->t_tid;
    
    Thus, a possible null-pointer dereference may occur.
    
    To fix this bug, handle is checked before calling
    ocfs2_update_inode_fsync_trans().
    
    This bug is found by a static analysis tool STCheck written by us.
    
    Link: http://lkml.kernel.org/r/20190726033705.32307-1-baijiaju1990@gmail.com
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Gang He <ghe@suse.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 982706449a532e9ccbfe2d995d3c3cf8def6a1d8
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Sun Oct 6 17:57:50 2019 -0700

    fs: ocfs2: fix possible null-pointer dereferences in ocfs2_xa_prepare_entry()
    
    [ Upstream commit 56e94ea132bb5c2c1d0b60a6aeb34dcb7d71a53d ]
    
    In ocfs2_xa_prepare_entry(), there is an if statement on line 2136 to
    check whether loc->xl_entry is NULL:
    
        if (loc->xl_entry)
    
    When loc->xl_entry is NULL, it is used on line 2158:
    
        ocfs2_xa_add_entry(loc, name_hash);
            loc->xl_entry->xe_name_hash = cpu_to_le32(name_hash);
            loc->xl_entry->xe_name_offset = cpu_to_le16(loc->xl_size);
    
    and line 2164:
    
        ocfs2_xa_add_namevalue(loc, xi);
            loc->xl_entry->xe_value_size = cpu_to_le64(xi->xi_value_len);
            loc->xl_entry->xe_name_len = xi->xi_name_len;
    
    Thus, possible null-pointer dereferences may occur.
    
    To fix these bugs, if loc-xl_entry is NULL, ocfs2_xa_prepare_entry()
    abnormally returns with -EINVAL.
    
    These bugs are found by a static analysis tool STCheck written by us.
    
    [akpm@linux-foundation.org: remove now-unused ocfs2_xa_add_entry()]
    Link: http://lkml.kernel.org/r/20190726101447.9153-1-baijiaju1990@gmail.com
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Gang He <ghe@suse.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7864c58e02ad9c8ee3c1a2712a6df9a26093a3b5
Author: Jia Guo <guojia12@huawei.com>
Date:   Sun Oct 6 17:57:47 2019 -0700

    ocfs2: clear zero in unaligned direct IO
    
    [ Upstream commit 7a243c82ea527cd1da47381ad9cd646844f3b693 ]
    
    Unused portion of a part-written fs-block-sized block is not set to zero
    in unaligned append direct write.This can lead to serious data
    inconsistencies.
    
    Ocfs2 manage disk with cluster size(for example, 1M), part-written in
    one cluster will change the cluster state from UN-WRITTEN to WRITTEN,
    VFS(function dio_zero_block) doesn't do the cleaning because bh's state
    is not set to NEW in function ocfs2_dio_wr_get_block when we write a
    WRITTEN cluster.  For example, the cluster size is 1M, file size is 8k
    and we direct write from 14k to 15k, then 12k~14k and 15k~16k will
    contain dirty data.
    
    We have to deal with two cases:
     1.The starting position of direct write is outside the file.
     2.The starting position of direct write is located in the file.
    
    We need set bh's state to NEW in the first case.  In the second case, we
    need mapped twice because bh's state of area out file should be set to
    NEW while area in file not.
    
    [akpm@linux-foundation.org: coding style fixes]
    Link: http://lkml.kernel.org/r/5292e287-8f1a-fd4a-1a14-661e555e0bed@huawei.com
    Signed-off-by: Jia Guo <guojia12@huawei.com>
    Reviewed-by: Yiwen Jiang <jiangyiwen@huawei.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Joseph Qi <joseph.qi@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 588c0f3282207a7b25951de0e96e5485b3bfa62d
Author: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Date:   Mon Sep 30 16:44:41 2019 -0400

    x86/xen: Return from panic notifier
    
    [ Upstream commit c6875f3aacf2a5a913205accddabf0bfb75cac76 ]
    
    Currently execution of panic() continues until Xen's panic notifier
    (xen_panic_event()) is called at which point we make a hypercall that
    never returns.
    
    This means that any notifier that is supposed to be called later as
    well as significant part of panic() code (such as pstore writes from
    kmsg_dump()) is never executed.
    
    There is no reason for xen_panic_event() to be this last point in
    execution since panic()'s emergency_restart() will call into
    xen_emergency_restart() from where we can perform our hypercall.
    
    Nevertheless, we will provide xen_legacy_crash boot option that will
    preserve original behavior during crash. This option could be used,
    for example, if running kernel dumper (which happens after panic
    notifiers) is undesirable.
    
    Reported-by: James Dingwall <james@dingwall.me.uk>
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11d172c77de4b7a771c65af2e8e2ef4eaf9a1304
Author: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Date:   Sun Oct 6 15:12:32 2019 +0200

    MIPS: include: Mark __cmpxchg as __always_inline
    
    [ Upstream commit 88356d09904bc606182c625575237269aeece22e ]
    
    Commit ac7c3e4ff401 ("compiler: enable CONFIG_OPTIMIZE_INLINING
    forcibly") allows compiler to uninline functions marked as 'inline'.
    In cace of cmpxchg this would cause to reference function
    __cmpxchg_called_with_bad_pointer, which is a error case
    for catching bugs and will not happen for correct code, if
    __cmpxchg is inlined.
    
    Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
    [paul.burton@mips.com: s/__cmpxchd/__cmpxchg in subject]
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a59335e1f8a77ba42c4c3620996dd120fd2ab801
Author: Dave Young <dyoung@redhat.com>
Date:   Wed Oct 2 18:59:04 2019 +0200

    efi/x86: Do not clean dummy variable in kexec path
    
    [ Upstream commit 2ecb7402cfc7f22764e7bbc80790e66eadb20560 ]
    
    kexec reboot fails randomly in UEFI based KVM guest.  The firmware
    just resets while calling efi_delete_dummy_variable();  Unfortunately
    I don't know how to debug the firmware, it is also possible a potential
    problem on real hardware as well although nobody reproduced it.
    
    The intention of the efi_delete_dummy_variable is to trigger garbage collection
    when entering virtual mode.  But SetVirtualAddressMap can only run once
    for each physical reboot, thus kexec_enter_virtual_mode() is not necessarily
    a good place to clean a dummy object.
    
    Drop the efi_delete_dummy_variable so that kexec reboot can work.
    
    Signed-off-by: Dave Young <dyoung@redhat.com>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Acked-by: Matthew Garrett <mjg59@google.com>
    Cc: Ben Dooks <ben.dooks@codethink.co.uk>
    Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Cc: Jerry Snitselaar <jsnitsel@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Lukas Wunner <lukas@wunner.de>
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: Octavian Purdila <octavian.purdila@intel.com>
    Cc: Peter Jones <pjones@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Scott Talbert <swt@techie.net>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Cc: linux-integrity@vger.kernel.org
    Link: https://lkml.kernel.org/r/20191002165904.8819-8-ard.biesheuvel@linaro.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 72a4cc09f0ec71753d8ba4add1d92dd1955eaed0
Author: Lukas Wunner <lukas@wunner.de>
Date:   Wed Oct 2 18:58:58 2019 +0200

    efi/cper: Fix endianness of PCIe class code
    
    [ Upstream commit 6fb9367a15d1a126d222d738b2702c7958594a5f ]
    
    The CPER parser assumes that the class code is big endian, but at least
    on this edk2-derived Intel Purley platform it's little endian:
    
        efi: EFI v2.50 by EDK II BIOS ID:PLYDCRB1.86B.0119.R05.1701181843
        DMI: Intel Corporation PURLEY/PURLEY, BIOS PLYDCRB1.86B.0119.R05.1701181843 01/18/2017
    
        {1}[Hardware Error]:   device_id: 0000:5d:00.0
        {1}[Hardware Error]:   slot: 0
        {1}[Hardware Error]:   secondary_bus: 0x5e
        {1}[Hardware Error]:   vendor_id: 0x8086, device_id: 0x2030
        {1}[Hardware Error]:   class_code: 000406
                                           ^^^^^^ (should be 060400)
    
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Ben Dooks <ben.dooks@codethink.co.uk>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Cc: Jerry Snitselaar <jsnitsel@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: Matthew Garrett <mjg59@google.com>
    Cc: Octavian Purdila <octavian.purdila@intel.com>
    Cc: Peter Jones <pjones@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Scott Talbert <swt@techie.net>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Cc: linux-integrity@vger.kernel.org
    Link: https://lkml.kernel.org/r/20191002165904.8819-2-ard.biesheuvel@linaro.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 62f353a1bf55da65d92b14492ca9bc6fd84d8dce
Author: Adam Ford <aford173@gmail.com>
Date:   Sun Oct 6 11:33:11 2019 -0500

    serial: mctrl_gpio: Check for NULL pointer
    
    [ Upstream commit 37e3ab00e4734acc15d96b2926aab55c894f4d9c ]
    
    When using mctrl_gpio_to_gpiod, it dereferences gpios into a single
    requested GPIO.  This dereferencing can break if gpios is NULL,
    so this patch adds a NULL check before dereferencing it.  If
    gpios is NULL, this function will also return NULL.
    
    Signed-off-by: Adam Ford <aford173@gmail.com>
    Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com>
    Link: https://lore.kernel.org/r/20191006163314.23191-1-aford173@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e7a7eaa9c6c1d1308a685b1133927214878dc7b
Author: Austin Kim <austindh.kim@gmail.com>
Date:   Tue Oct 1 16:34:13 2019 +0900

    fs: cifs: mute -Wunused-const-variable message
    
    [ Upstream commit dd19c106a36690b47bb1acc68372f2b472b495b8 ]
    
    After 'Initial git repository build' commit,
    'mapping_table_ERRHRD' variable has not been used.
    
    So 'mapping_table_ERRHRD' const variable could be removed
    to mute below warning message:
    
       fs/cifs/netmisc.c:120:40: warning: unused variable 'mapping_table_ERRHRD' [-Wunused-const-variable]
       static const struct smb_to_posix_error mapping_table_ERRHRD[] = {
                                               ^
    Signed-off-by: Austin Kim <austindh.kim@gmail.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 784aafad04942ea6b3101e385218ec287c68a24e
Author: Thierry Reding <treding@nvidia.com>
Date:   Wed Oct 2 14:28:23 2019 +0200

    gpio: max77620: Use correct unit for debounce times
    
    [ Upstream commit fffa6af94894126994a7600c6f6f09b892e89fa9 ]
    
    The gpiod_set_debounce() function takes the debounce time in
    microseconds. Adjust the switch/case values in the MAX77620 GPIO to use
    the correct unit.
    
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Link: https://lore.kernel.org/r/20191002122825.3948322-1-thierry.reding@gmail.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef445dfa588c8c504386fd43b93af26dcec63d99
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Mon Sep 30 19:15:12 2019 -0700

    tty: n_hdlc: fix build on SPARC
    
    [ Upstream commit 47a7e5e97d4edd7b14974d34f0e5a5560fad2915 ]
    
    Fix tty driver build on SPARC by not using __exitdata.
    It appears that SPARC does not support section .exit.data.
    
    Fixes these build errors:
    
    `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
    `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
    `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
    `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Fixes: 063246641d4a ("format-security: move static strings to const")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Link: https://lore.kernel.org/r/675e7bd9-955b-3ff3-1101-a973b58b5b75@infradead.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef371fdb91306d3716df18ba912c26bd7313e232
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Tue Sep 10 06:11:29 2019 +0200

    tty: serial: owl: Fix the link time qualifier of 'owl_uart_exit()'
    
    [ Upstream commit 6264dab6efd6069f0387efb078a9960b5642377b ]
    
    'exit' functions should be marked as __exit, not __init.
    
    Fixes: fc60a8b675bd ("tty: serial: owl: Implement console driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/20190910041129.6978-1-christophe.jaillet@wanadoo.fr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1252a3d40569c214db579f253f4be71eb91b31e8
Author: James Morse <james.morse@arm.com>
Date:   Wed Oct 2 10:49:35 2019 +0100

    arm64: ftrace: Ensure synchronisation in PLT setup for Neoverse-N1 #1542419
    
    [ Upstream commit dd8a1f13488438c6c220b7cafa500baaf21a6e53 ]
    
    CPUs affected by Neoverse-N1 #1542419 may execute a stale instruction if
    it was recently modified. The affected sequence requires freshly written
    instructions to be executable before a branch to them is updated.
    
    There are very few places in the kernel that modify executable text,
    all but one come with sufficient synchronisation:
     * The module loader's flush_module_icache() calls flush_icache_range(),
       which does a kick_all_cpus_sync()
     * bpf_int_jit_compile() calls flush_icache_range().
     * Kprobes calls aarch64_insn_patch_text(), which does its work in
       stop_machine().
     * static keys and ftrace both patch between nops and branches to
       existing kernel code (not generated code).
    
    The affected sequence is the interaction between ftrace and modules.
    The module PLT is cleaned using __flush_icache_range() as the trampoline
    shouldn't be executable until we update the branch to it.
    
    Drop the double-underscore so that this path runs kick_all_cpus_sync()
    too.
    
    Signed-off-by: James Morse <james.morse@arm.com>
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fba217b35e518fa3b0f322bd97280326f93dab45
Author: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
Date:   Thu Sep 26 14:29:38 2019 +0800

    nfs: Fix nfsi->nrequests count error on nfs_inode_remove_request
    
    [ Upstream commit 33ea5aaa87cdae0f9af4d6b7ee4f650a1a36fd1d ]
    
    When xfstests testing, there are some WARNING as below:
    
    WARNING: CPU: 0 PID: 6235 at fs/nfs/inode.c:122 nfs_clear_inode+0x9c/0xd8
    Modules linked in:
    CPU: 0 PID: 6235 Comm: umount.nfs
    Hardware name: linux,dummy-virt (DT)
    pstate: 60000005 (nZCv daif -PAN -UAO)
    pc : nfs_clear_inode+0x9c/0xd8
    lr : nfs_evict_inode+0x60/0x78
    sp : fffffc000f68fc00
    x29: fffffc000f68fc00 x28: fffffe00c53155c0
    x27: fffffe00c5315000 x26: fffffc0009a63748
    x25: fffffc000f68fd18 x24: fffffc000bfaaf40
    x23: fffffc000936d3c0 x22: fffffe00c4ff5e20
    x21: fffffc000bfaaf40 x20: fffffe00c4ff5d10
    x19: fffffc000c056000 x18: 000000000000003c
    x17: 0000000000000000 x16: 0000000000000000
    x15: 0000000000000040 x14: 0000000000000228
    x13: fffffc000c3a2000 x12: 0000000000000045
    x11: 0000000000000000 x10: 0000000000000000
    x9 : 0000000000000000 x8 : 0000000000000000
    x7 : 0000000000000000 x6 : fffffc00084b027c
    x5 : fffffc0009a64000 x4 : fffffe00c0e77400
    x3 : fffffc000c0563a8 x2 : fffffffffffffffb
    x1 : 000000000000764e x0 : 0000000000000001
    Call trace:
     nfs_clear_inode+0x9c/0xd8
     nfs_evict_inode+0x60/0x78
     evict+0x108/0x380
     dispose_list+0x70/0xa0
     evict_inodes+0x194/0x210
     generic_shutdown_super+0xb0/0x220
     nfs_kill_super+0x40/0x88
     deactivate_locked_super+0xb4/0x120
     deactivate_super+0x144/0x160
     cleanup_mnt+0x98/0x148
     __cleanup_mnt+0x38/0x50
     task_work_run+0x114/0x160
     do_notify_resume+0x2f8/0x308
     work_pending+0x8/0x14
    
    The nrequest should be increased/decreased only if PG_INODE_REF flag
    was setted.
    
    But in the nfs_inode_remove_request function, it maybe decrease when
    no PG_INODE_REF flag, this maybe lead nrequests count error.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8cb0ef81ba927d776dabe7fd3f649c580d2cdeba
Author: Dexuan Cui <decui@microsoft.com>
Date:   Tue Aug 20 02:56:34 2019 +0000

    HID: hyperv: Use in-place iterator API in the channel callback
    
    [ Upstream commit 6a297c90efa68b2864483193b8bfb0d19478600c ]
    
    Simplify the ring buffer handling with the in-place API.
    
    Also avoid the dynamic allocation and the memory leak in the channel
    callback function.
    
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Acked-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7913a4126e513f7c3e312dfdddc86ab53c05b51
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Sep 30 16:16:54 2019 -0700

    RDMA/iwcm: Fix a lock inversion issue
    
    [ Upstream commit b66f31efbdad95ec274345721d99d1d835e6de01 ]
    
    This patch fixes the lock inversion complaint:
    
    ============================================
    WARNING: possible recursive locking detected
    5.3.0-rc7-dbg+ #1 Not tainted
    --------------------------------------------
    kworker/u16:6/171 is trying to acquire lock:
    00000000035c6e6c (&id_priv->handler_mutex){+.+.}, at: rdma_destroy_id+0x78/0x4a0 [rdma_cm]
    
    but task is already holding lock:
    00000000bc7c307d (&id_priv->handler_mutex){+.+.}, at: iw_conn_req_handler+0x151/0x680 [rdma_cm]
    
    other info that might help us debug this:
     Possible unsafe locking scenario:
    
           CPU0
           ----
      lock(&id_priv->handler_mutex);
      lock(&id_priv->handler_mutex);
    
     *** DEADLOCK ***
    
     May be due to missing lock nesting notation
    
    3 locks held by kworker/u16:6/171:
     #0: 00000000e2eaa773 ((wq_completion)iw_cm_wq){+.+.}, at: process_one_work+0x472/0xac0
     #1: 000000001efd357b ((work_completion)(&work->work)#3){+.+.}, at: process_one_work+0x476/0xac0
     #2: 00000000bc7c307d (&id_priv->handler_mutex){+.+.}, at: iw_conn_req_handler+0x151/0x680 [rdma_cm]
    
    stack backtrace:
    CPU: 3 PID: 171 Comm: kworker/u16:6 Not tainted 5.3.0-rc7-dbg+ #1
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    Workqueue: iw_cm_wq cm_work_handler [iw_cm]
    Call Trace:
     dump_stack+0x8a/0xd6
     __lock_acquire.cold+0xe1/0x24d
     lock_acquire+0x106/0x240
     __mutex_lock+0x12e/0xcb0
     mutex_lock_nested+0x1f/0x30
     rdma_destroy_id+0x78/0x4a0 [rdma_cm]
     iw_conn_req_handler+0x5c9/0x680 [rdma_cm]
     cm_work_handler+0xe62/0x1100 [iw_cm]
     process_one_work+0x56d/0xac0
     worker_thread+0x7a/0x5d0
     kthread+0x1bc/0x210
     ret_from_fork+0x24/0x30
    
    This is not a bug as there are actually two lock classes here.
    
    Link: https://lore.kernel.org/r/20190930231707.48259-3-bvanassche@acm.org
    Fixes: de910bd92137 ("RDMA/cma: Simplify locking needed for serialization of callbacks")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8f7b8f1d14d714181b35e69f4cb73f02ea8f0156
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Wed Sep 25 09:45:42 2019 -0500

    RDMA/hfi1: Prevent memory leak in sdma_init
    
    [ Upstream commit 34b3be18a04ecdc610aae4c48e5d1b799d8689f6 ]
    
    In sdma_init if rhashtable_init fails the allocated memory for
    tmp_sdma_rht should be released.
    
    Fixes: 5a52a7acf7e2 ("IB/hfi1: NULL pointer dereference when freeing rhashtable")
    Link: https://lore.kernel.org/r/20190925144543.10141-1-navid.emamdoost@gmail.com
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Acked-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c2a577c879c43085c65d7130b581bb53376b3ea
Author: Connor Kuehl <connor.kuehl@canonical.com>
Date:   Fri Sep 27 14:44:15 2019 -0700

    staging: rtl8188eu: fix null dereference when kzalloc fails
    
    [ Upstream commit 955c1532a34305f2f780b47f0c40cc7c65500810 ]
    
    If kzalloc() returns NULL, the error path doesn't stop the flow of
    control from entering rtw_hal_read_chip_version() which dereferences the
    null pointer. Fix this by adding a 'goto' to the error path to more
    gracefully handle the issue and avoid proceeding with initialization
    steps that we're no longer prepared to handle.
    
    Also update the debug message to be more consistent with the other debug
    messages in this function.
    
    Addresses-Coverity: ("Dereference after null check")
    
    Signed-off-by: Connor Kuehl <connor.kuehl@canonical.com>
    Link: https://lore.kernel.org/r/20190927214415.899-1-connor.kuehl@canonical.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1862e1188c9dfcc87f4c4e36ef1947d8f83e9eff
Author: Andi Kleen <ak@linux.intel.com>
Date:   Fri Sep 27 16:35:45 2019 -0700

    perf jevents: Fix period for Intel fixed counters
    
    [ Upstream commit 6bdfd9f118bd59cf0f85d3bf4b72b586adea17c1 ]
    
    The Intel fixed counters use a special table to override the JSON
    information.
    
    During this override the period information from the JSON file got
    dropped, which results in inst_retired.any and similar running with
    frequency mode instead of a period.
    
    Just specify the expected period in the table.
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Link: http://lore.kernel.org/lkml/20190927233546.11533-2-andi@firstfloor.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bbb089eb22cb32fad57869a81b106c4df39ff85b
Author: Steve MacLean <Steve.MacLean@microsoft.com>
Date:   Sat Sep 28 01:39:00 2019 +0000

    perf map: Fix overlapped map handling
    
    [ Upstream commit ee212d6ea20887c0ef352be8563ca13dbf965906 ]
    
    Whenever an mmap/mmap2 event occurs, the map tree must be updated to add a new
    entry. If a new map overlaps a previous map, the overlapped section of the
    previous map is effectively unmapped, but the non-overlapping sections are
    still valid.
    
    maps__fixup_overlappings() is responsible for creating any new map entries from
    the previously overlapped map. It optionally creates a before and an after map.
    
    When creating the after map the existing code failed to adjust the map.pgoff.
    This meant the new after map would incorrectly calculate the file offset
    for the ip. This results in incorrect symbol name resolution for any ip in the
    after region.
    
    Make maps__fixup_overlappings() correctly populate map.pgoff.
    
    Add an assert that new mapping matches old mapping at the beginning of
    the after map.
    
    Committer-testing:
    
    Validated correct parsing of libcoreclr.so symbols from .NET Core 3.0 preview9
    (which didn't strip symbols).
    
    Preparation:
    
      ~/dotnet3.0-preview9/dotnet new webapi -o perfSymbol
      cd perfSymbol
      ~/dotnet3.0-preview9/dotnet publish
      perf record ~/dotnet3.0-preview9/dotnet \
          bin/Debug/netcoreapp3.0/publish/perfSymbol.dll
      ^C
    
    Before:
    
      perf script --show-mmap-events 2>&1 | grep -e MMAP -e unknown |\
         grep libcoreclr.so | head -n 4
            dotnet  1907 373352.698780: PERF_RECORD_MMAP2 1907/1907: \
                [0x7fe615726000(0x768000) @ 0 08:02 5510620 765057155]: \
                r-xp .../3.0.0-preview9-19423-09/libcoreclr.so
            dotnet  1907 373352.701091: PERF_RECORD_MMAP2 1907/1907: \
                [0x7fe615974000(0x1000) @ 0x24e000 08:02 5510620 765057155]: \
                rwxp .../3.0.0-preview9-19423-09/libcoreclr.so
            dotnet  1907 373352.701241: PERF_RECORD_MMAP2 1907/1907: \
                [0x7fe615c42000(0x1000) @ 0x51c000 08:02 5510620 765057155]: \
                rwxp .../3.0.0-preview9-19423-09/libcoreclr.so
            dotnet  1907 373352.705249:     250000 cpu-clock: \
                 7fe6159a1f99 [unknown] \
                 (.../3.0.0-preview9-19423-09/libcoreclr.so)
    
    After:
    
      perf script --show-mmap-events 2>&1 | grep -e MMAP -e unknown |\
         grep libcoreclr.so | head -n 4
            dotnet  1907 373352.698780: PERF_RECORD_MMAP2 1907/1907: \
                [0x7fe615726000(0x768000) @ 0 08:02 5510620 765057155]: \
                r-xp .../3.0.0-preview9-19423-09/libcoreclr.so
            dotnet  1907 373352.701091: PERF_RECORD_MMAP2 1907/1907: \
                [0x7fe615974000(0x1000) @ 0x24e000 08:02 5510620 765057155]: \
                rwxp .../3.0.0-preview9-19423-09/libcoreclr.so
            dotnet  1907 373352.701241: PERF_RECORD_MMAP2 1907/1907: \
                [0x7fe615c42000(0x1000) @ 0x51c000 08:02 5510620 765057155]: \
                rwxp .../3.0.0-preview9-19423-09/libcoreclr.so
    
    All the [unknown] symbols were resolved.
    
    Signed-off-by: Steve MacLean <Steve.MacLean@Microsoft.com>
    Tested-by: Brian Robbins <brianrob@microsoft.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Eric Saint-Etienne <eric.saint.etienne@oracle.com>
    Cc: John Keeping <john@metanate.com>
    Cc: John Salem <josalem@microsoft.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Song Liu <songliubraving@fb.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Tom McDonald <thomas.mcdonald@microsoft.com>
    Link: http://lore.kernel.org/lkml/BN8PR21MB136270949F22A6A02335C238F7800@BN8PR21MB1362.namprd21.prod.outlook.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ffc50de292802381bbd8fb79e7b58a677a56d7e3
Author: Ian Rogers <irogers@google.com>
Date:   Wed Sep 25 12:59:24 2019 -0700

    perf tests: Avoid raising SEGV using an obvious NULL dereference
    
    [ Upstream commit e3e2cf3d5b1fe800b032e14c0fdcd9a6fb20cf3b ]
    
    An optimized build such as:
    
      make -C tools/perf CLANG=1 CC=clang EXTRA_CFLAGS="-O3
    
    will turn the dereference operation into a ud2 instruction, raising a
    SIGILL rather than a SIGSEGV. Use raise(..) for correctness and clarity.
    
    Similar issues were addressed in Numfor Mbiziwo-Tiapo's patch:
    
      https://lkml.org/lkml/2019/7/8/1234
    
    Committer testing:
    
    Before:
    
      [root@quaco ~]# perf test hooks
      55: perf hooks                                            : Ok
      [root@quaco ~]# perf test -v hooks
      55: perf hooks                                            :
      --- start ---
      test child forked, pid 17092
      SIGSEGV is observed as expected, try to recover.
      Fatal error (SEGFAULT) in perf hook 'test'
      test child finished with 0
      ---- end ----
      perf hooks: Ok
      [root@quaco ~]#
    
    After:
    
      [root@quaco ~]# perf test hooks
      55: perf hooks                                            : Ok
      [root@quaco ~]# perf test -v hooks
      55: perf hooks                                            :
      --- start ---
      test child forked, pid 17909
      SIGSEGV is observed as expected, try to recover.
      Fatal error (SEGFAULT) in perf hook 'test'
      test child finished with 0
      ---- end ----
      perf hooks: Ok
      [root@quaco ~]#
    
    Fixes: a074865e60ed ("perf tools: Introduce perf hooks")
    Signed-off-by: Ian Rogers <irogers@google.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lore.kernel.org/lkml/20190925195924.152834-2-irogers@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b2e6d509cf8f21a15df8dd1774772403198dff7c
Author: Ian Rogers <irogers@google.com>
Date:   Wed Sep 25 12:59:23 2019 -0700

    libsubcmd: Make _FORTIFY_SOURCE defines dependent on the feature
    
    [ Upstream commit 4b0b2b096da9d296e0e5668cdfba8613bd6f5bc8 ]
    
    Unconditionally defining _FORTIFY_SOURCE can break tools that don't work
    with it, such as memory sanitizers:
    
      https://github.com/google/sanitizers/wiki/AddressSanitizer#faq
    
    Fixes: 4b6ab94eabe4 ("perf subcmd: Create subcmd library")
    Signed-off-by: Ian Rogers <irogers@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lore.kernel.org/lkml/20190925195924.152834-1-irogers@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e026ddea96c418cda11fadbd755ee389f20b324
Author: Pascal Bouwmann <bouwmann@tau-tec.de>
Date:   Thu Aug 29 07:29:41 2019 +0200

    iio: fix center temperature of bmc150-accel-core
    
    [ Upstream commit 6c59a962e081df6d8fe43325bbfabec57e0d4751 ]
    
    The center temperature of the supported devices stored in the constant
    BMC150_ACCEL_TEMP_CENTER_VAL is not 24 degrees but 23 degrees.
    
    It seems that some datasheets were inconsistent on this value leading
    to the error.  For most usecases will only make minor difference so
    not queued for stable.
    
    Signed-off-by: Pascal Bouwmann <bouwmann@tau-tec.de>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 253935ae19c622bfb245c5cbfa4dcaadf5e211e7
Author: Remi Pommarel <repk@triplefau.lt>
Date:   Sun Sep 1 12:54:10 2019 +0200

    iio: adc: meson_saradc: Fix memory allocation order
    
    [ Upstream commit de10ac47597e7a3596b27631d0d5ce5f48d2c099 ]
    
    meson_saradc's irq handler uses priv->regmap so make sure that it is
    allocated before the irq get enabled.
    
    This also fixes crash when CONFIG_DEBUG_SHIRQ is enabled, as device
    managed resources are freed in the inverted order they had been
    allocated, priv->regmap was freed before the spurious fake irq that
    CONFIG_DEBUG_SHIRQ adds called the handler.
    
    Fixes: 3af109131b7eb8 ("iio: adc: meson-saradc: switch from polling to interrupt mode")
    Reported-by: Elie Roudninski <xademax@gmail.com>
    Signed-off-by: Remi Pommarel <repk@triplefau.lt>
    Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Tested-by: Elie ROUDNINSKI <xademax@gmail.com>
    Reviewed-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 369c69642e1114e242b97a44228dc325b9fb90c8
Author: Sven Van Asbroeck <thesven73@gmail.com>
Date:   Fri Feb 15 16:43:03 2019 -0500

    power: supply: max14656: fix potential use-after-free
    
    [ Upstream commit 252fbeb86ceffa549af9842cefca2412d53a7653 ]
    
    Explicitly cancel/sync the irq_work delayed work, otherwise
    there's a chance that it will run after the device is removed,
    which would result in a use-after-free.
    
    Note that cancel/sync should happen:
    - after irq's have been disabled, as the isr re-schedules the work
    - before the power supply is unregistered, because the work func
        uses the power supply handle.
    
    Cc: Alexander Kurz <akurz@blala.de>
    Signed-off-by: Sven Van Asbroeck <TheSven73@gmail.com>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dbd7e918517c59e29e3c12f4a37a01d5fe314ff4
Author: Sven Van Asbroeck <thesven73@gmail.com>
Date:   Fri Mar 1 11:54:19 2019 -0500

    PCI/PME: Fix possible use-after-free on remove
    
    [ Upstream commit 7cf58b79b3072029af127ae865ffc6f00f34b1f8 ]
    
    In remove(), ensure that the PME work cannot run after kfree() is called.
    Otherwise, this could result in a use-after-free.
    
    This issue was detected with the help of Coccinelle.
    
    Signed-off-by: Sven Van Asbroeck <TheSven73@gmail.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Sinan Kaya <okaya@kernel.org>
    Cc: Frederick Lawler <fred@fredlawl.com>
    Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
    Cc: Keith Busch <keith.busch@intel.com>
    Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c28d84db418bb35bdaf8741032fb283d51ca4f0
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Feb 18 16:36:48 2019 -0800

    exec: load_script: Do not exec truncated interpreter path
    
    [ Upstream commit b5372fe5dc84235dbe04998efdede3c4daa866a9 ]
    
    Commit 8099b047ecc4 ("exec: load_script: don't blindly truncate
    shebang string") was trying to protect against a confused exec of a
    truncated interpreter path. However, it was overeager and also refused
    to truncate arguments as well, which broke userspace, and it was
    reverted. This attempts the protection again, but allows arguments to
    remain truncated. In an effort to improve readability, helper functions
    and comments have been added.
    
    Co-developed-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Samuel Dionne-Riel <samuel@dionne-riel.com>
    Cc: Richard Weinberger <richard.weinberger@gmail.com>
    Cc: Graham Christensen <graham@grahamc.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 10af43d90c5625fba9e2008564767e4910ba1473
Author: Lucas A. M. Magalhães <lucmaga@gmail.com>
Date:   Thu Feb 7 18:59:41 2019 -0500

    media: vimc: Remove unused but set variables
    
    [ Upstream commit 5515e414f42bf2769caae15b634004d456658284 ]
    
    Remove unused but set variables to clean up the code and avoid
    warning.
    
    Signed-off-by: Lucas A. M. Magalhães <lucmaga@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fb000f5b9ceb8f15c059f9dba5507c842661b290
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Jan 29 14:14:51 2019 +0100

    ALSA: hda/realtek - Apply ALC294 hp init also for S4 resume
    
    [ Upstream commit f6ef4e0e284251ff795c541db1129c84515ed044 ]
    
    The init sequence for ALC294 headphone stuff is needed not only for
    the boot up time but also for the resume from hibernation, where the
    device is switched from the boot kernel without sound driver to the
    suspended image.  Since we record the PM event in the device
    power_state field, we can now recognize the call pattern and apply the
    sequence conditionally.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aec76c5a1507761c0b983ae856ee0e23c01794c2
Author: Nir Dotan <nird@mellanox.com>
Date:   Tue Feb 12 16:29:51 2019 +0000

    mlxsw: spectrum: Set LAG port collector only when active
    
    [ Upstream commit 48ebab31d424fbdb8ede8914923bec671a933246 ]
    
    The LAG port collecting (receive) function was mistakenly set when the
    port was registered as a LAG member, while it should be set only when
    the port collection state is set to true. Set LAG port to collecting
    when it is set to distributing, as described in the IEEE link
    aggregation standard coupled control mux machine state diagram.
    
    Signed-off-by: Nir Dotan <nird@mellanox.com>
    Acked-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9375241055edc43e488d4b0f397373176b8b95b2
Author: Sam Ravnborg <sam@ravnborg.org>
Date:   Sat Jan 19 10:00:30 2019 +0100

    rtc: pcf8523: set xtal load capacitance from DT
    
    [ Upstream commit 189927e719e36ceefbb8037f23d3849e47833aef ]
    
    Add support for specifying the xtal load capacitance in the DT node.
    The pcf8523 supports xtal load capacitance of 7pF or 12.5pF.
    If the rtc has the wrong configuration the time will
    drift several hours/week.
    
    The driver use the default value 12.5pF.
    
    The DT may specify either 7000fF or 12500fF.
    (The DT uses femto Farad to avoid decimal numbers).
    Other values are warned and the driver uses the default value.
    
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Cc: Alessandro Zummo <a.zummo@towertech.it>
    Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e9d94c641a1f9143dc9b187d3300d5f11f006860
Author: Jan-Marek Glogowski <glogow@fbihome.de>
Date:   Fri Feb 1 13:52:31 2019 +0100

    usb: handle warm-reset port requests on hub resume
    
    [ Upstream commit 4fdc1790e6a9ef22399c6bc6e63b80f4609f3b7e ]
    
    On plug-in of my USB-C device, its USB_SS_PORT_LS_SS_INACTIVE
    link state bit is set. Greping all the kernel for this bit shows
    that the port status requests a warm-reset this way.
    
    This just happens, if its the only device on the root hub, the hub
    therefore resumes and the HCDs status_urb isn't yet available.
    If a warm-reset request is detected, this sets the hubs event_bits,
    which will prevent any auto-suspend and allows the hubs workqueue
    to warm-reset the port later in port_event.
    
    Signed-off-by: Jan-Marek Glogowski <glogow@fbihome.de>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07c8ac768cce606b1e68b11fde18e69ea3139776
Author: NOGUCHI Hiroshi <drvlabo@gmail.com>
Date:   Tue Jan 29 13:31:05 2019 +0900

    HID: Add ASUS T100CHI keyboard dock battery quirks
    
    [ Upstream commit a767ffea05d2737f6542cd78458a84a157fa216d ]
    
    Add ASUS Transbook T100CHI/T90CHI keyboard dock into battery quirk list, in
    order to add specific implementation in hid-asus.
    
    Signed-off-by: NOGUCHI Hiroshi <drvlabo@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 37ce64502d7ec7647876f213e31bb9564a248cf5
Author: Brian Norris <briannorris@chromium.org>
Date:   Wed Nov 14 18:11:18 2018 -0800

    scripts/setlocalversion: Improve -dirty check with git-status --no-optional-locks
    
    [ Upstream commit ff64dd4857303dd5550faed9fd598ac90f0f2238 ]
    
    git-diff-index does not refresh the index for you, so using it for a
    "-dirty" check can give misleading results. Commit 6147b1cf19651
    ("scripts/setlocalversion: git: Make -dirty check more robust") tried to
    fix this by switching to git-status, but it overlooked the fact that
    git-status also writes to the .git directory of the source tree, which
    is definitely not kosher for an out-of-tree (O=) build. That is getting
    reverted.
    
    Fortunately, git-status now supports avoiding writing to the index via
    the --no-optional-locks flag, as of git 2.14. It still calculates an
    up-to-date index, but it avoids writing it out to the .git directory.
    
    So, let's retry the solution from commit 6147b1cf19651 using this new
    flag first, and if it fails, we assume this is an older version of git
    and just use the old git-diff-index method.
    
    It's hairy to get the 'grep -vq' (inverted matching) correct by stashing
    the output of git-status (you have to be careful about the difference
    betwen "empty stdin" and "blank line on stdin"), so just pipe the output
    directly to grep and use a regex that's good enough for both the
    git-status and git-diff-index version.
    
    Cc: Christian Kujau <lists@nerdbynature.de>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Suggested-by: Alexander Kapshuk <alexander.kapshuk@gmail.com>
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Tested-by: Genki Sky <sky@genki.is>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9d60b4072038f1e30ee4e1903cb5a53bf1b879b
Author: Yi Wang <wang.yi59@zte.com.cn>
Date:   Wed Oct 31 15:41:42 2018 +0800

    clk: boston: unregister clks on failure in clk_boston_setup()
    
    [ Upstream commit 8b627f616ed63dcaf922369fc14a5daf8ad03038 ]
    
    The registered clks should unregister when something wrong happens
    before going out in function clk_boston_setup().
    
    Signed-off-by: Yi Wang <wang.yi59@zte.com.cn>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a460bf7d68f305a11f87c5dc2ca282e4b8656120
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Dec 26 15:31:56 2018 +0100

    HID: i2c-hid: Add Odys Winbook 13 to descriptor override
    
    [ Upstream commit f8f807441eefddc3c6d8a378421f0ede6361d565 ]
    
    The Odys Winbook 13 uses a SIPODEV SP1064 touchpad, which does not
    supply descriptors, add this to the DMI descriptor override list, fixing
    the touchpad not working.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1526312
    Reported-by: Rene Wagner <redhatbugzilla@callerid.de>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 290acb8c92b543a969111220c6b3c1322ac9e39d
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Fri Jan 25 11:59:01 2019 -0800

    x86/cpu: Add Atom Tremont (Jacobsville)
    
    [ Upstream commit 00ae831dfe4474ef6029558f5eb3ef0332d80043 ]
    
    Add the Atom Tremont model number to the Intel family list.
    
    [ Tony: Also update comment at head of file to say "_X" suffix is
      also used for microserver parts. ]
    
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Aristeu Rozanski <aris@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Cc: Megha Dey <megha.dey@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
    Cc: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20190125195902.17109-4-tony.luck@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 43e10b379f94ebcf1b2d2564d10c623083f81703
Author: Julian Sax <jsbc@gmx.de>
Date:   Wed Oct 24 22:40:26 2018 +0200

    HID: i2c-hid: add Direkt-Tek DTLAPY133-1 to descriptor override
    
    [ Upstream commit 399474e4c1100bca264ed14fa3ad0d68fab484d8 ]
    
    This device uses the SIPODEV SP1064 touchpad, which does not
    supply descriptors, so it has to be added to the override list.
    
    Reported-by: Tim Aldridge <taldridge@mac.com>
    Signed-off-by: Julian Sax <jsbc@gmx.de>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 578828ddb50647124253017742731ae2de7844e6
Author: David Hildenbrand <david@redhat.com>
Date:   Tue Oct 30 15:10:39 2018 -0700

    powerpc/powernv: hold device_hotplug_lock when calling memtrace_offline_pages()
    
    [ Upstream commit 5666848774ef43d3db5151ec518f1deb63515c20 ]
    
    Let's perform all checking + offlining + removing under
    device_hotplug_lock, so nobody can mess with these devices via sysfs
    concurrently.
    
    [david@redhat.com: take device_hotplug_lock outside of loop]
      Link: http://lkml.kernel.org/r/20180927092554.13567-6-david@redhat.com
    Link: http://lkml.kernel.org/r/20180925091457.28651-6-david@redhat.com
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Pavel Tatashin <pavel.tatashin@microsoft.com>
    Reviewed-by: Rashmica Gupta <rashmica.g@gmail.com>
    Acked-by: Balbir Singh <bsingharora@gmail.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Rashmica Gupta <rashmica.g@gmail.com>
    Cc: Michael Neuling <mikey@neuling.org>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: John Allen <jallen@linux.vnet.ibm.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Kate Stewart <kstewart@linuxfoundation.org>
    Cc: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: Len Brown <lenb@kernel.org>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Mathieu Malaterre <malat@debian.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Philippe Ombredanne <pombredanne@nexb.com>
    Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: YASUAKI ISHIMATSU <yasu.isimatu@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9fae7f0a49ddfe8ebc8181e321f42e90fe15b69e
Author: Phil Elwell <phil@raspberrypi.org>
Date:   Wed Sep 12 15:31:56 2018 +0100

    sc16is7xx: Fix for "Unexpected interrupt: 8"
    
    [ Upstream commit 30ec514d440cf2c472c8e4b0079af2c731f71a3e ]
    
    The SC16IS752 has an Enhanced Feature Register which is aliased at the
    same address as the Interrupt Identification Register; accessing it
    requires that a magic value is written to the Line Configuration
    Register. If an interrupt is raised while the EFR is mapped in then
    the ISR won't be able to access the IIR, leading to the "Unexpected
    interrupt" error messages.
    
    Avoid the problem by claiming a mutex around accesses to the EFR
    register, also claiming the mutex in the interrupt handler work
    item (this is equivalent to disabling interrupts to interlock against
    a non-threaded interrupt handler).
    
    See: https://github.com/raspberrypi/linux/issues/2529
    
    Signed-off-by: Phil Elwell <phil@raspberrypi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bedb8799772d9a41a3fcefe83117797589c47c08
Author: James Smart <jsmart2021@gmail.com>
Date:   Thu Nov 29 16:09:31 2018 -0800

    scsi: lpfc: Fix a duplicate 0711 log message number.
    
    [ Upstream commit 2c4c91415a05677acc5c8131a5eb472d4aa96ae1 ]
    
    Renumber one of the 0711 log messages so there isn't a duplication.
    
    Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c9c4c606965387206a3993d7cc556aa66d53c647
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Sun Jan 27 17:59:53 2019 -0800

    f2fs: flush quota blocks after turnning it off
    
    [ Upstream commit 0e0667b625cf64243df83171bff61f9d350b9ca5 ]
    
    After quota_off, we'll get some dirty blocks. If put_super don't have a chance
    to flush them by checkpoint, it causes NULL pointer exception in end_io after
    iput(node_inode). (e.g., by checkpoint=disable)
    
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1de0fd828661a068a574381c5bcd3b0a19f522c5
Author: Kent Overstreet <kent.overstreet@gmail.com>
Date:   Tue Jun 5 05:26:33 2018 -0400

    dm: Use kzalloc for all structs with embedded biosets/mempools
    
    [ Upstream commit d377535405686f735b90a8ad4ba269484cd7c96e ]
    
    mempool_init()/bioset_init() require that the mempools/biosets be zeroed
    first; they probably should not _require_ this, but not allocating those
    structs with kzalloc is a fairly nonsensical thing to do (calling
    mempool_exit()/bioset_exit() on an uninitialized mempool/bioset is legal
    and safe, but only works if said memory was zeroed.)
    
    Acked-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d14a94d03cc99c9d7df1ad7081701d7702680b8c
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Wed Oct 2 06:15:53 2019 -0400

    dm snapshot: rework COW throttling to fix deadlock
    
    [ Upstream commit b21555786f18cd77f2311ad89074533109ae3ffa ]
    
    Commit 721b1d98fb517a ("dm snapshot: Fix excessive memory usage and
    workqueue stalls") introduced a semaphore to limit the maximum number of
    in-flight kcopyd (COW) jobs.
    
    The implementation of this throttling mechanism is prone to a deadlock:
    
    1. One or more threads write to the origin device causing COW, which is
       performed by kcopyd.
    
    2. At some point some of these threads might reach the s->cow_count
       semaphore limit and block in down(&s->cow_count), holding a read lock
       on _origins_lock.
    
    3. Someone tries to acquire a write lock on _origins_lock, e.g.,
       snapshot_ctr(), which blocks because the threads at step (2) already
       hold a read lock on it.
    
    4. A COW operation completes and kcopyd runs dm-snapshot's completion
       callback, which ends up calling pending_complete().
       pending_complete() tries to resubmit any deferred origin bios. This
       requires acquiring a read lock on _origins_lock, which blocks.
    
       This happens because the read-write semaphore implementation gives
       priority to writers, meaning that as soon as a writer tries to enter
       the critical section, no readers will be allowed in, until all
       writers have completed their work.
    
       So, pending_complete() waits for the writer at step (3) to acquire
       and release the lock. This writer waits for the readers at step (2)
       to release the read lock and those readers wait for
       pending_complete() (the kcopyd thread) to signal the s->cow_count
       semaphore: DEADLOCK.
    
    The above was thoroughly analyzed and documented by Nikos Tsironis as
    part of his initial proposal for fixing this deadlock, see:
    https://www.redhat.com/archives/dm-devel/2019-October/msg00001.html
    
    Fix this deadlock by reworking COW throttling so that it waits without
    holding any locks. Add a variable 'in_progress' that counts how many
    kcopyd jobs are running. A function wait_for_in_progress() will sleep if
    'in_progress' is over the limit. It drops _origins_lock in order to
    avoid the deadlock.
    
    Reported-by: Guruswamy Basavaiah <guru2018@gmail.com>
    Reported-by: Nikos Tsironis <ntsironis@arrikto.com>
    Reviewed-by: Nikos Tsironis <ntsironis@arrikto.com>
    Tested-by: Nikos Tsironis <ntsironis@arrikto.com>
    Fixes: 721b1d98fb51 ("dm snapshot: Fix excessive memory usage and workqueue stalls")
    Cc: stable@vger.kernel.org # v5.0+
    Depends-on: 4a3f111a73a8c ("dm snapshot: introduce account_start_copy() and account_end_copy()")
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cd83f10afd9d7c0e37b46b8d0c261a31499db210
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Wed Oct 2 06:14:17 2019 -0400

    dm snapshot: introduce account_start_copy() and account_end_copy()
    
    [ Upstream commit a2f83e8b0c82c9500421a26c49eb198b25fcdea3 ]
    
    This simple refactoring moves code for modifying the semaphore cow_count
    into separate functions to prepare for changes that will extend these
    methods to provide for a more sophisticated mechanism for COW
    throttling.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Reviewed-by: Nikos Tsironis <ntsironis@arrikto.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f62931ec9ded76f0f16359d7b58dbb271326b4ac
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Thu Nov 23 16:15:43 2017 -0500

    dm snapshot: use mutex instead of rw_semaphore
    
    [ Upstream commit ae1093be5a0ef997833e200a0dafb9ed0b1ff4fe ]
    
    The rw_semaphore is acquired for read only in two places, neither is
    performance-critical.  So replace it with a mutex -- which is more
    efficient.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f7c80e49524b3e45ddf142b9cfa9a639fb229899
Author: Sasha Levin <sashal@kernel.org>
Date:   Mon Oct 28 04:59:17 2019 -0400

    zram: fix race between backing_dev_show and backing_dev_store
    
    [ Upstream commit f7daefe4231e57381d92c2e2ad905a899c28e402 ]
    
    CPU0:                                  CPU1:
    backing_dev_show                       backing_dev_store
        ......                                 ......
        file = zram->backing_dev;
        down_read(&zram->init_lock);           down_read(&zram->init_init_lock)
        file_path(file, ...);                  zram->backing_dev = backing_dev;
        up_read(&zram->init_lock);             up_read(&zram->init_lock);
    
    gets the value of zram->backing_dev too early in backing_dev_show, which
    resultin the value being NULL at the beginning, and not NULL later.
    
    backtrace:
      d_path+0xcc/0x174
      file_path+0x10/0x18
      backing_dev_show+0x40/0xb4
      dev_attr_show+0x20/0x54
      sysfs_kf_seq_show+0x9c/0x10c
      kernfs_seq_show+0x28/0x30
      seq_read+0x184/0x488
      kernfs_fop_read+0x5c/0x1a4
      __vfs_read+0x44/0x128
      vfs_read+0xa0/0x138
      SyS_read+0x54/0xb4
    
    Link: http://lkml.kernel.org/r/1571046839-16814-1-git-send-email-chenwandun@huawei.com
    Signed-off-by: Chenwandun <chenwandun@huawei.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: <stable@vger.kernel.org>    [4.14+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>