commit b83b3fa78445387f351cef477a112e503d72b9f0
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Jan 13 10:05:34 2019 +0100

    Linux 4.4.170

commit 1bd63edb92acf909db66e22bbfb51a43aeb5743a
Author: Lubomir Rintel <lkundrak@v3.sk>
Date:   Fri Nov 16 17:23:47 2018 +0100

    power: supply: olpc_battery: correct the temperature units
    
    commit ed54ffbe554f0902689fd6d1712bbacbacd11376 upstream.
    
    According to [1] and [2], the temperature values are in tenths of degree
    Celsius. Exposing the Celsius value makes the battery appear on fire:
    
      $ upower -i /org/freedesktop/UPower/devices/battery_olpc_battery
      ...
          temperature:         236.9 degrees C
    
    Tested on OLPC XO-1 and OLPC XO-1.75 laptops.
    
    [1] include/linux/power_supply.h
    [2] Documentation/power/power_supply_class.txt
    
    Fixes: fb972873a767 ("[BATTERY] One Laptop Per Child power/battery driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
    Acked-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1892669f77f41ffdb1439010dc29cf9f2d7f2fb
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Wed Dec 19 17:19:22 2018 +0200

    intel_th: msu: Fix an off-by-one in attribute store
    
    commit ec5b5ad6e272d8d6b92d1007f79574919862a2d2 upstream.
    
    The 'nr_pages' attribute of the 'msc' subdevices parses a comma-separated
    list of window sizes, passed from userspace. However, there is a bug in
    the string parsing logic wherein it doesn't exclude the comma character
    from the range of characters as it consumes them. This leads to an
    out-of-bounds access given a sufficiently long list. For example:
    
    > # echo 8,8,8,8 > /sys/bus/intel_th/devices/0-msc0/nr_pages
    > ==================================================================
    > BUG: KASAN: slab-out-of-bounds in memchr+0x1e/0x40
    > Read of size 1 at addr ffff8803ffcebcd1 by task sh/825
    >
    > CPU: 3 PID: 825 Comm: npktest.sh Tainted: G        W         4.20.0-rc1+
    > Call Trace:
    >  dump_stack+0x7c/0xc0
    >  print_address_description+0x6c/0x23c
    >  ? memchr+0x1e/0x40
    >  kasan_report.cold.5+0x241/0x308
    >  memchr+0x1e/0x40
    >  nr_pages_store+0x203/0xd00 [intel_th_msu]
    
    Fix this by accounting for the comma character.
    
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Fixes: ba82664c134ef ("intel_th: Add Memory Storage Unit driver")
    Cc: stable@vger.kernel.org # v4.4+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 21c7b1377859630d0d6c47dd0b0de75f40642b77
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Wed Dec 12 14:45:18 2018 +0100

    genwqe: Fix size check
    
    commit fdd669684655c07dacbdb0d753fd13833de69a33 upstream.
    
    Calling the test program genwqe_cksum with the default buffer size of
    2MB triggers the following kernel warning on s390:
    
    WARNING: CPU: 30 PID: 9311 at mm/page_alloc.c:3189 __alloc_pages_nodemask+0x45c/0xbe0
    CPU: 30 PID: 9311 Comm: genwqe_cksum Kdump: loaded Not tainted 3.10.0-957.el7.s390x #1
    task: 00000005e5d13980 ti: 00000005e7c6c000 task.ti: 00000005e7c6c000
    Krnl PSW : 0704c00180000000 00000000002780ac (__alloc_pages_nodemask+0x45c/0xbe0)
               R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 EA:3
    Krnl GPRS: 00000000002932b8 0000000000b73d7c 0000000000000010 0000000000000009
               0000000000000041 00000005e7c6f9b8 0000000000000001 00000000000080d0
               0000000000000000 0000000000b70500 0000000000000001 0000000000000000
               0000000000b70528 00000000007682c0 0000000000277df2 00000005e7c6f9a0
    Krnl Code: 000000000027809e: de7195001000       ed      1280(114,%r9),0(%r1)
               00000000002780a4: a774fead           brc     7,277dfe
              #00000000002780a8: a7f40001           brc     15,2780aa
              >00000000002780ac: 92011000           mvi     0(%r1),1
               00000000002780b0: a7f4fea7           brc     15,277dfe
               00000000002780b4: 9101c6b6           tm      1718(%r12),1
               00000000002780b8: a784ff3a           brc     8,277f2c
               00000000002780bc: a7f4fe2e           brc     15,277d18
    Call Trace:
    ([<0000000000277df2>] __alloc_pages_nodemask+0x1a2/0xbe0)
     [<000000000013afae>] s390_dma_alloc+0xfe/0x310
     [<000003ff8065f362>] __genwqe_alloc_consistent+0xfa/0x148 [genwqe_card]
     [<000003ff80658f7a>] genwqe_mmap+0xca/0x248 [genwqe_card]
     [<00000000002b2712>] mmap_region+0x4e2/0x778
     [<00000000002b2c54>] do_mmap+0x2ac/0x3e0
     [<0000000000292d7e>] vm_mmap_pgoff+0xd6/0x118
     [<00000000002b081c>] SyS_mmap_pgoff+0xdc/0x268
     [<00000000002b0a34>] SyS_old_mmap+0x8c/0xb0
     [<000000000074e518>] sysc_tracego+0x14/0x1e
     [<000003ffacf87dc6>] 0x3ffacf87dc6
    
    turns out the check in __genwqe_alloc_consistent uses "> MAX_ORDER"
    while the mm code uses ">= MAX_ORDER". Fix genwqe.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Frank Haverkamp <haver@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f6ce5ea8393c0826c0c0b85278ff1d49b94da69
Author: Yan, Zheng <zyan@redhat.com>
Date:   Thu Nov 29 11:22:50 2018 +0800

    ceph: don't update importing cap's mseq when handing cap export
    
    commit 3c1392d4c49962a31874af14ae9ff289cb2b3851 upstream.
    
    Updating mseq makes client think importer mds has accepted all prior
    cap messages and importer mds knows what caps client wants. Actually
    some cap messages may have been dropped because of mseq mismatch.
    
    If mseq is left untouched, importing cap's mds_wanted later will get
    reset by cap import message.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0216bf654af7f1963e67602ce1af56575634facb
Author: Sohil Mehta <sohil.mehta@intel.com>
Date:   Wed Nov 21 15:29:33 2018 -0800

    iommu/vt-d: Handle domain agaw being less than iommu agaw
    
    commit 3569dd07aaad71920c5ea4da2d5cc9a167c1ffd4 upstream.
    
    The Intel IOMMU driver opportunistically skips a few top level page
    tables from the domain paging directory while programming the IOMMU
    context entry. However there is an implicit assumption in the code that
    domain's adjusted guest address width (agaw) would always be greater
    than IOMMU's agaw.
    
    The IOMMU capabilities in an upcoming platform cause the domain's agaw
    to be lower than IOMMU's agaw. The issue is seen when the IOMMU supports
    both 4-level and 5-level paging. The domain builds a 4-level page table
    based on agaw of 2. However the IOMMU's agaw is set as 3 (5-level). In
    this case the code incorrectly tries to skip page page table levels.
    This causes the IOMMU driver to avoid programming the context entry. The
    fix handles this case and programs the context entry accordingly.
    
    Fixes: de24e55395698 ("iommu/vt-d: Simplify domain_context_mapping_one")
    Cc: <stable@vger.kernel.org>
    Cc: Ashok Raj <ashok.raj@intel.com>
    Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
    Cc: Lu Baolu <baolu.lu@linux.intel.com>
    Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
    Reported-by: Ramos Falcon, Ernesto R <ernesto.r.ramos.falcon@intel.com>
    Tested-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
    Signed-off-by: Sohil Mehta <sohil.mehta@intel.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d7501440715f2b4e098ad2b7fd07c5960e57c52
Author: Dominique Martinet <dominique.martinet@cea.fr>
Date:   Mon Nov 5 09:52:48 2018 +0100

    9p/net: put a lower bound on msize
    
    commit 574d356b7a02c7e1b01a1d9cba8a26b3c2888f45 upstream.
    
    If the requested msize is too small (either from command line argument
    or from the server version reply), we won't get any work done.
    If it's *really* too small, nothing will work, and this got caught by
    syzbot recently (on a new kmem_cache_create_usercopy() call)
    
    Just set a minimum msize to 4k in both code paths, until someone
    complains they have a use-case for a smaller msize.
    
    We need to check in both mount option and server reply individually
    because the msize for the first version request would be unchecked
    with just a global check on clnt->msize.
    
    Link: http://lkml.kernel.org/r/1541407968-31350-1-git-send-email-asmadeus@codewreck.org
    Reported-by: syzbot+0c1d61e4db7db94102ca@syzkaller.appspotmail.com
    Signed-off-by: Dominique Martinet <dominique.martinet@cea.fr>
    Cc: Eric Van Hensbergen <ericvh@gmail.com>
    Cc: Latchesar Ionkov <lucho@ionkov.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c820ac339c98aa27dd63758de3cd0b33feb97513
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Nov 19 20:01:24 2018 +0200

    b43: Fix error in cordic routine
    
    commit 8ea3819c0bbef57a51d8abe579e211033e861677 upstream.
    
    The cordic routine for calculating sines and cosines that was added in
    commit 6f98e62a9f1b ("b43: update cordic code to match current specs")
    contains an error whereby a quantity declared u32 can in fact go negative.
    
    This problem was detected by Priit Laes who is switching b43 to use the
    routine in the library functions of the kernel.
    
    Fixes: 986504540306 ("b43: make cordic common (LP-PHY and N-PHY need it)")
    Reported-by: Priit Laes <plaes@plaes.org>
    Cc: Rafał Miłecki <zajec5@gmail.com>
    Cc: Stable <stable@vger.kernel.org> # 2.6.34
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Priit Laes <plaes@plaes.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18451898261bbaaf94e05ad9a4d2faed6f996180
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Tue Dec 4 15:06:27 2018 +0100

    gfs2: Fix loop in gfs2_rbm_find
    
    commit 2d29f6b96d8f80322ed2dd895bca590491c38d34 upstream.
    
    Fix the resource group wrap-around logic in gfs2_rbm_find that commit
    e579ed4f44 broke.  The bug can lead to unnecessary repeated scanning of the
    same bitmaps; there is a risk that future changes will turn this into an
    endless loop.
    
    Fixes: e579ed4f44 ("GFS2: Introduce rbm field bii")
    Cc: stable@vger.kernel.org # v3.13+
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf72973ce165cb6715ae1dac1252c28f3e104dda
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Thu Nov 15 13:18:56 2018 +0300

    dlm: memory leaks on error path in dlm_user_request()
    
    commit d47b41aceeadc6b58abc9c7c6485bef7cfb75636 upstream.
    
    According to comment in dlm_user_request() ua should be freed
    in dlm_free_lkb() after successful attach to lkb.
    
    However ua is attached to lkb not in set_lock_args() but later,
    inside request_lock().
    
    Fixes 597d0cae0f99 ("[DLM] dlm: user locks")
    Cc: stable@kernel.org # 2.6.19
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ed774e59ce57be7cae15b9eec1a40ccfbafe57c
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Thu Nov 15 13:18:24 2018 +0300

    dlm: lost put_lkb on error path in receive_convert() and receive_unlock()
    
    commit c0174726c3976e67da8649ac62cae43220ae173a upstream.
    
    Fixes 6d40c4a708e0 ("dlm: improve error and debug messages")
    Cc: stable@kernel.org # 3.5
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27f4aa2a0c12077184168a40880ddd4cd8aa0e49
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Thu Nov 15 13:18:18 2018 +0300

    dlm: possible memory leak on error path in create_lkb()
    
    commit 23851e978f31eda8b2d01bd410d3026659ca06c7 upstream.
    
    Fixes 3d6aa675fff9 ("dlm: keep lkbs in idr")
    Cc: stable@kernel.org # 3.1
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a09b8db22851526c3607dc4d48c22bf9a444ae98
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Thu Nov 15 13:15:05 2018 +0300

    dlm: fixed memory leaks after failed ls_remove_names allocation
    
    commit b982896cdb6e6a6b89d86dfb39df489d9df51e14 upstream.
    
    If allocation fails on last elements of array need to free already
    allocated elements.
    
    v2: just move existing out_rsbtbl label to right place
    
    Fixes 789924ba635f ("dlm: fix race between remove and lookup")
    Cc: stable@kernel.org # 3.6
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11e047131fff3966f4b6c6929d14a378c5e916d1
Author: Hui Peng <benquike@163.com>
Date:   Tue Dec 25 18:11:52 2018 -0500

    ALSA: usb-audio: Fix an out-of-bound read in create_composite_quirks
    
    commit cbb2ebf70daf7f7d97d3811a2ff8e39655b8c184 upstream.
    
    In `create_composite_quirk`, the terminating condition of for loops is
    `quirk->ifnum < 0`. So any composite quirks should end with `struct
    snd_usb_audio_quirk` object with ifnum < 0.
    
        for (quirk = quirk_comp->data; quirk->ifnum >= 0; ++quirk) {
    
            .....
        }
    
    the data field of Bower's & Wilkins PX headphones usb device device quirks
    do not end with {.ifnum = -1}, wihch may result in out-of-bound read.
    
    This Patch fix the bug by adding an ending quirk object.
    
    Fixes: 240a8af929c7 ("ALSA: usb-audio: Add a quirck for B&W PX headphones")
    Signed-off-by: Hui Peng <benquike@163.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5e09a908ea3c64bf522822b7923d2d8fc1a7af2
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Dec 19 12:36:27 2018 +0100

    ALSA: usb-audio: Avoid access before bLength check in build_audio_procunit()
    
    commit f4351a199cc120ff9d59e06d02e8657d08e6cc46 upstream.
    
    The parser for the processing unit reads bNrInPins field before the
    bLength sanity check, which may lead to an out-of-bound access when a
    malformed descriptor is given.  Fix it by assignment after the bLength
    check.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83f470ebd75e3fbe56e177763337dc9326af02a4
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Jan 8 10:43:30 2019 +0300

    ALSA: cs46xx: Potential NULL dereference in probe
    
    commit 1524f4e47f90b27a3ac84efbdd94c63172246a6f upstream.
    
    The "chip->dsp_spos_instance" can be NULL on some of the ealier error
    paths in snd_cs46xx_create().
    
    Reported-by: "Yavuz, Tuba" <tuba@ece.ufl.edu>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 557f16c7fe26a2d16013c2821c5ce5a90a7da97e
Author: Eric Biggers <ebiggers@google.com>
Date:   Mon Jan 7 15:15:59 2019 -0800

    crypto: x86/chacha20 - avoid sleeping with preemption disabled
    
    In chacha20-simd, clear the MAY_SLEEP flag in the blkcipher_desc to
    prevent sleeping with preemption disabled, under kernel_fpu_begin().
    
    This was fixed upstream incidentally by a large refactoring,
    commit 9ae433bc79f9 ("crypto: chacha20 - convert generic and x86
    versions to skcipher").  But syzkaller easily trips over this when
    running on older kernels, as it's easily reachable via AF_ALG.
    Therefore, this patch makes the minimal fix for older kernels.
    
    Fixes: c9320b6dcb89 ("crypto: chacha20 - Add a SSSE3 SIMD variant for x86_64")
    Cc: linux-crypto@vger.kernel.org
    Cc: Martin Willi <martin@strongswan.org>
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69c1fd103bbb9afe3a6b345a3e026a627257d76b
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Mon Dec 24 14:44:42 2018 +0300

    sunrpc: use SVC_NET() in svcauth_gss_* functions
    
    commit b8be5674fa9a6f3677865ea93f7803c4212f3e10 upstream.
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 192f7ca0c7946f56d0f4fb858b386599a382e0f7
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Wed Nov 28 11:45:57 2018 +0300

    sunrpc: fix cache_head leak due to queued request
    
    commit 4ecd55ea074217473f94cfee21bb72864d39f8d7 upstream.
    
    After commit d202cce8963d, an expired cache_head can be removed from the
    cache_detail's hash.
    
    However, the expired cache_head may be waiting for a reply from a
    previously submitted request. Such a cache_head has an increased
    refcounter and therefore it won't be freed after cache_put(freeme).
    
    Because the cache_head was removed from the hash it cannot be found
    during cache_clean() and can be leaked forever, together with stalled
    cache_request and other taken resources.
    
    In our case we noticed it because an entry in the export cache was
    holding a reference on a filesystem.
    
    Fixes d202cce8963d ("sunrpc: never return expired entries in sunrpc_cache_lookup")
    Cc: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
    Cc: stable@kernel.org # 2.6.35
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Reviewed-by: NeilBrown <neilb@suse.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6331b9d7ac6c6f6dcd5a3e2a35ce650f82d16796
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Dec 28 00:34:54 2018 -0800

    mm, devm_memremap_pages: kill mapping "System RAM" support
    
    commit 06489cfbd915ff36c8e36df27f1c2dc60f97ca56 upstream.
    
    Given the fact that devm_memremap_pages() requires a percpu_ref that is
    torn down by devm_memremap_pages_release() the current support for mapping
    RAM is broken.
    
    Support for remapping "System RAM" has been broken since the beginning and
    there is no existing user of this this code path, so just kill the support
    and make it an explicit error.
    
    This cleanup also simplifies a follow-on patch to fix the error path when
    setting a devm release action for devm_memremap_pages_release() fails.
    
    Link: http://lkml.kernel.org/r/154275557997.76910.14689813630968180480.stgit@dwillia2-desk3.amr.corp.intel.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Reviewed-by: "Jérôme Glisse" <jglisse@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
    Cc: Balbir Singh <bsingharora@gmail.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: <stable@vger.kernel.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 a93d56de4533839f6cdb5865bf91d01f02eb10e9
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Dec 28 00:34:50 2018 -0800

    mm, devm_memremap_pages: mark devm_memremap_pages() EXPORT_SYMBOL_GPL
    
    commit 808153e1187fa77ac7d7dad261ff476888dcf398 upstream.
    
    devm_memremap_pages() is a facility that can create struct page entries
    for any arbitrary range and give drivers the ability to subvert core
    aspects of page management.
    
    Specifically the facility is tightly integrated with the kernel's memory
    hotplug functionality.  It injects an altmap argument deep into the
    architecture specific vmemmap implementation to allow allocating from
    specific reserved pages, and it has Linux specific assumptions about page
    structure reference counting relative to get_user_pages() and
    get_user_pages_fast().  It was an oversight and a mistake that this was
    not marked EXPORT_SYMBOL_GPL from the outset.
    
    Again, devm_memremap_pagex() exposes and relies upon core kernel internal
    assumptions and will continue to evolve along with 'struct page', memory
    hotplug, and support for new memory types / topologies.  Only an in-kernel
    GPL-only driver is expected to keep up with this ongoing evolution.  This
    interface, and functionality derived from this interface, is not suitable
    for kernel-external drivers.
    
    Link: http://lkml.kernel.org/r/154275557457.76910.16923571232582744134.stgit@dwillia2-desk3.amr.corp.intel.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: "Jérôme Glisse" <jglisse@redhat.com>
    Cc: Balbir Singh <bsingharora@gmail.com>
    Cc: Logan Gunthorpe <logang@deltatee.com>
    Cc: <stable@vger.kernel.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 060853fdd434ce620dd1dd7619ede834bd33b9d0
Author: Michal Hocko <mhocko@suse.com>
Date:   Fri Dec 28 00:38:01 2018 -0800

    hwpoison, memory_hotplug: allow hwpoisoned pages to be offlined
    
    commit b15c87263a69272423771118c653e9a1d0672caa upstream.
    
    We have received a bug report that an injected MCE about faulty memory
    prevents memory offline to succeed on 4.4 base kernel.  The underlying
    reason was that the HWPoison page has an elevated reference count and the
    migration keeps failing.  There are two problems with that.  First of all
    it is dubious to migrate the poisoned page because we know that accessing
    that memory is possible to fail.  Secondly it doesn't make any sense to
    migrate a potentially broken content and preserve the memory corruption
    over to a new location.
    
    Oscar has found out that 4.4 and the current upstream kernels behave
    slightly differently with his simply testcase
    
    ===
    
    int main(void)
    {
            int ret;
            int i;
            int fd;
            char *array = malloc(4096);
            char *array_locked = malloc(4096);
    
            fd = open("/tmp/data", O_RDONLY);
            read(fd, array, 4095);
    
            for (i = 0; i < 4096; i++)
                    array_locked[i] = 'd';
    
            ret = mlock((void *)PAGE_ALIGN((unsigned long)array_locked), sizeof(array_locked));
            if (ret)
                    perror("mlock");
    
            sleep (20);
    
            ret = madvise((void *)PAGE_ALIGN((unsigned long)array_locked), 4096, MADV_HWPOISON);
            if (ret)
                    perror("madvise");
    
            for (i = 0; i < 4096; i++)
                    array_locked[i] = 'd';
    
            return 0;
    }
    ===
    
    + offline this memory.
    
    In 4.4 kernels he saw the hwpoisoned page to be returned back to the LRU
    list
    kernel:  [<ffffffff81019ac9>] dump_trace+0x59/0x340
    kernel:  [<ffffffff81019e9a>] show_stack_log_lvl+0xea/0x170
    kernel:  [<ffffffff8101ac71>] show_stack+0x21/0x40
    kernel:  [<ffffffff8132bb90>] dump_stack+0x5c/0x7c
    kernel:  [<ffffffff810815a1>] warn_slowpath_common+0x81/0xb0
    kernel:  [<ffffffff811a275c>] __pagevec_lru_add_fn+0x14c/0x160
    kernel:  [<ffffffff811a2eed>] pagevec_lru_move_fn+0xad/0x100
    kernel:  [<ffffffff811a334c>] __lru_cache_add+0x6c/0xb0
    kernel:  [<ffffffff81195236>] add_to_page_cache_lru+0x46/0x70
    kernel:  [<ffffffffa02b4373>] extent_readpages+0xc3/0x1a0 [btrfs]
    kernel:  [<ffffffff811a16d7>] __do_page_cache_readahead+0x177/0x200
    kernel:  [<ffffffff811a18c8>] ondemand_readahead+0x168/0x2a0
    kernel:  [<ffffffff8119673f>] generic_file_read_iter+0x41f/0x660
    kernel:  [<ffffffff8120e50d>] __vfs_read+0xcd/0x140
    kernel:  [<ffffffff8120e9ea>] vfs_read+0x7a/0x120
    kernel:  [<ffffffff8121404b>] kernel_read+0x3b/0x50
    kernel:  [<ffffffff81215c80>] do_execveat_common.isra.29+0x490/0x6f0
    kernel:  [<ffffffff81215f08>] do_execve+0x28/0x30
    kernel:  [<ffffffff81095ddb>] call_usermodehelper_exec_async+0xfb/0x130
    kernel:  [<ffffffff8161c045>] ret_from_fork+0x55/0x80
    
    And that latter confuses the hotremove path because an LRU page is
    attempted to be migrated and that fails due to an elevated reference
    count.  It is quite possible that the reuse of the HWPoisoned page is some
    kind of fixed race condition but I am not really sure about that.
    
    With the upstream kernel the failure is slightly different.  The page
    doesn't seem to have LRU bit set but isolate_movable_page simply fails and
    do_migrate_range simply puts all the isolated pages back to LRU and
    therefore no progress is made and scan_movable_pages finds same set of
    pages over and over again.
    
    Fix both cases by explicitly checking HWPoisoned pages before we even try
    to get reference on the page, try to unmap it if it is still mapped.  As
    explained by Naoya:
    
    : Hwpoison code never unmapped those for no big reason because
    : Ksm pages never dominate memory, so we simply didn't have strong
    : motivation to save the pages.
    
    Also put WARN_ON(PageLRU) in case there is a race and we can hit LRU
    HWPoison pages which shouldn't happen but I couldn't convince myself about
    that.  Naoya has noted the following:
    
    : Theoretically no such gurantee, because try_to_unmap() doesn't have a
    : guarantee of success and then memory_failure() returns immediately
    : when hwpoison_user_mappings fails.
    : Or the following code (comes after hwpoison_user_mappings block) also impli=
    : es
    : that the target page can still have PageLRU flag.
    :
    :         /*
    :          * Torn down by someone else?
    :          */
    :         if (PageLRU(p) && !PageSwapCache(p) && p->mapping =3D=3D NULL) {
    :                 action_result(pfn, MF_MSG_TRUNCATED_LRU, MF_IGNORED);
    :                 res =3D -EBUSY;
    :                 goto out;
    :         }
    :
    : So I think it's OK to keep "if (WARN_ON(PageLRU(page)))" block in
    : current version of your patch.
    
    Link: http://lkml.kernel.org/r/20181206120135.14079-1-mhocko@kernel.org
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Reviewed-by: Oscar Salvador <osalvador@suse.com>
    Debugged-by: Oscar Salvador <osalvador@suse.com>
    Tested-by: Oscar Salvador <osalvador@suse.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: <stable@vger.kernel.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 d447cf0ceefa01ee9203145d011eedca6e1194e6
Author: David Herrmann <dh.herrmann@gmail.com>
Date:   Tue Jan 8 13:58:52 2019 +0100

    fork: record start_time late
    
    commit 7b55851367136b1efd84d98fea81ba57a98304cf upstream.
    
    This changes the fork(2) syscall to record the process start_time after
    initializing the basic task structure but still before making the new
    process visible to user-space.
    
    Technically, we could record the start_time anytime during fork(2).  But
    this might lead to scenarios where a start_time is recorded long before
    a process becomes visible to user-space.  For instance, with
    userfaultfd(2) and TLS, user-space can delay the execution of fork(2)
    for an indefinite amount of time (and will, if this causes network
    access, or similar).
    
    By recording the start_time late, it much closer reflects the point in
    time where the process becomes live and can be observed by other
    processes.
    
    Lastly, this makes it much harder for user-space to predict and control
    the start_time they get assigned.  Previously, user-space could fork a
    process and stall it in copy_thread_tls() before its pid is allocated,
    but after its start_time is recorded.  This can be misused to later-on
    cycle through PIDs and resume the stalled fork(2) yielding a process
    that has the same pid and start_time as a process that existed before.
    This can be used to circumvent security systems that identify processes
    by their pid+start_time combination.
    
    Even though user-space was always aware that start_time recording is
    flaky (but several projects are known to still rely on start_time-based
    identification), changing the start_time to be recorded late will help
    mitigate existing attacks and make it much harder for user-space to
    control the start_time a process gets assigned.
    
    Reported-by: Jann Horn <jannh@google.com>
    Signed-off-by: Tom Gundersen <teg@jklm.no>
    Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d15d1677aa32d3981489bd3abc17d4c101f6011e
Author: Steffen Maier <maier@linux.ibm.com>
Date:   Thu Dec 6 17:31:20 2018 +0100

    scsi: zfcp: fix posting too many status read buffers leading to adapter shutdown
    
    commit 60a161b7e5b2a252ff0d4c622266a7d8da1120ce upstream.
    
    Suppose adapter (open) recovery is between opened QDIO queues and before
    (the end of) initial posting of status read buffers (SRBs). This time
    window can be seconds long due to FSF_PROT_HOST_CONNECTION_INITIALIZING
    causing by design looping with exponential increase sleeps in the function
    performing exchange config data during recovery
    [zfcp_erp_adapter_strat_fsf_xconf()]. Recovery triggered by local link up.
    
    Suppose an event occurs for which the FCP channel would send an unsolicited
    notification to zfcp by means of a previously posted SRB.  We saw it with
    local cable pull (link down) in multi-initiator zoning with multiple
    NPIV-enabled subchannels of the same shared FCP channel.
    
    As soon as zfcp_erp_adapter_strategy_open_fsf() starts posting the initial
    status read buffers from within the adapter's ERP thread, the channel does
    send an unsolicited notification.
    
    Since v2.6.27 commit d26ab06ede83 ("[SCSI] zfcp: receiving an unsolicted
    status can lead to I/O stall"), zfcp_fsf_status_read_handler() schedules
    adapter->stat_work to re-fill the just consumed SRB from a work item.
    
    Now the ERP thread and the work item post SRBs in parallel.  Both contexts
    call the helper function zfcp_status_read_refill().  The tracking of
    missing (to be posted / re-filled) SRBs is not thread-safe due to separate
    atomic_read() and atomic_dec(), in order to depend on posting
    success. Hence, both contexts can see
    atomic_read(&adapter->stat_miss) == 1. One of the two contexts posts
    one too many SRB. Zfcp gets QDIO_ERROR_SLSB_STATE on the output queue
    (trace tag "qdireq1") leading to zfcp_erp_adapter_shutdown() in
    zfcp_qdio_handler_error().
    
    An obvious and seemingly clean fix would be to schedule stat_work from the
    ERP thread and wait for it to finish. This would serialize all SRB
    re-fills. However, we already have another work item wait on the ERP
    thread: adapter->scan_work runs zfcp_fc_scan_ports() which calls
    zfcp_fc_eval_gpn_ft(). The latter calls zfcp_erp_wait() to wait for all the
    open port recoveries during zfcp auto port scan, but in fact it waits for
    any pending recovery including an adapter recovery. This approach leads to
    a deadlock.  [see also v3.19 commit 18f87a67e6d6 ("zfcp: auto port scan
    resiliency"); v2.6.37 commit d3e1088d6873
    ("[SCSI] zfcp: No ERP escalation on gpn_ft eval");
    v2.6.28 commit fca55b6fb587
    ("[SCSI] zfcp: fix deadlock between wq triggered port scan and ERP")
    fixing v2.6.27 commit c57a39a45a76
    ("[SCSI] zfcp: wait until adapter is finished with ERP during auto-port");
    v2.6.27 commit cc8c282963bd
    ("[SCSI] zfcp: Automatically attach remote ports")]
    
    Instead make the accounting of missing SRBs atomic for parallel execution
    in both the ERP thread and adapter->stat_work.
    
    Signed-off-by: Steffen Maier <maier@linux.ibm.com>
    Fixes: d26ab06ede83 ("[SCSI] zfcp: receiving an unsolicted status can lead to I/O stall")
    Cc: <stable@vger.kernel.org> #2.6.27+
    Reviewed-by: Jens Remus <jremus@linux.ibm.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit beb2654f07a2e1e8f0c647a9adfec8ca6e7709a0
Author: Tony Lindgren <tony@atomide.com>
Date:   Tue Dec 4 13:52:49 2018 -0800

    Input: omap-keypad - fix idle configuration to not block SoC idle states
    
    [ Upstream commit e2ca26ec4f01486661b55b03597c13e2b9c18b73 ]
    
    With PM enabled, I noticed that pressing a key on the droid4 keyboard will
    block deeper idle states for the SoC. Let's fix this by using IRQF_ONESHOT
    and stop constantly toggling the device OMAP4_KBD_IRQENABLE register as
    suggested by Dmitry Torokhov <dmitry.torokhov@gmail.com>.
    
    From the hardware point of view, looks like we need to manage the registers
    for OMAP4_KBD_IRQENABLE and OMAP4_KBD_WAKEUPENABLE together to avoid
    blocking deeper SoC idle states. And with toggling of OMAP4_KBD_IRQENABLE
    register now gone with IRQF_ONESHOT, also the SoC idle state problem is
    gone during runtime. We still also need to clear OMAP4_KBD_WAKEUPENABLE in
    omap4_keypad_close() though to pair it with omap4_keypad_open() to prevent
    blocking deeper SoC idle states after rmmod omap4-keypad.
    
    Reported-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ebcdd1195ee26fbc172cde4915e9b1ae2c4bfd7e
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Nov 1 08:25:30 2018 +0300

    scsi: bnx2fc: Fix NULL dereference in error handling
    
    [ Upstream commit 9ae4f8420ed7be4b13c96600e3568c144d101a23 ]
    
    If "interface" is NULL then we can't release it and trying to will only
    lead to an Oops.
    
    Fixes: aea71a024914 ("[SCSI] bnx2fc: Introduce interface structure for each vlan interface")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 987f20645911a057ea530de68716101e5001c715
Author: Benjamin Poirier <bpoirier@suse.com>
Date:   Mon Nov 5 17:00:53 2018 +0900

    xfrm: Fix bucket count reported to userspace
    
    [ Upstream commit ca92e173ab34a4f7fc4128bd372bd96f1af6f507 ]
    
    sadhcnt is reported by `ip -s xfrm state count` as "buckets count", not the
    hash mask.
    
    Fixes: 28d8909bc790 ("[XFRM]: Export SAD info.")
    Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0769670720e046f850695256547e8e09d40d7b76
Author: Qian Cai <cai@lca.pw>
Date:   Fri Dec 14 14:17:20 2018 -0800

    checkstack.pl: fix for aarch64
    
    [ Upstream commit f1733a1d3cd32a9492f4cf866be37bb46e10163d ]
    
    There is actually a space after "sp," like this,
    
        ffff2000080813c8:       a9bb7bfd        stp     x29, x30, [sp, #-80]!
    
    Right now, checkstack.pl isn't able to print anything on aarch64,
    because it won't be able to match the stating objdump line of a function
    due to this missing space.  Hence, it displays every stack as zero-size.
    
    After this patch, checkpatch.pl is able to match the start of a
    function's objdump, and is then able to calculate each function's stack
    correctly.
    
    Link: http://lkml.kernel.org/r/20181207195843.38528-1-cai@lca.pw
    Signed-off-by: Qian Cai <cai@lca.pw>
    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 38a3371158967be5a7a314449f2163d32fd2b8c8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 6 09:03:36 2018 +1000

    Input: restore EV_ABS ABS_RESERVED
    
    [ Upstream commit c201e3808e0e4be9b98d192802085a9f491bd80c ]
    
    ABS_RESERVED was added in d9ca1c990a7 and accidentally removed as part of
    ffe0e7cf290f5c9 when the high-resolution scrolling code was removed.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Martin Kepplinger <martin.kepplinger@ginzinger.com>
    Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88206b0e304275c64d98bc26c798ee2299bba8c3
Author: Anson Huang <anson.huang@nxp.com>
Date:   Tue Dec 4 03:17:45 2018 +0000

    ARM: imx: update the cpu power up timing setting on i.mx6sx
    
    [ Upstream commit 1e434b703248580b7aaaf8a115d93e682f57d29f ]
    
    The sw2iso count should cover ARM LDO ramp-up time,
    the MAX ARM LDO ramp-up time may be up to more than
    100us on some boards, this patch sets sw2iso to 0xf
    (~384us) which is the reset value, and it is much
    more safe to cover different boards, since we have
    observed that some customer boards failed with current
    setting of 0x2.
    
    Fixes: 05136f0897b5 ("ARM: imx: support arm power off in cpuidle for i.mx6sx")
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c7c77cdf7b494ab4a6e92013c7fc5281d0207a86
Author: Paul Mackerras <paulus@ozlabs.org>
Date:   Tue Nov 27 09:01:54 2018 +1100

    powerpc: Fix COFF zImage booting on old powermacs
    
    [ Upstream commit 5564597d51c8ff5b88d95c76255e18b13b760879 ]
    
    Commit 6975a783d7b4 ("powerpc/boot: Allow building the zImage wrapper
    as a relocatable ET_DYN", 2011-04-12) changed the procedure descriptor
    at the start of crt0.S to have a hard-coded start address of 0x500000
    rather than a reference to _zimage_start, presumably because having
    a reference to a symbol introduced a relocation which is awkward to
    handle in a position-independent executable.  Unfortunately, what is
    at 0x500000 in the COFF image is not the first instruction, but the
    procedure descriptor itself, that is, a word containing 0x500000,
    which is not a valid instruction.  Hence, booting a COFF zImage
    results in a "DEFAULT CATCH!, code=FFF00700" message from Open
    Firmware.
    
    This fixes the problem by (a) putting the procedure descriptor in the
    data section and (b) adding a branch to _zimage_start as the first
    instruction in the program.
    
    Fixes: 6975a783d7b4 ("powerpc/boot: Allow building the zImage wrapper as a relocatable ET_DYN")
    Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b76db5ad2f97acfe14993caad0431904eed37dea
Author: Lukas Wunner <lukas@wunner.de>
Date:   Thu Nov 29 15:14:49 2018 +0100

    spi: bcm2835: Unbreak the build of esoteric configs
    
    commit 29bdedfd9cf40e59456110ca417a8cb672ac9b92 upstream.
    
    Commit e82b0b382845 ("spi: bcm2835: Fix race on DMA termination") broke
    the build with COMPILE_TEST=y on arches whose cmpxchg() requires 32-bit
    operands (xtensa, older arm ISAs).
    
    Fix by changing the dma_pending flag's type from bool to unsigned int.
    
    Fixes: e82b0b382845 ("spi: bcm2835: Fix race on DMA termination")
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: Frank Pavlic <f.pavlic@kunbus.de>
    Cc: Martin Sperl <kernel@martin.sperl.org>
    Cc: Noralf Trønnes <noralf@tronnes.org>
    Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c53038267a9883e4d0d591dc620fc7f0da4c584
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Thu Jan 25 16:37:07 2018 +0100

    x86/kvm/vmx: do not use vm-exit instruction length for fast MMIO when running nested
    
    commit d391f1207067268261add0485f0f34503539c5b0 upstream.
    
    I was investigating an issue with seabios >= 1.10 which stopped working
    for nested KVM on Hyper-V. The problem appears to be in
    handle_ept_violation() function: when we do fast mmio we need to skip
    the instruction so we do kvm_skip_emulated_instruction(). This, however,
    depends on VM_EXIT_INSTRUCTION_LEN field being set correctly in VMCS.
    However, this is not the case.
    
    Intel's manual doesn't mandate VM_EXIT_INSTRUCTION_LEN to be set when
    EPT MISCONFIG occurs. While on real hardware it was observed to be set,
    some hypervisors follow the spec and don't set it; we end up advancing
    IP with some random value.
    
    I checked with Microsoft and they confirmed they don't fill
    VM_EXIT_INSTRUCTION_LEN on EPT MISCONFIG.
    
    Fix the issue by doing instruction skip through emulator when running
    nested.
    
    Fixes: 68c3b4d1676d870f0453c31d5a52e7e65c7448ae
    Suggested-by: Radim Krčmář <rkrcmar@redhat.com>
    Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    [mhaboustak: backport to 4.9.y]
    Signed-off-by: Mike Haboustak <haboustak@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c78a5d4a64811b9f5d9d3b9dfa88ab786d949c1b
Author: Georgy A Bystrenin <gkot@altlinux.org>
Date:   Fri Dec 21 00:11:42 2018 -0600

    CIFS: Fix error mapping for SMB2_LOCK command which caused OFD lock problem
    
    commit 9a596f5b39593414c0ec80f71b94a226286f084e upstream.
    
    While resolving a bug with locks on samba shares found a strange behavior.
    When a file locked by one node and we trying to lock it from another node
    it fail with errno 5 (EIO) but in that case errno must be set to
    (EACCES | EAGAIN).
    This isn't happening when we try to lock file second time on same node.
    In this case it returns EACCES as expected.
    Also this issue not reproduces when we use SMB1 protocol (vers=1.0 in
    mount options).
    
    Further investigation showed that the mapping from status_to_posix_error
    is different for SMB1 and SMB2+ implementations.
    For SMB1 mapping is [NT_STATUS_LOCK_NOT_GRANTED to ERRlock]
    (See fs/cifs/netmisc.c line 66)
    but for SMB2+ mapping is [STATUS_LOCK_NOT_GRANTED to -EIO]
    (see fs/cifs/smb2maperror.c line 383)
    
    Quick changes in SMB2+ mapping from EIO to EACCES has fixed issue.
    
    BUG: https://bugzilla.kernel.org/show_bug.cgi?id=201971
    
    Signed-off-by: Georgy A Bystrenin <gkot@altlinux.org>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a214fe5560e7129d50e8d1157293e770276d5d73
Author: Huacai Chen <chenhc@lemote.com>
Date:   Thu Nov 15 15:53:56 2018 +0800

    MIPS: Align kernel load address to 64KB
    
    commit bec0de4cfad21bd284dbddee016ed1767a5d2823 upstream.
    
    KEXEC needs the new kernel's load address to be aligned on a page
    boundary (see sanity_check_segment_list()), but on MIPS the default
    vmlinuz load address is only explicitly aligned to 16 bytes.
    
    Since the largest PAGE_SIZE supported by MIPS kernels is 64KB, increase
    the alignment calculated by calc_vmlinuz_load_addr to 64KB.
    
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/21131/
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <james.hogan@mips.com>
    Cc: Steven J . Hill <Steven.Hill@cavium.com>
    Cc: linux-mips@linux-mips.org
    Cc: Fuxin Zhang <zhangfx@lemote.com>
    Cc: Zhangjin Wu <wuzhangjin@gmail.com>
    Cc: <stable@vger.kernel.org> # 2.6.36+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79d02189e782873e4ce7fd676b3eec8a040217e6
Author: Huacai Chen <chenhc@lemote.com>
Date:   Thu Nov 15 15:53:54 2018 +0800

    MIPS: Ensure pmd_present() returns false after pmd_mknotpresent()
    
    commit 92aa0718c9fa5160ad2f0e7b5bffb52f1ea1e51a upstream.
    
    This patch is borrowed from ARM64 to ensure pmd_present() returns false
    after pmd_mknotpresent(). This is needed for THP.
    
    References: 5bb1cc0ff9a6 ("arm64: Ensure pmd_present() returns false after pmd_mknotpresent()")
    Reviewed-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/21135/
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <james.hogan@mips.com>
    Cc: Steven J . Hill <Steven.Hill@cavium.com>
    Cc: linux-mips@linux-mips.org
    Cc: Fuxin Zhang <zhangfx@lemote.com>
    Cc: Zhangjin Wu <wuzhangjin@gmail.com>
    Cc: <stable@vger.kernel.org> # 3.8+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2b02f925a649b571e587f08fadc454ed10ef82c
Author: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Date:   Fri Nov 9 08:37:44 2018 -0500

    media: vivid: free bitmap_cap when updating std/timings/etc.
    
    commit 560ccb75c2caa6b1039dec1a53cd2ef526f5bf03 upstream.
    
    When vivid_update_format_cap() is called it should free any overlay
    bitmap since the compose size will change.
    
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Reported-by: syzbot+0cc8e3cc63ca373722c6@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>      # for v3.18 and up
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a92ec92c7892633f5bc82aa8d97e4bd80bf3ebd
Author: Macpaul Lin <macpaul.lin@mediatek.com>
Date:   Wed Dec 19 12:11:03 2018 +0800

    cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader.
    
    commit eafb27fa5283599ce6c5492ea18cf636a28222bb upstream.
    
    Mediatek Preloader is a proprietary embedded boot loader for loading
    Little Kernel and Linux into device DRAM.
    
    This boot loader also handle firmware update. Mediatek Preloader will be
    enumerated as a virtual COM port when the device is connected to Windows
    or Linux OS via CDC-ACM class driver. When the USB enumeration has been
    done, Mediatek Preloader will send out handshake command "READY" to PC
    actively instead of waiting command from the download tool.
    
    Since Linux 4.12, the commit "tty: reset termios state on device
    registration" (93857edd9829e144acb6c7e72d593f6e01aead66) causes Mediatek
    Preloader receiving some abnoraml command like "READYXX" as it sent.
    This will be recognized as an incorrect response. The behavior change
    also causes the download handshake fail. This change only affects
    subsequent connects if the reconnected device happens to get the same minor
    number.
    
    By disabling the ECHO termios flag could avoid this problem. However, it
    cannot be done by user space configuration when download tool open
    /dev/ttyACM0. This is because the device running Mediatek Preloader will
    send handshake command "READY" immediately once the CDC-ACM driver is
    ready.
    
    This patch wants to fix above problem by introducing "DISABLE_ECHO"
    property in driver_info. When Mediatek Preloader is connected, the
    CDC-ACM driver could disable ECHO flag in termios to avoid the problem.
    
    Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Johan Hovold <johan@kernel.org>
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc1715a2b2334a862b2eb41eea2b59ff28ed6a8f
Author: Lukas Wunner <lukas@wunner.de>
Date:   Thu Nov 8 08:06:10 2018 +0100

    spi: bcm2835: Avoid finishing transfer prematurely in IRQ mode
    
    commit 56c1723426d3cfd4723bfbfce531d7b38bae6266 upstream.
    
    The IRQ handler bcm2835_spi_interrupt() first reads as much as possible
    from the RX FIFO, then writes as much as possible to the TX FIFO.
    Afterwards it decides whether the transfer is finished by checking if
    the TX FIFO is empty.
    
    If very few bytes were written to the TX FIFO, they may already have
    been transmitted by the time the FIFO's emptiness is checked.  As a
    result, the transfer will be declared finished and the chip will be
    reset without reading the corresponding received bytes from the RX FIFO.
    
    The odds of this happening increase with a high clock frequency (such
    that the TX FIFO drains quickly) and either passing "threadirqs" on the
    command line or enabling CONFIG_PREEMPT_RT_BASE (such that the IRQ
    handler may be preempted between filling the TX FIFO and checking its
    emptiness).
    
    Fix by instead checking whether rx_len has reached zero, which means
    that the transfer has been received in full.  This is also more
    efficient as it avoids one bus read access per interrupt.  Note that
    bcm2835_spi_transfer_one_poll() likewise uses rx_len to determine
    whether the transfer has finished.
    
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Fixes: e34ff011c70e ("spi: bcm2835: move to the transfer_one driver model")
    Cc: stable@vger.kernel.org # v4.1+
    Cc: Mathias Duckeck <m.duckeck@kunbus.de>
    Cc: Frank Pavlic <f.pavlic@kunbus.de>
    Cc: Martin Sperl <kernel@martin.sperl.org>
    Cc: Noralf Trønnes <noralf@tronnes.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d69a11939573aa2e3295be456e05da70e286596
Author: Lukas Wunner <lukas@wunner.de>
Date:   Thu Nov 8 08:06:10 2018 +0100

    spi: bcm2835: Fix book-keeping of DMA termination
    
    commit dbc944115eed48af110646992893dc43321368d8 upstream.
    
    If submission of a DMA TX transfer succeeds but submission of the
    corresponding RX transfer does not, the BCM2835 SPI driver terminates
    the TX transfer but neglects to reset the dma_pending flag to false.
    
    Thus, if the next transfer uses interrupt mode (because it is shorter
    than BCM2835_SPI_DMA_MIN_LENGTH) and runs into a timeout,
    dmaengine_terminate_all() will be called both for TX (once more) and
    for RX (which was never started in the first place).  Fix it.
    
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Fixes: 3ecd37edaa2a ("spi: bcm2835: enable dma modes for transfers meeting certain conditions")
    Cc: stable@vger.kernel.org # v4.2+
    Cc: Mathias Duckeck <m.duckeck@kunbus.de>
    Cc: Frank Pavlic <f.pavlic@kunbus.de>
    Cc: Martin Sperl <kernel@martin.sperl.org>
    Cc: Noralf Trønnes <noralf@tronnes.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1330179228ac342f8f638d0d541e6f4a50b29b8f
Author: Lukas Wunner <lukas@wunner.de>
Date:   Thu Nov 8 08:06:10 2018 +0100

    spi: bcm2835: Fix race on DMA termination
    
    commit e82b0b3828451c1cd331d9f304c6078fcd43b62e upstream.
    
    If a DMA transfer finishes orderly right when spi_transfer_one_message()
    determines that it has timed out, the callbacks bcm2835_spi_dma_done()
    and bcm2835_spi_handle_err() race to call dmaengine_terminate_all(),
    potentially leading to double termination.
    
    Prevent by atomically changing the dma_pending flag before calling
    dmaengine_terminate_all().
    
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Fixes: 3ecd37edaa2a ("spi: bcm2835: enable dma modes for transfers meeting certain conditions")
    Cc: stable@vger.kernel.org # v4.2+
    Cc: Mathias Duckeck <m.duckeck@kunbus.de>
    Cc: Frank Pavlic <f.pavlic@kunbus.de>
    Cc: Martin Sperl <kernel@martin.sperl.org>
    Cc: Noralf Trønnes <noralf@tronnes.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa5cab08cd9a2a8c15e52c57ebd108eac88e3e8c
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Wed Dec 19 14:07:58 2018 -0500

    ext4: force inode writes when nfsd calls commit_metadata()
    
    commit fde872682e175743e0c3ef939c89e3c6008a1529 upstream.
    
    Some time back, nfsd switched from calling vfs_fsync() to using a new
    commit_metadata() hook in export_operations().  If the file system did
    not provide a commit_metadata() hook, it fell back to using
    sync_inode_metadata().  Unfortunately doesn't work on all file
    systems.  In particular, it doesn't work on ext4 due to how the inode
    gets journalled --- the VFS writeback code will not always call
    ext4_write_inode().
    
    So we need to provide our own ext4_nfs_commit_metdata() method which
    calls ext4_write_inode() directly.
    
    Google-Bug-Id: 121195940
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e270923b3c1499cb88edef936f7f1048ecb3c713
Author: ruippan (潘睿) <ruippan@tencent.com>
Date:   Tue Dec 4 01:04:12 2018 -0500

    ext4: fix EXT4_IOC_GROUP_ADD ioctl
    
    commit e647e29196b7f802f8242c39ecb7cc937f5ef217 upstream.
    
    Commit e2b911c53584 ("ext4: clean up feature test macros with
    predicate functions") broke the EXT4_IOC_GROUP_ADD ioctl.  This was
    not noticed since only very old versions of resize2fs (before
    e2fsprogs 1.42) use this ioctl.  However, using a new kernel with an
    enterprise Linux userspace will cause attempts to use online resize to
    fail with "No reserved GDT blocks".
    
    Fixes: e2b911c53584 ("ext4: clean up feature test macros with predicate...")
    Cc: stable@kernel.org # v4.4
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: ruippan (潘睿) <ruippan@tencent.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84ad8791c9b2a8d90575dab58f0af98906f55452
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Tue Dec 4 00:06:53 2018 -0500

    ext4: missing unlock/put_page() in ext4_try_to_write_inline_data()
    
    commit 132d00becb31e88469334e1e62751c81345280e0 upstream.
    
    In case of error, ext4_try_to_write_inline_data() should unlock
    and release the page it holds.
    
    Fixes: f19d5870cbf7 ("ext4: add normal write support for inline data")
    Cc: stable@kernel.org # 3.8
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e011c3af91cde044c0aac23ac0394709147b2c3
Author: Pan Bian <bianpan2016@163.com>
Date:   Mon Dec 3 23:28:02 2018 -0500

    ext4: fix possible use after free in ext4_quota_enable
    
    commit 61157b24e60fb3cd1f85f2c76a7b1d628f970144 upstream.
    
    The function frees qf_inode via iput but then pass qf_inode to
    lockdep_set_quota_inode on the failure path. This may result in a
    use-after-free bug. The patch frees df_inode only when it is never used.
    
    Fixes: daf647d2dd5 ("ext4: add lockdep annotations for i_data_sem")
    Cc: stable@kernel.org # 4.6
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit efe22fbaa30db6e2222f1f6f388f852a06f60854
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Nov 11 18:45:24 2018 +0000

    perf pmu: Suppress potential format-truncation warning
    
    commit 11a64a05dc649815670b1be9fe63d205cb076401 upstream.
    
    Depending on which functions are inlined in util/pmu.c, the snprintf()
    calls in perf_pmu__parse_{scale,unit,per_pkg,snapshot}() might trigger a
    warning:
    
      util/pmu.c: In function 'pmu_aliases':
      util/pmu.c:178:31: error: '%s' directive output may be truncated writing up to 255 bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
        snprintf(path, PATH_MAX, "%s/%s.unit", dir, name);
                                   ^~
    
    I found this when trying to build perf from Linux 3.16 with gcc 8.
    However I can reproduce the problem in mainline if I force
    __perf_pmu__new_alias() to be inlined.
    
    Suppress this by using scnprintf() as has been done elsewhere in perf.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/20181111184524.fux4taownc6ndbx6@decadent.org.uk
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2f780613e3b0b220c5bffefd94381df9c1c933e
Author: Sean Christopherson <sean.j.christopherson@intel.com>
Date:   Thu Dec 20 14:21:08 2018 -0800

    KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup
    
    commit e81434995081fd7efb755fd75576b35dbb0850b1 upstream.
    
    ____kvm_handle_fault_on_reboot() provides a generic exception fixup
    handler that is used to cleanly handle faults on VMX/SVM instructions
    during reboot (or at least try to).  If there isn't a reboot in
    progress, ____kvm_handle_fault_on_reboot() treats any exception as
    fatal to KVM and invokes kvm_spurious_fault(), which in turn generates
    a BUG() to get a stack trace and die.
    
    When it was originally added by commit 4ecac3fd6dc2 ("KVM: Handle
    virtualization instruction #UD faults during reboot"), the "call" to
    kvm_spurious_fault() was handcoded as PUSH+JMP, where the PUSH'd value
    is the RIP of the faulting instructing.
    
    The PUSH+JMP trickery is necessary because the exception fixup handler
    code lies outside of its associated function, e.g. right after the
    function.  An actual CALL from the .fixup code would show a slightly
    bogus stack trace, e.g. an extra "random" function would be inserted
    into the trace, as the return RIP on the stack would point to no known
    function (and the unwinder will likely try to guess who owns the RIP).
    
    Unfortunately, the JMP was replaced with a CALL when the macro was
    reworked to not spin indefinitely during reboot (commit b7c4145ba2eb
    "KVM: Don't spin on virt instruction faults during reboot").  This
    causes the aforementioned behavior where a bogus function is inserted
    into the stack trace, e.g. my builds like to blame free_kvm_area().
    
    Revert the CALL back to a JMP.  The changelog for commit b7c4145ba2eb
    ("KVM: Don't spin on virt instruction faults during reboot") contains
    nothing that indicates the switch to CALL was deliberate.  This is
    backed up by the fact that the PUSH <insn RIP> was left intact.
    
    Note that an alternative to the PUSH+JMP magic would be to JMP back
    to the "real" code and CALL from there, but that would require adding
    a JMP in the non-faulting path to avoid calling kvm_spurious_fault()
    and would add no value, i.e. the stack trace would be the same.
    
    Using CALL:
    
    ------------[ cut here ]------------
    kernel BUG at /home/sean/go/src/kernel.org/linux/arch/x86/kvm/x86.c:356!
    invalid opcode: 0000 [#1] SMP
    CPU: 4 PID: 1057 Comm: qemu-system-x86 Not tainted 4.20.0-rc6+ #75
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
    RIP: 0010:kvm_spurious_fault+0x5/0x10 [kvm]
    Code: <0f> 0b 66 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 41 55 49 89 fd 41
    RSP: 0018:ffffc900004bbcc8 EFLAGS: 00010046
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffffffffffff
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffff888273fd8000 R08: 00000000000003e8 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000784 R12: ffffc90000371fb0
    R13: 0000000000000000 R14: 000000026d763cf4 R15: ffff888273fd8000
    FS:  00007f3d69691700(0000) GS:ffff888277800000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000055f89bc56fe0 CR3: 0000000271a5a001 CR4: 0000000000362ee0
    Call Trace:
     free_kvm_area+0x1044/0x43ea [kvm_intel]
     ? vmx_vcpu_run+0x156/0x630 [kvm_intel]
     ? kvm_arch_vcpu_ioctl_run+0x447/0x1a40 [kvm]
     ? kvm_vcpu_ioctl+0x368/0x5c0 [kvm]
     ? kvm_vcpu_ioctl+0x368/0x5c0 [kvm]
     ? __set_task_blocked+0x38/0x90
     ? __set_current_blocked+0x50/0x60
     ? __fpu__restore_sig+0x97/0x490
     ? do_vfs_ioctl+0xa1/0x620
     ? __x64_sys_futex+0x89/0x180
     ? ksys_ioctl+0x66/0x70
     ? __x64_sys_ioctl+0x16/0x20
     ? do_syscall_64+0x4f/0x100
     ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
    Modules linked in: vhost_net vhost tap kvm_intel kvm irqbypass bridge stp llc
    ---[ end trace 9775b14b123b1713 ]---
    
    Using JMP:
    
    ------------[ cut here ]------------
    kernel BUG at /home/sean/go/src/kernel.org/linux/arch/x86/kvm/x86.c:356!
    invalid opcode: 0000 [#1] SMP
    CPU: 6 PID: 1067 Comm: qemu-system-x86 Not tainted 4.20.0-rc6+ #75
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
    RIP: 0010:kvm_spurious_fault+0x5/0x10 [kvm]
    Code: <0f> 0b 66 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 41 55 49 89 fd 41
    RSP: 0018:ffffc90000497cd0 EFLAGS: 00010046
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffffffffffff
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffff88827058bd40 R08: 00000000000003e8 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000784 R12: ffffc90000369fb0
    R13: 0000000000000000 R14: 00000003c8fc6642 R15: ffff88827058bd40
    FS:  00007f3d7219e700(0000) GS:ffff888277900000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f3d64001000 CR3: 0000000271c6b004 CR4: 0000000000362ee0
    Call Trace:
     vmx_vcpu_run+0x156/0x630 [kvm_intel]
     ? kvm_arch_vcpu_ioctl_run+0x447/0x1a40 [kvm]
     ? kvm_vcpu_ioctl+0x368/0x5c0 [kvm]
     ? kvm_vcpu_ioctl+0x368/0x5c0 [kvm]
     ? __set_task_blocked+0x38/0x90
     ? __set_current_blocked+0x50/0x60
     ? __fpu__restore_sig+0x97/0x490
     ? do_vfs_ioctl+0xa1/0x620
     ? __x64_sys_futex+0x89/0x180
     ? ksys_ioctl+0x66/0x70
     ? __x64_sys_ioctl+0x16/0x20
     ? do_syscall_64+0x4f/0x100
     ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
    Modules linked in: vhost_net vhost tap kvm_intel kvm irqbypass bridge stp llc
    ---[ end trace f9daedb85ab3ddba ]---
    
    Fixes: b7c4145ba2eb ("KVM: Don't spin on virt instruction faults during reboot")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aaf7797da3d4c71585aaceb0368273c8171f4d54
Author: Patrick Dreyer <Patrick@Dreyer.name>
Date:   Sun Dec 23 10:06:35 2018 -0800

    Input: elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G
    
    commit 7db54c89f0b30a101584e09d3729144e6170059d upstream.
    
    This adds ELAN0501 to the ACPI table to support Elan touchpad found in ASUS
    Aspire F5-573G.
    
    Signed-off-by: Patrick Dreyer <Patrick.Dreyer@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5d6edaafdcfa43f6c7aaa66d1bd1faba9a04cb4
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Tue Dec 18 20:04:25 2018 +0800

    usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable()
    
    commit c85400f886e3d41e69966470879f635a2b50084c upstream.
    
    The function r8a66597_endpoint_disable() and r8a66597_urb_enqueue() may
    be concurrently executed.
    The two functions both access a possible shared variable "hep->hcpriv".
    
    This shared variable is freed by r8a66597_endpoint_disable() via the
    call path:
    r8a66597_endpoint_disable
      kfree(hep->hcpriv) (line 1995 in Linux-4.19)
    
    This variable is read by r8a66597_urb_enqueue() via the call path:
    r8a66597_urb_enqueue
      spin_lock_irqsave(&r8a66597->lock)
      init_pipe_info
        enable_r8a66597_pipe
          pipe = hep->hcpriv (line 802 in Linux-4.19)
    
    The read operation is protected by a spinlock, but the free operation
    is not protected by this spinlock, thus a concurrency use-after-free bug
    may occur.
    
    To fix this bug, the spin-lock and spin-unlock function calls in
    r8a66597_endpoint_disable() are moved to protect the free operation.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bef5854270bad17164af00861b9ecb3dede5cf88
Author: Jörgen Storvist <jorgen.storvist@gmail.com>
Date:   Fri Dec 21 14:40:44 2018 +0100

    USB: serial: option: add Fibocom NL678 series
    
    commit 4b2c01ad902ec02fa962b233decd2f14be3714ba upstream.
    
    Added USB serial option driver support for Fibocom NL678 series cellular
    module: VID 2cb7 and PIDs 0x0104 and 0x0105.
    Reserved network and ADB interfaces.
    
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=2cb7 ProdID=0104 Rev=03.10
    S:  Manufacturer=Fibocom
    S:  Product=Fibocom NL678-E Modem
    S:  SerialNumber=12345678
    C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=2cb7 ProdID=0105 Rev=03.10
    S:  Manufacturer=Fibocom
    S:  Product=Fibocom NL678-E Modem
    S:  SerialNumber=12345678
    C:  #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
    I:  If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
    I:  If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    
    Signed-off-by: Jörgen Storvist <jorgen.storvist@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Acked-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e7a4f2665315338b203d513eef33ec568ad5486
Author: Scott Chen <scott@labau.com.tw>
Date:   Thu Dec 13 06:01:47 2018 -0500

    USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays
    
    commit 8d503f206c336677954160ac62f0c7d9c219cd89 upstream.
    
    Add device ids to pl2303 for the HP POS pole displays:
    LM920:   03f0:026b
    TD620:   03f0:0956
    LD960TA: 03f0:4439
    LD220TA: 03f0:4349
    LM940:   03f0:5039
    
    Signed-off-by: Scott Chen <scott@labau.com.tw>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e9e68f76701c67ab34c586523635352fdf722edf
Author: Sameer Pujar <spujar@nvidia.com>
Date:   Wed Dec 26 16:04:49 2018 +0530

    ALSA: hda/tegra: clear pending irq handlers
    
    commit 63d2a9ec310d8bcc955574220d4631aa55c1a80c upstream.
    
    Even after disabling interrupts on the module, it could be possible
    that irq handlers are still running. System hang is seen during
    suspend path. It was found that, there were pending writes on the
    HDA bus and clock was disabled by that time.
    
    Above mentioned issue is fixed by clearing any pending irq handlers
    before disabling clocks and returning from hda suspend.
    
    Suggested-by: Mohan Kumar <mkumard@nvidia.com>
    Suggested-by: Dara Ramesh <dramesh@nvidia.com>
    Signed-off-by: Sameer Pujar <spujar@nvidia.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64b9976a624d46058ff337560f0a07b4afe4326b
Author: Mantas MikulÄ—nas <grawity@gmail.com>
Date:   Sun Dec 16 15:44:47 2018 +0200

    ALSA: hda: add mute LED support for HP EliteBook 840 G4
    
    commit 40906ebe3af6a48457151b3c6726b480f6a6cb13 upstream.
    
    Tested with 4.19.9.
    
    v2: Changed from CXT_FIXUP_MUTE_LED_GPIO to CXT_FIXUP_HP_DOCK because
        that's what the existing fixups for EliteBooks use.
    
    Signed-off-by: Mantas MikulÄ—nas <grawity@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31eadb108bf7be5e55fe725ced8a1e4c85009c95
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Wed Dec 12 11:20:49 2018 -0600

    ALSA: emux: Fix potential Spectre v1 vulnerabilities
    
    commit 4aea96f4237cea0c51a8bc87c0db31f0f932f1f0 upstream.
    
    info.mode and info.port are indirectly controlled by user-space,
    hence leading to a potential exploitation of the Spectre variant 1
    vulnerability.
    
    These issues were detected with the help of Smatch:
    
    sound/synth/emux/emux_hwdep.c:72 snd_emux_hwdep_misc_mode() warn: potential spectre issue 'emu->portptrs[i]->ctrls' [w] (local cap)
    sound/synth/emux/emux_hwdep.c:75 snd_emux_hwdep_misc_mode() warn: potential spectre issue 'emu->portptrs' [w] (local cap)
    sound/synth/emux/emux_hwdep.c:75 snd_emux_hwdep_misc_mode() warn: potential spectre issue 'emu->portptrs[info.port]->ctrls' [w] (local cap)
    
    Fix this by sanitizing both info.mode and info.port before using them
    to index emu->portptrs[i]->ctrls, emu->portptrs[info.port]->ctrls and
    emu->portptrs.
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
    
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f56eb9dfd1b0e86b2d76ae966bd18d03603db1c3
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Wed Dec 12 15:36:28 2018 -0600

    ALSA: pcm: Fix potential Spectre v1 vulnerability
    
    commit 94ffb030b6d31ec840bb811be455dd2e26a4f43e upstream.
    
    stream is indirectly controlled by user-space, hence leading to
    a potential exploitation of the Spectre variant 1 vulnerability.
    
    This issue was detected with the help of Smatch:
    
    sound/core/pcm.c:140 snd_pcm_control_ioctl() warn: potential spectre issue 'pcm->streams' [r] (local cap)
    
    Fix this by sanitizing stream before using it to index pcm->streams
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
    
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8ed54c8c379da0fdf8ae04b7e45fd8367fe0f2e
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Tue Dec 18 11:52:16 2018 -0600

    ALSA: emu10k1: Fix potential Spectre v1 vulnerabilities
    
    commit 5ae4f61f012a097df93de2285070ec8e34716d29 upstream.
    
    ipcm->substream is indirectly controlled by user-space, hence leading to
    a potential exploitation of the Spectre variant 1 vulnerability.
    
    This issue was detected with the help of Smatch:
    
    sound/pci/emu10k1/emufx.c:1031 snd_emu10k1_ipcm_poke() warn: potential spectre issue 'emu->fx8010.pcm' [r] (local cap)
    sound/pci/emu10k1/emufx.c:1075 snd_emu10k1_ipcm_peek() warn: potential spectre issue 'emu->fx8010.pcm' [r] (local cap)
    
    Fix this by sanitizing ipcm->substream before using it to index emu->fx8010.pcm
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8286dcc1d7aa46543ea3d11ce84c24965576193b
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Tue Dec 18 11:18:34 2018 -0600

    ALSA: rme9652: Fix potential Spectre v1 vulnerability
    
    commit 0b84304ef5da92add8dc75a1b07879c5374cdb05 upstream.
    
    info->channel is indirectly controlled by user-space, hence leading to
    a potential exploitation of the Spectre variant 1 vulnerability.
    
    This issue was detected with the help of Smatch:
    
    sound/pci/rme9652/hdsp.c:4100 snd_hdsp_channel_info() warn: potential spectre issue 'hdsp->channel_map' [r] (local cap)
    
    Fix this by sanitizing info->channel before using it to index hdsp->channel_map
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    Also, notice that I refactored the code a bit in order to get rid of the
    following checkpatch warning:
    
    ERROR: do not use assignment in if condition
    FILE: sound/pci/rme9652/hdsp.c:4103:
            if ((mapped_channel = hdsp->channel_map[info->channel]) < 0)
    
    [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f8de5a38cc3bb75db98669ffbc243175f32946a3
Author: Deepa Dinamani <deepa.kernel@gmail.com>
Date:   Thu Dec 27 18:55:09 2018 -0800

    sock: Make sock->sk_stamp thread-safe
    
    [ Upstream commit 3a0ed3e9619738067214871e9cb826fa23b2ddb9 ]
    
    Al Viro mentioned (Message-ID
    <20170626041334.GZ10672@ZenIV.linux.org.uk>)
    that there is probably a race condition
    lurking in accesses of sk_stamp on 32-bit machines.
    
    sock->sk_stamp is of type ktime_t which is always an s64.
    On a 32 bit architecture, we might run into situations of
    unsafe access as the access to the field becomes non atomic.
    
    Use seqlocks for synchronization.
    This allows us to avoid using spinlocks for readers as
    readers do not need mutual exclusion.
    
    Another approach to solve this is to require sk_lock for all
    modifications of the timestamps. The current approach allows
    for timestamps to have their own lock: sk_stamp_lock.
    This allows for the patch to not compete with already
    existing critical sections, and side effects are limited
    to the paths in the patch.
    
    The addition of the new field maintains the data locality
    optimizations from
    commit 9115e8cd2a0c ("net: reorganize struct sock for better data
    locality")
    
    Note that all the instances of the sk_stamp accesses
    are either through the ioctl or the syscall recvmsg.
    
    Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 770b0ad5ffe420a116ecd9458528451ce2be775f
Author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Date:   Wed Dec 19 23:23:00 2018 +0100

    gro_cell: add napi_disable in gro_cells_destroy
    
    [ Upstream commit 8e1da73acded4751a93d4166458a7e640f37d26c ]
    
    Add napi_disable routine in gro_cells_destroy since starting from
    commit c42858eaf492 ("gro_cells: remove spinlock protecting receive
    queues") gro_cell_poll and gro_cells_destroy can run concurrently on
    napi_skbs list producing a kernel Oops if the tunnel interface is
    removed while gro_cell_poll is running. The following Oops has been
    triggered removing a vxlan device while the interface is receiving
    traffic
    
    [ 5628.948853] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    [ 5628.949981] PGD 0 P4D 0
    [ 5628.950308] Oops: 0002 [#1] SMP PTI
    [ 5628.950748] CPU: 0 PID: 9 Comm: ksoftirqd/0 Not tainted 4.20.0-rc6+ #41
    [ 5628.952940] RIP: 0010:gro_cell_poll+0x49/0x80
    [ 5628.955615] RSP: 0018:ffffc9000004fdd8 EFLAGS: 00010202
    [ 5628.956250] RAX: 0000000000000000 RBX: ffffe8ffffc08150 RCX: 0000000000000000
    [ 5628.957102] RDX: 0000000000000000 RSI: ffff88802356bf00 RDI: ffffe8ffffc08150
    [ 5628.957940] RBP: 0000000000000026 R08: 0000000000000000 R09: 0000000000000000
    [ 5628.958803] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000040
    [ 5628.959661] R13: ffffe8ffffc08100 R14: 0000000000000000 R15: 0000000000000040
    [ 5628.960682] FS:  0000000000000000(0000) GS:ffff88803ea00000(0000) knlGS:0000000000000000
    [ 5628.961616] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 5628.962359] CR2: 0000000000000008 CR3: 000000000221c000 CR4: 00000000000006b0
    [ 5628.963188] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 5628.964034] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [ 5628.964871] Call Trace:
    [ 5628.965179]  net_rx_action+0xf0/0x380
    [ 5628.965637]  __do_softirq+0xc7/0x431
    [ 5628.966510]  run_ksoftirqd+0x24/0x30
    [ 5628.966957]  smpboot_thread_fn+0xc5/0x160
    [ 5628.967436]  kthread+0x113/0x130
    [ 5628.968283]  ret_from_fork+0x3a/0x50
    [ 5628.968721] Modules linked in:
    [ 5628.969099] CR2: 0000000000000008
    [ 5628.969510] ---[ end trace 9d9dedc7181661fe ]---
    [ 5628.970073] RIP: 0010:gro_cell_poll+0x49/0x80
    [ 5628.972965] RSP: 0018:ffffc9000004fdd8 EFLAGS: 00010202
    [ 5628.973611] RAX: 0000000000000000 RBX: ffffe8ffffc08150 RCX: 0000000000000000
    [ 5628.974504] RDX: 0000000000000000 RSI: ffff88802356bf00 RDI: ffffe8ffffc08150
    [ 5628.975462] RBP: 0000000000000026 R08: 0000000000000000 R09: 0000000000000000
    [ 5628.976413] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000040
    [ 5628.977375] R13: ffffe8ffffc08100 R14: 0000000000000000 R15: 0000000000000040
    [ 5628.978296] FS:  0000000000000000(0000) GS:ffff88803ea00000(0000) knlGS:0000000000000000
    [ 5628.979327] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 5628.980044] CR2: 0000000000000008 CR3: 000000000221c000 CR4: 00000000000006b0
    [ 5628.980929] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 5628.981736] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [ 5628.982409] Kernel panic - not syncing: Fatal exception in interrupt
    [ 5628.983307] Kernel Offset: disabled
    
    Fixes: c42858eaf492 ("gro_cells: remove spinlock protecting receive queues")
    Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
    Acked-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 c986a25496f578a5d3422b94d45ab661d904158f
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Dec 18 16:06:19 2018 +0100

    xen/netfront: tolerate frags with no data
    
    [ Upstream commit d81c5054a5d1d4999c7cdead7636b6cd4af83d36 ]
    
    At least old Xen net backends seem to send frags with no real data
    sometimes. In case such a fragment happens to occur with the frag limit
    already reached the frontend will BUG currently even if this situation
    is easily recoverable.
    
    Modify the BUG_ON() condition accordingly.
    
    Tested-by: Dietmar Hahn <dietmar.hahn@ts.fujitsu.com>
    Signed-off-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 291d37f7c3571ba7764fc20291754767af53ea0e
Author: Jorgen Hansen <jhansen@vmware.com>
Date:   Tue Dec 18 00:34:06 2018 -0800

    VSOCK: Send reset control packet when socket is partially bound
    
    [ Upstream commit a915b982d8f5e4295f64b8dd37ce753874867e88 ]
    
    If a server side socket is bound to an address, but not in the listening
    state yet, incoming connection requests should receive a reset control
    packet in response. However, the function used to send the reset
    silently drops the reset packet if the sending socket isn't bound
    to a remote address (as is the case for a bound socket not yet in
    the listening state). This change fixes this by using the src
    of the incoming packet as destination for the reset packet in
    this case.
    
    Fixes: d021c344051a ("VSOCK: Introduce VM Sockets")
    Reviewed-by: Adit Ranadive <aditr@vmware.com>
    Reviewed-by: Vishnu Dasa <vdasa@vmware.com>
    Signed-off-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 04a1c4080cbfade5b445e15d0e64dc98e32fe484
Author: Jason Wang <jasowang@redhat.com>
Date:   Thu Dec 13 10:53:37 2018 +0800

    vhost: make sure used idx is seen before log in vhost_add_used_n()
    
    [ Upstream commit 841df922417eb82c835e93d4b93eb6a68c99d599 ]
    
    We miss a write barrier that guarantees used idx is updated and seen
    before log. This will let userspace sync and copy used ring before
    used idx is update. Fix this by adding a barrier before log_write().
    
    Fixes: 8dd014adfea6f ("vhost-net: mergeable buffers support")
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15c17f3654f74b4772a0a4813cf3b975d12a321c
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Dec 10 18:00:52 2018 +0800

    sctp: initialize sin6_flowinfo for ipv6 addrs in sctp_inet6addr_event
    
    [ Upstream commit 4a2eb0c37b4759416996fbb4c45b932500cf06d3 ]
    
    syzbot reported a kernel-infoleak, which is caused by an uninitialized
    field(sin6_flowinfo) of addr->a.v6 in sctp_inet6addr_event().
    The call trace is as below:
    
      BUG: KMSAN: kernel-infoleak in _copy_to_user+0x19a/0x230 lib/usercopy.c:33
      CPU: 1 PID: 8164 Comm: syz-executor2 Not tainted 4.20.0-rc3+ #95
      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+0x32d/0x480 lib/dump_stack.c:113
        kmsan_report+0x12c/0x290 mm/kmsan/kmsan.c:683
        kmsan_internal_check_memory+0x32a/0xa50 mm/kmsan/kmsan.c:743
        kmsan_copy_to_user+0x78/0xd0 mm/kmsan/kmsan_hooks.c:634
        _copy_to_user+0x19a/0x230 lib/usercopy.c:33
        copy_to_user include/linux/uaccess.h:183 [inline]
        sctp_getsockopt_local_addrs net/sctp/socket.c:5998 [inline]
        sctp_getsockopt+0x15248/0x186f0 net/sctp/socket.c:7477
        sock_common_getsockopt+0x13f/0x180 net/core/sock.c:2937
        __sys_getsockopt+0x489/0x550 net/socket.c:1939
        __do_sys_getsockopt net/socket.c:1950 [inline]
        __se_sys_getsockopt+0xe1/0x100 net/socket.c:1947
        __x64_sys_getsockopt+0x62/0x80 net/socket.c:1947
        do_syscall_64+0xcf/0x110 arch/x86/entry/common.c:291
        entry_SYSCALL_64_after_hwframe+0x63/0xe7
    
    sin6_flowinfo is not really used by SCTP, so it will be fixed by simply
    setting it to 0.
    
    The issue exists since very beginning.
    Thanks Alexander for the reproducer provided.
    
    Reported-by: syzbot+ad5d327e6936a2e284be@syzkaller.appspotmail.com
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33a083483c24fddc2ece3c2d322a6fc39ae9f8b6
Author: Willem de Bruijn <willemb@google.com>
Date:   Sat Dec 22 16:53:45 2018 -0500

    packet: validate address length if non-zero
    
    [ Upstream commit 6b8d95f1795c42161dc0984b6863e95d6acf24ed ]
    
    Validate packet socket address length if a length is given. Zero
    length is equivalent to not setting an address.
    
    Fixes: 99137b7888f4 ("packet: validate address length")
    Reported-by: Ido Schimmel <idosch@idosch.org>
    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 5b4dc608f82a7f2504619b3889334e0b621d84b5
Author: Willem de Bruijn <willemb@google.com>
Date:   Fri Dec 21 12:06:59 2018 -0500

    packet: validate address length
    
    [ Upstream commit 99137b7888f4058087895d035d81c6b2d31015c5 ]
    
    Packet sockets with SOCK_DGRAM may pass an address for use in
    dev_hard_header. Ensure that it is of sufficient length.
    
    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 429b64a9eb90b22c5000d008763b4cabf0db4fb5
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Sat Dec 29 13:56:38 2018 -0800

    netrom: fix locking in nr_find_socket()
    
    [ Upstream commit 7314f5480f3e37e570104dc5e0f28823ef849e72 ]
    
    nr_find_socket(), nr_find_peer() and nr_find_listener() lock the
    sock after finding it in the global list. However, the call path
    requires BH disabled for the sock lock consistently.
    
    Actually the locking is unnecessary at this point, we can just hold
    the sock refcnt to make sure it is not gone after we unlock the global
    list, and lock it later only when needed.
    
    Reported-and-tested-by: syzbot+f621cda8b7e598908efa@syzkaller.appspotmail.com
    Signed-off-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 866408f607aca42e77ad6e6a535c63df9ae40277
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 2 09:20:27 2019 -0800

    isdn: fix kernel-infoleak in capi_unlocked_ioctl
    
    [ Upstream commit d63967e475ae10f286dbd35e189cb241e0b1f284 ]
    
    Since capi_ioctl() copies 64 bytes after calling
    capi20_get_manufacturer() we need to ensure to not leak
    information to user.
    
    BUG: KMSAN: kernel-infoleak in _copy_to_user+0x16b/0x1f0 lib/usercopy.c:32
    CPU: 0 PID: 11245 Comm: syz-executor633 Not tainted 4.20.0-rc7+ #2
    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+0x173/0x1d0 lib/dump_stack.c:113
     kmsan_report+0x12e/0x2a0 mm/kmsan/kmsan.c:613
     kmsan_internal_check_memory+0x9d4/0xb00 mm/kmsan/kmsan.c:704
     kmsan_copy_to_user+0xab/0xc0 mm/kmsan/kmsan_hooks.c:601
     _copy_to_user+0x16b/0x1f0 lib/usercopy.c:32
     capi_ioctl include/linux/uaccess.h:177 [inline]
     capi_unlocked_ioctl+0x1a0b/0x1bf0 drivers/isdn/capi/capi.c:939
     do_vfs_ioctl+0xebd/0x2bf0 fs/ioctl.c:46
     ksys_ioctl fs/ioctl.c:713 [inline]
     __do_sys_ioctl fs/ioctl.c:720 [inline]
     __se_sys_ioctl+0x1da/0x270 fs/ioctl.c:718
     __x64_sys_ioctl+0x4a/0x70 fs/ioctl.c:718
     do_syscall_64+0xbc/0xf0 arch/x86/entry/common.c:291
     entry_SYSCALL_64_after_hwframe+0x63/0xe7
    RIP: 0033:0x440019
    Code: 18 89 d0 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 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 fb 13 fc ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007ffdd4659fb8 EFLAGS: 00000213 ORIG_RAX: 0000000000000010
    RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 0000000000440019
    RDX: 0000000020000080 RSI: 00000000c0044306 RDI: 0000000000000003
    RBP: 00000000006ca018 R08: 0000000000000000 R09: 00000000004002c8
    R10: 0000000000000000 R11: 0000000000000213 R12: 00000000004018a0
    R13: 0000000000401930 R14: 0000000000000000 R15: 0000000000000000
    
    Local variable description: ----data.i@capi_unlocked_ioctl
    Variable was created at:
     capi_ioctl drivers/isdn/capi/capi.c:747 [inline]
     capi_unlocked_ioctl+0x82/0x1bf0 drivers/isdn/capi/capi.c:939
     do_vfs_ioctl+0xebd/0x2bf0 fs/ioctl.c:46
    
    Bytes 12-63 of 64 are uninitialized
    Memory access of size 64 starts at ffff88807ac5fce8
    Data copied to user address 0000000020000080
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Karsten Keil <isdn@linux-pingi.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 708ae57321cd09ccc09e313e95a6d47329597d1b
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Tue Dec 18 21:17:44 2018 -0800

    ipv6: explicitly initialize udp6_addr in udp_sock_create6()
    
    [ Upstream commit fb24274546310872eeeaf3d1d53799d8414aa0f2 ]
    
    syzbot reported the use of uninitialized udp6_addr::sin6_scope_id.
    We can just set ::sin6_scope_id to zero, as tunnels are unlikely
    to use an IPv6 address that needs a scope id and there is no
    interface to bind in this context.
    
    For net-next, it looks different as we have cfg->bind_ifindex there
    so we can probably call ipv6_iface_scope_id().
    
    Same for ::sin6_flowinfo, tunnels don't use it.
    
    Fixes: 8024e02879dd ("udp: Add udp_sock_create for UDP tunnels to open listener socket")
    Reported-by: syzbot+c56449ed3652e6720f30@syzkaller.appspotmail.com
    Cc: Jon Maloy <jon.maloy@ericsson.com>
    Signed-off-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 615b74643bceb07bf1ce91462da1d521eea2c9ae
Author: Willem de Bruijn <willemb@google.com>
Date:   Sun Dec 23 12:52:18 2018 -0500

    ieee802154: lowpan_header_create check must check daddr
    
    [ Upstream commit 40c3ff6d5e0809505a067dd423c110c5658c478c ]
    
    Packet sockets may call dev_header_parse with NULL daddr. Make
    lowpan_header_ops.create fail.
    
    Fixes: 87a93e4eceb4 ("ieee802154: change needed headroom/tailroom")
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Acked-by: Alexander Aring <aring@mojatatu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba2f5c18050e5d2a04c1479c05ec5bfe2d0e8b53
Author: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Date:   Mon Dec 31 15:43:01 2018 -0600

    ibmveth: fix DMA unmap error in ibmveth_xmit_start error path
    
    [ Upstream commit 756af9c642329d54f048bac2a62f829b391f6944 ]
    
    Commit 33a48ab105a7 ("ibmveth: Fix DMA unmap error") fixed an issue in the
    normal code path of ibmveth_xmit_start() that was originally introduced by
    Commit 6e8ab30ec677 ("ibmveth: Add scatter-gather support"). This original
    fix missed the error path where dma_unmap_page is wrongly called on the
    header portion in descs[0] which was mapped with dma_map_single. As a
    result a failure to DMA map any of the frags results in a dmesg warning
    when CONFIG_DMA_API_DEBUG is enabled.
    
    ------------[ cut here ]------------
    DMA-API: ibmveth 30000002: device driver frees DMA memory with wrong function
      [device address=0x000000000a430000] [size=172 bytes] [mapped as page] [unmapped as single]
    WARNING: CPU: 1 PID: 8426 at kernel/dma/debug.c:1085 check_unmap+0x4fc/0xe10
    ...
    <snip>
    ...
    DMA-API: Mapped at:
    ibmveth_start_xmit+0x30c/0xb60
    dev_hard_start_xmit+0x100/0x450
    sch_direct_xmit+0x224/0x490
    __qdisc_run+0x20c/0x980
    __dev_queue_xmit+0x1bc/0xf20
    
    This fixes the API misuse by unampping descs[0] with dma_unmap_single.
    
    Fixes: 6e8ab30ec677 ("ibmveth: Add scatter-gather support")
    Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0e93a6d36135d5082cb3af8352f5b69c9f58d6e
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Sat Dec 29 13:56:36 2018 -0800

    ax25: fix a use-after-free in ax25_fillin_cb()
    
    [ Upstream commit c433570458e49bccea5c551df628d058b3526289 ]
    
    There are multiple issues here:
    
    1. After freeing dev->ax25_ptr, we need to set it to NULL otherwise
       we may use a dangling pointer.
    
    2. There is a race between ax25_setsockopt() and device notifier as
       reported by syzbot. Close it by holding RTNL lock.
    
    3. We need to test if dev->ax25_ptr is NULL before using it.
    
    Reported-and-tested-by: syzbot+ae6bb869cbed29b29040@syzkaller.appspotmail.com
    Signed-off-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 74d6170eb63f458a0ddfe75f90214d7ff03c1cc2
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Mon Dec 10 12:41:24 2018 -0600

    ipv4: Fix potential Spectre v1 vulnerability
    
    [ Upstream commit 5648451e30a0d13d11796574919a359025d52cce ]
    
    vr.vifi is indirectly controlled by user-space, hence leading to
    a potential exploitation of the Spectre variant 1 vulnerability.
    
    This issue was detected with the help of Smatch:
    
    net/ipv4/ipmr.c:1616 ipmr_ioctl() warn: potential spectre issue 'mrt->vif_table' [r] (local cap)
    net/ipv4/ipmr.c:1690 ipmr_compat_ioctl() warn: potential spectre issue 'mrt->vif_table' [r] (local cap)
    
    Fix this by sanitizing vr.vifi before using it to index mrt->vif_table'
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
    
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6dc50507697ce02fc8118e794b9ffdb20e6ed4ea
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Tue Dec 11 14:10:08 2018 -0600

    ip6mr: Fix potential Spectre v1 vulnerability
    
    [ Upstream commit 69d2c86766da2ded2b70281f1bf242cb0d58a778 ]
    
    vr.mifi is indirectly controlled by user-space, hence leading to
    a potential exploitation of the Spectre variant 1 vulnerability.
    
    This issue was detected with the help of Smatch:
    
    net/ipv6/ip6mr.c:1845 ip6mr_ioctl() warn: potential spectre issue 'mrt->vif_table' [r] (local cap)
    net/ipv6/ip6mr.c:1919 ip6mr_compat_ioctl() warn: potential spectre issue 'mrt->vif_table' [r] (local cap)
    
    Fix this by sanitizing vr.mifi before using it to index mrt->vif_table'
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
    
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2a840d6dcae960c2dfdf3fcb1b759e1b7d90663
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Wed Dec 19 18:00:15 2018 -0600

    drm/ioctl: Fix Spectre v1 vulnerabilities
    
    commit 505b5240329b922f21f91d5b5d1e535c805eca6d upstream.
    
    nr is indirectly controlled by user-space, hence leading to a
    potential exploitation of the Spectre variant 1 vulnerability.
    
    This issue was detected with the help of Smatch:
    
    drivers/gpu/drm/drm_ioctl.c:805 drm_ioctl() warn: potential spectre issue 'dev->driver->ioctls' [r]
    drivers/gpu/drm/drm_ioctl.c:810 drm_ioctl() warn: potential spectre issue 'drm_ioctls' [r] (local cap)
    drivers/gpu/drm/drm_ioctl.c:892 drm_ioctl_flags() warn: potential spectre issue 'drm_ioctls' [r] (local cap)
    
    Fix this by sanitizing nr before using it to index dev->driver->ioctls
    and drm_ioctls.
    
    Notice that given that speculation windows are large, the policy is
    to kill the speculation on the first load and not worry if it can be
    completed with a dependent load/store [1].
    
    [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20181220000015.GA18973@embeddedor
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 38b1b66e5796cc9089c02720b78d50d0682e66b0
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue Dec 18 17:29:56 2018 +0000

    x86/mtrr: Don't copy uninitialized gentry fields back to userspace
    
    commit 32043fa065b51e0b1433e48d118821c71b5cd65d upstream.
    
    Currently the copy_to_user of data in the gentry struct is copying
    uninitiaized data in field _pad from the stack to userspace.
    
    Fix this by explicitly memset'ing gentry to zero, this also will zero any
    compiler added padding fields that may be in struct (currently there are
    none).
    
    Detected by CoverityScan, CID#200783 ("Uninitialized scalar variable")
    
    Fixes: b263b31e8ad6 ("x86, mtrr: Use explicit sizing and padding for the 64-bit ioctls")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Tyler Hicks <tyhicks@canonical.com>
    Cc: security@kernel.org
    Link: https://lkml.kernel.org/r/20181218172956.1440-1-colin.king@canonical.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c866fa26823d952605b78931709b2f0954dc1145
Author: Dexuan Cui <decui@microsoft.com>
Date:   Thu Dec 13 16:35:43 2018 +0000

    Drivers: hv: vmbus: Return -EINVAL for the sys files for unopened channels
    
    commit fc96df16a1ce80cbb3c316ab7d4dc8cd5c2852ce upstream.
    
    Before 98f4c651762c, we returned zeros for unopened channels.
    With 98f4c651762c, we started to return random on-stack values.
    
    We'd better return -EINVAL instead.
    
    Fixes: 98f4c651762c ("hv: move ringbuffer bus attributes to dev_groups")
    Cc: stable@vger.kernel.org
    Cc: K. Y. Srinivasan <kys@microsoft.com>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61b4285244c1c910d3527090b49c5908beb92bf5
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Fri Dec 7 13:07:55 2018 +0000

    gpio: max7301: fix driver for use with CONFIG_VMAP_STACK
    
    commit abf221d2f51b8ce7b9959a8953f880a8b0a1400d upstream.
    
    spi_read() and spi_write() require DMA-safe memory. When
    CONFIG_VMAP_STACK is selected, those functions cannot be used
    with buffers on stack.
    
    This patch replaces calls to spi_read() and spi_write() by
    spi_write_then_read() which doesn't require DMA-safe buffers.
    
    Fixes: 0c36ec314735 ("gpio: gpio driver for max7301 SPI GPIO expander")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5c4aa9ca53defd609efdaaff623624d236c67b8
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Tue Dec 11 14:41:31 2018 +0000

    mmc: omap_hsmmc: fix DMA API warning
    
    commit 0b479790684192ab7024ce6a621f93f6d0a64d92 upstream.
    
    While booting with rootfs on MMC, the following warning is encountered
    on OMAP4430:
    
    omap-dma-engine 4a056000.dma-controller: DMA-API: mapping sg segment longer than device claims to support [len=69632] [max=65536]
    
    This is because the DMA engine has a default maximum segment size of 64K
    but HSMMC sets:
    
            mmc->max_blk_size = 512;       /* Block Length at max can be 1024 */
            mmc->max_blk_count = 0xFFFF;    /* No. of Blocks is 16 bits */
            mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
            mmc->max_seg_size = mmc->max_req_size;
    
    which ends up telling the block layer that we support a maximum segment
    size of 65535*512, which exceeds the advertised DMA engine capabilities.
    
    Fix this by clamping the maximum segment size to the lower of the
    maximum request size and of the DMA engine device used for either DMA
    channel.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2eca86effbeba30190f368f70b26779a04c3bad
Author: Ulf Hansson <ulf.hansson@linaro.org>
Date:   Mon Dec 10 17:52:36 2018 +0100

    mmc: core: Reset HPI enabled state during re-init and in case of errors
    
    commit a0741ba40a009f97c019ae7541dc61c1fdf41efb upstream.
    
    During a re-initialization of the eMMC card, we may fail to re-enable HPI.
    In these cases, that isn't properly reflected in the card->ext_csd.hpi_en
    bit, as it keeps being set. This may cause following attempts to use HPI,
    even if's not enabled. Let's fix this!
    
    Fixes: eb0d8f135b67 ("mmc: core: support HPI send command")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0c27dc554ee9d617fedaab9388158d531fb0aab
Author: Jörgen Storvist <jorgen.storvist@gmail.com>
Date:   Thu Dec 13 17:32:08 2018 +0100

    USB: serial: option: add Telit LN940 series
    
    commit 28a86092b1753b802ef7e3de8a4c4a69a9c1bb03 upstream.
    
    Added USB serial option driver support for Telit LN940 series cellular
    modules. Covering both QMI and MBIM modes.
    
    usb-devices output (0x1900):
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 21 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=1900 Rev=03.10
    S:  Manufacturer=Telit
    S:  Product=Telit LN940 Mobile Broadband
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    
    usb-devices output (0x1901):
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 20 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=1bc7 ProdID=1901 Rev=03.10
    S:  Manufacturer=Telit
    S:  Product=Telit LN940 Mobile Broadband
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
    I:  If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    
    Signed-off-by: Jörgen Storvist <jorgen.storvist@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 339d1495cb37e1b90f263f05a5704438580e3579
Author: Jörgen Storvist <jorgen.storvist@gmail.com>
Date:   Wed Dec 12 21:47:36 2018 +0100

    USB: serial: option: add Fibocom NL668 series
    
    commit 30360224441ce89a98ed627861e735beb4010775 upstream.
    
    Added USB serial option driver support for Fibocom NL668 series cellular
    modules. Reserved USB endpoints 4, 5 and 6 for network + ADB interfaces.
    
    usb-devices output (QMI mode)
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 16 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1508 ProdID=1001 Rev=03.18
    S:  Manufacturer=Nodecom NL668 Modem
    S:  Product=Nodecom NL668-CN Modem
    S:  SerialNumber=
    C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    
    usb-devices output (ECM mode)
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 17 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1508 ProdID=1001 Rev=03.18
    S:  Manufacturer=Nodecom NL668 Modem
    S:  Product=Nodecom NL668-CN Modem
    S:  SerialNumber=
    C:  #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
    I:  If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
    I:  If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    
    Signed-off-by: Jörgen Storvist <jorgen.storvist@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3181afbf21f9c7264fed3d42e7d83e2f51f1a957
Author: Jörgen Storvist <jorgen.storvist@gmail.com>
Date:   Wed Dec 12 08:39:39 2018 +0100

    USB: serial: option: add Simcom SIM7500/SIM7600 (MBIM mode)
    
    commit cc6730df08a291e51e145bc65e24ffb5e2f17ab6 upstream.
    
    Added USB serial option driver support for Simcom SIM7500/SIM7600 series
    cellular modules exposing MBIM interface (VID 0x1e0e,PID 0x9003)
    
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 14 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1e0e ProdID=9003 Rev=03.18
    S:  Manufacturer=SimTech, Incorporated
    S:  Product=SimTech, Incorporated
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 5 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
    I:  If#= 6 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    
    Signed-off-by: Jörgen Storvist <jorgen.storvist@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d12f397f129a1d6c4f44c09a0f212e69fb665053
Author: Tore Anderson <tore@fud.no>
Date:   Sat Dec 8 19:05:12 2018 +0100

    USB: serial: option: add HP lt4132
    
    commit d57ec3c83b5153217a70b561d4fb6ed96f2f7a25 upstream.
    
    The HP lt4132 is a rebranded Huawei ME906s-158 LTE modem.
    
    The interface with protocol 0x16 is "CDC ECM & NCM" according to the *.inf
    files included with the Windows driver. Attaching the option driver to it
    doesn't result in a /dev/ttyUSB* device being created, so I've excluded it.
    Note that it is also excluded for corresponding Huawei-branded devices, cf.
    commit d544db293a44 ("USB: support new huawei devices in option.c").
    
    T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=ff MxPS=64 #Cfgs=  3
    P:  Vendor=03f0 ProdID=a31d Rev=01.02
    S:  Manufacturer=HP Inc.
    S:  Product=HP lt4132 LTE/HSPA+ 4G Module
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=2mA
    I:  If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=10 Driver=option
    I:  If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=13 Driver=option
    I:  If#=0x2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=12 Driver=option
    I:  If#=0x3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=06 Prot=16 Driver=(none)
    I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=14 Driver=option
    I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=1b Driver=option
    
    T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=ff MxPS=64 #Cfgs=  3
    P:  Vendor=03f0 ProdID=a31d Rev=01.02
    S:  Manufacturer=HP Inc.
    S:  Product=HP lt4132 LTE/HSPA+ 4G Module
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 7 Cfg#= 2 Atr=a0 MxPwr=2mA
    I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
    I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=06 Prot=00 Driver=cdc_ether
    I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=10 Driver=option
    I:  If#=0x3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=13 Driver=option
    I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=12 Driver=option
    I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=14 Driver=option
    I:  If#=0x6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=1b Driver=option
    
    T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=ff MxPS=64 #Cfgs=  3
    P:  Vendor=03f0 ProdID=a31d Rev=01.02
    S:  Manufacturer=HP Inc.
    S:  Product=HP lt4132 LTE/HSPA+ 4G Module
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 3 Cfg#= 3 Atr=a0 MxPwr=2mA
    I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
    I:  If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    I:  If#=0x2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=14 Driver=option
    
    Signed-off-by: Tore Anderson <tore@fud.no>
    Cc: stable@vger.kernel.org
    [ johan: drop id defines ]
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff3663c771c0e5aa12929dfe07f39914b4cd0aff
Author: Jörgen Storvist <jorgen.storvist@gmail.com>
Date:   Tue Dec 11 18:28:28 2018 +0100

    USB: serial: option: add GosunCn ZTE WeLink ME3630
    
    commit 70a7444c550a75584ffcfae95267058817eff6a7 upstream.
    
    Added USB serial option driver support for GosunCn ZTE WeLink ME3630
    series cellular modules for USB modes ECM/NCM and MBIM.
    
    usb-devices output MBIM mode:
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 10 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=19d2 ProdID=0602 Rev=03.18
    S:  Manufacturer=Android
    S:  Product=Android
    S:  SerialNumber=
    C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
    I:  If#= 4 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    
    usb-devices output ECM/NCM mode:
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 11 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=19d2 ProdID=1476 Rev=03.18
    S:  Manufacturer=Android
    S:  Product=Android
    S:  SerialNumber=
    C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#= 3 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
    I:  If#= 4 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
    
    Signed-off-by: Jörgen Storvist <jorgen.storvist@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bdb82196e75ba082080f1d443757a26fbfc0f6ce
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Fri Dec 14 10:54:43 2018 +0200

    xhci: Don't prevent USB2 bus suspend in state check intended for USB3 only
    
    commit 45f750c16cae3625014c14c77bd9005eda975d35 upstream.
    
    The code to prevent a bus suspend if a USB3 port was still in link training
    also reacted to USB2 port polling state.
    This caused bus suspend to busyloop in some cases.
    USB2 polling state is different from USB3, and should not prevent bus
    suspend.
    
    Limit the USB3 link training state check to USB3 root hub ports only.
    The origial commit went to stable so this need to be applied there as well
    
    Fixes: 2f31a67f01a8 ("usb: xhci: Prevent bus suspend if a port connect change or polling state is detected")
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8846b1dbfd2146b145d73ba31a4caa4a4789aefb
Author: Hui Peng <benquike@gmail.com>
Date:   Wed Dec 12 12:42:24 2018 +0100

    USB: hso: Fix OOB memory access in hso_probe/hso_get_config_data
    
    commit 5146f95df782b0ac61abde36567e718692725c89 upstream.
    
    The function hso_probe reads if_num from the USB device (as an u8) and uses
    it without a length check to index an array, resulting in an OOB memory read
    in hso_probe or hso_get_config_data.
    
    Add a length check for both locations and updated hso_probe to bail on
    error.
    
    This issue has been assigned CVE-2018-19985.
    
    Reported-by: Hui Peng <benquike@gmail.com>
    Reported-by: Mathias Payer <mathias.payer@nebelwelt.net>
    Signed-off-by: Hui Peng <benquike@gmail.com>
    Signed-off-by: Mathias Payer <mathias.payer@nebelwelt.net>
    Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>