commit 42327896f194f256e5a361e0069985bc8d209b42
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Oct 7 18:55:23 2019 +0200

    Linux 4.14.148

commit 43a2e8b309069d8b72bb7ac650600b65a7e0ba14
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Wed Sep 25 16:47:33 2019 -0700

    kexec: bail out upon SIGKILL when allocating memory.
    
    commit 7c3a6aedcd6aae0a32a527e68669f7dd667492d1 upstream.
    
    syzbot found that a thread can stall for minutes inside kexec_load() after
    that thread was killed by SIGKILL [1].  It turned out that the reproducer
    was trying to allocate 2408MB of memory using kimage_alloc_page() from
    kimage_load_normal_segment().  Let's check for SIGKILL before doing memory
    allocation.
    
    [1] https://syzkaller.appspot.com/bug?id=a0e3436829698d5824231251fad9d8e998f94f5e
    
    Link: http://lkml.kernel.org/r/993c9185-d324-2640-d061-bed2dd18b1f7@I-love.SAKURA.ne.jp
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Reported-by: syzbot <syzbot+8ab2d0f39fb79fe6ca40@syzkaller.appspotmail.com>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 958c41dc5eaf4f066e2da2c3829309d5cc346f07
Author: Andrey Konovalov <andreyknvl@google.com>
Date:   Mon Jul 29 16:35:01 2019 +0300

    NFC: fix attrs checks in netlink interface
    
    commit 18917d51472fe3b126a3a8f756c6b18085eb8130 upstream.
    
    nfc_genl_deactivate_target() relies on the NFC_ATTR_TARGET_INDEX
    attribute being present, but doesn't check whether it is actually
    provided by the user. Same goes for nfc_genl_fw_download() and
    NFC_ATTR_FIRMWARE_NAME.
    
    This patch adds appropriate checks.
    
    Found with syzkaller.
    
    Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 416a5d0346696d7d70ffeb5e51a911e6709c6575
Author: Eric Biggers <ebiggers@google.com>
Date:   Wed Aug 21 22:54:41 2019 -0700

    smack: use GFP_NOFS while holding inode_smack::smk_lock
    
    commit e5bfad3d7acc5702f32aafeb388362994f4d7bd0 upstream.
    
    inode_smack::smk_lock is taken during smack_d_instantiate(), which is
    called during a filesystem transaction when creating a file on ext4.
    Therefore to avoid a deadlock, all code that takes this lock must use
    GFP_NOFS, to prevent memory reclaim from waiting for the filesystem
    transaction to complete.
    
    Reported-by: syzbot+0eefc1e06a77d327a056@syzkaller.appspotmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca2cf05447866c4653243bfe3ce4d1114eaee953
Author: Jann Horn <jannh@google.com>
Date:   Thu Jul 4 20:44:44 2019 +0200

    Smack: Don't ignore other bprm->unsafe flags if LSM_UNSAFE_PTRACE is set
    
    commit 3675f052b43ba51b99b85b073c7070e083f3e6fb upstream.
    
    There is a logic bug in the current smack_bprm_set_creds():
    If LSM_UNSAFE_PTRACE is set, but the ptrace state is deemed to be
    acceptable (e.g. because the ptracer detached in the meantime), the other
    ->unsafe flags aren't checked. As far as I can tell, this means that
    something like the following could work (but I haven't tested it):
    
     - task A: create task B with fork()
     - task B: set NO_NEW_PRIVS
     - task B: install a seccomp filter that makes open() return 0 under some
       conditions
     - task B: replace fd 0 with a malicious library
     - task A: attach to task B with PTRACE_ATTACH
     - task B: execve() a file with an SMACK64EXEC extended attribute
     - task A: while task B is still in the middle of execve(), exit (which
       destroys the ptrace relationship)
    
    Make sure that if any flags other than LSM_UNSAFE_PTRACE are set in
    bprm->unsafe, we reject the execve().
    
    Cc: stable@vger.kernel.org
    Fixes: 5663884caab1 ("Smack: unify all ptrace accesses in the smack")
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c8a9950f1b3a400b3eabe55f686e38fa2086af40
Author: David Ahern <dsahern@gmail.com>
Date:   Fri Oct 4 08:03:09 2019 -0700

    ipv6: Handle missing host route in __ipv6_ifa_notify
    
    [ Upstream commit 2d819d250a1393a3e725715425ab70a0e0772a71 ]
    
    Rajendra reported a kernel panic when a link was taken down:
    
        [ 6870.263084] BUG: unable to handle kernel NULL pointer dereference at 00000000000000a8
        [ 6870.271856] IP: [<ffffffff8efc5764>] __ipv6_ifa_notify+0x154/0x290
    
        <snip>
    
        [ 6870.570501] Call Trace:
        [ 6870.573238] [<ffffffff8efc58c6>] ? ipv6_ifa_notify+0x26/0x40
        [ 6870.579665] [<ffffffff8efc98ec>] ? addrconf_dad_completed+0x4c/0x2c0
        [ 6870.586869] [<ffffffff8efe70c6>] ? ipv6_dev_mc_inc+0x196/0x260
        [ 6870.593491] [<ffffffff8efc9c6a>] ? addrconf_dad_work+0x10a/0x430
        [ 6870.600305] [<ffffffff8f01ade4>] ? __switch_to_asm+0x34/0x70
        [ 6870.606732] [<ffffffff8ea93a7a>] ? process_one_work+0x18a/0x430
        [ 6870.613449] [<ffffffff8ea93d6d>] ? worker_thread+0x4d/0x490
        [ 6870.619778] [<ffffffff8ea93d20>] ? process_one_work+0x430/0x430
        [ 6870.626495] [<ffffffff8ea99dd9>] ? kthread+0xd9/0xf0
        [ 6870.632145] [<ffffffff8f01ade4>] ? __switch_to_asm+0x34/0x70
        [ 6870.638573] [<ffffffff8ea99d00>] ? kthread_park+0x60/0x60
        [ 6870.644707] [<ffffffff8f01ae77>] ? ret_from_fork+0x57/0x70
        [ 6870.650936] Code: 31 c0 31 d2 41 b9 20 00 08 02 b9 09 00 00 0
    
    addrconf_dad_work is kicked to be scheduled when a device is brought
    up. There is a race between addrcond_dad_work getting scheduled and
    taking the rtnl lock and a process taking the link down (under rtnl).
    The latter removes the host route from the inet6_addr as part of
    addrconf_ifdown which is run for NETDEV_DOWN. The former attempts
    to use the host route in __ipv6_ifa_notify. If the down event removes
    the host route due to the race to the rtnl, then the BUG listed above
    occurs.
    
    Since the DAD sequence can not be aborted, add a check for the missing
    host route in __ipv6_ifa_notify. The only way this should happen is due
    to the previously mentioned race. The host route is created when the
    address is added to an interface; it is only removed on a down event
    where the address is kept. Add a warning if the host route is missing
    AND the device is up; this is a situation that should never happen.
    
    Fixes: f1705ec197e7 ("net: ipv6: Make address flushing on ifdown optional")
    Reported-by: Rajendra Dendukuri <rajendra.dendukuri@broadcom.com>
    Signed-off-by: David Ahern <dsahern@gmail.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f35e1a1dcb65d81d3268d22cc3cd934ead6c77d
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Sep 26 18:24:43 2019 -0700

    sch_cbq: validate TCA_CBQ_WRROPT to avoid crash
    
    [ Upstream commit e9789c7cc182484fc031fd88097eb14cb26c4596 ]
    
    syzbot reported a crash in cbq_normalize_quanta() caused
    by an out of range cl->priority.
    
    iproute2 enforces this check, but malicious users do not.
    
    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:
    CPU: 1 PID: 26447 Comm: syz-executor.1 Not tainted 5.3+ #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:cbq_normalize_quanta.part.0+0x1fd/0x430 net/sched/sch_cbq.c:902
    RSP: 0018:ffff8801a5c333b0 EFLAGS: 00010206
    RAX: 0000000020000003 RBX: 00000000fffffff8 RCX: ffffc9000712f000
    RDX: 00000000000043bf RSI: ffffffff83be8962 RDI: 0000000100000018
    RBP: ffff8801a5c33420 R08: 000000000000003a R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000000 R12: 00000000000002ef
    R13: ffff88018da95188 R14: dffffc0000000000 R15: 0000000000000015
    FS:  00007f37d26b1700(0000) GS:ffff8801dad00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000004c7cec CR3: 00000001bcd0a006 CR4: 00000000001626f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     [<ffffffff83be9d57>] cbq_normalize_quanta include/net/pkt_sched.h:27 [inline]
     [<ffffffff83be9d57>] cbq_addprio net/sched/sch_cbq.c:1097 [inline]
     [<ffffffff83be9d57>] cbq_set_wrr+0x2d7/0x450 net/sched/sch_cbq.c:1115
     [<ffffffff83bee8a7>] cbq_change_class+0x987/0x225b net/sched/sch_cbq.c:1537
     [<ffffffff83b96985>] tc_ctl_tclass+0x555/0xcd0 net/sched/sch_api.c:2329
     [<ffffffff83a84655>] rtnetlink_rcv_msg+0x485/0xc10 net/core/rtnetlink.c:5248
     [<ffffffff83cadf0a>] netlink_rcv_skb+0x17a/0x460 net/netlink/af_netlink.c:2510
     [<ffffffff83a7db6d>] rtnetlink_rcv+0x1d/0x30 net/core/rtnetlink.c:5266
     [<ffffffff83cac2c6>] netlink_unicast_kernel net/netlink/af_netlink.c:1324 [inline]
     [<ffffffff83cac2c6>] netlink_unicast+0x536/0x720 net/netlink/af_netlink.c:1350
     [<ffffffff83cacd4a>] netlink_sendmsg+0x89a/0xd50 net/netlink/af_netlink.c:1939
     [<ffffffff8399d46e>] sock_sendmsg_nosec net/socket.c:673 [inline]
     [<ffffffff8399d46e>] sock_sendmsg+0x12e/0x170 net/socket.c:684
     [<ffffffff8399f1fd>] ___sys_sendmsg+0x81d/0x960 net/socket.c:2359
     [<ffffffff839a2d05>] __sys_sendmsg+0x105/0x1d0 net/socket.c:2397
     [<ffffffff839a2df9>] SYSC_sendmsg net/socket.c:2406 [inline]
     [<ffffffff839a2df9>] SyS_sendmsg+0x29/0x30 net/socket.c:2404
     [<ffffffff8101ccc8>] do_syscall_64+0x528/0x770 arch/x86/entry/common.c:305
     [<ffffffff84400091>] entry_SYSCALL_64_after_hwframe+0x42/0xb7
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    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 227db8e4c34674124ee6e4a9d534f3a0cc22304c
Author: Tuong Lien <tuong.t.lien@dektech.com.au>
Date:   Wed Oct 2 18:49:43 2019 +0700

    tipc: fix unlimited bundling of small messages
    
    [ Upstream commit e95584a889e1902fdf1ded9712e2c3c3083baf96 ]
    
    We have identified a problem with the "oversubscription" policy in the
    link transmission code.
    
    When small messages are transmitted, and the sending link has reached
    the transmit window limit, those messages will be bundled and put into
    the link backlog queue. However, bundles of data messages are counted
    at the 'CRITICAL' level, so that the counter for that level, instead of
    the counter for the real, bundled message's level is the one being
    increased.
    Subsequent, to-be-bundled data messages at non-CRITICAL levels continue
    to be tested against the unchanged counter for their own level, while
    contributing to an unrestrained increase at the CRITICAL backlog level.
    
    This leaves a gap in congestion control algorithm for small messages
    that can result in starvation for other users or a "real" CRITICAL
    user. Even that eventually can lead to buffer exhaustion & link reset.
    
    We fix this by keeping a 'target_bskb' buffer pointer at each levels,
    then when bundling, we only bundle messages at the same importance
    level only. This way, we know exactly how many slots a certain level
    have occupied in the queue, so can manage level congestion accurately.
    
    By bundling messages at the same level, we even have more benefits. Let
    consider this:
    - One socket sends 64-byte messages at the 'CRITICAL' level;
    - Another sends 4096-byte messages at the 'LOW' level;
    
    When a 64-byte message comes and is bundled the first time, we put the
    overhead of message bundle to it (+ 40-byte header, data copy, etc.)
    for later use, but the next message can be a 4096-byte one that cannot
    be bundled to the previous one. This means the last bundle carries only
    one payload message which is totally inefficient, as for the receiver
    also! Later on, another 64-byte message comes, now we make a new bundle
    and the same story repeats...
    
    With the new bundling algorithm, this will not happen, the 64-byte
    messages will be bundled together even when the 4096-byte message(s)
    comes in between. However, if the 4096-byte messages are sent at the
    same level i.e. 'CRITICAL', the bundling algorithm will again cause the
    same overhead.
    
    Also, the same will happen even with only one socket sending small
    messages at a rate close to the link transmit's one, so that, when one
    message is bundled, it's transmitted shortly. Then, another message
    comes, a new bundle is created and so on...
    
    We will solve this issue radically by another patch.
    
    Fixes: 365ad353c256 ("tipc: reduce risk of user starvation during link congestion")
    Reported-by: Hoang Le <hoang.h.le@dektech.com.au>
    Acked-by: Jon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: Tuong Lien <tuong.t.lien@dektech.com.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 500bf0fa349a1627b3507fe41d80a8f838f144ea
Author: Dongli Zhang <dongli.zhang@oracle.com>
Date:   Tue Oct 1 21:56:41 2019 +0800

    xen-netfront: do not use ~0U as error return value for xennet_fill_frags()
    
    [ Upstream commit a761129e3625688310aecf26e1be9e98e85f8eb5 ]
    
    xennet_fill_frags() uses ~0U as return value when the sk_buff is not able
    to cache extra fragments. This is incorrect because the return type of
    xennet_fill_frags() is RING_IDX and 0xffffffff is an expected value for
    ring buffer index.
    
    In the situation when the rsp_cons is approaching 0xffffffff, the return
    value of xennet_fill_frags() may become 0xffffffff which xennet_poll() (the
    caller) would regard as error. As a result, queue->rx.rsp_cons is set
    incorrectly because it is updated only when there is error. If there is no
    error, xennet_poll() would be responsible to update queue->rx.rsp_cons.
    Finally, queue->rx.rsp_cons would point to the rx ring buffer entries whose
    queue->rx_skbs[i] and queue->grant_rx_ref[i] are already cleared to NULL.
    This leads to NULL pointer access in the next iteration to process rx ring
    buffer entries.
    
    The symptom is similar to the one fixed in
    commit 00b368502d18 ("xen-netfront: do not assume sk_buff_head list is
    empty in error handling").
    
    This patch changes the return type of xennet_fill_frags() to indicate
    whether it is successful or failed. The queue->rx.rsp_cons will be
    always updated inside this function.
    
    Fixes: ad4f15dc2c70 ("xen/netfront: don't bug in case of too many frags")
    Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4e58dc5f8b5ae154853887ffda7a2380243bd64
Author: Dotan Barak <dotanb@dev.mellanox.co.il>
Date:   Tue Oct 1 10:21:02 2019 -0700

    net/rds: Fix error handling in rds_ib_add_one()
    
    [ Upstream commit d64bf89a75b65f83f06be9fb8f978e60d53752db ]
    
    rds_ibdev:ipaddr_list and rds_ibdev:conn_list are initialized
    after allocation some resources such as protection domain.
    If allocation of such resources fail, then these uninitialized
    variables are accessed in rds_ib_dev_free() in failure path. This
    can potentially crash the system. The code has been updated to
    initialize these variables very early in the function.
    
    Signed-off-by: Dotan Barak <dotanb@dev.mellanox.co.il>
    Signed-off-by: Sudhakar Dindukurti <sudhakar.dindukurti@oracle.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 221b98bdbfff53b955b8f4db9f6c4eb31d5473c5
Author: Dexuan Cui <decui@microsoft.com>
Date:   Mon Sep 30 18:43:50 2019 +0000

    vsock: Fix a lockdep warning in __vsock_release()
    
    [ Upstream commit 0d9138ffac24cf8b75366ede3a68c951e6dcc575 ]
    
    Lockdep is unhappy if two locks from the same class are held.
    
    Fix the below warning for hyperv and virtio sockets (vmci socket code
    doesn't have the issue) by using lock_sock_nested() when __vsock_release()
    is called recursively:
    
    ============================================
    WARNING: possible recursive locking detected
    5.3.0+ #1 Not tainted
    --------------------------------------------
    server/1795 is trying to acquire lock:
    ffff8880c5158990 (sk_lock-AF_VSOCK){+.+.}, at: hvs_release+0x10/0x120 [hv_sock]
    
    but task is already holding lock:
    ffff8880c5158150 (sk_lock-AF_VSOCK){+.+.}, at: __vsock_release+0x2e/0xf0 [vsock]
    
    other info that might help us debug this:
     Possible unsafe locking scenario:
    
           CPU0
           ----
      lock(sk_lock-AF_VSOCK);
      lock(sk_lock-AF_VSOCK);
    
     *** DEADLOCK ***
    
     May be due to missing lock nesting notation
    
    2 locks held by server/1795:
     #0: ffff8880c5d05ff8 (&sb->s_type->i_mutex_key#10){+.+.}, at: __sock_release+0x2d/0xa0
     #1: ffff8880c5158150 (sk_lock-AF_VSOCK){+.+.}, at: __vsock_release+0x2e/0xf0 [vsock]
    
    stack backtrace:
    CPU: 5 PID: 1795 Comm: server Not tainted 5.3.0+ #1
    Call Trace:
     dump_stack+0x67/0x90
     __lock_acquire.cold.67+0xd2/0x20b
     lock_acquire+0xb5/0x1c0
     lock_sock_nested+0x6d/0x90
     hvs_release+0x10/0x120 [hv_sock]
     __vsock_release+0x24/0xf0 [vsock]
     __vsock_release+0xa0/0xf0 [vsock]
     vsock_release+0x12/0x30 [vsock]
     __sock_release+0x37/0xa0
     sock_close+0x14/0x20
     __fput+0xc1/0x250
     task_work_run+0x98/0xc0
     do_exit+0x344/0xc60
     do_group_exit+0x47/0xb0
     get_signal+0x15c/0xc50
     do_signal+0x30/0x720
     exit_to_usermode_loop+0x50/0xa0
     do_syscall_64+0x24e/0x270
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x7f4184e85f31
    
    Tested-by: Stefano Garzarella <sgarzare@redhat.com>
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9701a14fd98ea2f3f169fb7b71261421a1997576
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Oct 4 10:34:45 2019 -0700

    sch_dsmark: fix potential NULL deref in dsmark_init()
    
    [ Upstream commit 474f0813a3002cb299bb73a5a93aa1f537a80ca8 ]
    
    Make sure TCA_DSMARK_INDICES was provided by the user.
    
    syzbot reported :
    
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] PREEMPT SMP KASAN
    CPU: 1 PID: 8799 Comm: syz-executor235 Not tainted 5.3.0+ #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:nla_get_u16 include/net/netlink.h:1501 [inline]
    RIP: 0010:dsmark_init net/sched/sch_dsmark.c:364 [inline]
    RIP: 0010:dsmark_init+0x193/0x640 net/sched/sch_dsmark.c:339
    Code: 85 db 58 0f 88 7d 03 00 00 e8 e9 1a ac fb 48 8b 9d 70 ff ff ff 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 04 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 83 e0 07 83 c0 01 38 d0 7c 08 84 d2 0f 85 ca
    RSP: 0018:ffff88809426f3b8 EFLAGS: 00010247
    RAX: dffffc0000000000 RBX: 0000000000000000 RCX: ffffffff85c6eb09
    RDX: 0000000000000000 RSI: ffffffff85c6eb17 RDI: 0000000000000004
    RBP: ffff88809426f4b0 R08: ffff88808c4085c0 R09: ffffed1015d26159
    R10: ffffed1015d26158 R11: ffff8880ae930ac7 R12: ffff8880a7e96940
    R13: dffffc0000000000 R14: ffff88809426f8c0 R15: 0000000000000000
    FS:  0000000001292880(0000) GS:ffff8880ae900000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000020000080 CR3: 000000008ca1b000 CR4: 00000000001406e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     qdisc_create+0x4ee/0x1210 net/sched/sch_api.c:1237
     tc_modify_qdisc+0x524/0x1c50 net/sched/sch_api.c:1653
     rtnetlink_rcv_msg+0x463/0xb00 net/core/rtnetlink.c:5223
     netlink_rcv_skb+0x177/0x450 net/netlink/af_netlink.c:2477
     rtnetlink_rcv+0x1d/0x30 net/core/rtnetlink.c:5241
     netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
     netlink_unicast+0x531/0x710 net/netlink/af_netlink.c:1328
     netlink_sendmsg+0x8a5/0xd60 net/netlink/af_netlink.c:1917
     sock_sendmsg_nosec net/socket.c:637 [inline]
     sock_sendmsg+0xd7/0x130 net/socket.c:657
     ___sys_sendmsg+0x803/0x920 net/socket.c:2311
     __sys_sendmsg+0x105/0x1d0 net/socket.c:2356
     __do_sys_sendmsg net/socket.c:2365 [inline]
     __se_sys_sendmsg net/socket.c:2363 [inline]
     __x64_sys_sendmsg+0x78/0xb0 net/socket.c:2363
     do_syscall_64+0xfa/0x760 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x440369
    
    Fixes: 758cc43c6d73 ("[PKT_SCHED]: Fix dsmark to apply changes consistent")
    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 af849a18cdc741261fe61d2d8423be0865af3334
Author: Reinhard Speyerer <rspmn@arcor.de>
Date:   Thu Oct 3 18:34:39 2019 +0200

    qmi_wwan: add support for Cinterion CLS8 devices
    
    [ Upstream commit cf74ac6db25d4002089e85cc623ad149ecc25614 ]
    
    Add support for Cinterion CLS8 devices.
    Use QMI_QUIRK_SET_DTR as required for Qualcomm MDM9x07 chipsets.
    
    T:  Bus=01 Lev=03 Prnt=05 Port=01 Cnt=02 Dev#= 25 Spd=480  MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1e2d ProdID=00b0 Rev= 3.18
    S:  Manufacturer=GEMALTO
    S:  Product=USB Modem
    C:* #Ifs= 5 Cfg#= 1 Atr=80 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Signed-off-by: Reinhard Speyerer <rspmn@arcor.de>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7b1e143d1ade0881d8e5670f7d6789be7d068ad
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Oct 4 11:08:34 2019 -0700

    nfc: fix memory leak in llcp_sock_bind()
    
    [ Upstream commit a0c2dc1fe63e2869b74c1c7f6a81d1745c8a695d ]
    
    sysbot reported a memory leak after a bind() has failed.
    
    While we are at it, abort the operation if kmemdup() has failed.
    
    BUG: memory leak
    unreferenced object 0xffff888105d83ec0 (size 32):
      comm "syz-executor067", pid 7207, jiffies 4294956228 (age 19.430s)
      hex dump (first 32 bytes):
        00 69 6c 65 20 72 65 61 64 00 6e 65 74 3a 5b 34  .ile read.net:[4
        30 32 36 35 33 33 30 39 37 5d 00 00 00 00 00 00  026533097]......
      backtrace:
        [<0000000036bac473>] kmemleak_alloc_recursive /./include/linux/kmemleak.h:43 [inline]
        [<0000000036bac473>] slab_post_alloc_hook /mm/slab.h:522 [inline]
        [<0000000036bac473>] slab_alloc /mm/slab.c:3319 [inline]
        [<0000000036bac473>] __do_kmalloc /mm/slab.c:3653 [inline]
        [<0000000036bac473>] __kmalloc_track_caller+0x169/0x2d0 /mm/slab.c:3670
        [<000000000cd39d07>] kmemdup+0x27/0x60 /mm/util.c:120
        [<000000008e57e5fc>] kmemdup /./include/linux/string.h:432 [inline]
        [<000000008e57e5fc>] llcp_sock_bind+0x1b3/0x230 /net/nfc/llcp_sock.c:107
        [<000000009cb0b5d3>] __sys_bind+0x11c/0x140 /net/socket.c:1647
        [<00000000492c3bbc>] __do_sys_bind /net/socket.c:1658 [inline]
        [<00000000492c3bbc>] __se_sys_bind /net/socket.c:1656 [inline]
        [<00000000492c3bbc>] __x64_sys_bind+0x1e/0x30 /net/socket.c:1656
        [<0000000008704b2a>] do_syscall_64+0x76/0x1a0 /arch/x86/entry/common.c:296
        [<000000009f4c57a4>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 30cc4587659e ("NFC: Move LLCP code to the NFC top level diirectory")
    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 1e24f532c736b3f99f3fe7c4be66414c40df5f02
Author: Martin KaFai Lau <kafai@fb.com>
Date:   Fri Sep 27 16:00:31 2019 -0700

    net: Unpublish sk from sk_reuseport_cb before call_rcu
    
    [ Upstream commit 8c7138b33e5c690c308b2a7085f6313fdcb3f616 ]
    
    The "reuse->sock[]" array is shared by multiple sockets.  The going away
    sk must unpublish itself from "reuse->sock[]" before making call_rcu()
    call.  However, this unpublish-action is currently done after a grace
    period and it may cause use-after-free.
    
    The fix is to move reuseport_detach_sock() to sk_destruct().
    Due to the above reason, any socket with sk_reuseport_cb has
    to go through the rcu grace period before freeing it.
    
    It is a rather old bug (~3 yrs).  The Fixes tag is not necessary
    the right commit but it is the one that introduced the SOCK_RCU_FREE
    logic and this fix is depending on it.
    
    Fixes: a4298e4522d6 ("net: add SOCK_RCU_FREE socket flag")
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Suggested-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: Martin KaFai Lau <kafai@fb.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dca8aabd7198e1aa7210ff2de081befba79d0d41
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Fri Oct 4 15:24:39 2019 -0500

    net: qlogic: Fix memory leak in ql_alloc_large_buffers
    
    [ Upstream commit 1acb8f2a7a9f10543868ddd737e37424d5c36cf4 ]
    
    In ql_alloc_large_buffers, a new skb is allocated via netdev_alloc_skb.
    This skb should be released if pci_dma_mapping_error fails.
    
    Fixes: 0f8ab89e825f ("qla3xxx: Check return code from pci_map_single() in ql_release_to_lrg_buf_free_list(), ql_populate_free_queue(), ql_alloc_large_buffers(), and ql3xxx_send()")
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 562c2ff7e38a6b2e1afc4ee6826be13b25216d55
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Fri Oct 4 15:11:17 2019 +0200

    net: ipv4: avoid mixed n_redirects and rate_tokens usage
    
    [ Upstream commit b406472b5ad79ede8d10077f0c8f05505ace8b6d ]
    
    Since commit c09551c6ff7f ("net: ipv4: use a dedicated counter
    for icmp_v4 redirect packets") we use 'n_redirects' to account
    for redirect packets, but we still use 'rate_tokens' to compute
    the redirect packets exponential backoff.
    
    If the device sent to the relevant peer any ICMP error packet
    after sending a redirect, it will also update 'rate_token' according
    to the leaking bucket schema; typically 'rate_token' will raise
    above BITS_PER_LONG and the redirect packets backoff algorithm
    will produce undefined behavior.
    
    Fix the issue using 'n_redirects' to compute the exponential backoff
    in ip_rt_send_redirect().
    
    Note that we still clear rate_tokens after a redirect silence period,
    to avoid changing an established behaviour.
    
    The root cause predates git history; before the mentioned commit in
    the critical scenario, the kernel stopped sending redirects, after
    the mentioned commit the behavior more randomic.
    
    Reported-by: Xiumei Mu <xmu@redhat.com>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Fixes: c09551c6ff7f ("net: ipv4: use a dedicated counter for icmp_v4 redirect packets")
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Acked-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33b301a1bdc465f3e56f340fae241f25dbcdef9c
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Oct 2 09:38:55 2019 -0700

    ipv6: drop incoming packets having a v4mapped source address
    
    [ Upstream commit 6af1799aaf3f1bc8defedddfa00df3192445bbf3 ]
    
    This began with a syzbot report. syzkaller was injecting
    IPv6 TCP SYN packets having a v4mapped source address.
    
    After an unsuccessful 4-tuple lookup, TCP creates a request
    socket (SYN_RECV) and calls reqsk_queue_hash_req()
    
    reqsk_queue_hash_req() calls sk_ehashfn(sk)
    
    At this point we have AF_INET6 sockets, and the heuristic
    used by sk_ehashfn() to either hash the IPv4 or IPv6 addresses
    is to use ipv6_addr_v4mapped(&sk->sk_v6_daddr)
    
    For the particular spoofed packet, we end up hashing V4 addresses
    which were not initialized by the TCP IPv6 stack, so KMSAN fired
    a warning.
    
    I first fixed sk_ehashfn() to test both source and destination addresses,
    but then faced various problems, including user-space programs
    like packetdrill that had similar assumptions.
    
    Instead of trying to fix the whole ecosystem, it is better
    to admit that we have a dual stack behavior, and that we
    can not build linux kernels without V4 stack anyway.
    
    The dual stack API automatically forces the traffic to be IPv4
    if v4mapped addresses are used at bind() or connect(), so it makes
    no sense to allow IPv6 traffic to use the same v4mapped class.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Florian Westphal <fw@strlen.de>
    Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
    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 78c014433cb9a8be74a99abab1d7881d047dd8cc
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Sep 30 17:12:41 2019 +0200

    hso: fix NULL-deref on tty open
    
    [ Upstream commit 8353da9fa69722b54cba82b2ec740afd3d438748 ]
    
    Fix NULL-pointer dereference on tty open due to a failure to handle a
    missing interrupt-in endpoint when probing modem ports:
    
            BUG: kernel NULL pointer dereference, address: 0000000000000006
            ...
            RIP: 0010:tiocmget_submit_urb+0x1c/0xe0 [hso]
            ...
            Call Trace:
            hso_start_serial_device+0xdc/0x140 [hso]
            hso_serial_open+0x118/0x1b0 [hso]
            tty_open+0xf1/0x490
    
    Fixes: 542f54823614 ("tty: Modem functions for the HSO driver")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 881d4609006d2dc59a9fc04739ce042fcf7888c9
Author: Haishuang Yan <yanhaishuang@cmss.chinamobile.com>
Date:   Fri Sep 27 14:58:20 2019 +0800

    erspan: remove the incorrect mtu limit for erspan
    
    [ Upstream commit 0e141f757b2c78c983df893e9993313e2dc21e38 ]
    
    erspan driver calls ether_setup(), after commit 61e84623ace3
    ("net: centralize net_device min/max MTU checking"), the range
    of mtu is [min_mtu, max_mtu], which is [68, 1500] by default.
    
    It causes the dev mtu of the erspan device to not be greater
    than 1500, this limit value is not correct for ipgre tap device.
    
    Tested:
    Before patch:
    # ip link set erspan0 mtu 1600
    Error: mtu greater than device maximum.
    After patch:
    # ip link set erspan0 mtu 1600
    # ip -d link show erspan0
    21: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1600 qdisc noop state DOWN
    mode DEFAULT group default qlen 1000
        link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 0
    
    Fixes: 61e84623ace3 ("net: centralize net_device min/max MTU checking")
    Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 382aa3a910a6ea6073b22432b688ce09e7116705
Author: Vishal Kulkarni <vishal@chelsio.com>
Date:   Fri Oct 4 04:06:15 2019 +0530

    cxgb4:Fix out-of-bounds MSI-X info array access
    
    [ Upstream commit 6b517374f4ea5a3c6e307e1219ec5f35d42e6d00 ]
    
    When fetching free MSI-X vectors for ULDs, check for the error code
    before accessing MSI-X info array. Otherwise, an out-of-bounds access is
    attempted, which results in kernel panic.
    
    Fixes: 94cdb8bb993a ("cxgb4: Add support for dynamic allocation of resources for ULD")
    Signed-off-by: Shahjada Abul Husain <shahjada@chelsio.com>
    Signed-off-by: Vishal Kulkarni <vishal@chelsio.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47569360be87709e690e9261df738080a2f740d2
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Fri Oct 4 10:41:12 2019 -0700

    bpf: fix use after free in prog symbol exposure
    
    commit c751798aa224fadc5124b49eeb38fb468c0fa039 upstream.
    
    syzkaller managed to trigger the warning in bpf_jit_free() which checks via
    bpf_prog_kallsyms_verify_off() for potentially unlinked JITed BPF progs
    in kallsyms, and subsequently trips over GPF when walking kallsyms entries:
    
      [...]
      8021q: adding VLAN 0 to HW filter on device batadv0
      8021q: adding VLAN 0 to HW filter on device batadv0
      WARNING: CPU: 0 PID: 9869 at kernel/bpf/core.c:810 bpf_jit_free+0x1e8/0x2a0
      Kernel panic - not syncing: panic_on_warn set ...
      CPU: 0 PID: 9869 Comm: kworker/0:7 Not tainted 5.0.0-rc8+ #1
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      Workqueue: events bpf_prog_free_deferred
      Call Trace:
       __dump_stack lib/dump_stack.c:77 [inline]
       dump_stack+0x113/0x167 lib/dump_stack.c:113
       panic+0x212/0x40b kernel/panic.c:214
       __warn.cold.8+0x1b/0x38 kernel/panic.c:571
       report_bug+0x1a4/0x200 lib/bug.c:186
       fixup_bug arch/x86/kernel/traps.c:178 [inline]
       do_error_trap+0x11b/0x200 arch/x86/kernel/traps.c:271
       do_invalid_op+0x36/0x40 arch/x86/kernel/traps.c:290
       invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:973
      RIP: 0010:bpf_jit_free+0x1e8/0x2a0
      Code: 02 4c 89 e2 83 e2 07 38 d0 7f 08 84 c0 0f 85 86 00 00 00 48 ba 00 02 00 00 00 00 ad de 0f b6 43 02 49 39 d6 0f 84 5f fe ff ff <0f> 0b e9 58 fe ff ff 48 b8 00 00 00 00 00 fc ff df 4c 89 e2 48 c1
      RSP: 0018:ffff888092f67cd8 EFLAGS: 00010202
      RAX: 0000000000000007 RBX: ffffc90001947000 RCX: ffffffff816e9d88
      RDX: dead000000000200 RSI: 0000000000000008 RDI: ffff88808769f7f0
      RBP: ffff888092f67d00 R08: fffffbfff1394059 R09: fffffbfff1394058
      R10: fffffbfff1394058 R11: ffffffff89ca02c7 R12: ffffc90001947002
      R13: ffffc90001947020 R14: ffffffff881eca80 R15: ffff88808769f7e8
      BUG: unable to handle kernel paging request at fffffbfff400d000
      #PF error: [normal kernel read fault]
      PGD 21ffee067 P4D 21ffee067 PUD 21ffed067 PMD 9f942067 PTE 0
      Oops: 0000 [#1] PREEMPT SMP KASAN
      CPU: 0 PID: 9869 Comm: kworker/0:7 Not tainted 5.0.0-rc8+ #1
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      Workqueue: events bpf_prog_free_deferred
      RIP: 0010:bpf_get_prog_addr_region kernel/bpf/core.c:495 [inline]
      RIP: 0010:bpf_tree_comp kernel/bpf/core.c:558 [inline]
      RIP: 0010:__lt_find include/linux/rbtree_latch.h:115 [inline]
      RIP: 0010:latch_tree_find include/linux/rbtree_latch.h:208 [inline]
      RIP: 0010:bpf_prog_kallsyms_find+0x107/0x2e0 kernel/bpf/core.c:632
      Code: 00 f0 ff ff 44 38 c8 7f 08 84 c0 0f 85 fa 00 00 00 41 f6 45 02 01 75 02 0f 0b 48 39 da 0f 82 92 00 00 00 48 89 d8 48 c1 e8 03 <42> 0f b6 04 30 84 c0 74 08 3c 03 0f 8e 45 01 00 00 8b 03 48 c1 e0
      [...]
    
    Upon further debugging, it turns out that whenever we trigger this
    issue, the kallsyms removal in bpf_prog_ksym_node_del() was /skipped/
    but yet bpf_jit_free() reported that the entry is /in use/.
    
    Problem is that symbol exposure via bpf_prog_kallsyms_add() but also
    perf_event_bpf_event() were done /after/ bpf_prog_new_fd(). Once the
    fd is exposed to the public, a parallel close request came in right
    before we attempted to do the bpf_prog_kallsyms_add().
    
    Given at this time the prog reference count is one, we start to rip
    everything underneath us via bpf_prog_release() -> bpf_prog_put().
    The memory is eventually released via deferred free, so we're seeing
    that bpf_jit_free() has a kallsym entry because we added it from
    bpf_prog_load() but /after/ bpf_prog_put() from the remote CPU.
    
    Therefore, move both notifications /before/ we install the fd. The
    issue was never seen between bpf_prog_alloc_id() and bpf_prog_new_fd()
    because upon bpf_prog_get_fd_by_id() we'll take another reference to
    the BPF prog, so we're still holding the original reference from the
    bpf_prog_load().
    
    Fixes: 6ee52e2a3fe4 ("perf, bpf: Introduce PERF_RECORD_BPF_EVENT")
    Fixes: 74451e66d516 ("bpf: make jited programs visible in traces")
    Reported-by: syzbot+bd3bba6ff3fcea7a6ec6@syzkaller.appspotmail.com
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Song Liu <songliubraving@fb.com>
    Signed-off-by: Zubin Mithra <zsm@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f892d2f0a9adc8ec1e632ddb3163e5227beb7e52
Author: Nicolas Boichat <drinkcat@chromium.org>
Date:   Mon Sep 23 15:33:55 2019 -0700

    kmemleak: increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE default to 16K
    
    [ Upstream commit b751c52bb587ae66f773b15204ef7a147467f4c7 ]
    
    The current default value (400) is too low on many systems (e.g.  some
    ARM64 platform takes up 1000+ entries).
    
    syzbot uses 16000 as default value, and has proved to be enough on beefy
    configurations, so let's pick that value.
    
    This consumes more RAM on boot (each entry is 160 bytes, so in total
    ~2.5MB of RAM), but the memory would later be freed (early_log is
    __initdata).
    
    Link: http://lkml.kernel.org/r/20190730154027.101525-1-drinkcat@chromium.org
    Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
    Suggested-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Catalin Marinas <catalin.marinas@arm.com>
    Acked-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Joe Lawrence <joe.lawrence@redhat.com>
    Cc: Uladzislau Rezki <urezki@gmail.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.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 f886e1afe77471f90b0ea16c1cccb9308f4aa560
Author: Changwei Ge <gechangwei@live.cn>
Date:   Mon Sep 23 15:33:37 2019 -0700

    ocfs2: wait for recovering done after direct unlock request
    
    [ Upstream commit 0a3775e4f883912944481cf2ef36eb6383a9cc74 ]
    
    There is a scenario causing ocfs2 umount hang when multiple hosts are
    rebooting at the same time.
    
    NODE1                           NODE2               NODE3
    send unlock requset to NODE2
                                    dies
                                                        become recovery master
                                                        recover NODE2
    find NODE2 dead
    mark resource RECOVERING
    directly remove lock from grant list
    calculate usage but RECOVERING marked
    **miss the window of purging
    clear RECOVERING
    
    To reproduce this issue, crash a host and then umount ocfs2
    from another node.
    
    To solve this, just let unlock progress wait for recovery done.
    
    Link: http://lkml.kernel.org/r/1550124866-20367-1-git-send-email-gechangwei@live.cn
    Signed-off-by: Changwei Ge <gechangwei@live.cn>
    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>
    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 b3008938df080bf3458b5abf93b949d05b6a41b3
Author: Greg Thelen <gthelen@google.com>
Date:   Mon Sep 23 15:33:05 2019 -0700

    kbuild: clean compressed initramfs image
    
    [ Upstream commit 6279eb3dd7946c69346a3b98473ed13d3a44adb5 ]
    
    Since 9e3596b0c653 ("kbuild: initramfs cleanup, set target from Kconfig")
    "make clean" leaves behind compressed initramfs images.  Example:
    
      $ make defconfig
      $ sed -i 's|CONFIG_INITRAMFS_SOURCE=""|CONFIG_INITRAMFS_SOURCE="/tmp/ir.cpio"|' .config
      $ make olddefconfig
      $ make -s
      $ make -s clean
      $ git clean -ndxf | grep initramfs
      Would remove usr/initramfs_data.cpio.gz
    
    clean rules do not have CONFIG_* context so they do not know which
    compression format was used.  Thus they don't know which files to delete.
    
    Tell clean to delete all possible compression formats.
    
    Once patched usr/initramfs_data.cpio.gz and friends are deleted by
    "make clean".
    
    Link: http://lkml.kernel.org/r/20190722063251.55541-1-gthelen@google.com
    Fixes: 9e3596b0c653 ("kbuild: initramfs cleanup, set target from Kconfig")
    Signed-off-by: Greg Thelen <gthelen@google.com>
    Cc: Nicholas Piggin <npiggin@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 fca236097d7ada9a42bf0f7f30618eb1b0e10929
Author: David Howells <dhowells@redhat.com>
Date:   Thu Mar 21 10:08:08 2019 +0000

    hypfs: Fix error number left in struct pointer member
    
    [ Upstream commit b54c64f7adeb241423cd46598f458b5486b0375e ]
    
    In hypfs_fill_super(), if hypfs_create_update_file() fails,
    sbi->update_file is left holding an error number.  This is passed to
    hypfs_kill_super() which doesn't check for this.
    
    Fix this by not setting sbi->update_value until after we've checked for
    error.
    
    Fixes: 24bbb1faf3f0 ("[PATCH] s390_hypfs filesystem")
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    cc: linux-s390@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1a63ec5f8ff2d5f5b5be7d05a23544854a326de4
Author: Jens Axboe <axboe@kernel.dk>
Date:   Sun Sep 22 10:01:05 2019 -0600

    pktcdvd: remove warning on attempting to register non-passthrough dev
    
    [ Upstream commit eb09b3cc464d2c3bbde9a6648603c8d599ea8582 ]
    
    Anatoly reports that he gets the below warning when booting -git on
    a sparc64 box on debian unstable:
    
    ...
    [   13.352975] aes_sparc64: Using sparc64 aes opcodes optimized AES
    implementation
    [   13.428002] ------------[ cut here ]------------
    [   13.428081] WARNING: CPU: 21 PID: 586 at
    drivers/block/pktcdvd.c:2597 pkt_setup_dev+0x2e4/0x5a0 [pktcdvd]
    [   13.428147] Attempt to register a non-SCSI queue
    [   13.428184] Modules linked in: pktcdvd libdes cdrom aes_sparc64
    n2_rng md5_sparc64 sha512_sparc64 rng_core sha256_sparc64 flash
    sha1_sparc64 ip_tables x_tables ipv6 crc_ccitt nf_defrag_ipv6 autofs4
    ext4 crc16 mbcache jbd2 raid10 raid456 async_raid6_recov async_memcpy
    async_pq async_xor xor async_tx raid6_pq raid1 raid0 multipath linear
    md_mod crc32c_sparc64
    [   13.428452] CPU: 21 PID: 586 Comm: pktsetup Not tainted
    5.3.0-10169-g574cc4539762 #1234
    [   13.428507] Call Trace:
    [   13.428542]  [00000000004635c0] __warn+0xc0/0x100
    [   13.428582]  [0000000000463634] warn_slowpath_fmt+0x34/0x60
    [   13.428626]  [000000001045b244] pkt_setup_dev+0x2e4/0x5a0 [pktcdvd]
    [   13.428674]  [000000001045ccf4] pkt_ctl_ioctl+0x94/0x220 [pktcdvd]
    [   13.428724]  [00000000006b95c8] do_vfs_ioctl+0x628/0x6e0
    [   13.428764]  [00000000006b96c8] ksys_ioctl+0x48/0x80
    [   13.428803]  [00000000006b9714] sys_ioctl+0x14/0x40
    [   13.428847]  [0000000000406294] linux_sparc_syscall+0x34/0x44
    [   13.428890] irq event stamp: 4181
    [   13.428924] hardirqs last  enabled at (4189): [<00000000004e0a74>]
    console_unlock+0x634/0x6c0
    [   13.428984] hardirqs last disabled at (4196): [<00000000004e0540>]
    console_unlock+0x100/0x6c0
    [   13.429048] softirqs last  enabled at (3978): [<0000000000b2e2d8>]
    __do_softirq+0x498/0x520
    [   13.429110] softirqs last disabled at (3967): [<000000000042cfb4>]
    do_softirq_own_stack+0x34/0x60
    [   13.429172] ---[ end trace 2220ca468f32967d ]---
    [   13.430018] pktcdvd: setup of pktcdvd device failed
    [   13.455589] des_sparc64: Using sparc64 des opcodes optimized DES
    implementation
    [   13.515334] camellia_sparc64: Using sparc64 camellia opcodes
    optimized CAMELLIA implementation
    [   13.522856] pktcdvd: setup of pktcdvd device failed
    [   13.529327] pktcdvd: setup of pktcdvd device failed
    [   13.532932] pktcdvd: setup of pktcdvd device failed
    [   13.536165] pktcdvd: setup of pktcdvd device failed
    [   13.539372] pktcdvd: setup of pktcdvd device failed
    [   13.542834] pktcdvd: setup of pktcdvd device failed
    [   13.546536] pktcdvd: setup of pktcdvd device failed
    [   15.431071] XFS (dm-0): Mounting V5 Filesystem
    ...
    
    Apparently debian auto-attaches any cdrom like device to pktcdvd, which
    can lead to the above warning. There's really no reason to warn for this
    situation, kill it.
    
    Reported-by: Anatoly Pugachev <matorola@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3554b8a172a24278ba00193be0268f3095dbed22
Author: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Date:   Mon Sep 23 15:32:53 2019 -0700

    fat: work around race with userspace's read via blockdev while mounting
    
    [ Upstream commit 07bfa4415ab607e459b69bd86aa7e7602ce10b4f ]
    
    If userspace reads the buffer via blockdev while mounting,
    sb_getblk()+modify can race with buffer read via blockdev.
    
    For example,
    
                FS                               userspace
        bh = sb_getblk()
        modify bh->b_data
                                      read
                                        ll_rw_block(bh)
                                          fill bh->b_data by on-disk data
                                          /* lost modified data by FS */
                                          set_buffer_uptodate(bh)
        set_buffer_uptodate(bh)
    
    Userspace should not use the blockdev while mounting though, the udev
    seems to be already doing this.  Although I think the udev should try to
    avoid this, workaround the race by small overhead.
    
    Link: http://lkml.kernel.org/r/87pnk7l3sw.fsf_-_@mail.parknet.co.jp
    Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
    Reported-by: Jan Stancek <jstancek@redhat.com>
    Tested-by: Jan Stancek <jstancek@redhat.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 735ad03318db1e1999eaba29244ce5f8428cd91a
Author: Mike Rapoport <mike.rapoport@gmail.com>
Date:   Fri Aug 30 14:27:56 2019 +0100

    ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address
    
    [ Upstream commit 00d2ec1e6bd82c0538e6dd3e4a4040de93ba4fef ]
    
    The calculation of memblock_limit in adjust_lowmem_bounds() assumes that
    bank 0 starts from a PMD-aligned address. However, the beginning of the
    first bank may be NOMAP memory and the start of usable memory
    will be not aligned to PMD boundary. In such case the memblock_limit will
    be set to the end of the NOMAP region, which will prevent any memblock
    allocations.
    
    Mark the region between the end of the NOMAP area and the next PMD-aligned
    address as NOMAP as well, so that the usable memory will start at
    PMD-aligned address.
    
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4b1e27b3b4659ad2c9e49fc52405d751a38acc81
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Tue Jul 23 18:00:15 2019 +0800

    security: smack: Fix possible null-pointer dereferences in smack_socket_sock_rcv_skb()
    
    [ Upstream commit 3f4287e7d98a2954f20bf96c567fdffcd2b63eb9 ]
    
    In smack_socket_sock_rcv_skb(), there is an if statement
    on line 3920 to check whether skb is NULL:
        if (skb && skb->secmark != 0)
    
    This check indicates skb can be NULL in some cases.
    
    But on lines 3931 and 3932, skb is used:
        ad.a.u.net->netif = skb->skb_iif;
        ipv6_skb_to_auditdata(skb, &ad.a, NULL);
    
    Thus, possible null-pointer dereferences may occur when skb is NULL.
    
    To fix these possible bugs, an if statement is added to check skb.
    
    These bugs are found by a static analysis tool STCheck written by us.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6001d7e38fdc076fbaf3f393eac053def1fbdb19
Author: Thierry Reding <treding@nvidia.com>
Date:   Thu Aug 29 12:53:15 2019 +0200

    PCI: exynos: Propagate errors for optional PHYs
    
    [ Upstream commit ddd6960087d4b45759434146d681a94bbb1c54ad ]
    
    devm_of_phy_get() can fail for a number of reasons besides probe
    deferral. It can for example return -ENOMEM if it runs out of memory as
    it tries to allocate devres structures. Propagating only -EPROBE_DEFER
    is problematic because it results in these legitimately fatal errors
    being treated as "PHY not specified in DT".
    
    What we really want is to ignore the optional PHYs only if they have not
    been specified in DT. devm_of_phy_get() returns -ENODEV in this case, so
    that's the special case that we need to handle. So we propagate all
    errors, except -ENODEV, so that real failures will still cause the
    driver to fail probe.
    
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Reviewed-by: Andrew Murray <andrew.murray@arm.com>
    Cc: Jingoo Han <jingoohan1@gmail.com>
    Cc: Kukjin Kim <kgene@kernel.org>
    Cc: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 67681e4714ebe67820338c5f4895a4c14efbe953
Author: Thierry Reding <treding@nvidia.com>
Date:   Thu Aug 29 12:53:16 2019 +0200

    PCI: imx6: Propagate errors for optional regulators
    
    [ Upstream commit 2170a09fb4b0f66e06e5bcdcbc98c9ccbf353650 ]
    
    regulator_get_optional() can fail for a number of reasons besides probe
    deferral. It can for example return -ENOMEM if it runs out of memory as
    it tries to allocate data structures. Propagating only -EPROBE_DEFER is
    problematic because it results in these legitimately fatal errors being
    treated as "regulator not specified in DT".
    
    What we really want is to ignore the optional regulators only if they
    have not been specified in DT. regulator_get_optional() returns -ENODEV
    in this case, so that's the special case that we need to handle. So we
    propagate all errors, except -ENODEV, so that real failures will still
    cause the driver to fail probe.
    
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Reviewed-by: Andrew Murray <andrew.murray@arm.com>
    Cc: Richard Zhu <hongxing.zhu@nxp.com>
    Cc: Lucas Stach <l.stach@pengutronix.de>
    Cc: Shawn Guo <shawnguo@kernel.org>
    Cc: Sascha Hauer <s.hauer@pengutronix.de>
    Cc: Fabio Estevam <festevam@gmail.com>
    Cc: kernel@pengutronix.de
    Cc: linux-imx@nxp.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d02597268cbfdf57db6d650caca9c7b8395da3e3
Author: Thierry Reding <treding@nvidia.com>
Date:   Thu Aug 29 12:53:14 2019 +0200

    PCI: rockchip: Propagate errors for optional regulators
    
    [ Upstream commit 0e3ff0ac5f71bdb6be2a698de0ed0c7e6e738269 ]
    
    regulator_get_optional() can fail for a number of reasons besides probe
    deferral. It can for example return -ENOMEM if it runs out of memory as
    it tries to allocate data structures. Propagating only -EPROBE_DEFER is
    problematic because it results in these legitimately fatal errors being
    treated as "regulator not specified in DT".
    
    What we really want is to ignore the optional regulators only if they
    have not been specified in DT. regulator_get_optional() returns -ENODEV
    in this case, so that's the special case that we need to handle. So we
    propagate all errors, except -ENODEV, so that real failures will still
    cause the driver to fail probe.
    
    Tested-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Reviewed-by: Andrew Murray <andrew.murray@arm.com>
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Acked-by: Shawn Lin <shawn.lin@rock-chips.com>
    Cc: Shawn Lin <shawn.lin@rock-chips.com>
    Cc: Heiko Stuebner <heiko@sntech.de>
    Cc: linux-rockchip@lists.infradead.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d13fa754138d7346790633d5123330684d69decd
Author: Joao Moreno <mail@joaomoreno.com>
Date:   Tue Sep 3 16:46:32 2019 +0200

    HID: apple: Fix stuck function keys when using FN
    
    [ Upstream commit aec256d0ecd561036f188dbc8fa7924c47a9edfd ]
    
    This fixes an issue in which key down events for function keys would be
    repeatedly emitted even after the user has raised the physical key. For
    example, the driver fails to emit the F5 key up event when going through
    the following steps:
    - fnmode=1: hold FN, hold F5, release FN, release F5
    - fnmode=2: hold F5, hold FN, release F5, release FN
    
    The repeated F5 key down events can be easily verified using xev.
    
    Signed-off-by: Joao Moreno <mail@joaomoreno.com>
    Co-developed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc93018d455f22adfb64643053b0630903dc1a72
Author: Anson Huang <Anson.Huang@nxp.com>
Date:   Tue Jul 16 15:18:58 2019 +0800

    rtc: snvs: fix possible race condition
    
    [ Upstream commit 6fd4fe9b496d9ba3382992ff4fde3871d1b6f63d ]
    
    The RTC IRQ is requested before the struct rtc_device is allocated,
    this may lead to a NULL pointer dereference in IRQ handler.
    
    To fix this issue, allocating the rtc_device struct before requesting
    the RTC IRQ using devm_rtc_allocate_device, and use rtc_register_device
    to register the RTC device.
    
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
    Link: https://lore.kernel.org/r/20190716071858.36750-1-Anson.Huang@nxp.com
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1edc3a5f82a4a3d2486ba5776d39970e85474963
Author: Will Deacon <will@kernel.org>
Date:   Thu Aug 8 16:51:00 2019 +0100

    ARM: 8898/1: mm: Don't treat faults reported from cache maintenance as writes
    
    [ Upstream commit 834020366da9ab3fb87d1eb9a3160eb22dbed63a ]
    
    Translation faults arising from cache maintenance instructions are
    rather unhelpfully reported with an FSR value where the WnR field is set
    to 1, indicating that the faulting access was a write. Since cache
    maintenance instructions on 32-bit ARM do not require any particular
    permissions, this can cause our private 'cacheflush' system call to fail
    spuriously if a translation fault is generated due to page aging when
    targetting a read-only VMA.
    
    In this situation, we will return -EFAULT to userspace, although this is
    unfortunately suppressed by the popular '__builtin___clear_cache()'
    intrinsic provided by GCC, which returns void.
    
    Although it's tempting to write this off as a userspace issue, we can
    actually do a little bit better on CPUs that support LPAE, even if the
    short-descriptor format is in use. On these CPUs, cache maintenance
    faults additionally set the CM field in the FSR, which we can use to
    suppress the write permission checks in the page fault handler and
    succeed in performing cache maintenance to read-only areas even in the
    presence of a translation fault.
    
    Reported-by: Orion Hodson <oth@google.com>
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95364cf783c1ac0470ea4f8671a40bfe3da8820d
Author: Miroslav Benes <mbenes@suse.cz>
Date:   Fri Jul 19 14:28:39 2019 +0200

    livepatch: Nullify obj->mod in klp_module_coming()'s error path
    
    [ Upstream commit 4ff96fb52c6964ad42e0a878be8f86a2e8052ddd ]
    
    klp_module_coming() is called for every module appearing in the system.
    It sets obj->mod to a patched module for klp_object obj. Unfortunately
    it leaves it set even if an error happens later in the function and the
    patched module is not allowed to be loaded.
    
    klp_is_object_loaded() uses obj->mod variable and could currently give a
    wrong return value. The bug is probably harmless as of now.
    
    Signed-off-by: Miroslav Benes <mbenes@suse.cz>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Petr Mladek <pmladek@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2d91f917472987e7bfa7362131679942af3dd904
Author: Nishka Dasgupta <nishkadg.linux@gmail.com>
Date:   Wed Jul 24 13:54:12 2019 +0530

    PCI: tegra: Fix OF node reference leak
    
    [ Upstream commit 9e38e690ace3e7a22a81fc02652fc101efb340cf ]
    
    Each iteration of for_each_child_of_node() executes of_node_put() on the
    previous node, but in some return paths in the middle of the loop
    of_node_put() is missing thus causing a reference leak.
    
    Hence stash these mid-loop return values in a variable 'err' and add a
    new label err_node_put which executes of_node_put() on the previous node
    and returns 'err' on failure.
    
    Change mid-loop return statements to point to jump to this label to
    fix the reference leak.
    
    Issue found with Coccinelle.
    
    Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
    [lorenzo.pieralisi@arm.com: rewrote commit log]
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54e57beed1327a3ce1820ea362fe34d218572ff0
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Fri Jul 5 12:55:03 2019 +0800

    mfd: intel-lpss: Remove D3cold delay
    
    [ Upstream commit 76380a607ba0b28627c9b4b55cd47a079a59624b ]
    
    Goodix touchpad may drop its first couple input events when
    i2c-designware-platdrv and intel-lpss it connects to took too long to
    runtime resume from runtime suspended state.
    
    This issue happens becuase the touchpad has a rather small buffer to
    store up to 13 input events, so if the host doesn't read those events in
    time (i.e. runtime resume takes too long), events are dropped from the
    touchpad's buffer.
    
    The bottleneck is D3cold delay it waits when transitioning from D3cold
    to D0, hence remove the delay to make the resume faster. I've tested
    some systems with intel-lpss and haven't seen any regression.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202683
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95072b17406574d56018fb3e81b1014c4093df28
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Aug 13 12:03:01 2019 +0200

    i2c-cht-wc: Fix lockdep warning
    
    [ Upstream commit 232219b9a464c2479c98aa589acb1bd3383ae9d6 ]
    
    When the kernel is build with lockdep support and the i2c-cht-wc driver is
    used, the following warning is shown:
    
    [   66.674334] ======================================================
    [   66.674337] WARNING: possible circular locking dependency detected
    [   66.674340] 5.3.0-rc4+ #83 Not tainted
    [   66.674342] ------------------------------------------------------
    [   66.674345] systemd-udevd/1232 is trying to acquire lock:
    [   66.674349] 00000000a74dab07 (intel_soc_pmic_chtwc:167:(&cht_wc_regmap_cfg)->lock){+.+.}, at: regmap_write+0x31/0x70
    [   66.674360]
                   but task is already holding lock:
    [   66.674362] 00000000d44a85b7 (i2c_register_adapter){+.+.}, at: i2c_smbus_xfer+0x49/0xf0
    [   66.674370]
                   which lock already depends on the new lock.
    
    [   66.674371]
                   the existing dependency chain (in reverse order) is:
    [   66.674374]
                   -> #1 (i2c_register_adapter){+.+.}:
    [   66.674381]        rt_mutex_lock_nested+0x46/0x60
    [   66.674384]        i2c_smbus_xfer+0x49/0xf0
    [   66.674387]        i2c_smbus_read_byte_data+0x45/0x70
    [   66.674391]        cht_wc_byte_reg_read+0x35/0x50
    [   66.674394]        _regmap_read+0x63/0x1a0
    [   66.674396]        _regmap_update_bits+0xa8/0xe0
    [   66.674399]        regmap_update_bits_base+0x63/0xa0
    [   66.674403]        regmap_irq_update_bits.isra.0+0x3b/0x50
    [   66.674406]        regmap_add_irq_chip+0x592/0x7a0
    [   66.674409]        devm_regmap_add_irq_chip+0x89/0xed
    [   66.674412]        cht_wc_probe+0x102/0x158
    [   66.674415]        i2c_device_probe+0x95/0x250
    [   66.674419]        really_probe+0xf3/0x380
    [   66.674422]        driver_probe_device+0x59/0xd0
    [   66.674425]        device_driver_attach+0x53/0x60
    [   66.674428]        __driver_attach+0x92/0x150
    [   66.674431]        bus_for_each_dev+0x7d/0xc0
    [   66.674434]        bus_add_driver+0x14d/0x1f0
    [   66.674437]        driver_register+0x6d/0xb0
    [   66.674440]        i2c_register_driver+0x45/0x80
    [   66.674445]        do_one_initcall+0x60/0x2f4
    [   66.674450]        kernel_init_freeable+0x20d/0x2b4
    [   66.674453]        kernel_init+0xa/0x10c
    [   66.674457]        ret_from_fork+0x3a/0x50
    [   66.674459]
                   -> #0 (intel_soc_pmic_chtwc:167:(&cht_wc_regmap_cfg)->lock){+.+.}:
    [   66.674465]        __lock_acquire+0xe07/0x1930
    [   66.674468]        lock_acquire+0x9d/0x1a0
    [   66.674472]        __mutex_lock+0xa8/0x9a0
    [   66.674474]        regmap_write+0x31/0x70
    [   66.674480]        cht_wc_i2c_adap_smbus_xfer+0x72/0x240 [i2c_cht_wc]
    [   66.674483]        __i2c_smbus_xfer+0x1a3/0x640
    [   66.674486]        i2c_smbus_xfer+0x67/0xf0
    [   66.674489]        i2c_smbus_read_byte_data+0x45/0x70
    [   66.674494]        bq24190_probe+0x26b/0x410 [bq24190_charger]
    [   66.674497]        i2c_device_probe+0x189/0x250
    [   66.674500]        really_probe+0xf3/0x380
    [   66.674503]        driver_probe_device+0x59/0xd0
    [   66.674506]        device_driver_attach+0x53/0x60
    [   66.674509]        __driver_attach+0x92/0x150
    [   66.674512]        bus_for_each_dev+0x7d/0xc0
    [   66.674515]        bus_add_driver+0x14d/0x1f0
    [   66.674518]        driver_register+0x6d/0xb0
    [   66.674521]        i2c_register_driver+0x45/0x80
    [   66.674524]        do_one_initcall+0x60/0x2f4
    [   66.674528]        do_init_module+0x5c/0x230
    [   66.674531]        load_module+0x2707/0x2a20
    [   66.674534]        __do_sys_init_module+0x188/0x1b0
    [   66.674537]        do_syscall_64+0x5c/0xb0
    [   66.674541]        entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [   66.674543]
                   other info that might help us debug this:
    
    [   66.674545]  Possible unsafe locking scenario:
    
    [   66.674547]        CPU0                    CPU1
    [   66.674548]        ----                    ----
    [   66.674550]   lock(i2c_register_adapter);
    [   66.674553]                                lock(intel_soc_pmic_chtwc:167:(&cht_wc_regmap_cfg)->lock);
    [   66.674556]                                lock(i2c_register_adapter);
    [   66.674559]   lock(intel_soc_pmic_chtwc:167:(&cht_wc_regmap_cfg)->lock);
    [   66.674561]
                    *** DEADLOCK ***
    
    The problem is that the CHT Whiskey Cove PMIC's builtin i2c-adapter is
    itself a part of an i2c-client (the PMIC). This means that transfers done
    through it take adapter->bus_lock twice, once for the parent i2c-adapter
    and once for its own bus_lock. Lockdep does not like this nested locking.
    
    To make lockdep happy in the case of busses with muxes, the i2c-core's
    i2c_adapter_lock_bus function calls:
    
     rt_mutex_lock_nested(&adapter->bus_lock, i2c_adapter_depth(adapter));
    
    But i2c_adapter_depth only works when the direct parent of the adapter is
    another adapter, as it is only meant for muxes. In this case there is an
    i2c-client and MFD instantiated platform_device in the parent->child chain
    between the 2 devices.
    
    This commit overrides the default i2c_lock_operations, passing a hardcoded
    depth of 1 to rt_mutex_lock_nested, making lockdep happy.
    
    Note that if there were to be a mux attached to the i2c-wc-cht adapter,
    this would break things again since the i2c-mux code expects the
    root-adapter to have a locking depth of 0. But the i2c-wc-cht adapter
    always has only 1 client directly attached in the form of the charger IC
    paired with the CHT Whiskey Cove PMIC.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9875f047971ba7b5a111bf7f461e109a8e700a57
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Sun Aug 11 20:31:20 2019 -0700

    MIPS: tlbex: Explicitly cast _PAGE_NO_EXEC to a boolean
    
    [ Upstream commit c59ae0a1055127dd3828a88e111a0db59b254104 ]
    
    clang warns:
    
    arch/mips/mm/tlbex.c:634:19: error: use of logical '&&' with constant
    operand [-Werror,-Wconstant-logical-operand]
            if (cpu_has_rixi && _PAGE_NO_EXEC) {
                             ^  ~~~~~~~~~~~~~
    arch/mips/mm/tlbex.c:634:19: note: use '&' for a bitwise operation
            if (cpu_has_rixi && _PAGE_NO_EXEC) {
                             ^~
                             &
    arch/mips/mm/tlbex.c:634:19: note: remove constant to silence this
    warning
            if (cpu_has_rixi && _PAGE_NO_EXEC) {
                            ~^~~~~~~~~~~~~~~~
    1 error generated.
    
    Explicitly cast this value to a boolean so that clang understands we
    intend for this to be a non-zero value.
    
    Fixes: 00bf1c691d08 ("MIPS: tlbex: Avoid placing software PTE bits in Entry* PFN fields")
    Link: https://github.com/ClangBuiltLinux/linux/issues/609
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: clang-built-linux@googlegroups.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ccf3623598b2dc13861c6392cb540a9543d9a05
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Aug 12 16:42:47 2019 +0100

    dma-buf/sw_sync: Synchronize signal vs syncpt free
    
    [ Upstream commit d3c6dd1fb30d3853c2012549affe75c930f4a2f9 ]
    
    During release of the syncpt, we remove it from the list of syncpt and
    the tree, but only if it is not already been removed. However, during
    signaling, we first remove the syncpt from the list. So, if we
    concurrently free and signal the syncpt, the free may decide that it is
    not part of the tree and immediately free itself -- meanwhile the
    signaler goes on to use the now freed datastructure.
    
    In particular, we get struck by commit 0e2f733addbf ("dma-buf: make
    dma_fence structure a bit smaller v2") as the cb_list is immediately
    clobbered by the kfree_rcu.
    
    v2: Avoid calling into timeline_fence_release() from under the spinlock
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111381
    Fixes: d3862e44daa7 ("dma-buf/sw-sync: Fix locking around sync_timeline lists")
    References: 0e2f733addbf ("dma-buf: make dma_fence structure a bit smaller v2")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Sumit Semwal <sumit.semwal@linaro.org>
    Cc: Sean Paul <seanpaul@chromium.org>
    Cc: Gustavo Padovan <gustavo@padovan.org>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: <stable@vger.kernel.org> # v4.14+
    Acked-by: Christian König <christian.koenig@amd.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190812154247.20508-1-chris@chris-wilson.co.uk
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 86906603260add5f97829cb8bc72382cc09eae15
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Thu Aug 1 15:38:14 2019 -0700

    scsi: core: Reduce memory required for SCSI logging
    
    [ Upstream commit dccc96abfb21dc19d69e707c38c8ba439bba7160 ]
    
    The data structure used for log messages is so large that it can cause a
    boot failure. Since allocations from that data structure can fail anyway,
    use kmalloc() / kfree() instead of that data structure.
    
    See also https://bugzilla.kernel.org/show_bug.cgi?id=204119.
    See also commit ded85c193a39 ("scsi: Implement per-cpu logging buffer") # v4.0.
    
    Reported-by: Jan Palus <jpalus@fastmail.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Hannes Reinecke <hare@suse.com>
    Cc: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: Ming Lei <ming.lei@redhat.com>
    Cc: Jan Palus <jpalus@fastmail.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6682e6f68f1f62965c9a55fdc4e4c1ae4ecf2426
Author: Eugen Hristev <eugen.hristev@microchip.com>
Date:   Mon Sep 9 15:30:34 2019 +0000

    clk: at91: select parent if main oscillator or bypass is enabled
    
    [ Upstream commit 69a6bcde7fd3fe6f3268ce26f31d9d9378384c98 ]
    
    Selecting the right parent for the main clock is done using only
    main oscillator enabled bit.
    In case we have this oscillator bypassed by an external signal (no driving
    on the XOUT line), we still use external clock, but with BYPASS bit set.
    So, in this case we must select the same parent as before.
    Create a macro that will select the right parent considering both bits from
    the MOR register.
    Use this macro when looking for the right parent.
    
    Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
    Link: https://lkml.kernel.org/r/1568042692-11784-2-git-send-email-eugen.hristev@microchip.com
    Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8b524b10b62e4e40fb4a0e5bac112f036a264737
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Sep 10 13:56:22 2019 +0200

    arm64: fix unreachable code issue with cmpxchg
    
    [ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]
    
    On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
    when CONFIG_OPTIMIZE_INLINING is set.
    Clang then fails a compile-time assertion, because it cannot tell at
    compile time what the size of the argument is:
    
    mm/memcontrol.o: In function `__cmpxchg_mb':
    memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
    memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'
    
    Mark all of the cmpxchg() style functions as __always_inline to
    ensure that the compiler can see the result.
    
    Acked-by: Nick Desaulniers <ndesaulniers@google.com>
    Reported-by: Nathan Chancellor <natechancellor@gmail.com>
    Link: https://github.com/ClangBuiltLinux/linux/issues/648
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Tested-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Andrew Murray <andrew.murray@arm.com>
    Tested-by: Andrew Murray <andrew.murray@arm.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 71197bcac9feb25dca4f3369bf217648155ed121
Author: Nathan Lynch <nathanl@linux.ibm.com>
Date:   Tue Sep 10 17:52:44 2019 -0500

    powerpc/pseries: correctly track irq state in default idle
    
    [ Upstream commit 92c94dfb69e350471473fd3075c74bc68150879e ]
    
    prep_irq_for_idle() is intended to be called before entering
    H_CEDE (and it is used by the pseries cpuidle driver). However the
    default pseries idle routine does not call it, leading to mismanaged
    lazy irq state when the cpuidle driver isn't in use. Manifestations of
    this include:
    
    * Dropped IPIs in the time immediately after a cpu comes
      online (before it has installed the cpuidle handler), making the
      online operation block indefinitely waiting for the new cpu to
      respond.
    
    * Hitting this WARN_ON in arch_local_irq_restore():
            /*
             * We should already be hard disabled here. We had bugs
             * where that wasn't the case so let's dbl check it and
             * warn if we are wrong. Only do that when IRQ tracing
             * is enabled as mfmsr() can be costly.
             */
            if (WARN_ON_ONCE(mfmsr() & MSR_EE))
                    __hard_irq_disable();
    
    Call prep_irq_for_idle() from pseries_lpar_idle() and honor its
    result.
    
    Fixes: 363edbe2614a ("powerpc: Default arch idle could cede processor on pseries")
    Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190910225244.25056-1-nathanl@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c3e829746cb551837b8c6fd4b47d8551d18e3b2
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Fri Aug 2 20:56:32 2019 +1000

    powerpc/64s/exception: machine check use correct cfar for late handler
    
    [ Upstream commit 0b66370c61fcf5fcc1d6901013e110284da6e2bb ]
    
    Bare metal machine checks run an "early" handler in real mode before
    running the main handler which reports the event.
    
    The main handler runs exactly as a normal interrupt handler, after the
    "windup" which sets registers back as they were at interrupt entry.
    CFAR does not get restored by the windup code, so that will be wrong
    when the handler is run.
    
    Restore the CFAR to the saved value before running the late handler.
    
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190802105709.27696-8-npiggin@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 02c333e27324a9d627e3db8623cc93479aa96c3a
Author: Jean Delvare <jdelvare@suse.de>
Date:   Wed Aug 28 17:05:57 2019 +0200

    drm/amdgpu/si: fix ASIC tests
    
    [ Upstream commit 77efe48a729588527afb4d5811b9e0acb29f5e51 ]
    
    Comparing adev->family with CHIP constants is not correct.
    adev->family can only be compared with AMDGPU_FAMILY constants and
    adev->asic_type is the struct member to compare with CHIP constants.
    They are separate identification spaces.
    
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Fixes: 62a37553414a ("drm/amdgpu: add si implementation v10")
    Cc: Ken Wang <Qingqing.Wang@amd.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: "Christian König" <christian.koenig@amd.com>
    Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2e137f0e7d06b791eb945855dae2ead7f92f1b15
Author: Mark Menzynski <mmenzyns@redhat.com>
Date:   Fri Aug 2 11:21:00 2019 +0200

    drm/nouveau/volt: Fix for some cards having 0 maximum voltage
    
    [ Upstream commit a1af2afbd244089560794c260b2d4326a86e39b6 ]
    
    Some, mostly Fermi, vbioses appear to have zero max voltage. That causes Nouveau to not parse voltage entries, thus users not being able to set higher clocks.
    
    When changing this value Nvidia driver still appeared to ignore it, and I wasn't able to find out why, thus the code is ignoring the value if it is zero.
    
    CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Mark Menzynski <mmenzyns@redhat.com>
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ed9544cadca456a0aba80c01f67e62fac429b1f0
Author: hexin <hexin.op@gmail.com>
Date:   Thu Aug 22 11:35:19 2019 +0800

    vfio_pci: Restore original state on release
    
    [ Upstream commit 92c8026854c25093946e0d7fe536fd9eac440f06 ]
    
    vfio_pci_enable() saves the device's initial configuration information
    with the intent that it is restored in vfio_pci_disable().  However,
    the commit referenced in Fixes: below replaced the call to
    __pci_reset_function_locked(), which is not wrapped in a state save
    and restore, with pci_try_reset_function(), which overwrites the
    restored device state with the current state before applying it to the
    device.  Reinstate use of __pci_reset_function_locked() to return to
    the desired behavior.
    
    Fixes: 890ed578df82 ("vfio-pci: Use pci "try" reset interface")
    Signed-off-by: hexin <hexin15@baidu.com>
    Signed-off-by: Liu Qi <liuqi16@baidu.com>
    Signed-off-by: Zhang Yu <zhangyu31@baidu.com>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b64f71805d128d19152ddffad3d35b0052f4df16
Author: Sowjanya Komatineni <skomatineni@nvidia.com>
Date:   Fri Aug 16 12:41:46 2019 -0700

    pinctrl: tegra: Fix write barrier placement in pmx_writel
    
    [ Upstream commit c2cf351eba2ff6002ce8eb178452219d2521e38e ]
    
    pmx_writel uses writel which inserts write barrier before the
    register write.
    
    This patch has fix to replace writel with writel_relaxed followed
    by a readback and memory barrier to ensure write operation is
    completed for successful pinctrl change.
    
    Acked-by: Thierry Reding <treding@nvidia.com>
    Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
    Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
    Link: https://lore.kernel.org/r/1565984527-5272-2-git-send-email-skomatineni@nvidia.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e9b7c5d8a80a63d4e9ed7688cbf73724723ff9a1
Author: Nathan Lynch <nathanl@linux.ibm.com>
Date:   Fri Aug 2 14:29:26 2019 -0500

    powerpc/pseries/mobility: use cond_resched when updating device tree
    
    [ Upstream commit ccfb5bd71d3d1228090a8633800ae7cdf42a94ac ]
    
    After a partition migration, pseries_devicetree_update() processes
    changes to the device tree communicated from the platform to
    Linux. This is a relatively heavyweight operation, with multiple
    device tree searches, memory allocations, and conversations with
    partition firmware.
    
    There's a few levels of nested loops which are bounded only by
    decisions made by the platform, outside of Linux's control, and indeed
    we have seen RCU stalls on large systems while executing this call
    graph. Use cond_resched() in these loops so that the cpu is yielded
    when needed.
    
    Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190802192926.19277-4-nathanl@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 31b0a491f319885ed738d3e65f10980ec490d6c2
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Wed Aug 14 09:25:52 2019 +0000

    powerpc/futex: Fix warning: 'oldval' may be used uninitialized in this function
    
    [ Upstream commit 38a0d0cdb46d3f91534e5b9839ec2d67be14c59d ]
    
    We see warnings such as:
      kernel/futex.c: In function 'do_futex':
      kernel/futex.c:1676:17: warning: 'oldval' may be used uninitialized in this function [-Wmaybe-uninitialized]
         return oldval == cmparg;
                       ^
      kernel/futex.c:1651:6: note: 'oldval' was declared here
        int oldval, ret;
            ^
    
    This is because arch_futex_atomic_op_inuser() only sets *oval if ret
    is 0 and GCC doesn't see that it will only use it when ret is 0.
    
    Anyway, the non-zero ret path is an error path that won't suffer from
    setting *oval, and as *oval is a local var in futex_atomic_op_inuser()
    it will have no impact.
    
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    [mpe: reword change log slightly]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/86b72f0c134367b214910b27b9a6dd3321af93bb.1565774657.git.christophe.leroy@c-s.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c643f5b6a0a3d8f17c1fce22eae43c880acb5bad
Author: Nathan Lynch <nathanl@linux.ibm.com>
Date:   Fri Aug 2 14:29:24 2019 -0500

    powerpc/rtas: use device model APIs and serialization during LPM
    
    [ Upstream commit a6717c01ddc259f6f73364779df058e2c67309f8 ]
    
    The LPAR migration implementation and userspace-initiated cpu hotplug
    can interleave their executions like so:
    
    1. Set cpu 7 offline via sysfs.
    
    2. Begin a partition migration, whose implementation requires the OS
       to ensure all present cpus are online; cpu 7 is onlined:
    
         rtas_ibm_suspend_me -> rtas_online_cpus_mask -> cpu_up
    
       This sets cpu 7 online in all respects except for the cpu's
       corresponding struct device; dev->offline remains true.
    
    3. Set cpu 7 online via sysfs. _cpu_up() determines that cpu 7 is
       already online and returns success. The driver core (device_online)
       sets dev->offline = false.
    
    4. The migration completes and restores cpu 7 to offline state:
    
         rtas_ibm_suspend_me -> rtas_offline_cpus_mask -> cpu_down
    
    This leaves cpu7 in a state where the driver core considers the cpu
    device online, but in all other respects it is offline and
    unused. Attempts to online the cpu via sysfs appear to succeed but the
    driver core actually does not pass the request to the lower-level
    cpuhp support code. This makes the cpu unusable until the cpu device
    is manually set offline and then online again via sysfs.
    
    Instead of directly calling cpu_up/cpu_down, the migration code should
    use the higher-level device core APIs to maintain consistent state and
    serialize operations.
    
    Fixes: 120496ac2d2d ("powerpc: Bring all threads online prior to migration/hibernation")
    Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
    Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190802192926.19277-2-nathanl@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7d0b30d264fd0df94e8e73a528815003307c3a4e
Author: Cédric Le Goater <clg@kaod.org>
Date:   Wed Aug 14 17:47:52 2019 +0200

    powerpc/xmon: Check for HV mode when dumping XIVE info from OPAL
    
    [ Upstream commit c3e0dbd7f780a58c4695f1cd8fc8afde80376737 ]
    
    Currently, the xmon 'dx' command calls OPAL to dump the XIVE state in
    the OPAL logs and also outputs some of the fields of the internal XIVE
    structures in Linux. The OPAL calls can only be done on baremetal
    (PowerNV) and they crash a pseries machine. Fix by checking the
    hypervisor feature of the CPU.
    
    Signed-off-by: Cédric Le Goater <clg@kaod.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190814154754.23682-2-clg@kaod.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c96b058de5d9ef0323656e2a0593527480628954
Author: Stephen Boyd <sboyd@kernel.org>
Date:   Thu Aug 15 09:00:18 2019 -0700

    clk: zx296718: Don't reference clk_init_data after registration
    
    [ Upstream commit 1a4549c150e27dbc3aea762e879a88209df6d1a5 ]
    
    A future patch is going to change semantics of clk_register() so that
    clk_hw::init is guaranteed to be NULL after a clk is registered. Avoid
    referencing this member here so that we don't run into NULL pointer
    exceptions.
    
    Cc: Jun Nie <jun.nie@linaro.org>
    Cc: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Link: https://lkml.kernel.org/r/20190815160020.183334-3-sboyd@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3f7708795b45c5d983c95a0ff1dba2a597c6a770
Author: Stephen Boyd <sboyd@kernel.org>
Date:   Wed Jul 31 12:35:13 2019 -0700

    clk: sirf: Don't reference clk_init_data after registration
    
    [ Upstream commit af55dadfbce35b4f4c6247244ce3e44b2e242b84 ]
    
    A future patch is going to change semantics of clk_register() so that
    clk_hw::init is guaranteed to be NULL after a clk is registered. Avoid
    referencing this member here so that we don't run into NULL pointer
    exceptions.
    
    Cc: Guo Zeng <Guo.Zeng@csr.com>
    Cc: Barry Song <Baohua.Song@csr.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Link: https://lkml.kernel.org/r/20190731193517.237136-6-sboyd@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 90293b3132b5cbf306f37aead9ca59af9597fd24
Author: Icenowy Zheng <icenowy@aosc.io>
Date:   Sun Jul 28 11:12:23 2019 +0800

    clk: sunxi-ng: v3s: add missing clock slices for MMC2 module clocks
    
    [ Upstream commit 720099603d1f62e37b789366d7e89824b009ca28 ]
    
    The MMC2 clock slices are currently not defined in V3s CCU driver, which
    makes MMC2 not working.
    
    Fix this issue.
    
    Fixes: d0f11d14b0bc ("clk: sunxi-ng: add support for V3s CCU")
    Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
    Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5535753baa3e33000c92ba60a461d5be6180f1b6
Author: Nathan Huckleberry <nhuck@google.com>
Date:   Thu Jun 27 15:06:42 2019 -0700

    clk: qoriq: Fix -Wunused-const-variable
    
    [ Upstream commit a95fb581b144b5e73da382eaedb2e32027610597 ]
    
    drivers/clk/clk-qoriq.c:138:38: warning: unused variable
    'p5020_cmux_grp1' [-Wunused-const-variable] static const struct
    clockgen_muxinfo p5020_cmux_grp1
    
    drivers/clk/clk-qoriq.c:146:38: warning: unused variable
    'p5020_cmux_grp2' [-Wunused-const-variable] static const struct
    clockgen_muxinfo p5020_cmux_grp2
    
    In the definition of the p5020 chip, the p2041 chip's info was used
    instead.  The p5020 and p2041 chips have different info. This is most
    likely a typo.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/525
    Cc: clang-built-linux@googlegroups.com
    Signed-off-by: Nathan Huckleberry <nhuck@google.com>
    Link: https://lkml.kernel.org/r/20190627220642.78575-1-nhuck@google.com
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Acked-by: Scott Wood <oss@buserror.net>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 31f643615fe98dbe9171aba2faaa5241e2e5d8f9
Author: Corey Minyard <cminyard@mvista.com>
Date:   Fri Aug 2 07:31:36 2019 -0500

    ipmi_si: Only schedule continuously in the thread in maintenance mode
    
    [ Upstream commit 340ff31ab00bca5c15915e70ad9ada3030c98cf8 ]
    
    ipmi_thread() uses back-to-back schedule() to poll for command
    completion which, on some machines, can push up CPU consumption and
    heavily tax the scheduler locks leading to noticeable overall
    performance degradation.
    
    This was originally added so firmware updates through IPMI would
    complete in a timely manner.  But we can't kill the scheduler
    locks for that one use case.
    
    Instead, only run schedule() continuously in maintenance mode,
    where firmware updates should run.
    
    Signed-off-by: Corey Minyard <cminyard@mvista.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1e662250f4db74614ec28f1080bec3d04f3a4be1
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Mon Jul 29 16:36:44 2019 +0800

    gpu: drm: radeon: Fix a possible null-pointer dereference in radeon_connector_set_property()
    
    [ Upstream commit f3eb9b8f67bc28783eddc142ad805ebdc53d6339 ]
    
    In radeon_connector_set_property(), there is an if statement on line 743
    to check whether connector->encoder is NULL:
        if (connector->encoder)
    
    When connector->encoder is NULL, it is used on line 755:
        if (connector->encoder->crtc)
    
    Thus, a possible null-pointer dereference may occur.
    
    To fix this bug, connector->encoder is checked before being used.
    
    This bug is found by a static analysis tool STCheck written by us.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 09a0e83e032672d80dfc7ade5759712342cc4b63
Author: KyleMahlkuch <kmahlkuc@linux.vnet.ibm.com>
Date:   Wed Jul 31 17:10:14 2019 -0500

    drm/radeon: Fix EEH during kexec
    
    [ Upstream commit 6f7fe9a93e6c09bf988c5059403f5f88e17e21e6 ]
    
    During kexec some adapters hit an EEH since they are not properly
    shut down in the radeon_pci_shutdown() function. Adding
    radeon_suspend_kms() fixes this issue.
    
    Signed-off-by: KyleMahlkuch <kmahlkuc@linux.vnet.ibm.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ba3b24a8f3d5e425edd58ffb785c77b892b0a04
Author: Ahmad Fatoum <a.fatoum@pengutronix.de>
Date:   Fri Jul 12 10:42:28 2019 +0200

    drm/stm: attach gem fence to atomic state
    
    [ Upstream commit 8fabc9c3109a71b3577959a05408153ae69ccd8d ]
    
    To properly synchronize with other devices the fence from the GEM
    object backing the framebuffer needs to be attached to the atomic
    state, so the commit work can wait on fence signaling.
    
    Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Acked-by: Philippe Cornu <philippe.cornu@st.com>
    Tested-by: Philippe Cornu <philippe.cornu@st.com>
    Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190712084228.8338-1-l.stach@pengutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 284c26113cb0ba39bc7a850a5a1ec8eb9b68fbd9
Author: Marko Kohtala <marko.kohtala@okoko.fi>
Date:   Tue Jun 18 10:41:08 2019 +0300

    video: ssd1307fb: Start page range at page_offset
    
    [ Upstream commit dd9782834dd9dde3624ff1acea8859f3d3e792d4 ]
    
    The page_offset was only applied to the end of the page range. This caused
    the display updates to cause a scrolling effect on the display because the
    amount of data written to the display did not match the range display
    expected.
    
    Fixes: 301bc0675b67 ("video: ssd1307fb: Make use of horizontal addressing mode")
    Signed-off-by: Marko Kohtala <marko.kohtala@okoko.fi>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Michal Vokáč <michal.vokac@ysoft.com>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190618074111.9309-4-marko.kohtala@okoko.fi
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 43133878e12d4223095b347996cdba29e6917914
Author: Lucas Stach <l.stach@pengutronix.de>
Date:   Wed Jul 10 15:07:40 2019 +0200

    drm/panel: simple: fix AUO g185han01 horizontal blanking
    
    [ Upstream commit f8c6bfc612b56f02e1b8fae699dff12738aaf889 ]
    
    The horizontal blanking periods are too short, as the values are
    specified for a single LVDS channel. Since this panel is dual LVDS
    they need to be doubled. With this change the panel reaches its
    nominal vrefresh rate of 60Fps, instead of the 64Fps with the
    current wrong blanking.
    
    Philipp Zabel added:
    The datasheet specifies 960 active clocks + 40/128/160 clocks blanking
    on each of the two LVDS channels (min/typical/max), so doubled this is
    now correct.
    
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
    Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/1562764060.23869.12.camel@pengutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 103bd4b3b27b8a96420038620e9e9ecd63071cad
Author: Andrey Smirnov <andrew.smirnov@gmail.com>
Date:   Tue Jun 18 22:27:09 2019 -0700

    drm/bridge: tc358767: Increase AUX transfer length limit
    
    [ Upstream commit e0655feaec62d5139b6b13a7b1bbb1ab8f1c2d83 ]
    
    According to the datasheet tc358767 can transfer up to 16 bytes via
    its AUX channel, so the artificial limit of 8 appears to be too
    low. However only up to 15-bytes seem to be actually supported and
    trying to use 16-byte transfers results in transfers failing
    sporadically (with bogus status in case of I2C transfers), so limit it
    to 15.
    
    Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
    Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
    Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Andrzej Hajda <a.hajda@samsung.com>
    Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Andrey Gusakov <andrey.gusakov@cogentembedded.com>
    Cc: Philipp Zabel <p.zabel@pengutronix.de>
    Cc: Cory Tusar <cory.tusar@zii.aero>
    Cc: Chris Healy <cphealy@gmail.com>
    Cc: Lucas Stach <l.stach@pengutronix.de>
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190619052716.16831-9-andrew.smirnov@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 19741180b945f776c5fe6cbb8302d4ea870b1947
Author: Vadim Sukhomlinov <sukhomlinov@google.com>
Date:   Thu Oct 3 21:46:23 2019 +0300

    tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations
    
    commit db4d8cb9c9f2af71c4d087817160d866ed572cc9 upstream
    
    TPM 2.0 Shutdown involve sending TPM2_Shutdown to TPM chip and disabling
    future TPM operations. TPM 1.2 behavior was different, future TPM
    operations weren't disabled, causing rare issues. This patch ensures
    that future TPM operations are disabled.
    
    Fixes: d1bd4a792d39 ("tpm: Issue a TPM2_Shutdown for TPM2 devices.")
    Cc: stable@vger.kernel.org
    Signed-off-by: Vadim Sukhomlinov <sukhomlinov@google.com>
    [dianders: resolved merge conflicts with mainline]
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a5a497ec1a8f44f09d517215fef71dfdfce4034c
Author: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Date:   Thu Oct 3 21:46:22 2019 +0300

    tpm: use tpm_try_get_ops() in tpm-sysfs.c.
    
    commit 2677ca98ae377517930c183248221f69f771c921 upstream
    
    Use tpm_try_get_ops() in tpm-sysfs.c so that we can consider moving
    other decorations (locking, localities, power management for example)
    inside it. This direction can be of course taken only after other call
    sites for tpm_transmit() have been treated in the same way.
    
    Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
    Tested-by: Stefan Berger <stefanb@linux.ibm.com>
    Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
    Reviewed-by: James Bottomley <James.Bottomley@HansenPartnership.com>
    Tested-by: Alexander Steffen <Alexander.Steffen@infineon.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 36b319c1a1480cee3d35f487939f6247e4390292
Author: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Date:   Thu Oct 3 21:46:21 2019 +0300

    tpm: migrate pubek_show to struct tpm_buf
    
    commit da379f3c1db0c9a1fd27b11d24c9894b5edc7c75 upstream
    
    Migrated pubek_show to struct tpm_buf and cleaned up its implementation.
    Previously the output parameter structure was declared but left
    completely unused. Now it is used to refer different fields of the
    output. We can move it to tpm-sysfs.c as it does not have any use
    outside of that file.
    
    Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>