commit d2dd9f1593dc4d5ceb5cf4a973ed2c6e3a49d799
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Dec 29 13:39:11 2018 +0100

    Linux 4.14.91

commit d04e6ea0cec9e7d6cba806508f657d2d0dc6cacf
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 5cebd962c97f3ee64555718169cc00c8fe7a228a
Author: Ivan Delalande <colona@arista.com>
Date:   Thu Dec 13 15:20:52 2018 -0800

    proc/sysctl: don't return ENOMEM on lookup when a table is unregistering
    
    commit ea5751ccd665a2fd1b24f9af81f6167f0718c5f6 upstream.
    
    proc_sys_lookup can fail with ENOMEM instead of ENOENT when the
    corresponding sysctl table is being unregistered. In our case we see
    this upon opening /proc/sys/net/*/conf files while network interfaces
    are being deleted, which confuses our configuration daemon.
    
    The problem was successfully reproduced and this fix tested on v4.9.122
    and v4.20-rc6.
    
    v2: return ERR_PTRs in all cases when proc_sys_make_inode fails instead
    of mixing them with NULL. Thanks Al Viro for the feedback.
    
    Fixes: ace0c791e6c3 ("proc/sysctl: Don't grab i_lock under sysctl_lock.")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ivan Delalande <colona@arista.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36f93a2e7dce0a4f58b96a7ecb3af4e5897a60d4
Author: Roman Gushchin <guro@fb.com>
Date:   Fri Oct 26 15:03:27 2018 -0700

    mm: don't miss the last page because of round-off error
    
    commit 68600f623d69da428c6163275f97ca126e1a8ec5 upstream.
    
    I've noticed, that dying memory cgroups are often pinned in memory by a
    single pagecache page.  Even under moderate memory pressure they sometimes
    stayed in such state for a long time.  That looked strange.
    
    My investigation showed that the problem is caused by applying the LRU
    pressure balancing math:
    
      scan = div64_u64(scan * fraction[lru], denominator),
    
    where
    
      denominator = fraction[anon] + fraction[file] + 1.
    
    Because fraction[lru] is always less than denominator, if the initial scan
    size is 1, the result is always 0.
    
    This means the last page is not scanned and has
    no chances to be reclaimed.
    
    Fix this by rounding up the result of the division.
    
    In practice this change significantly improves the speed of dying cgroups
    reclaim.
    
    [guro@fb.com: prevent double calculation of DIV64_U64_ROUND_UP() arguments]
      Link: http://lkml.kernel.org/r/20180829213311.GA13501@castle
    Link: http://lkml.kernel.org/r/20180827162621.30187-3-guro@fb.com
    Signed-off-by: Roman Gushchin <guro@fb.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: Matthew Wilcox <willy@infradead.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 ed0d232df97fcba2ae621c4eb1283b1c790b7989
Author: Richard Weinberger <richard@nod.at>
Date:   Wed Dec 26 13:32:11 2018 +0100

    ubifs: Handle re-linking of inodes correctly while recovery
    
    commit e58725d51fa8da9133f3f1c54170aa2e43056b91 upstream.
    
    UBIFS's recovery code strictly assumes that a deleted inode will never
    come back, therefore it removes all data which belongs to that inode
    as soon it faces an inode with link count 0 in the replay list.
    Before O_TMPFILE this assumption was perfectly fine. With O_TMPFILE
    it can lead to data loss upon a power-cut.
    
    Consider a journal with entries like:
    0: inode X (nlink = 0) /* O_TMPFILE was created */
    1: data for inode X /* Someone writes to the temp file */
    2: inode X (nlink = 0) /* inode was changed, xattr, chmod, … */
    3: inode X (nlink = 1) /* inode was re-linked via linkat() */
    
    Upon replay of entry #2 UBIFS will drop all data that belongs to inode X,
    this will lead to an empty file after mounting.
    
    As solution for this problem, scan the replay list for a re-link entry
    before dropping data.
    
    Fixes: 474b93704f32 ("ubifs: Implement O_TMPFILE")
    Cc: stable@vger.kernel.org # 4.9-4.18
    Cc: Russell Senior <russell@personaltelco.net>
    Cc: Rafał Miłecki <zajec5@gmail.com>
    Reported-by: Russell Senior <russell@personaltelco.net>
    Reported-by: Rafał Miłecki <zajec5@gmail.com>
    Tested-by: Rafał Miłecki <rafal@milecki.pl>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    [rmilecki: update ubifs_assert() calls to compile with 4.18 and older]
    Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
    (cherry picked from commit e58725d51fa8da9133f3f1c54170aa2e43056b91)
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 089651ef038eb4af77b0847615f909d2edce1bc2
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Sun Dec 23 22:21:22 2018 +0100

    spi: imx: mx51-ecspi: Move some initialisation to prepare_message hook.
    
    The relevant difference between prepare_message and config is that the
    former is run before the CS signal is asserted. So the polarity of the
    CLK line must be configured in prepare_message as an edge generated by
    config might already result in a latch of the MOSI line.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    [ukleinek: backport to v4.14.x]
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0cc6feb5c4b5e6e1d1fa98f97b28ba79d6b5cb1b
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Sun Dec 23 22:21:21 2018 +0100

    spi: imx: add a device specific prepare_message callback
    
    This is just preparatory work which allows to move some initialisation
    that currently is done in the per transfer hook .config to an earlier
    point in time in the next few patches. There is no change in behaviour
    introduced by this patch.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    [ukleinek: backport to v4.14.x]
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20e985263c31166c639163116e681b1aa8775c8f
Author: Ihab Zhaika <ihab.zhaika@intel.com>
Date:   Tue Jul 31 09:53:09 2018 +0300

    iwlwifi: add new cards for 9560, 9462, 9461 and killer series
    
    commit f108703cb5f199d0fc98517ac29a997c4c646c94 upstream.
    
    add few PCI ID'S for 9560, 9462, 9461 and killer series.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit adb7ea126e6315895aaa47f7cb376bfb6360be5e
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Fri Dec 14 18:30:22 2018 +0200

    iwlwifi: mvm: don't send GEO_TX_POWER_LIMIT to old firmwares
    
    commit eca1e56ceedd9cc185eb18baf307d3ff2e4af376 upstream.
    
    Old firmware versions don't support this command. Sending it
    to any firmware before -41.ucode will crash the firmware.
    
    This fixes https://bugzilla.kernel.org/show_bug.cgi?id=201975
    
    Fixes: 66e839030fd6 ("iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE")
    CC: <stable@vger.kernel.org> #4.19+
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1240a10f34d452bf9f50da7cc062022b586c2f4
Author: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Date:   Thu Oct 25 19:10:36 2018 +0900

    panic: avoid deadlocks in re-entrant console drivers
    
    commit c7c3f05e341a9a2bd1a92993d4f996cfd6e7348e upstream.
    
    From printk()/serial console point of view panic() is special, because
    it may force CPU to re-enter printk() or/and serial console driver.
    Therefore, some of serial consoles drivers are re-entrant. E.g. 8250:
    
    serial8250_console_write()
    {
            if (port->sysrq)
                    locked = 0;
            else if (oops_in_progress)
                    locked = spin_trylock_irqsave(&port->lock, flags);
            else
                    spin_lock_irqsave(&port->lock, flags);
            ...
    }
    
    panic() does set oops_in_progress via bust_spinlocks(1), so in theory
    we should be able to re-enter serial console driver from panic():
    
            CPU0
            <NMI>
            uart_console_write()
            serial8250_console_write()              // if (oops_in_progress)
                                                    //    spin_trylock_irqsave()
            call_console_drivers()
            console_unlock()
            console_flush_on_panic()
            bust_spinlocks(1)                       // oops_in_progress++
            panic()
            <NMI/>
            spin_lock_irqsave(&port->lock, flags)   // spin_lock_irqsave()
            serial8250_console_write()
            call_console_drivers()
            console_unlock()
            printk()
            ...
    
    However, this does not happen and we deadlock in serial console on
    port->lock spinlock. And the problem is that console_flush_on_panic()
    called after bust_spinlocks(0):
    
    void panic(const char *fmt, ...)
    {
            bust_spinlocks(1);
            ...
            bust_spinlocks(0);
            console_flush_on_panic();
            ...
    }
    
    bust_spinlocks(0) decrements oops_in_progress, so oops_in_progress
    can go back to zero. Thus even re-entrant console drivers will simply
    spin on port->lock spinlock. Given that port->lock may already be
    locked either by a stopped CPU, or by the very same CPU we execute
    panic() on (for instance, NMI panic() on printing CPU) the system
    deadlocks and does not reboot.
    
    Fix this by removing bust_spinlocks(0), so oops_in_progress is always
    set in panic() now and, thus, re-entrant console drivers will trylock
    the port->lock instead of spinning on it forever, when we call them
    from console_flush_on_panic().
    
    Link: http://lkml.kernel.org/r/20181025101036.6823-1-sergey.senozhatsky@gmail.com
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Daniel Wang <wonderfly@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Alan Cox <gnomes@lxorguk.ukuu.org.uk>
    Cc: Jiri Slaby <jslaby@suse.com>
    Cc: Peter Feiner <pfeiner@google.com>
    Cc: linux-serial@vger.kernel.org
    Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Signed-off-by: Petr Mladek <pmladek@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0761921fa6cbe6859b7994eb77811f100adb9ffe
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 ff53cc3576d3d728dec87e866c3ae84e33ef07a8
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 cc70f14956fa0ea84ee1a3a5b79347730c6c2d08
Author: Cfir Cohen <cfir@google.com>
Date:   Tue Dec 18 08:18:41 2018 -0800

    KVM: Fix UAF in nested posted interrupt processing
    
    commit c2dd5146e9fe1f22c77c1b011adf84eea0245806 upstream.
    
    nested_get_vmcs12_pages() processes the posted_intr address in vmcs12. It
    caches the kmap()ed page object and pointer, however, it doesn't handle
    errors correctly: it's possible to cache a valid pointer, then release
    the page and later dereference the dangling pointer.
    
    I was able to reproduce with the following steps:
    
    1. Call vmlaunch with valid posted_intr_desc_addr but an invalid
    MSR_EFER. This causes nested_get_vmcs12_pages() to cache the kmap()ed
    pi_desc_page and pi_desc. Later the invalid EFER value fails
    check_vmentry_postreqs() which fails the first vmlaunch.
    
    2. Call vmlanuch with a valid EFER but an invalid posted_intr_desc_addr
    (I set it to 2G - 0x80). The second time we call nested_get_vmcs12_pages
    pi_desc_page is unmapped and released and pi_desc_page is set to NULL
    (the "shouldn't happen" clause). Due to the invalid
    posted_intr_desc_addr, kvm_vcpu_gpa_to_page() fails and
    nested_get_vmcs12_pages() returns. It doesn't return an error value so
    vmlaunch proceeds. Note that at this time we have a dangling pointer in
    vmx->nested.pi_desc and POSTED_INTR_DESC_ADDR in L0's vmcs.
    
    3. Issue an IPI in L2 guest code. This triggers a call to
    vmx_complete_nested_posted_interrupt() and pi_test_and_clear_on() which
    dereferences the dangling pointer.
    
    Vulnerable code requires nested and enable_apicv variables to be set to
    true. The host CPU must also support posted interrupts.
    
    Fixes: 5e2f30b756a37 "KVM: nVMX: get rid of nested_get_page()"
    Cc: stable@vger.kernel.org
    Reviewed-by: Andy Honig <ahonig@google.com>
    Signed-off-by: Cfir Cohen <cfir@google.com>
    Reviewed-by: Liran Alon <liran.alon@oracle.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df4ee073061999ebaed0d2ce0a6cd3380a2ed67f
Author: Eduardo Habkost <ehabkost@redhat.com>
Date:   Mon Dec 17 22:34:18 2018 -0200

    kvm: x86: Add AMD's EX_CFG to the list of ignored MSRs
    
    commit 0e1b869fff60c81b510c2d00602d778f8f59dd9a upstream.
    
    Some guests OSes (including Windows 10) write to MSR 0xc001102c
    on some cases (possibly while trying to apply a CPU errata).
    Make KVM ignore reads and writes to that MSR, so the guest won't
    crash.
    
    The MSR is documented as "Execution Unit Configuration (EX_CFG)",
    at AMD's "BIOS and Kernel Developer's Guide (BKDG) for AMD Family
    15h Models 00h-0Fh Processors".
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f8f9e280abcb7b2a933091b65ceb19549d85e3e
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Mon Dec 17 13:31:05 2018 +0100

    posix-timers: Fix division by zero bug
    
    commit 0e334db6bb4b1fd1e2d72c1f3d8f004313cd9f94 upstream.
    
    The signal delivery path of posix-timers can try to rearm the timer even if
    the interval is zero. That's handled for the common case (hrtimer) but not
    for alarm timers. In that case the forwarding function raises a division by
    zero exception.
    
    The handling for hrtimer based posix timers is wrong because it marks the
    timer as active despite the fact that it is stopped.
    
    Move the check from common_hrtimer_rearm() to posixtimer_rearm() to cure
    both issues.
    
    Reported-by: syzbot+9d38bedac9cc77b8ad5e@syzkaller.appspotmail.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: John Stultz <john.stultz@linaro.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: sboyd@kernel.org
    Cc: stable@vger.kernel.org
    Cc: syzkaller-bugs@googlegroups.com
    Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1812171328050.1880@nanos.tec.linutronix.de
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23572a68e828374d4076c296ced075340253b435
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Nov 28 17:57:55 2018 +0100

    gpiolib-acpi: Only defer request_irq for GpioInt ACPI event handlers
    
    commit e59f5e08ece1060073d92c66ded52e1f2c43b5bb upstream.
    
    Commit 78d3a92edbfb ("gpiolib-acpi: Register GpioInt ACPI event handlers
    from a late_initcall") deferred the entire acpi_gpiochip_request_interrupt
    call for each event resource.
    
    This means it also delays the gpiochip_request_own_desc(..., "ACPI:Event")
    call. This is a problem if some AML code reads the GPIO pin before we
    run the deferred acpi_gpiochip_request_interrupt, because in that case
    acpi_gpio_adr_space_handler() will already have called
    gpiochip_request_own_desc(..., "ACPI:OpRegion") causing the call from
    acpi_gpiochip_request_interrupt to fail with -EBUSY and we will fail to
    register an event handler.
    
    acpi_gpio_adr_space_handler is prepared for acpi_gpiochip_request_interrupt
    already having claimed the pin, but the other way around does not work.
    
    One example of a problem this causes, is the event handler for the OTG
    ID pin on a Prowise PT301 tablet not registering, keeping the port stuck
    in whatever mode it was in during boot and e.g. only allowing charging
    after a reboot.
    
    This commit fixes this by only deferring the request_irq call and the
    initial run of edge-triggered IRQs instead of deferring all of
    acpi_gpiochip_request_interrupt.
    
    Cc: stable@vger.kernel.org
    Fixes: 78d3a92edbfb ("gpiolib-acpi: Register GpioInt ACPI event ...")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07cfa7ac9e52d3250061e3cb91acfecb905afefb
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 4d7a081d0a35a2cd1908451edf66755914cc6ef1
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 b097c4436eefdb59902aa74818897bd23d6a0551
Author: Ulf Hansson <ulf.hansson@linaro.org>
Date:   Mon Dec 10 17:52:38 2018 +0100

    mmc: core: Use a minimum 1600ms timeout when enabling CACHE ctrl
    
    commit e3ae3401aa19432ee4943eb0bbc2ec704d07d793 upstream.
    
    Some eMMCs from Micron have been reported to need ~800 ms timeout, while
    enabling the CACHE ctrl after running sudden power failure tests. The
    needed timeout is greater than what the card specifies as its generic CMD6
    timeout, through the EXT_CSD register, hence the problem.
    
    Normally we would introduce a card quirk to extend the timeout for these
    specific Micron cards. However, due to the rather complicated debug process
    needed to find out the error, let's simply use a minimum timeout of 1600ms,
    the double of what has been reported, for all cards when enabling CACHE
    ctrl.
    
    Reported-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
    Reported-by: Andreas Dannenberg <dannenberg@ti.com>
    Reported-by: Faiz Abbas <faiz_abbas@ti.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

    mmc: core: Allow BKOPS and CACHE ctrl even if no HPI support
    
    commit ba9f39a785a9977e72233000711ef1eb48203551 upstream.
    
    In commit 5320226a0512 ("mmc: core: Disable HPI for certain Hynix eMMC
    cards"), then intent was to prevent HPI from being used for some eMMC
    cards, which didn't properly support it. However, that went too far, as
    even BKOPS and CACHE ctrl became prevented. Let's restore those parts and
    allow BKOPS and CACHE ctrl even if HPI isn't supported.
    
    Fixes: 5320226a0512 ("mmc: core: Disable HPI for certain Hynix eMMC cards")
    Cc: Pratibhasagar V <pratibha@codeaurora.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8af6fad484c24e9d5b6b8f32ab9cfb262dfcbe21
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 fe646761cb20a36ed395c323d47db5139db509a7
Author: Jens Axboe <axboe@kernel.dk>
Date:   Wed Dec 12 06:46:55 2018 -0700

    scsi: sd: use mempool for discard special page
    
    commit 61cce6f6eeced5ddd9cac55e807fe28b4f18c1ba upstream.
    
    When boxes are run near (or to) OOM, we have a problem with the discard
    page allocation in sd. If we fail allocating the special page, we return
    busy, and it'll get retried. But since ordering is honored for dispatch
    requests, we can keep retrying this same IO and failing. Behind that IO
    could be requests that want to free memory, but they never get the
    chance. This means you get repeated spews of traces like this:
    
    [1201401.625972] Call Trace:
    [1201401.631748]  dump_stack+0x4d/0x65
    [1201401.639445]  warn_alloc+0xec/0x190
    [1201401.647335]  __alloc_pages_slowpath+0xe84/0xf30
    [1201401.657722]  ? get_page_from_freelist+0x11b/0xb10
    [1201401.668475]  ? __alloc_pages_slowpath+0x2e/0xf30
    [1201401.679054]  __alloc_pages_nodemask+0x1f9/0x210
    [1201401.689424]  alloc_pages_current+0x8c/0x110
    [1201401.699025]  sd_setup_write_same16_cmnd+0x51/0x150
    [1201401.709987]  sd_init_command+0x49c/0xb70
    [1201401.719029]  scsi_setup_cmnd+0x9c/0x160
    [1201401.727877]  scsi_queue_rq+0x4d9/0x610
    [1201401.736535]  blk_mq_dispatch_rq_list+0x19a/0x360
    [1201401.747113]  blk_mq_sched_dispatch_requests+0xff/0x190
    [1201401.758844]  __blk_mq_run_hw_queue+0x95/0xa0
    [1201401.768653]  blk_mq_run_work_fn+0x2c/0x30
    [1201401.777886]  process_one_work+0x14b/0x400
    [1201401.787119]  worker_thread+0x4b/0x470
    [1201401.795586]  kthread+0x110/0x150
    [1201401.803089]  ? rescuer_thread+0x320/0x320
    [1201401.812322]  ? kthread_park+0x90/0x90
    [1201401.820787]  ? do_syscall_64+0x53/0x150
    [1201401.829635]  ret_from_fork+0x29/0x40
    
    Ensure that the discard page allocation has a mempool backing, so we
    know we can make progress.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61c1a4a5ba4c90e8a35fdfb75b815025a84cdf61
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 4363aa8fb114592e2cba5b748b82b993afd7e141
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 4497e8fa2361427fe3ee72de57541d8d677707a2
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 0b3b6c5ba96f5e4b8497a33db563d5738dfe8d55
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 ed101ab689be374d95c8edd517dec35941067596
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 4aa9cf83b766c2b0b31a360c5c93e1987c19e44c
Author: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date:   Mon Dec 17 14:37:40 2018 +0100

    USB: xhci: fix 'broken_suspend' placement in struct xchi_hcd
    
    commit 2419f30a4a4fcaa5f35111563b4c61f1b2b26841 upstream.
    
    As commented in the struct's definition there shouldn't be anything
    underneath its 'priv[0]' member as it would break some macros.
    
    The patch converts the broken_suspend into a bit-field and relocates it
    next to to the rest of bit-fields.
    
    Fixes: a7d57abcc8a5 ("xhci: workaround CSS timeout on AMD SNPS 3.0 xHC")
    Reported-by: Oliver Neukum  <oneukum@suse.com>
    Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ab5db613774c2c743d109eb63f71c5ee3b6a4ea
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 49be8dc589aee04c64d61e362c5029ab20fd6fd7
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>

commit 3845c73607ae8de8c7b60d701cdecdc5505c821d
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Sep 10 14:12:07 2018 +0300

    cifs: integer overflow in in SMB2_ioctl()
    
    commit 2d204ee9d671327915260071c19350d84344e096 upstream
    
    The "le32_to_cpu(rsp->OutputOffset) + *plen" addition can overflow and
    wrap around to a smaller value which looks like it would lead to an
    information leak.
    
    Fixes: 4a72dafa19ba ("SMB2 FSCTL and IOCTL worker function")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0d9b51366d2da5dc5537c1c6e856cf4c0d08de0e
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Wed Mar 14 10:22:04 2018 +0100

    perf record: Synthesize features before events in pipe mode
    
    [ Upstream commit a2015516c5c0be932a69e1d3405c2fb03b4eacf1 ]
    
    We need to synthesize events first, because some features works on top
    of them (on report side).
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Stephane Eranian <eranian@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20180314092205.23291-1-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 179c8da7f3acdd04f2c23cac81989f24609f281c
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Mon Jul 2 14:08:45 2018 -0700

    ib_srpt: Fix a use-after-free in __srpt_close_all_ch()
    
    commit 14d15c2b278011056482eb015dff89f9cbf2b841 upstream
    
    BUG: KASAN: use-after-free in srpt_set_enabled+0x1a9/0x1e0 [ib_srpt]
    Read of size 4 at addr ffff8801269d23f8 by task check/29726
    
    CPU: 4 PID: 29726 Comm: check Not tainted 4.18.0-rc2-dbg+ #4
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014
    Call Trace:
     dump_stack+0xa4/0xf5
     print_address_description+0x6f/0x270
     kasan_report+0x241/0x360
     __asan_load4+0x78/0x80
     srpt_set_enabled+0x1a9/0x1e0 [ib_srpt]
     srpt_tpg_enable_store+0xb8/0x120 [ib_srpt]
     configfs_write_file+0x14e/0x1d0 [configfs]
     __vfs_write+0xd2/0x3b0
     vfs_write+0x101/0x270
     ksys_write+0xab/0x120
     __x64_sys_write+0x43/0x50
     do_syscall_64+0x77/0x230
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x7f235cfe6154
    
    Fixes: aaf45bd83eba ("IB/srpt: Detect session shutdown reliably")
    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 56303ade45046b4470eaa47181d83e648d768b2d
Author: Richard Weinberger <richard@nod.at>
Date:   Mon Jun 11 23:41:09 2018 +0200

    ubifs: Fix directory size calculation for symlinks
    
    commit 00ee8b60102862f4daf0814d12a2ea2744fc0b9b upstream
    
    We have to account the name of the symlink and not the target length.
    
    Fixes: ca7f85be8d6c ("ubifs: Add support for encrypted symlinks")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2e5981029574928d073f381c2b446c6750d84bd1
Author: Daniel Mack <daniel@zonque.org>
Date:   Thu Oct 11 20:32:05 2018 +0200

    ASoC: sta32x: set ->component pointer in private struct
    
    commit 747df19747bc9752cd40b9cce761e17a033aa5c2 upstream
    
    The ESD watchdog code in sta32x_watchdog() dereferences the pointer
    which is never assigned.
    
    This is a regression from a1be4cead9b950 ("ASoC: sta32x: Convert to direct
    regmap API usage.") which went unnoticed since nobody seems to use that ESD
    workaround.
    
    Fixes: a1be4cead9b950 ("ASoC: sta32x: Convert to direct regmap API usage.")
    Signed-off-by: Daniel Mack <daniel@zonque.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07eae146f5b76da9d5bb41bc8825fe486bf0f05a
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Jul 3 13:34:22 2018 -0400

    block: fix infinite loop if the device loses discard capability
    
    [ Upstream commit b88aef36b87c9787a4db724923ec4f57dfd513f3 ]
    
    If __blkdev_issue_discard is in progress and a device mapper device is
    reloaded with a table that doesn't support discard,
    q->limits.max_discard_sectors is set to zero. This results in infinite
    loop in __blkdev_issue_discard.
    
    This patch checks if max_discard_sectors is zero and aborts with
    -EOPNOTSUPP.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Tested-by: Zdenek Kabelac <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1e9290ca9d6fa96b69c4d6125f87dc77793179e1
Author: Jens Axboe <axboe@kernel.dk>
Date:   Tue May 8 15:09:41 2018 -0600

    block: break discard submissions into the user defined size
    
    [ Upstream commit af097f5d199e2aa3ab3ef777f0716e487b8f7b08 ]
    
    Don't build discards bigger than what the user asked for, if the
    user decided to limit the size by writing to 'discard_max_bytes'.
    
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Omar Sandoval <osandov@fb.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>