commit b850307b279cbd12ab8c654d1a3dfe55319cc475
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jun 11 09:23:02 2020 +0200

    Linux 4.14.184

commit 0768f08ecdd76d97ca51c48fd963cdb2855b56e4
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Mon May 4 18:47:25 2020 +0200

    uprobes: ensure that uprobe->offset and ->ref_ctr_offset are properly aligned
    
    commit 013b2deba9a6b80ca02f4fafd7dedf875e9b4450 upstream.
    
    uprobe_write_opcode() must not cross page boundary; prepare_uprobe()
    relies on arch_uprobe_analyze_insn() which should validate "vaddr" but
    some architectures (csky, s390, and sparc) don't do this.
    
    We can remove the BUG_ON() check in prepare_uprobe() and validate the
    offset early in __uprobe_register(). The new IS_ALIGNED() check matches
    the alignment check in arch_prepare_kprobe() on supported architectures,
    so I think that all insns must be aligned to UPROBE_SWBP_INSN_SIZE.
    
    Another problem is __update_ref_ctr() which was wrong from the very
    beginning, it can read/write outside of kmap'ed page unless "vaddr" is
    aligned to sizeof(short), __uprobe_register() should check this too.
    
    Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Tested-by: Sven Schnelle <svens@linux.ibm.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [ check for ref_ctr_offset removed for backport - gregkh ]
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f8b755d81db4b0ef5c8f21f4f80b6292cdbe006a
Author: Mathieu Othacehe <m.othacehe@gmail.com>
Date:   Sun May 3 11:29:55 2020 +0200

    iio: vcnl4000: Fix i2c swapped word reading.
    
    [ Upstream commit 18dfb5326370991c81a6d1ed6d1aeee055cb8c05 ]
    
    The bytes returned by the i2c reading need to be swapped
    unconditionally. Otherwise, on be16 platforms, an incorrect value will be
    returned.
    
    Taking the slow path via next merge window as its been around a while
    and we have a patch set dependent on this which would be held up.
    
    Fixes: 62a1efb9f868 ("iio: add vcnl4000 combined ALS and proximity sensor")
    Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2a24563e93e40448fed093679668445c22fc226d
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Mon Apr 27 20:46:13 2020 +0200

    x86/speculation: Add Ivy Bridge to affected list
    
    commit 3798cc4d106e91382bfe016caa2edada27c2bb3f upstream
    
    Make the docs match the code.
    
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1fd6b5a9236cd202e449aab99fbd527a3cca4b3c
Author: Mark Gross <mgross@linux.intel.com>
Date:   Thu Apr 16 18:21:51 2020 +0200

    x86/speculation: Add SRBDS vulnerability and mitigation documentation
    
    commit 7222a1b5b87417f22265c92deea76a6aecd0fb0f upstream
    
    Add documentation for the SRBDS vulnerability and its mitigation.
    
     [ bp: Massage.
       jpoimboe: sysfs table strings. ]
    
    Signed-off-by: Mark Gross <mgross@linux.intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Tony Luck <tony.luck@intel.com>
    Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ecf57e4aaca7197ab0f196e8a7b74d57e974ad9
Author: Mark Gross <mgross@linux.intel.com>
Date:   Thu Apr 16 17:54:04 2020 +0200

    x86/speculation: Add Special Register Buffer Data Sampling (SRBDS) mitigation
    
    commit 7e5b3c267d256822407a22fdce6afdf9cd13f9fb upstream
    
    SRBDS is an MDS-like speculative side channel that can leak bits from the
    random number generator (RNG) across cores and threads. New microcode
    serializes the processor access during the execution of RDRAND and
    RDSEED. This ensures that the shared buffer is overwritten before it is
    released for reuse.
    
    While it is present on all affected CPU models, the microcode mitigation
    is not needed on models that enumerate ARCH_CAPABILITIES[MDS_NO] in the
    cases where TSX is not supported or has been disabled with TSX_CTRL.
    
    The mitigation is activated by default on affected processors and it
    increases latency for RDRAND and RDSEED instructions. Among other
    effects this will reduce throughput from /dev/urandom.
    
    * Enable administrator to configure the mitigation off when desired using
      either mitigations=off or srbds=off.
    
    * Export vulnerability status via sysfs
    
    * Rename file-scoped macros to apply for non-whitelist table initializations.
    
     [ bp: Massage,
       - s/VULNBL_INTEL_STEPPING/VULNBL_INTEL_STEPPINGS/g,
       - do not read arch cap MSR a second time in tsx_fused_off() - just pass it in,
       - flip check in cpu_set_bug_bits() to save an indentation level,
       - reflow comments.
       jpoimboe: s/Mitigated/Mitigation/ in user-visible strings
       tglx: Dropped the fused off magic for now
     ]
    
    Signed-off-by: Mark Gross <mgross@linux.intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Tony Luck <tony.luck@intel.com>
    Reviewed-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Tested-by: Neelima Krishnan <neelima.krishnan@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c98ba3f69b156c9fee72b71260d51f623a4a457
Author: Mark Gross <mgross@linux.intel.com>
Date:   Thu Apr 16 17:32:42 2020 +0200

    x86/cpu: Add 'table' argument to cpu_matches()
    
    commit 93920f61c2ad7edb01e63323832585796af75fc9 upstream
    
    To make cpu_matches() reusable for other matching tables, have it take a
    pointer to a x86_cpu_id table as an argument.
    
     [ bp: Flip arguments order. ]
    
    Signed-off-by: Mark Gross <mgross@linux.intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae585de4296413ae4bbb8f2ac09faa38ff78f4cd
Author: Mark Gross <mgross@linux.intel.com>
Date:   Thu Apr 16 17:23:10 2020 +0200

    x86/cpu: Add a steppings field to struct x86_cpu_id
    
    commit e9d7144597b10ff13ff2264c059f7d4a7fbc89ac upstream
    
    Intel uses the same family/model for several CPUs. Sometimes the
    stepping must be checked to tell them apart.
    
    On x86 there can be at most 16 steppings. Add a steppings bitmask to
    x86_cpu_id and a X86_MATCH_VENDOR_FAMILY_MODEL_STEPPING_FEATURE macro
    and support for matching against family/model/stepping.
    
     [ bp: Massage.
       tglx: Lightweight variant for backporting ]
    
    Signed-off-by: Mark Gross <mgross@linux.intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Tony Luck <tony.luck@intel.com>
    Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 992ba3f7b87df3a130c0de315983ee53191290d2
Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date:   Fri May 22 12:33:41 2020 +0100

    nvmem: qfprom: remove incorrect write support
    
    commit 8d9eb0d6d59a5d7028c80a30831143d3e75515a7 upstream.
    
    qfprom has different address spaces for read and write. Reads are
    always done from corrected address space, where as writes are done
    on raw address space.
    Writing to corrected address space is invalid and ignored, so it
    does not make sense to have this support in the driver which only
    supports corrected address space regions at the moment.
    
    Fixes: 4ab11996b489 ("nvmem: qfprom: Add Qualcomm QFPROM support.")
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200522113341.7728-1-srinivas.kandagatla@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc41ae15d52ef089a2de6b137d9408dde7624ee9
Author: Oliver Neukum <oneukum@suse.com>
Date:   Tue May 26 14:44:20 2020 +0200

    CDC-ACM: heed quirk also in error handling
    
    commit 97fe809934dd2b0b37dfef3a2fc70417f485d7af upstream.
    
    If buffers are iterated over in the error case, the lower limits
    for quirky devices must be heeded.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Reported-by: Jean Rene Dawin <jdawin@math.uni-bielefeld.de>
    Fixes: a4e7279cd1d19 ("cdc-acm: introduce a cool down")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200526124420.22160-1-oneukum@suse.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9e0cdab2e9b7f58379e5440dfa1d500bc9e33bf
Author: Pascal Terjan <pterjan@google.com>
Date:   Sat May 23 22:12:47 2020 +0100

    staging: rtl8712: Fix IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK
    
    commit 15ea976a1f12b5fd76b1bd6ff3eb5132fd28047f upstream.
    
    The value in shared headers was fixed 9 years ago in commit 8d661f1e462d
    ("ieee80211: correct IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK macro") and
    while looking at using shared headers for other duplicated constants
    I noticed this driver uses the old value.
    
    The macros are also defined twice in this file so I am deleting the
    second definition.
    
    Signed-off-by: Pascal Terjan <pterjan@google.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200523211247.23262-1-pterjan@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94d8520821d03254a0734264a62ba9e8d2634d2d
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Tue May 26 16:56:32 2020 +0200

    tty: hvc_console, fix crashes on parallel open/close
    
    commit 24eb2377f977fe06d84fca558f891f95bc28a449 upstream.
    
    hvc_open sets tty->driver_data to NULL when open fails at some point.
    Typically, the failure happens in hp->ops->notifier_add(). If there is
    a racing process which tries to open such mangled tty, which was not
    closed yet, the process will crash in hvc_open as tty->driver_data is
    NULL.
    
    All this happens because close wants to know whether open failed or not.
    But ->open should not NULL this and other tty fields for ->close to be
    happy. ->open should call tty_port_set_initialized(true) and close
    should check by tty_port_initialized() instead. So do this properly in
    this driver.
    
    So this patch removes these from ->open:
    * tty_port_tty_set(&hp->port, NULL). This happens on last close.
    * tty->driver_data = NULL. Dtto.
    * tty_port_put(&hp->port). This happens in shutdown and until now, this
      must have been causing a reference underflow, if I am not missing
      something.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Cc: stable <stable@vger.kernel.org>
    Reported-and-tested-by: Raghavendra <rananta@codeaurora.org>
    Link: https://lore.kernel.org/r/20200526145632.13879-1-jslaby@suse.cz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26079af52bf616bc492acc1fe41dce53fe199456
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Mon May 25 16:27:40 2020 -0700

    vt: keyboard: avoid signed integer overflow in k_ascii
    
    commit b86dab054059b970111b5516ae548efaae5b3aae upstream.
    
    When k_ascii is invoked several times in a row there is a potential for
    signed integer overflow:
    
    UBSAN: Undefined behaviour in drivers/tty/vt/keyboard.c:888:19 signed integer overflow:
    10 * 1111111111 cannot be represented in type 'int'
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.6.11 #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    Call Trace:
     <IRQ>
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0xce/0x128 lib/dump_stack.c:118
     ubsan_epilogue+0xe/0x30 lib/ubsan.c:154
     handle_overflow+0xdc/0xf0 lib/ubsan.c:184
     __ubsan_handle_mul_overflow+0x2a/0x40 lib/ubsan.c:205
     k_ascii+0xbf/0xd0 drivers/tty/vt/keyboard.c:888
     kbd_keycode drivers/tty/vt/keyboard.c:1477 [inline]
     kbd_event+0x888/0x3be0 drivers/tty/vt/keyboard.c:1495
    
    While it can be worked around by using check_mul_overflow()/
    check_add_overflow(), it is better to introduce a separate flag to
    signal that number pad is being used to compose a symbol, and
    change type of the accumulator from signed to unsigned, thus
    avoiding undefined behavior when it overflows.
    
    Reported-by: Kyungtae Kim <kt0755@gmail.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200525232740.GA262061@dtor-ws
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 234257c8709f8757b1a1092cdc4bd04f3a9f864f
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Sun May 24 21:50:49 2020 -0500

    usb: musb: Fix runtime PM imbalance on error
    
    commit e4befc121df03dc8ed2ac1031c98f9538e244bae upstream.
    
    When copy_from_user() returns an error code, there
    is a runtime PM usage counter imbalance.
    
    Fix this by moving copy_from_user() to the beginning
    of this function.
    
    Fixes: 7b6c1b4c0e1e ("usb: musb: fix runtime PM in debugfs")
    
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Cc: stable@vger.kernel.org
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Link: https://lore.kernel.org/r/20200525025049.3400-7-b-liu@ti.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20797d67c68af026ef1e4d0dfcc003d965faa314
Author: Bin Liu <b-liu@ti.com>
Date:   Sun May 24 21:50:45 2020 -0500

    usb: musb: start session in resume for host port
    
    commit 7f88a5ac393f39319f69b8b20cc8d5759878d1a1 upstream.
    
    Commit 17539f2f4f0b ("usb: musb: fix enumeration after resume") replaced
    musb_start() in musb_resume() to not override softconnect bit, but it
    doesn't restart the session for host port which was done in musb_start().
    The session could be disabled in musb_suspend(), which leads the host
    port doesn't stay in host mode.
    
    So let's start the session specifically for host port in musb_resume().
    
    Fixes: 17539f2f4f0b ("usb: musb: fix enumeration after resume")
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Link: https://lore.kernel.org/r/20200525025049.3400-3-b-liu@ti.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5837494357c1853baa618890d80be72aebe330b4
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Mon May 25 23:11:06 2020 +0200

    USB: serial: option: add Telit LE910C1-EUX compositions
    
    commit 399ad9477c523f721f8e51d4f824bdf7267f120c upstream.
    
    Add Telit LE910C1-EUX compositions:
    
            0x1031: tty, tty, tty, rmnet
            0x1033: tty, tty, tty, ecm
    
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Link: https://lore.kernel.org/r/20200525211106.27338-1-dnlplm@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da380bf104009f9986275fe657907ee71dc44cc0
Author: Bin Liu <b-liu@ti.com>
Date:   Wed May 13 16:36:46 2020 -0500

    USB: serial: usb_wwan: do not resubmit rx urb on fatal errors
    
    commit 986c1748c84d7727defeaeca74a73b37f7d5cce1 upstream.
    
    usb_wwan_indat_callback() shouldn't resubmit rx urb if the previous urb
    status is a fatal error. Or the usb controller would keep processing the
    new urbs then run into interrupt storm, and has no chance to recover.
    
    Fixes: 6c1ee66a0b2b ("USB-Serial: Fix error handling of usb_wwan")
    Cc: stable@vger.kernel.org
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff9afd12c93a12e719350f03860924763c2e27af
Author: Matt Jolly <Kangie@footclan.ninja>
Date:   Thu May 21 10:43:58 2020 +1000

    USB: serial: qcserial: add DW5816e QDL support
    
    commit 3429444abdd9dbd5faebd9bee552ec6162b17ad6 upstream.
    
    Add support for Dell Wireless 5816e Download Mode (AKA boot & hold mode /
    QDL download mode) to drivers/usb/serial/qcserial.c
    
    This is required to update device firmware.
    
    Signed-off-by: Matt Jolly <Kangie@footclan.ninja>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c28c1bdab62e0653a54695671d9862a5c69b9b69
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri May 29 11:32:25 2020 -0700

    l2tp: add sk_family checks to l2tp_validate_socket
    
    [ Upstream commit d9a81a225277686eb629938986d97629ea102633 ]
    
    syzbot was able to trigger a crash after using an ISDN socket
    and fool l2tp.
    
    Fix this by making sure the UDP socket is of the proper family.
    
    BUG: KASAN: slab-out-of-bounds in setup_udp_tunnel_sock+0x465/0x540 net/ipv4/udp_tunnel.c:78
    Write of size 1 at addr ffff88808ed0c590 by task syz-executor.5/3018
    
    CPU: 0 PID: 3018 Comm: syz-executor.5 Not tainted 5.7.0-rc6-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x188/0x20d lib/dump_stack.c:118
     print_address_description.constprop.0.cold+0xd3/0x413 mm/kasan/report.c:382
     __kasan_report.cold+0x20/0x38 mm/kasan/report.c:511
     kasan_report+0x33/0x50 mm/kasan/common.c:625
     setup_udp_tunnel_sock+0x465/0x540 net/ipv4/udp_tunnel.c:78
     l2tp_tunnel_register+0xb15/0xdd0 net/l2tp/l2tp_core.c:1523
     l2tp_nl_cmd_tunnel_create+0x4b2/0xa60 net/l2tp/l2tp_netlink.c:249
     genl_family_rcv_msg_doit net/netlink/genetlink.c:673 [inline]
     genl_family_rcv_msg net/netlink/genetlink.c:718 [inline]
     genl_rcv_msg+0x627/0xdf0 net/netlink/genetlink.c:735
     netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2469
     genl_rcv+0x24/0x40 net/netlink/genetlink.c:746
     netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
     netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
     netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
     sock_sendmsg_nosec net/socket.c:652 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:672
     ____sys_sendmsg+0x6e6/0x810 net/socket.c:2352
     ___sys_sendmsg+0x100/0x170 net/socket.c:2406
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2439
     do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:295
     entry_SYSCALL_64_after_hwframe+0x49/0xb3
    RIP: 0033:0x45ca29
    Code: 0d b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 db b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007effe76edc78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 00000000004fe1c0 RCX: 000000000045ca29
    RDX: 0000000000000000 RSI: 0000000020000240 RDI: 0000000000000005
    RBP: 000000000078bf00 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
    R13: 000000000000094e R14: 00000000004d5d00 R15: 00007effe76ee6d4
    
    Allocated by task 3018:
     save_stack+0x1b/0x40 mm/kasan/common.c:49
     set_track mm/kasan/common.c:57 [inline]
     __kasan_kmalloc mm/kasan/common.c:495 [inline]
     __kasan_kmalloc.constprop.0+0xbf/0xd0 mm/kasan/common.c:468
     __do_kmalloc mm/slab.c:3656 [inline]
     __kmalloc+0x161/0x7a0 mm/slab.c:3665
     kmalloc include/linux/slab.h:560 [inline]
     sk_prot_alloc+0x223/0x2f0 net/core/sock.c:1612
     sk_alloc+0x36/0x1100 net/core/sock.c:1666
     data_sock_create drivers/isdn/mISDN/socket.c:600 [inline]
     mISDN_sock_create+0x272/0x400 drivers/isdn/mISDN/socket.c:796
     __sock_create+0x3cb/0x730 net/socket.c:1428
     sock_create net/socket.c:1479 [inline]
     __sys_socket+0xef/0x200 net/socket.c:1521
     __do_sys_socket net/socket.c:1530 [inline]
     __se_sys_socket net/socket.c:1528 [inline]
     __x64_sys_socket+0x6f/0xb0 net/socket.c:1528
     do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:295
     entry_SYSCALL_64_after_hwframe+0x49/0xb3
    
    Freed by task 2484:
     save_stack+0x1b/0x40 mm/kasan/common.c:49
     set_track mm/kasan/common.c:57 [inline]
     kasan_set_free_info mm/kasan/common.c:317 [inline]
     __kasan_slab_free+0xf7/0x140 mm/kasan/common.c:456
     __cache_free mm/slab.c:3426 [inline]
     kfree+0x109/0x2b0 mm/slab.c:3757
     kvfree+0x42/0x50 mm/util.c:603
     __free_fdtable+0x2d/0x70 fs/file.c:31
     put_files_struct fs/file.c:420 [inline]
     put_files_struct+0x248/0x2e0 fs/file.c:413
     exit_files+0x7e/0xa0 fs/file.c:445
     do_exit+0xb04/0x2dd0 kernel/exit.c:791
     do_group_exit+0x125/0x340 kernel/exit.c:894
     get_signal+0x47b/0x24e0 kernel/signal.c:2739
     do_signal+0x81/0x2240 arch/x86/kernel/signal.c:784
     exit_to_usermode_loop+0x26c/0x360 arch/x86/entry/common.c:161
     prepare_exit_to_usermode arch/x86/entry/common.c:196 [inline]
     syscall_return_slowpath arch/x86/entry/common.c:279 [inline]
     do_syscall_64+0x6b1/0x7d0 arch/x86/entry/common.c:305
     entry_SYSCALL_64_after_hwframe+0x49/0xb3
    
    The buggy address belongs to the object at ffff88808ed0c000
     which belongs to the cache kmalloc-2k of size 2048
    The buggy address is located 1424 bytes inside of
     2048-byte region [ffff88808ed0c000, ffff88808ed0c800)
    The buggy address belongs to the page:
    page:ffffea00023b4300 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0
    flags: 0xfffe0000000200(slab)
    raw: 00fffe0000000200 ffffea0002838208 ffffea00015ba288 ffff8880aa000e00
    raw: 0000000000000000 ffff88808ed0c000 0000000100000001 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff88808ed0c480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     ffff88808ed0c500: 00 00 00 fc fc fc fc fc fc fc fc fc fc fc fc fc
    >ffff88808ed0c580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                             ^
     ffff88808ed0c600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff88808ed0c680: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    
    Fixes: 6b9f34239b00 ("l2tp: fix races in tunnel creation")
    Fixes: fd558d186df2 ("l2tp: Split pppol2tp patch into separate l2tp and ppp parts")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: James Chapman <jchapman@katalix.com>
    Cc: Guillaume Nault <gnault@redhat.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Acked-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5c336039843d40e949d1d4fe8dcd380229db795f
Author: Willem de Bruijn <willemb@google.com>
Date:   Mon May 25 15:07:40 2020 -0400

    net: check untrusted gso_size at kernel entry
    
    [ Upstream commit 6dd912f82680761d8fb6b1bb274a69d4c7010988 ]
    
    Syzkaller again found a path to a kernel crash through bad gso input:
    a packet with gso size exceeding len.
    
    These packets are dropped in tcp_gso_segment and udp[46]_ufo_fragment.
    But they may affect gso size calculations earlier in the path.
    
    Now that we have thlen as of commit 9274124f023b ("net: stricter
    validation of untrusted gso packets"), check gso_size at entry too.
    
    Fixes: bfd5f4a3d605 ("packet: Add GSO/csum offload support.")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eba49f06f249015db77974dc568dbf2de94d8c7b
Author: Stefano Garzarella <sgarzare@redhat.com>
Date:   Wed May 27 09:56:55 2020 +0200

    vsock: fix timeout in vsock_accept()
    
    [ Upstream commit 7e0afbdfd13d1e708fe96e31c46c4897101a6a43 ]
    
    The accept(2) is an "input" socket interface, so we should use
    SO_RCVTIMEO instead of SO_SNDTIMEO to set the timeout.
    
    So this patch replace sock_sndtimeo() with sock_rcvtimeo() to
    use the right timeout in the vsock_accept().
    
    Fixes: d021c344051a ("VSOCK: Introduce VM Sockets")
    Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    Reviewed-by: Jorgen Hansen <jhansen@vmware.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5062415ef0cfffae81b79763b099b1ecc50f2f9b
Author: Chuhong Yuan <hslester96@gmail.com>
Date:   Thu May 28 18:20:37 2020 +0800

    NFC: st21nfca: add missed kfree_skb() in an error path
    
    [ Upstream commit 3decabdc714ca56c944f4669b4cdec5c2c1cea23 ]
    
    st21nfca_tm_send_atr_res() misses to call kfree_skb() in an error path.
    Add the missed function call to fix it.
    
    Fixes: 1892bf844ea0 ("NFC: st21nfca: Adding P2P support to st21nfca in Initiator & Target mode")
    Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b433a56f62df5ec078ffc55892c691b60123a360
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Mon May 25 23:25:37 2020 +0200

    net: usb: qmi_wwan: add Telit LE910C1-EUX composition
    
    [ Upstream commit 591612aa578cd7148b7b9d74869ef40118978389 ]
    
    Add support for Telit LE910C1-EUX composition
    
    0x1031: tty, tty, tty, rmnet
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 864bd400f045655b8e20431f5f1c682f9b0c1096
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri May 29 11:20:53 2020 -0700

    l2tp: do not use inet_hash()/inet_unhash()
    
    [ Upstream commit 02c71b144c811bcdd865e0a1226d0407d11357e8 ]
    
    syzbot recently found a way to crash the kernel [1]
    
    Issue here is that inet_hash() & inet_unhash() are currently
    only meant to be used by TCP & DCCP, since only these protocols
    provide the needed hashinfo pointer.
    
    L2TP uses a single list (instead of a hash table)
    
    This old bug became an issue after commit 610236587600
    ("bpf: Add new cgroup attach type to enable sock modifications")
    since after this commit, sk_common_release() can be called
    while the L2TP socket is still considered 'hashed'.
    
    general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1] PREEMPT SMP KASAN
    KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
    CPU: 0 PID: 7063 Comm: syz-executor654 Not tainted 5.7.0-rc6-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:inet_unhash+0x11f/0x770 net/ipv4/inet_hashtables.c:600
    Code: 03 0f b6 04 02 84 c0 74 08 3c 03 0f 8e dd 04 00 00 48 8d 7d 08 44 8b 73 08 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 55 05 00 00 48 8d 7d 14 4c 8b 6d 08 48 b8 00 00
    RSP: 0018:ffffc90001777d30 EFLAGS: 00010202
    RAX: dffffc0000000000 RBX: ffff88809a6df940 RCX: ffffffff8697c242
    RDX: 0000000000000001 RSI: ffffffff8697c251 RDI: 0000000000000008
    RBP: 0000000000000000 R08: ffff88809f3ae1c0 R09: fffffbfff1514cc1
    R10: ffffffff8a8a6607 R11: fffffbfff1514cc0 R12: ffff88809a6df9b0
    R13: 0000000000000007 R14: 0000000000000000 R15: ffffffff873a4d00
    FS:  0000000001d2b880(0000) GS:ffff8880ae600000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000006cd090 CR3: 000000009403a000 CR4: 00000000001406f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     sk_common_release+0xba/0x370 net/core/sock.c:3210
     inet_create net/ipv4/af_inet.c:390 [inline]
     inet_create+0x966/0xe00 net/ipv4/af_inet.c:248
     __sock_create+0x3cb/0x730 net/socket.c:1428
     sock_create net/socket.c:1479 [inline]
     __sys_socket+0xef/0x200 net/socket.c:1521
     __do_sys_socket net/socket.c:1530 [inline]
     __se_sys_socket net/socket.c:1528 [inline]
     __x64_sys_socket+0x6f/0xb0 net/socket.c:1528
     do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:295
     entry_SYSCALL_64_after_hwframe+0x49/0xb3
    RIP: 0033:0x441e29
    Code: e8 fc b3 02 00 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 eb 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007ffdce184148 EFLAGS: 00000246 ORIG_RAX: 0000000000000029
    RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000441e29
    RDX: 0000000000000073 RSI: 0000000000000002 RDI: 0000000000000002
    RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    R13: 0000000000402c30 R14: 0000000000000000 R15: 0000000000000000
    Modules linked in:
    ---[ end trace 23b6578228ce553e ]---
    RIP: 0010:inet_unhash+0x11f/0x770 net/ipv4/inet_hashtables.c:600
    Code: 03 0f b6 04 02 84 c0 74 08 3c 03 0f 8e dd 04 00 00 48 8d 7d 08 44 8b 73 08 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 55 05 00 00 48 8d 7d 14 4c 8b 6d 08 48 b8 00 00
    RSP: 0018:ffffc90001777d30 EFLAGS: 00010202
    RAX: dffffc0000000000 RBX: ffff88809a6df940 RCX: ffffffff8697c242
    RDX: 0000000000000001 RSI: ffffffff8697c251 RDI: 0000000000000008
    RBP: 0000000000000000 R08: ffff88809f3ae1c0 R09: fffffbfff1514cc1
    R10: ffffffff8a8a6607 R11: fffffbfff1514cc0 R12: ffff88809a6df9b0
    R13: 0000000000000007 R14: 0000000000000000 R15: ffffffff873a4d00
    FS:  0000000001d2b880(0000) GS:ffff8880ae600000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000006cd090 CR3: 000000009403a000 CR4: 00000000001406f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    
    Fixes: 0d76751fad77 ("l2tp: Add L2TPv3 IP encapsulation (no UDP) support")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: James Chapman <jchapman@katalix.com>
    Cc: Andrii Nakryiko <andriin@fb.com>
    Reported-by: syzbot+3610d489778b57cc8031@syzkaller.appspotmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e246aad5b112333ad64fdb0f159faeeb9a83598
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Sat May 30 11:34:33 2020 +0800

    devinet: fix memleak in inetdev_init()
    
    [ Upstream commit 1b49cd71b52403822731dc9f283185d1da355f97 ]
    
    When devinet_sysctl_register() failed, the memory allocated
    in neigh_parms_alloc() should be freed.
    
    Fixes: 20e61da7ffcf ("ipv4: fail early when creating netdev named all or default")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe7de37720936ecfe4df514bcfa24cf0aac7e8ac
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed May 27 21:48:30 2020 +0300

    airo: Fix read overflows sending packets
    
    commit 11e7a91994c29da96d847f676be023da6a2c1359 upstream.
    
    The problem is that we always copy a minimum of ETH_ZLEN (60) bytes from
    skb->data even when skb->len is less than ETH_ZLEN so it leads to a read
    overflow.
    
    The fix is to pad skb->data to at least ETH_ZLEN bytes.
    
    Cc: <stable@vger.kernel.org>
    Reported-by: Hu Jiahui <kirin.say@gmail.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200527184830.GA1164846@mwanda
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d9fce5b57a3644ba0d3f807da97fdb2648c6a5a
Author: Can Guo <cang@codeaurora.org>
Date:   Thu Dec 5 02:14:33 2019 +0000

    scsi: ufs: Release clock if DMA map fails
    
    commit 17c7d35f141ef6158076adf3338f115f64fcf760 upstream.
    
    In queuecommand path, if DMA map fails, it bails out with clock held.  In
    this case, release the clock to keep its usage paired.
    
    [mkp: applied by hand]
    
    Link: https://lore.kernel.org/r/0101016ed3d66395-1b7e7fce-b74d-42ca-a88a-4db78b795d3b-000000@us-west-2.amazonses.com
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Signed-off-by: Can Guo <cang@codeaurora.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    [EB: resolved cherry-pick conflict caused by newer kernels not having
     the clear_bit_unlock() line]
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a01794d3648dc4cffa5f1f4b8cdda057060cc4e1
Author: Jérôme Pouiller <jerome.pouiller@silabs.com>
Date:   Mon May 11 18:19:02 2020 +0200

    mmc: fix compilation of user API
    
    commit 83fc5dd57f86c3ec7d6d22565a6ff6c948853b64 upstream.
    
    The definitions of MMC_IOC_CMD  and of MMC_IOC_MULTI_CMD rely on
    MMC_BLOCK_MAJOR:
    
        #define MMC_IOC_CMD       _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd)
        #define MMC_IOC_MULTI_CMD _IOWR(MMC_BLOCK_MAJOR, 1, struct mmc_ioc_multi_cmd)
    
    However, MMC_BLOCK_MAJOR is defined in linux/major.h and
    linux/mmc/ioctl.h did not include it.
    
    Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200511161902.191405-1-Jerome.Pouiller@silabs.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7821131c16cb2d32a5014009b50d362317418556
Author: Daniel Axtens <dja@axtens.net>
Date:   Thu Jun 4 16:51:27 2020 -0700

    kernel/relay.c: handle alloc_percpu returning NULL in relay_open
    
    commit 54e200ab40fc14c863bcc80a51e20b7906608fce upstream.
    
    alloc_percpu() may return NULL, which means chan->buf may be set to NULL.
    In that case, when we do *per_cpu_ptr(chan->buf, ...), we dereference an
    invalid pointer:
    
      BUG: Unable to handle kernel data access at 0x7dae0000
      Faulting instruction address: 0xc0000000003f3fec
      ...
      NIP relay_open+0x29c/0x600
      LR relay_open+0x270/0x600
      Call Trace:
         relay_open+0x264/0x600 (unreliable)
         __blk_trace_setup+0x254/0x600
         blk_trace_setup+0x68/0xa0
         sg_ioctl+0x7bc/0x2e80
         do_vfs_ioctl+0x13c/0x1300
         ksys_ioctl+0x94/0x130
         sys_ioctl+0x48/0xb0
         system_call+0x5c/0x68
    
    Check if alloc_percpu returns NULL.
    
    This was found by syzkaller both on x86 and powerpc, and the reproducer
    it found on powerpc is capable of hitting the issue as an unprivileged
    user.
    
    Fixes: 017c59c042d0 ("relay: Use per CPU constructs for the relay channel buffer pointers")
    Reported-by: syzbot+1e925b4b836afe85a1c6@syzkaller-ppc64.appspotmail.com
    Reported-by: syzbot+587b2421926808309d21@syzkaller-ppc64.appspotmail.com
    Reported-by: syzbot+58320b7171734bf79d26@syzkaller.appspotmail.com
    Reported-by: syzbot+d6074fb08bdb2e010520@syzkaller.appspotmail.com
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Michael Ellerman <mpe@ellerman.id.au>
    Reviewed-by: Andrew Donnellan <ajd@linux.ibm.com>
    Acked-by: David Rientjes <rientjes@google.com>
    Cc: Akash Goel <akash.goel@intel.com>
    Cc: Andrew Donnellan <ajd@linux.ibm.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Salvatore Bonaccorso <carnil@debian.org>
    Cc: <stable@vger.kernel.org>    [4.10+]
    Link: http://lkml.kernel.org/r/20191219121256.26480-1-dja@axtens.net
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0584768e5b936428ce958d69f9b5d35f18ad073d
Author: Giuseppe Marco Randazzo <gmrandazzo@gmail.com>
Date:   Mon Apr 6 00:06:59 2020 +0200

    p54usb: add AirVasT USB stick device-id
    
    commit 63e49a9fdac1b4e97ac26cb3fe953f210d83bc53 upstream.
    
    This patch adds the AirVasT USB wireless devices 124a:4026
    to the list of supported devices. It's using the ISL3886
    usb firmware. Without this modification, the wiki adapter
    is not recognized.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Giuseppe Marco Randazzo <gmrandazzo@gmail.com>
    Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [formatted, reworded]
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200405220659.45621-1-chunkeey@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 021620b5fea17606e897caa337ce108cf787113f
Author: Julian Sax <jsbc@gmx.de>
Date:   Tue May 5 17:10:42 2020 +0200

    HID: i2c-hid: add Schneider SCL142ALM to descriptor override
    
    commit 6507ef10660efdfee93f0f3b9fac24b5e4d83e56 upstream.
    
    This device uses the SIPODEV SP1064 touchpad, which does not
    supply descriptors, so it has to be added to the override list.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Julian Sax <jsbc@gmx.de>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad503666564b61dc6c252179fef0efba6fd06dc5
Author: Scott Shumate <scott.shumate@gmail.com>
Date:   Wed May 13 13:39:26 2020 -0500

    HID: sony: Fix for broken buttons on DS3 USB dongles
    
    commit e72455b898ac678667c5674668186b4670d87d11 upstream.
    
    Fix for non-working buttons on knock-off USB dongles for Sony
    controllers. These USB dongles are used to connect older Sony DA/DS1/DS2
    controllers via USB and are common on Amazon, AliExpress, etc.  Without
    the patch, the square, X, and circle buttons do not function.  These
    dongles used to work prior to kernel 4.10 but removing the global DS3
    report fixup in commit e19a267b9987 ("HID: sony: DS3 comply to Linux gamepad
    spec") exposed the problem.
    
    Many people reported the problem on the Ubuntu forums and are working
    around the problem by falling back to the 4.9 hid-sony driver.
    
    The problem stems from these dongles incorrectly reporting their button
    count as 13 instead of 16.  This patch fixes up the report descriptor by
    changing the button report count to 16 and removing 3 padding bits.
    
    Cc: stable@vger.kernel.org
    Fixes: e19a267b9987 ("HID: sony: DS3 comply to Linux gamepad spec")
    Signed-off-by: Scott Shumate <scott.shumate@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 469ef673629d36d8ed5912b52f5d87ecc0309b3c
Author: Fan Yang <Fan_Yang@sjtu.edu.cn>
Date:   Thu Jun 4 18:22:07 2020 +0800

    mm: Fix mremap not considering huge pmd devmap
    
    commit 5bfea2d9b17f1034a68147a8b03b9789af5700f9 upstream.
    
    The original code in mm/mremap.c checks huge pmd by:
    
                    if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd)) {
    
    However, a DAX mapped nvdimm is mapped as huge page (by default) but it
    is not transparent huge page (_PAGE_PSE | PAGE_DEVMAP).  This commit
    changes the condition to include the case.
    
    This addresses CVE-2020-10757.
    
    Fixes: 5c7fb56e5e3f ("mm, dax: dax-pmd vs thp-pmd vs hugetlbfs-pmd")
    Cc: <stable@vger.kernel.org>
    Reported-by: Fan Yang <Fan_Yang@sjtu.edu.cn>
    Signed-off-by: Fan Yang <Fan_Yang@sjtu.edu.cn>
    Tested-by: Fan Yang <Fan_Yang@sjtu.edu.cn>
    Tested-by: Dan Williams <dan.j.williams@intel.com>
    Reviewed-by: Dan Williams <dan.j.williams@intel.com>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a77644c9295a3c4248b1e070d9ce509ead838c0
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Sat May 23 16:08:20 2020 +0800

    net: smsc911x: Fix runtime PM imbalance on error
    
    [ Upstream commit 539d39ad0c61b35f69565a037d7586deaf6d6166 ]
    
    Remove runtime PM usage counter decrement when the
    increment function has not been called to keep the
    counter balanced.
    
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 44fafc855c790cac909444813cc3e65a075c2ade
Author: Jonathan McDowell <noodles@earth.li>
Date:   Thu May 21 12:49:34 2020 +0100

    net: ethernet: stmmac: Enable interface clocks on probe for IPQ806x
    
    [ Upstream commit a96ac8a0045e3cbe3e5af6d1b3c78c6c2065dec5 ]
    
    The ipq806x_gmac_probe() function enables the PTP clock but not the
    appropriate interface clocks. This means that if the bootloader hasn't
    done so attempting to bring up the interface will fail with an error
    like:
    
    [   59.028131] ipq806x-gmac-dwmac 37600000.ethernet: Failed to reset the dma
    [   59.028196] ipq806x-gmac-dwmac 37600000.ethernet eth1: stmmac_hw_setup: DMA engine initialization failed
    [   59.034056] ipq806x-gmac-dwmac 37600000.ethernet eth1: stmmac_open: Hw setup failed
    
    This patch, a slightly cleaned up version of one posted by Sergey
    Sergeev in:
    
    https://forum.openwrt.org/t/support-for-mikrotik-rb3011uias-rm/4064/257
    
    correctly enables the clock; we have already configured the source just
    before this.
    
    Tested on a MikroTik RB3011.
    
    Signed-off-by: Jonathan McDowell <noodles@earth.li>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0bdfe9d5551f858f2a6ead80230e03f0b2ca50b
Author: Valentin Longchamp <valentin@longchamp.me>
Date:   Wed May 20 17:53:50 2020 +0200

    net/ethernet/freescale: rework quiesce/activate for ucc_geth
    
    [ Upstream commit 79dde73cf9bcf1dd317a2667f78b758e9fe139ed ]
    
    ugeth_quiesce/activate are used to halt the controller when there is a
    link change that requires to reconfigure the mac.
    
    The previous implementation called netif_device_detach(). This however
    causes the initial activation of the netdevice to fail precisely because
    it's detached. For details, see [1].
    
    A possible workaround was the revert of commit
    net: linkwatch: add check for netdevice being present to linkwatch_do_dev
    However, the check introduced in the above commit is correct and shall be
    kept.
    
    The netif_device_detach() is thus replaced with
    netif_tx_stop_all_queues() that prevents any tranmission. This allows to
    perform mac config change required by the link change, without detaching
    the corresponding netdevice and thus not preventing its initial
    activation.
    
    [1] https://lists.openwall.net/netdev/2020/01/08/201
    
    Signed-off-by: Valentin Longchamp <valentin@longchamp.me>
    Acked-by: Matteo Ghidoni <matteo.ghidoni@ch.abb.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1560e7d2f4ad5464b0198b588d933084136c2b75
Author: Jeremy Kerr <jk@ozlabs.org>
Date:   Tue May 19 09:05:58 2020 +0800

    net: bmac: Fix read of MAC address from ROM
    
    [ Upstream commit ef01cee2ee1b369c57a936166483d40942bcc3e3 ]
    
    In bmac_get_station_address, We're reading two bytes at a time from ROM,
    but we do that six times, resulting in 12 bytes of read & writes. This
    means we will write off the end of the six-byte destination buffer.
    
    This change fixes the for-loop to only read/write six bytes.
    
    Based on a proposed fix from Finn Thain <fthain@telegraphics.com.au>.
    
    Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
    Reported-by: Stan Johnson <userm57@yahoo.com>
    Tested-by: Stan Johnson <userm57@yahoo.com>
    Reported-by: Finn Thain <fthain@telegraphics.com.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 68fbed1302254b766863b9340a9d3d9a739a0ce0
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Wed Apr 8 13:53:23 2020 -0700

    x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables
    
    [ Upstream commit d7110a26e5905ec2fe3fc88bc6a538901accb72b ]
    
    When building with Clang + -Wtautological-compare and
    CONFIG_CPUMASK_OFFSTACK unset:
    
      arch/x86/mm/mmio-mod.c:375:6: warning: comparison of array 'downed_cpus'
      equal to a null pointer is always false [-Wtautological-pointer-compare]
              if (downed_cpus == NULL &&
                  ^~~~~~~~~~~    ~~~~
      arch/x86/mm/mmio-mod.c:405:6: warning: comparison of array 'downed_cpus'
      equal to a null pointer is always false [-Wtautological-pointer-compare]
              if (downed_cpus == NULL || cpumask_weight(downed_cpus) == 0)
                  ^~~~~~~~~~~    ~~~~
      2 warnings generated.
    
    Commit
    
      f7e30f01a9e2 ("cpumask: Add helper cpumask_available()")
    
    added cpumask_available() to fix warnings of this nature. Use that here
    so that clang does not warn regardless of CONFIG_CPUMASK_OFFSTACK's
    value.
    
    Reported-by: Sedat Dilek <sedat.dilek@gmail.com>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Link: https://github.com/ClangBuiltLinux/linux/issues/982
    Link: https://lkml.kernel.org/r/20200408205323.44490-1-natechancellor@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f070c94f76f97ccebbb880073a52a61f1a20223
Author: Atsushi Nemoto <atsushi.nemoto@sord.co.jp>
Date:   Fri May 8 22:12:48 2020 +0900

    i2c: altera: Fix race between xfer_msg and isr thread
    
    [ Upstream commit 5d4c7977499a736f3f80826bdc9744344ad55589 ]
    
    Use a mutex to protect access to idev->msg_len, idev->buf, etc. which
    are modified by both altr_i2c_xfer_msg() and altr_i2c_isr().
    
    This is the minimal fix for easy backporting. A cleanup to remove the
    spinlock will be added later.
    
    Signed-off-by: Atsushi Nemoto <atsushi.nemoto@sord.co.jp>
    Acked-by: Thor Thayer <thor.thayer@linux.intel.com>
    [wsa: updated commit message]
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 815e65960ed8b5cb49e9b2b612247c9322fcddfd
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue Apr 14 11:41:51 2020 -0700

    ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT
    
    [ Upstream commit 799587d5731db9dcdafaac4002463aa7d9cd6cf7 ]
    
    Elide invalid configuration EZNPS + ARCv2, triggered by a
    make allyesconfig build.
    
    Granted the root cause is in source code (asm/barrier.h) where we check
    for ARCv2 before PLAT_EZNPS, but it is better to avoid such combinations
    at onset rather then baking subtle nuances into code.
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc4495c71cb44dd1173479209e3e9c6970d5b4ce
Author: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Date:   Thu Apr 2 20:54:28 2020 +0300

    ARC: Fix ICCM & DCCM runtime size checks
    
    [ Upstream commit 43900edf67d7ef3ac8909854d75b8a1fba2d570c ]
    
    As of today the ICCM and DCCM size checks are incorrectly using
    mismatched units (KiB checked against bytes). The CONFIG_ARC_DCCM_SZ
    and CONFIG_ARC_ICCM_SZ are in KiB, but the size calculated in
    runtime and stored in cpu->dccm.sz and cpu->iccm.sz is in bytes.
    
    Fix that.
    
    Reported-by: Paul Greco <pmgreco@us.ibm.com>
    Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e50da20ee88e3ff58bb027cfdb38b101935da71b
Author: Guillaume Nault <gnault@redhat.com>
Date:   Thu May 14 12:15:39 2020 +0200

    pppoe: only process PADT targeted at local interfaces
    
    We don't want to disconnect a session because of a stray PADT arriving
    while the interface is in promiscuous mode.
    Furthermore, multicast and broadcast packets make no sense here, so
    only PACKET_HOST is accepted.
    
    Reported-by: David Balažic <xerces9@gmail.com>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fe3f7e15ace0866a879cd79f8c8fb908c09a7fb7
Author: Vasily Gorbik <gor@linux.ibm.com>
Date:   Tue Dec 10 13:50:23 2019 +0100

    s390/ftrace: save traced function caller
    
    [ Upstream commit b4adfe55915d8363e244e42386d69567db1719b9 ]
    
    A typical backtrace acquired from ftraced function currently looks like
    the following (e.g. for "path_openat"):
    
    arch_stack_walk+0x15c/0x2d8
    stack_trace_save+0x50/0x68
    stack_trace_call+0x15a/0x3b8
    ftrace_graph_caller+0x0/0x1c
    0x3e0007e3c98 <- ftraced function caller (should be do_filp_open+0x7c/0xe8)
    do_open_execat+0x70/0x1b8
    __do_execve_file.isra.0+0x7d8/0x860
    __s390x_sys_execve+0x56/0x68
    system_call+0xdc/0x2d8
    
    Note random "0x3e0007e3c98" stack value as ftraced function caller. This
    value causes either imprecise unwinder result or unwinding failure.
    That "0x3e0007e3c98" comes from r14 of ftraced function stack frame, which
    it haven't had a chance to initialize since the very first instruction
    calls ftrace code ("ftrace_caller"). (ftraced function might never
    save r14 as well). Nevertheless according to s390 ABI any function
    is called with stack frame allocated for it and r14 contains return
    address. "ftrace_caller" itself is called with "brasl %r0,ftrace_caller".
    So, to fix this issue simply always save traced function caller onto
    ftraced function stack frame.
    
    Reported-by: Sven Schnelle <svens@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2168f2a8b908f7589371562a2bff6d5d0456c5da
Author: Xinwei Kong <kong.kongxinwei@hisilicon.com>
Date:   Fri Jan 3 10:52:10 2020 +0800

    spi: dw: use "smp_mb()" to avoid sending spi data error
    
    [ Upstream commit bfda044533b213985bc62bd7ca96f2b984d21b80 ]
    
    Because of out-of-order execution about some CPU architecture,
    In this debug stage we find Completing spi interrupt enable ->
    prodrucing TXEI interrupt -> running "interrupt_transfer" function
    will prior to set "dw->rx and dws->rx_end" data, so this patch add
    memory barrier to enable dw->rx and dw->rx_end to be visible and
    solve to send SPI data error.
    eg:
    it will fix to this following low possibility error in testing environment
    which using SPI control to connect TPM Modules
    
    kernel: tpm tpm0: Operation Timed out
    kernel: tpm tpm0: tpm_relinquish_locality: : error -1
    
    Signed-off-by: fengsheng <fengsheng5@huawei.com>
    Signed-off-by: Xinwei Kong <kong.kongxinwei@hisilicon.com>
    Link: https://lore.kernel.org/r/1578019930-55858-1-git-send-email-kong.kongxinwei@hisilicon.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c565487ff9d82f532346a2d0eaba75fe1844effe
Author: Xiang Chen <chenxiang66@hisilicon.com>
Date:   Tue Nov 12 17:30:56 2019 +0800

    scsi: hisi_sas: Check sas_port before using it
    
    [ Upstream commit 8c39673d5474b95374df2104dc1f65205c5278b8 ]
    
    Need to check the structure sas_port before using it.
    
    Link: https://lore.kernel.org/r/1573551059-107873-2-git-send-email-john.garry@huawei.com
    Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
    Signed-off-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8ef8cd89a721a318fa611bfaed72ab90d28d180
Author: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Date:   Fri Aug 9 13:17:26 2019 +0530

    libnvdimm: Fix endian conversion issues 
    
    commit 86aa66687442ef45909ff9814b82b4d2bb892294 upstream.
    
    nd_label->dpa issue was observed when trying to enable the namespace created
    with little-endian kernel on a big-endian kernel. That made me run
    `sparse` on the rest of the code and other changes are the result of that.
    
    Fixes: d9b83c756953 ("libnvdimm, btt: rework error clearing")
    Fixes: 9dedc73a4658 ("libnvdimm/btt: Fix LBA masking during 'free list' population")
    Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Link: https://lore.kernel.org/r/20190809074726.27815-1-aneesh.kumar@linux.ibm.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13cd297f15ed091f3af8f6ee4e60a53ee9253bb5
Author: Hannes Reinecke <hare@suse.de>
Date:   Mon Oct 2 16:26:37 2017 +0200

    scsi: scsi_devinfo: fixup string compare
    
    commit b8018b973c7cefa5eb386540130fa47315b8e337 upstream.
    
    When checking the model and vendor string we need to use the minimum
    value of either string, otherwise we'll miss out on wildcard matches.
    
    And we should take care when matching with zero size strings; results
    might be unpredictable.  With this patch the rules for matching devinfo
    strings are as follows:
    
    - Vendor strings must match exactly
    - Empty Model strings will only match if the devinfo model
      is also empty
    - Model strings shorter than the devinfo model string will
      not match
    
    Fixes: 5e7ff2c ("SCSI: fix new bug in scsi_dev_info_list string matching")
    Signed-off-by: Hannes Reinecke <hare@suse.com>
    Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
    Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>