commit 6ceccdf5ca9e8a41a581e059e9a98f17e14e99c4
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Sep 26 08:36:41 2018 +0200

    Linux 4.9.129

commit 16d550a772db7e1511ac76b999fa4f4a282875aa
Author: Benjamin Poirier <bpoirier@suse.com>
Date:   Tue Mar 6 10:55:53 2018 +0900

    e1000e: Fix link check race condition
    
    commit e2710dbf0dc1e37d85368e2404049dadda848d5a upstream.
    
    Alex reported the following race condition:
    
    /* link goes up... interrupt... schedule watchdog */
    \ e1000_watchdog_task
            \ e1000e_has_link
                    \ hw->mac.ops.check_for_link() === e1000e_check_for_copper_link
                            \ e1000e_phy_has_link_generic(..., &link)
                                    link = true
    
                                             /* link goes down... interrupt */
                                             \ e1000_msix_other
                                                     hw->mac.get_link_status = true
    
                            /* link is up */
                            mac->get_link_status = false
    
                    link_active = true
                    /* link_active is true, wrongly, and stays so because
                     * get_link_status is false */
    
    Avoid this problem by making sure that we don't set get_link_status = false
    after having checked the link.
    
    It seems this problem has been present since the introduction of e1000e.
    
    Link: https://lkml.org/lkml/2018/1/29/338
    Reported-by: Alexander Duyck <alexander.duyck@gmail.com>
    Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
    Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Cc: Yanhui He <yanhuih@vmware.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0e0b2cc8972f05d9a17b3f37bccafd0f11df355
Author: Benjamin Poirier <bpoirier@suse.com>
Date:   Tue Mar 6 10:55:52 2018 +0900

    Revert "e1000e: Separate signaling for link check/link up"
    
    commit 3016e0a0c91246e55418825ba9aae271be267522 upstream.
    
    This reverts commit 19110cfbb34d4af0cdfe14cd243f3b09dc95b013.
    This reverts commit 4110e02eb45ea447ec6f5459c9934de0a273fb91.
    This reverts commit d3604515c9eda464a92e8e67aae82dfe07fe3c98.
    
    Commit 19110cfbb34d ("e1000e: Separate signaling for link check/link up")
    changed what happens to the link status when there is an error which
    happens after "get_link_status = false" in the copper check_for_link
    callbacks. Previously, such an error would be ignored and the link
    considered up. After that commit, any error implies that the link is down.
    
    Revert commit 19110cfbb34d ("e1000e: Separate signaling for link check/link
    up") and its followups. After reverting, the race condition described in
    the log of commit 19110cfbb34d is reintroduced. It may still be triggered
    by LSC events but this should keep the link down in case the link is
    electrically unstable, as discussed. The race may no longer be
    triggered by RXO events because commit 4aea7a5c5e94 ("e1000e: Avoid
    receiver overrun interrupt bursts") restored reading icr in the Other
    handler.
    
    Link: https://lkml.org/lkml/2018/3/1/789
    Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
    Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Cc: Yanhui He <yanhuih@vmware.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f3fec813d11d53a32827a1cd1e7d9c9ebc2181e
Author: Benjamin Poirier <bpoirier@suse.com>
Date:   Thu Feb 8 15:47:14 2018 +0900

    e1000e: Avoid missed interrupts following ICR read
    
    commit 116f4a640b3197401bc93b8adc6c35040308ceff upstream.
    
    The 82574 specification update errata 12 states that interrupts may be
    missed if ICR is read while INT_ASSERTED is not set. Avoid that problem by
    setting all bits related to events that can trigger the Other interrupt in
    IMS.
    
    The Other interrupt is raised for such events regardless of whether or not
    they are set in IMS. However, only when they are set is the INT_ASSERTED
    bit also set in ICR.
    
    By doing this, we ensure that INT_ASSERTED is always set when we read ICR
    in e1000_msix_other() and steer clear of the errata. This also ensures that
    ICR will automatically be cleared on read, therefore we no longer need to
    clear bits explicitly.
    
    Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
    Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    [bwh: Backported to 4.9: adjust context]
    Cc: Yanhui He <yanhuih@vmware.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22a10b606f62e9c68f91dca378da2db6b9578dd1
Author: Benjamin Poirier <bpoirier@suse.com>
Date:   Thu Feb 8 15:47:13 2018 +0900

    e1000e: Fix queue interrupt re-raising in Other interrupt
    
    commit 361a954e6a7215de11a6179ad9bdc07d7e394b04 upstream.
    
    Restores the ICS write for Rx/Tx queue interrupts which was present before
    commit 16ecba59bc33 ("e1000e: Do not read ICR in Other interrupt", v4.5-rc1)
    but was not restored in commit 4aea7a5c5e94
    ("e1000e: Avoid receiver overrun interrupt bursts", v4.15-rc1).
    
    This re-raises the queue interrupts in case the txq or rxq bits were set in
    ICR and the Other interrupt handler read and cleared ICR before the queue
    interrupt was raised.
    
    Fixes: 4aea7a5c5e94 ("e1000e: Avoid receiver overrun interrupt bursts")
    Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
    Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Cc: Yanhui He <yanhuih@vmware.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dee927647b1764c81b2ca8eedf7d1e4405e31500
Author: Benjamin Poirier <bpoirier@suse.com>
Date:   Thu Feb 8 15:47:12 2018 +0900

    Partial revert "e1000e: Avoid receiver overrun interrupt bursts"
    
    commit 1f0ea19722ef9dfa229a9540f70b8d1c34a98a6a upstream.
    
    This partially reverts commit 4aea7a5c5e940c1723add439f4088844cd26196d.
    
    We keep the fix for the first part of the problem (1) described in the log
    of that commit, that is to read ICR in the other interrupt handler. We
    remove the fix for the second part of the problem (2), Other interrupt
    throttling.
    
    Bursts of "Other" interrupts may once again occur during rxo (receive
    overflow) traffic conditions. This is deemed acceptable in the interest of
    avoiding unforeseen fallout from changes that are not strictly necessary.
    As discussed, the e1000e driver should be in "maintenance mode".
    
    Link: https://www.spinics.net/lists/netdev/msg480675.html
    Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
    Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Cc: Yanhui He <yanhuih@vmware.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 265d94561cb822880e02d5057065f0840186bb7e
Author: Benjamin Poirier <bpoirier@suse.com>
Date:   Wed Jan 31 16:26:27 2018 +0900

    e1000e: Remove Other from EIAC
    
    commit 745d0bd3af99ccc8c5f5822f808cd133eadad6ac upstream.
    
    It was reported that emulated e1000e devices in vmware esxi 6.5 Build
    7526125 do not link up after commit 4aea7a5c5e94 ("e1000e: Avoid receiver
    overrun interrupt bursts", v4.15-rc1). Some tracing shows that after
    e1000e_trigger_lsc() is called, ICR reads out as 0x0 in e1000_msix_other()
    on emulated e1000e devices. In comparison, on real e1000e 82574 hardware,
    icr=0x80000004 (_INT_ASSERTED | _LSC) in the same situation.
    
    Some experimentation showed that this flaw in vmware e1000e emulation can
    be worked around by not setting Other in EIAC. This is how it was before
    16ecba59bc33 ("e1000e: Do not read ICR in Other interrupt", v4.5-rc1).
    
    Fixes: 4aea7a5c5e94 ("e1000e: Avoid receiver overrun interrupt bursts")
    Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    [bwh: Backported to 4.9: adjust context]
    Cc: Yanhui He <yanhuih@vmware.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd65d7bf59d966cdc6c56f141bf059678cec89e6
Author: Paul Burton <paul.burton@mips.com>
Date:   Thu Aug 30 11:01:21 2018 -0700

    MIPS: VDSO: Match data page cache colouring when D$ aliases
    
    commit 0f02cfbc3d9e413d450d8d0fd660077c23f67eff upstream.
    
    When a system suffers from dcache aliasing a user program may observe
    stale VDSO data from an aliased cache line. Notably this can break the
    expectation that clock_gettime(CLOCK_MONOTONIC, ...) is, as its name
    suggests, monotonic.
    
    In order to ensure that users observe updates to the VDSO data page as
    intended, align the user mappings of the VDSO data page such that their
    cache colouring matches that of the virtual address range which the
    kernel will use to update the data page - typically its unmapped address
    within kseg0.
    
    This ensures that we don't introduce aliasing cache lines for the VDSO
    data page, and therefore that userland will observe updates without
    requiring cache invalidation.
    
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Reported-by: Hauke Mehrtens <hauke@hauke-m.de>
    Reported-by: Rene Nielsen <rene.nielsen@microsemi.com>
    Reported-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Fixes: ebb5e78cc634 ("MIPS: Initial implementation of a VDSO")
    Patchwork: https://patchwork.linux-mips.org/patch/20344/
    Tested-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Tested-by: Hauke Mehrtens <hauke@hauke-m.de>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org # v4.4+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aad783193f92076d6733475cd4d7f6d0d48afc47
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Jul 11 15:29:31 2018 +0300

    mei: bus: type promotion bug in mei_nfc_if_version()
    
    commit b40b3e9358fbafff6a4ba0f4b9658f6617146f9c upstream.
    
    We accidentally removed the check for negative returns
    without considering the issue of type promotion.
    The "if_version_length" variable is type size_t so if __mei_cl_recv()
    returns a negative then "bytes_recv" is type promoted
    to a high positive value and treated as success.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 582ab27a063a ("mei: bus: fix received data size check in NFC fixup")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8c398a69458d4cea85ee73df2bdb6299d15f5d3
Author: Douglas Anderson <dianders@chromium.org>
Date:   Mon Jul 2 15:59:39 2018 -0700

    pinctrl: qcom: spmi-gpio: Fix pmic_gpio_config_get() to be compliant
    
    [ Upstream commit 1cf86bc21257a330e3af51f2a4e885f1a705f6a5 ]
    
    If you do this on an sdm845 board:
      grep "" /sys/kernel/debug/pinctrl/*spmi:pmic*/pinconf-groups
    
    ...it looks like nonsense.  For every pin you see listed:
      input bias disabled, input bias high impedance, input bias pull down, input bias pull up, ...
    
    That's because pmic_gpio_config_get() isn't complying with the rules
    that pinconf_generic_dump_one() expects.  Specifically for boolean
    parameters (anything with a "struct pin_config_item" where has_arg is
    false) the function expects that the function should return its value
    not through the "config" parameter but should return "0" if the value
    is set and "-EINVAL" if the value isn't set.
    
    Let's fix this.
    
    >From a quick sample of other pinctrl drivers, it appears to be
    tradition to also return 1 through the config parameter for these
    boolean parameters when they exist.  I'm not one to knock tradition,
    so I'll follow tradition and return 1 in these cases.  While I'm at
    it, I'll also continue searching for four leaf clovers, kocking on
    wood three times, and trying not to break mirrors.
    
    NOTE: This also fixes an apparent typo for reading
    PIN_CONFIG_BIAS_DISABLE where the old driver was accidentally
    using "=" instead of "==" and thus was setting some internal
    state when you tried to query PIN_CONFIG_BIAS_DISABLE.  Oops.
    
    Fixes: eadff3024472 ("pinctrl: Qualcomm SPMI PMIC GPIO pin controller driver")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c814276d1ef9b3fb44a48916f16664ab8c54e5f
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Jul 4 12:38:09 2018 +0300

    drm/panel: type promotion bug in s6e8aa0_read_mtp_id()
    
    [ Upstream commit cd0e0ca69109d025b1a1b6609f70682db62138b0 ]
    
    The ARRAY_SIZE() macro is type size_t.  If s6e8aa0_dcs_read() returns a
    negative error code, then "ret < ARRAY_SIZE(id)" is false because the
    negative error code is type promoted to a high positive value.
    
    Fixes: 02051ca06371 ("drm/panel: add S6E8AA0 driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180704093807.s3lqsb2v6dg2k43d@kili.mountain
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18e589f6a0591296a9483aa91187f2ccc4e0b616
Author: John Stultz <john.stultz@linaro.org>
Date:   Tue May 29 19:12:18 2018 -0700

    selftest: timers: Tweak raw_skew to SKIP when ADJ_OFFSET/other clock adjustments are in progress
    
    [ Upstream commit 1416270f4a1ae83ea84156ceba19a66a8f88be1f ]
    
    In the past we've warned when ADJ_OFFSET was in progress, usually
    caused by ntpd or some other time adjusting daemon running in non
    steady sate, which can cause the skew calculations to be
    incorrect.
    
    Thus, this patch checks to see if the clock was being adjusted
    when we fail so that we don't cause false negatives.
    
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Miroslav Lichvar <mlichvar@redhat.com>
    Cc: Richard Cochran <richardcochran@gmail.com>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Stephen Boyd <sboyd@kernel.org>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: linux-kselftest@vger.kernel.org
    Suggested-by: Miroslav Lichvar <mlichvar@redhat.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7b07e3d9855cb555aa5c8483a6197444d11dedb4
Author: Timo Wischer <twischer@de.adit-jv.com>
Date:   Tue Jul 10 17:28:45 2018 +0200

    ALSA: pcm: Fix snd_interval_refine first/last with open min/max
    
    [ Upstream commit ff2d6acdf6f13d9f8fdcd890844c6d7535ac1f10 ]
    
    Without this commit the following intervals [x y), (x y) were be
    replaced to (y-1 y) by snd_interval_refine_last(). This was also done
    if y-1 is part of the previous interval.
    With this changes it will be replaced with [y-1 y) in case of y-1 is
    part of the previous interval. A similar behavior will be used for
    snd_interval_refine_first().
    
    This commit adapts the changes for alsa-lib of commit
    9bb985c ("pcm: snd_interval_refine_first/last: exclude value only if
    also excluded before")
    
    Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e16e060a86f0c340346b8269c57faa069bfe545
Author: Zhouyang Jia <jiazhouyang09@gmail.com>
Date:   Tue Jun 12 12:40:03 2018 +0800

    rtc: bq4802: add error handling for devm_ioremap
    
    [ Upstream commit 7874b919866ba91bac253fa219d3d4c82bb944df ]
    
    When devm_ioremap fails, the lack of error-handling code may
    cause unexpected results.
    
    This patch adds error-handling code after calling devm_ioremap.
    
    Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4dfa5ee4defd6783f33fa69c02d7e346494ebe8e
Author: Wei Lu <wei.lu2@amd.com>
Date:   Wed Jul 11 22:32:47 2018 -0400

    drm/amdkfd: Fix error codes in kfd_get_process
    
    [ Upstream commit e47cb828eb3fca3e8999a0b9aa053dda18552071 ]
    
    Return ERR_PTR(-EINVAL) if kfd_get_process fails to find the process.
    This fixes kernel oopses when a child process calls KFD ioctls with
    a file descriptor inherited from the parent process.
    
    Signed-off-by: Wei Lu <wei.lu2@amd.com>
    Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
    Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
    Acked-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5cea0d30174384257379f92bc9813f7043bec7e4
Author: Peter Rosin <peda@axentia.se>
Date:   Wed Jun 20 07:17:56 2018 +0200

    input: rohm_bu21023: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
    
    [ Upstream commit 193c2a07cfaacb9249ab0e3d34bce32490879355 ]
    
    Locking the root adapter for __i2c_transfer will deadlock if the
    device sits behind a mux-locked I2C mux. Switch to the finer-grained
    i2c_lock_bus with the I2C_LOCK_SEGMENT flag. If the device does not
    sit behind a mux-locked mux, the two locking variants are equivalent.
    
    Signed-off-by: Peter Rosin <peda@axentia.se>
    Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57da414000905913c77a523013d28f32260c6b6c
Author: Peter Rosin <peda@axentia.se>
Date:   Wed Jun 20 07:18:02 2018 +0200

    mfd: 88pm860x-i2c: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
    
    [ Upstream commit 8c8f74f327a76604a499fad8c54c15e1c0ee8051 ]
    
    Locking the root adapter for __i2c_transfer will deadlock if the
    device sits behind a mux-locked I2C mux. Switch to the finer-grained
    i2c_lock_bus with the I2C_LOCK_SEGMENT flag. If the device does not
    sit behind a mux-locked mux, the two locking variants are equivalent.
    
    Signed-off-by: Peter Rosin <peda@axentia.se>
    Acked-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6dc47c5894c9f26014adc17f0b7ba998d3fc6499
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Mon Jul 9 21:47:27 2018 +0300

    gpiolib: Mark gpio_suffixes array with __maybe_unused
    
    [ Upstream commit b23ec59926faf05b0c43680d05671c484e810ac4 ]
    
    Since we put static variable to a header file it's copied to each module
    that includes the header. But not all of them are actually used it.
    
    Mark gpio_suffixes array with __maybe_unused to hide a compiler warning:
    
    In file included from
    drivers/gpio/gpiolib-legacy.c:6:0:
    drivers/gpio/gpiolib.h:95:27: warning: ‘gpio_suffixes’ defined but not used [-Wunused-const-variable=]
     static const char * const gpio_suffixes[] = { "gpios", "gpio" };
                               ^~~~~~~~~~~~~
    In file included from drivers/gpio/gpiolib-devprop.c:17:0:
    drivers/gpio/gpiolib.h:95:27: warning: ‘gpio_suffixes’ defined but not used [-Wunused-const-variable=]
     static const char * const gpio_suffixes[] = { "gpios", "gpio" };
                               ^~~~~~~~~~~~~
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9667a5eb5b1254d3c39052aff3459df3080f6cd3
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Wed Jul 11 13:19:38 2018 +0000

    gpio: pxa: Fix potential NULL dereference
    
    [ Upstream commit 9506755633d0b32ef76f67c345000178e9b0dfc4 ]
    
    platform_get_resource() may fail and return NULL, so we should
    better check it's return value to avoid a NULL pointer dereference
    a bit later in the code.
    
    This is detected by Coccinelle semantic patch.
    
    @@
    expression pdev, res, n, t, e, e1, e2;
    @@
    
    res = platform_get_resource(pdev, t, n);
    + if (!res)
    +   return -EINVAL;
    ... when != res == NULL
    e = devm_ioremap(e1, res->start, e2);
    
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb543ccfb0bf456f1507725b56960e51890beaa1
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Wed Jul 11 13:40:35 2018 -0600

    coresight: tpiu: Fix disabling timeouts
    
    [ Upstream commit ccff2dfaceaca4517432f5c149594215fe9098cc ]
    
    Probing the TPIU driver under UBSan triggers an out-of-bounds shift
    warning in coresight_timeout():
    
    ...
    [    5.677530] UBSAN: Undefined behaviour in drivers/hwtracing/coresight/coresight.c:929:16
    [    5.685542] shift exponent 64 is too large for 64-bit type 'long unsigned int'
    ...
    
    On closer inspection things are exponentially out of whack because we're
    passing a bitmask where a bit number should be. Amusingly, it seems that
    both calls will find their expected values by sheer luck and appear to
    succeed: 1 << FFCR_FON_MAN ends up at bit 64 which whilst undefined
    evaluates as zero in practice, while 1 << FFSR_FT_STOPPED finds bit 2
    (TCPresent) which apparently is usually tied high.
    
    Following the examples of other drivers, define separate FOO and FOO_BIT
    macros for masks vs. indices, and put things right.
    
    CC: Robert Walker <robert.walker@arm.com>
    CC: Mike Leach <mike.leach@linaro.org>
    CC: Mathieu Poirier <mathieu.poirier@linaro.org>
    Fixes: 11595db8e17f ("coresight: Fix disabling of CoreSight TPIU")
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2887d528b19cf61df68f2bb529f1d4217d354988
Author: Suzuki K Poulose <suzuki.poulose@arm.com>
Date:   Wed Jul 11 13:40:28 2018 -0600

    coresight: Handle errors in finding input/output ports
    
    [ Upstream commit fe470f5f7f684ed15bc49b6183a64237547910ff ]
    
    If we fail to find the input / output port for a LINK component
    while enabling a path, we should fail gracefully rather than
    assuming port "0".
    
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96fda059e606a6eb455810c39154c39d50d2a12d
Author: Julia Lawall <Julia.Lawall@lip6.fr>
Date:   Thu Jul 12 22:29:55 2018 +0100

    parport: sunbpp: fix error return code
    
    [ Upstream commit faa1a47388b33623e4d504c23569188907b039a0 ]
    
    Return an error code on failure.  Change leading spaces to tab on the
    first if.
    
    Problem found using Coccinelle.
    
    Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c940c2c450e5b4e928ed31c5d08dbc2e355b8fd3
Author: Thierry Reding <treding@nvidia.com>
Date:   Wed May 30 16:06:25 2018 +0200

    drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping
    
    [ Upstream commit b59fb482b52269977ee5de205308e5b236a03917 ]
    
    Depending on the kernel configuration, early ARM architecture setup code
    may have attached the GPU to a DMA/IOMMU mapping that transparently uses
    the IOMMU to back the DMA API. Tegra requires special handling for IOMMU
    backed buffers (a special bit in the GPU's MMU page tables indicates the
    memory path to take: via the SMMU or directly to the memory controller).
    Transparently backing DMA memory with an IOMMU prevents Nouveau from
    properly handling such memory accesses and causes memory access faults.
    
    As a side-note: buffers other than those allocated in instance memory
    don't need to be physically contiguous from the GPU's perspective since
    the GPU can map them into contiguous buffers using its own MMU. Mapping
    these buffers through the IOMMU is unnecessary and will even lead to
    performance degradation because of the additional translation. One
    exception to this are compressible buffers which need large pages. In
    order to enable these large pages, multiple small pages will have to be
    combined into one large (I/O virtually contiguous) mapping via the
    IOMMU. However, that is a topic outside the scope of this fix and isn't
    currently supported. An implementation will want to explicitly create
    these large pages in the Nouveau driver, so detaching from a DMA/IOMMU
    mapping would still be required.
    
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Acked-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Robin Murphy <robin.murphy@arm.com>
    Tested-by: Nicolas Chauvet <kwizart@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cca66510abdeca27e78016af71c0a48d156a05b
Author: Stefan Agner <stefan@agner.ch>
Date:   Thu Jul 5 14:18:19 2018 +0200

    mmc: sdhci: do not try to use 3.3V signaling if not supported
    
    [ Upstream commit 1b5190c2e74c47ebe4bcecf7a072358ad9f1feaa ]
    
    For eMMC devices it is valid to only support 1.8V signaling. When
    vqmmc is set to a fixed 1.8V regulator the stack tries to set 3.3V
    initially and prints the following warning:
       mmc1: Switching to 3.3V signalling voltage failed
    
    Clear the MMC_SIGNAL_VOLTAGE_330 flag in case 3.3V is signaling is
    not available. This prevents the stack from even trying to use
    3.3V signaling and avoids the above warning.
    
    Signed-off-by: Stefan Agner <stefan@agner.ch>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 330b72fc294d0f03ca70a01fda9890b0c9539db9
Author: Stefan Agner <stefan@agner.ch>
Date:   Thu Jul 12 09:39:02 2018 +0200

    mmc: tegra: prevent HS200 on Tegra 3
    
    [ Upstream commit 127407e36f4fe3a1d5e8b9998b479956ce83a7dc ]
    
    The stack assumes that SDHC controller which support SD3.0 (SDR104) do
    support HS200. This is not the case for Tegra 3, which does support SD
    3.0
    but only supports eMMC spec 4.41.
    
    Use SDHCI_QUIRK2_BROKEN_HS200 to indicate that the controller does not
    support HS200.
    
    Note that commit 156e14b126ff ("mmc: sdhci: fix caps2 for HS200") added
    the tie between SD3.0 (SDR104) and HS200. I don't think that this is
    necessarly true. It is fully legitimate to support SD3.0 and not support
    HS200. The quirk naming suggests something is broken in the controller,
    but this is not the case: The controller simply does not support HS200.
    
    Fixes: 7ad2ed1dfcbe ("mmc: tegra: enable UHS-I modes")
    Signed-off-by: Stefan Agner <stefan@agner.ch>
    Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57726dfe96e8ed236def7e126fc76ba1c9836e2c
Author: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Date:   Thu May 3 18:29:36 2018 +0200

    gpu: ipu-v3: csi: pass back mbus_code_to_bus_cfg error codes
    
    [ Upstream commit d36d0e6309dd8137cf438cbb680e72eb63c81425 ]
    
    mbus_code_to_bus_cfg() can fail on unknown mbus codes; pass back the
    error to the caller.
    
    Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
    Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
    [p.zabel@pengutronix.de - renamed rc to ret for consistency]
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99bc75c304216415723f8682d04386df77d1aa46
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Thu Jul 12 11:28:23 2018 +0200

    ARM: hisi: check of_iomap and fix missing of_node_put
    
    [ Upstream commit 81646a3d39ef14749301374a3a0b8311384cd412 ]
    
    of_find_compatible_node() returns a device node with refcount incremented
    and thus needs an explicit of_node_put(). Further relying on an unchecked
    of_iomap() which can return NULL is problematic here, after all ctrl_base
    is critical enough for hix5hd2_set_cpu() to call BUG() if not available
    so a check seems mandated here.
    
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    0002 Fixes: commit 06cc5c1d4d73 ("ARM: hisi: enable hix5hd2 SoC")
    Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit edce8b372f7a56ef61d225044ad45a09af8b05a3
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Thu Jul 12 11:28:22 2018 +0200

    ARM: hisi: fix error handling and missing of_node_put
    
    [ Upstream commit 9f30b5ae0585ca5234fe979294b8f897299dec99 ]
    
    of_iomap() can return NULL which seems critical here and thus should be
    explicitly flagged so that the cause of system halting can be understood.
    As of_find_compatible_node() is returning a device node with refcount
    incremented it must be explicitly decremented here.
    
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Fixes: commit 7fda91e73155 ("ARM: hisi: enable smp for HiP01")
    Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 38ee03553f50a84b28def4c20d69beec2a7a7949
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Thu Jul 12 11:28:24 2018 +0200

    ARM: hisi: handle of_iomap and fix missing of_node_put
    
    [ Upstream commit d396cb185c0337aae5664b250cdd9a73f6eb1503 ]
    
    Relying on an unchecked of_iomap() which can return NULL is problematic
    here, an explicit check seems mandatory. Also the call to
    of_find_compatible_node() returns a device node with refcount incremented
    therefor an explicit of_node_put() is needed here.
    
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Fixes: commit 22bae4290457 ("ARM: hi3xxx: add hotplug support")
    Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2a380bcf446d005954a4f7a5095f2831bfa0b74
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Mon Jul 16 23:25:07 2018 +0800

    efi/esrt: Only call efi_mem_reserve() for boot services memory
    
    [ Upstream commit 61f0d55569463a1af897117ff47d202b0ccb2e24 ]
    
    The following commit:
    
      7e1550b8f208 ("efi: Drop type and attribute checks in efi_mem_desc_lookup()")
    
    refactored the implementation of efi_mem_desc_lookup() so that the type
    check is moved to the callers, one of which is the x86 version of
    efi_arch_mem_reserve(), where we added a modified check that only takes
    EFI_BOOT_SERVICES_DATA regions into account.
    
    This is reasonable, since it is the only memory type that requires this,
    but doing so uncovered some unexpected behavior in the ESRT code, which
    permits the ESRT table to reside in other types of memory than what the
    UEFI spec mandates (i.e., EFI_BOOT_SERVICES_DATA), and unconditionally
    calls efi_mem_reserve() on the region in question. This may result in
    errors such as
    
      esrt: Reserving ESRT space from 0x000000009c810318 to 0x000000009c810350.
      efi: Failed to lookup EFI memory descriptor for 0x000000009c810318
    
    when the ESRT table is not in EFI_BOOT_SERVICES_DATA memory, but we try
    to reserve it nonetheless.
    
    So make the call to efi_mem_reserve() conditional on the memory type.
    
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Jones <pjones@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e790d7b09662e2f53db17d6f8e2a3db31d6ec2a
Author: Mike Christie <mchristi@redhat.com>
Date:   Sun Jul 15 18:16:17 2018 -0500

    configfs: fix registered group removal
    
    [ Upstream commit cc57c07343bd071cdf1915a91a24ab7d40c9b590 ]
    
    This patch fixes a bug where configfs_register_group had added
    a group in a tree, and userspace has done a rmdir on a dir somewhere
    above that group and we hit a kernel crash. The problem is configfs_rmdir
    will detach everything under it and unlink groups on the default_groups
    list. It will not unlink groups added with configfs_register_group so when
    configfs_unregister_group is called to drop its references to the group/items
    we crash when we try to access the freed dentrys.
    
    The patch just adds a check for if a rmdir has been done above
    us and if so just does the unlink part of unregistration.
    
    Sorry if you are getting this multiple times. I thouhgt I sent
    this to some of you and lkml, but I do not see it.
    
    Signed-off-by: Mike Christie <mchristi@redhat.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Joel Becker <jlbec@evilplan.org>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bffe67b9fe9d887420ebd08822c898730b13ba95
Author: Paul Burton <paul.burton@mips.com>
Date:   Mon Jul 16 08:26:36 2018 -0700

    MIPS: loongson64: cs5536: Fix PCI_OHCI_INT_REG reads
    
    [ Upstream commit cd87668d601f622e0ebcfea4f78d116d5f572f4d ]
    
    The PCI_OHCI_INT_REG case in pci_ohci_read_reg() contains the following
    if statement:
    
      if ((lo & 0x00000f00) == CS5536_USB_INTR)
    
    CS5536_USB_INTR expands to the constant 11, which gives us the following
    condition which can never evaluate true:
    
      if ((lo & 0xf00) == 11)
    
    At least when using GCC 8.1.0 this falls foul of the tautoligcal-compare
    warning, and since the code is built with the -Werror flag the build
    fails.
    
    Fix this by shifting lo right by 8 bits in order to match the
    corresponding PCI_OHCI_INT_REG case in pci_ohci_write_reg().
    
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/19861/
    Cc: Huacai Chen <chenhc@lemote.com>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eddbab1384841db30b270bc791ad623ad0cd5a38
Author: Matthew Garrett <mjg59@google.com>
Date:   Fri Jun 8 14:57:42 2018 -0700

    evm: Don't deadlock if a crypto algorithm is unavailable
    
    [ Upstream commit e2861fa71641c6414831d628a1f4f793b6562580 ]
    
    When EVM attempts to appraise a file signed with a crypto algorithm the
    kernel doesn't have support for, it will cause the kernel to trigger a
    module load. If the EVM policy includes appraisal of kernel modules this
    will in turn call back into EVM - since EVM is holding a lock until the
    crypto initialisation is complete, this triggers a deadlock. Add a
    CRYPTO_NOLOAD flag and skip module loading if it's set, and add that flag
    in the EVM case in order to fail gracefully with an error message
    instead of deadlocking.
    
    Signed-off-by: Matthew Garrett <mjg59@google.com>
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23bd97eaebc55d5eef9d3cd41e3bd6189a0e9dd6
Author: Jann Horn <jannh@google.com>
Date:   Sat Jul 7 05:37:22 2018 +0200

    mtdchar: fix overflows in adjustment of `count`
    
    [ Upstream commit 6c6bc9ea84d0008024606bf5ba10519e20d851bf ]
    
    The first checks in mtdchar_read() and mtdchar_write() attempt to limit
    `count` such that `*ppos + count <= mtd->size`. However, they ignore the
    possibility of `*ppos > mtd->size`, allowing the calculation of `count` to
    wrap around. `mtdchar_lseek()` prevents seeking beyond mtd->size, but the
    pread/pwrite syscalls bypass this.
    
    I haven't found any codepath on which this actually causes dangerous
    behavior, but it seems like a sensible change anyway.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fe4e6d65f97cc428748fa1f75b747d51d676bf9
Author: Ronny Chevalier <ronny.chevalier@hp.com>
Date:   Wed Jul 11 14:39:37 2018 +0200

    audit: fix use-after-free in audit_add_watch
    
    [ Upstream commit baa2a4fdd525c8c4b0f704d20457195b29437839 ]
    
    audit_add_watch stores locally krule->watch without taking a reference
    on watch. Then, it calls audit_add_to_parent, and uses the watch stored
    locally.
    
    Unfortunately, it is possible that audit_add_to_parent updates
    krule->watch.
    When it happens, it also drops a reference of watch which
    could free the watch.
    
    How to reproduce (with KASAN enabled):
    
        auditctl -w /etc/passwd -F success=0 -k test_passwd
        auditctl -w /etc/passwd -F success=1 -k test_passwd2
    
    The second call to auditctl triggers the use-after-free, because
    audit_to_parent updates krule->watch to use a previous existing watch
    and drops the reference to the newly created watch.
    
    To fix the issue, we grab a reference of watch and we release it at the
    end of the function.
    
    Signed-off-by: Ronny Chevalier <ronny.chevalier@hp.com>
    Reviewed-by: Richard Guy Briggs <rgb@redhat.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0c7634f7370cca15535fde950c9baf6512373ca
Author: Maciej W. Rozycki <macro@mips.com>
Date:   Tue May 15 23:32:45 2018 +0100

    binfmt_elf: Respect error return from `regset->active'
    
    [ Upstream commit 2f819db565e82e5f73cd42b39925098986693378 ]
    
    The regset API documented in <linux/regset.h> defines -ENODEV as the
    result of the `->active' handler to be used where the feature requested
    is not available on the hardware found.  However code handling core file
    note generation in `fill_thread_core_info' interpretes any non-zero
    result from the `->active' handler as the regset requested being active.
    Consequently processing continues (and hopefully gracefully fails later
    on) rather than being abandoned right away for the regset requested.
    
    Fix the problem then by making the code proceed only if a positive
    result is returned from the `->active' handler.
    
    Signed-off-by: Maciej W. Rozycki <macro@mips.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Fixes: 4206d3aa1978 ("elf core dump: notes user_regset")
    Patchwork: https://patchwork.linux-mips.org/patch/19332/
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-fsdevel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af412413c1d00bd10740007c2a499207f4343ba3
Author: Trond Myklebust <trondmy@gmail.com>
Date:   Wed Sep 5 14:07:14 2018 -0400

    NFSv4.1 fix infinite loop on I/O.
    
    commit 994b15b983a72e1148a173b61e5b279219bb45ae upstream.
    
    The previous fix broke recovery of delegated stateids because it assumes
    that if we did not mark the delegation as suspect, then the delegation has
    effectively been revoked, and so it removes that delegation irrespectively
    of whether or not it is valid and still in use. While this is "mostly
    harmless" for ordinary I/O, we've seen pNFS fail with LAYOUTGET spinning
    in an infinite loop while complaining that we're using an invalid stateid
    (in this case the all-zero stateid).
    
    What we rather want to do here is ensure that the delegation is always
    correctly marked as needing testing when that is the case. So we want
    to close the loophole offered by nfs4_schedule_stateid_recovery(),
    which marks the state as needing to be reclaimed, but not the
    delegation that may be backing it.
    
    Fixes: 0e3d3e5df07dc ("NFSv4.1 fix infinite loop on IO BAD_STATEID error")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Cc: stable@vger.kernel.org # v4.11+
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a64fbecec98a4aa9d53eac307e057c630e702ad8
Author: Yabin Cui <yabinc@google.com>
Date:   Thu Aug 23 15:59:35 2018 -0700

    perf/core: Force USER_DS when recording user stack data
    
    commit 02e184476eff848273826c1d6617bb37e5bcc7ad upstream.
    
    Perf can record user stack data in response to a synchronous request, such
    as a tracepoint firing. If this happens under set_fs(KERNEL_DS), then we
    end up reading user stack data using __copy_from_user_inatomic() under
    set_fs(KERNEL_DS). I think this conflicts with the intention of using
    set_fs(KERNEL_DS). And it is explicitly forbidden by hardware on ARM64
    when both CONFIG_ARM64_UAO and CONFIG_ARM64_PAN are used.
    
    So fix this by forcing USER_DS when recording user stack data.
    
    Signed-off-by: Yabin Cui <yabinc@google.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: <stable@vger.kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: 88b0193d9418 ("perf/callchain: Force USER_DS when invoking perf_callchain_user()")
    Link: http://lkml.kernel.org/r/20180823225935.27035-1-yabinc@google.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe6198c278540430238955f8e9de0e71bfce712d
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Sep 6 12:48:22 2018 +0300

    CIFS: fix wrapping bugs in num_entries()
    
    commit 56446f218af1133c802dad8e9e116f07f381846c upstream.
    
    The problem is that "entryptr + next_offset" and "entryptr + len + size"
    can wrap.  I ended up changing the type of "entryptr" because it makes
    the math easier when we don't have to do so much casting.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca453b2406a6d64b97b165b19eaf6848d2516153
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Sep 6 12:47:51 2018 +0300

    cifs: prevent integer overflow in nxt_dir_entry()
    
    commit 8ad8aa353524d89fa2e09522f3078166ff78ec42 upstream.
    
    The "old_entry + le32_to_cpu(pDirInfo->NextEntryOffset)" can wrap
    around so I have added a check for integer overflow.
    
    Reported-by: Dr Silvio Cesare of InfoSect <silvio.cesare@gmail.com>
    Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c8adbfa328384986452fd64e1ad93b24729d418
Author: Oliver Neukum <oneukum@suse.com>
Date:   Wed Sep 5 17:56:46 2018 +0200

    Revert "cdc-acm: implement put_char() and flush_chars()"
    
    commit df3aa13c7bbb307e172c37f193f9a7aa058d4739 upstream.
    
    This reverts commit a81cf9799ad7299b03a4dff020d9685f9ac5f3e0.
    
    The patch causes a regression, which I cannot find the reason for.
    So let's revert for now, as a revert hurts only performance.
    
    Original report:
    I was trying to resolve the problem with Oliver but we don't get any conclusion
    for 5 months, so I am now sending this to mail list and cdc_acm authors.
    
    I am using simple request-response protocol to obtain the boiller parameters
    in constant intervals.
    
    A simple one transaction is:
    1. opening the /dev/ttyACM0
    2. sending the following 10-bytes request to the device:
       unsigned char req[] = {0x02, 0xfe, 0x01, 0x05, 0x08, 0x02, 0x01, 0x69, 0xab, 0x03};
    3. reading response (frame of 74 bytes length).
    4. closing the descriptor
    I am doing this transaction with 5 seconds intervals.
    
    Before the bad commit everything was working correctly: I've got a requests and
    a responses in a timely manner.
    
    After the bad commit more time I am using the kernel module, more problems I have.
    The graph [2] is showing the problem.
    
    As you can see after module load all seems fine but after about 30 minutes I've got
    a plenty of EAGAINs when doing read()'s and trying to read back the data.
    
    When I rmmod and insmod the cdc_acm module again, then the situation is starting
    over again: running ok shortly after load, and more time it is running, more EAGAINs
    I have when calling read().
    
    As a bonus I can see the problem on the device itself:
    The device is configured as you can see here on this screen [3].
    It has two transmision LEDs: TX and RX. Blink duration is set for 100ms.
    This is a recording before the bad commit when all is working fine: [4]
    And this is with the bad commit: [5]
    As you can see the TX led is blinking wrongly long (indicating transmission?)
    and I have problems doing read() calls (EAGAIN).
    
    Reported-by: Mariusz Bialonczyk <manio@skyboo.net>
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Fixes: a81cf9799ad7 ("cdc-acm: implement put_char() and flush_chars()")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7bf6ac324290ccd193e7d9afdef0f9fa228de48
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Sat Sep 1 16:12:10 2018 +0800

    usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()
    
    commit 6e22e3af7bb3a7b9dc53cb4687659f6e63fca427 upstream.
    
    wdm_in_callback() is a completion handler function for the USB driver.
    So it should not sleep. But it calls service_outstanding_interrupt(),
    which calls usb_submit_urb() with GFP_KERNEL.
    
    To fix this bug, GFP_KERNEL is replaced with GFP_ATOMIC.
    
    This bug is found by my static analysis tool DSAC.
    
    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 71d2d4790cbd4052d5f7f504d347088d9c242a4b
Author: Ben Hutchings <ben.hutchings@codethink.co.uk>
Date:   Wed Aug 15 21:44:25 2018 +0100

    USB: yurex: Fix buffer over-read in yurex_write()
    
    commit 7e10f14ebface44a48275c8d6dc1caae3668d5a9 upstream.
    
    If the written data starts with a digit, yurex_write() tries to parse
    it as an integer using simple_strtoull().  This requires a null-
    terminator, and currently there's no guarantee that there is one.
    
    (The sample program at
    https://github.com/NeoCat/YUREX-driver-for-Linux/blob/master/sample/yurex_clock.pl
    writes an integer without a null terminator.  It seems like it must
    have worked by chance!)
    
    Always add a null byte after the written data.  Enlarge the buffer
    to allow for this.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd3005db7518d05e2e7b55fbcbe5ce6966db5ace
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Aug 21 11:59:53 2018 +0200

    USB: serial: ti_usb_3410_5052: fix array underflow in completion handler
    
    commit 5dfdd24eb3d39d815bc952ae98128e967c9bba49 upstream.
    
    Similarly to a recently reported bug in io_ti, a malicious USB device
    could set port_number to a negative value and we would underflow the
    port array in the interrupt completion handler.
    
    As these devices only have one or two ports, fix this by making sure we
    only consider the seventh bit when determining the port number (and
    ignore bits 0xb0 which are typically set to 0x30).
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ccd62789ef0ec1bd8efd52d9581b84331f6004d
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Sat Sep 1 16:25:08 2018 +0800

    usb: misc: uss720: Fix two sleep-in-atomic-context bugs
    
    commit bc8acc214d3f1cafebcbcd101a695bbac716595d upstream.
    
    async_complete() in uss720.c is a completion handler function for the
    USB driver. So it should not sleep, but it is can sleep according to the
    function call paths (from bottom to top) in Linux-4.16.
    
    [FUNC] set_1284_register(GFP_KERNEL)
    drivers/usb/misc/uss720.c, 372:
      set_1284_register in parport_uss720_frob_control
    drivers/parport/ieee1284.c, 560:
      [FUNC_PTR]parport_uss720_frob_control in parport_ieee1284_ack_data_avail
    drivers/parport/ieee1284.c, 577:
      parport_ieee1284_ack_data_avail in parport_ieee1284_interrupt
    ./include/linux/parport.h, 474:
      parport_ieee1284_interrupt in parport_generic_irq
    drivers/usb/misc/uss720.c, 116:
      parport_generic_irq in async_complete
    
    [FUNC] get_1284_register(GFP_KERNEL)
    drivers/usb/misc/uss720.c, 382:
      get_1284_register in parport_uss720_read_status
    drivers/parport/ieee1284.c, 555:
      [FUNC_PTR]parport_uss720_read_status in parport_ieee1284_ack_data_avail
    drivers/parport/ieee1284.c, 577:
      parport_ieee1284_ack_data_avail in parport_ieee1284_interrupt
    ./include/linux/parport.h, 474:
      parport_ieee1284_interrupt in parport_generic_irq
    drivers/usb/misc/uss720.c, 116:
      parport_generic_irq in async_complete
    
    Note that [FUNC_PTR] means a function pointer call is used.
    
    To fix these bugs, GFP_KERNEL is replaced with GFP_ATOMIC.
    
    These bugs are found by my static analysis tool DSAC.
    
    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 b1507f458d22fe86334ebc53b8f26de74598c37a
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Aug 21 11:59:52 2018 +0200

    USB: serial: io_ti: fix array underflow in completion handler
    
    commit 691a03cfe8ca483f9c48153b869d354e4ae3abef upstream.
    
    As reported by Dan Carpenter, a malicious USB device could set
    port_number to a negative value and we would underflow the port array in
    the interrupt completion handler.
    
    As these devices only have one or two ports, fix this by making sure we
    only consider the seventh bit when determining the port number (and
    ignore bits 0xb0 which are typically set to 0x30).
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4236e40a9d4facd4b3e6c67ccc1e486d6254cf50
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Aug 8 11:20:39 2018 -0400

    USB: net2280: Fix erroneous synchronization change
    
    commit dec3c23c9aa1815f07d98ae0375b4cbc10971e13 upstream.
    
    Commit f16443a034c7 ("USB: gadgetfs, dummy-hcd, net2280: fix locking
    for callbacks") was based on a serious misunderstanding.  It
    introduced regressions into both the dummy-hcd and net2280 drivers.
    
    The problem in dummy-hcd was fixed by commit 7dbd8f4cabd9 ("USB:
    dummy-hcd: Fix erroneous synchronization change"), but the problem in
    net2280 remains.  Namely: the ->disconnect(), ->suspend(), ->resume(),
    and ->reset() callbacks must be invoked without the private lock held;
    otherwise a deadlock will occur when the callback routine tries to
    interact with the UDC driver.
    
    This patch largely is a reversion of the relevant parts of
    f16443a034c7.  It also drops the private lock around the calls to
    ->suspend() and ->resume() (something the earlier patch forgot to do).
    This is safe from races with device interrupts because it occurs
    within the interrupt handler.
    
    Finally, the patch changes where the ->disconnect() callback is
    invoked when net2280_pullup() turns the pullup off.  Rather than
    making the callback from within stop_activity() at a time when dropping
    the private lock could be unsafe, the callback is moved to a point
    after the lock has already been dropped.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Fixes: f16443a034c7 ("USB: gadgetfs, dummy-hcd, net2280: fix locking for callbacks")
    Reported-by: D. Ziesche <dziesche@zes.com>
    Tested-by: D. Ziesche <dziesche@zes.com>
    CC: <stable@vger.kernel.org>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 63af1f400f4dd74cd39c84a40239aec5f9127f10
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Fri Aug 3 12:12:46 2018 +0900

    usb: gadget: udc: renesas_usb3: fix maxpacket size of ep0
    
    commit dfe1a51d2a36647f74cbad478801efa7cf394376 upstream.
    
    This patch fixes an issue that maxpacket size of ep0 is incorrect
    for SuperSpeed. Otherwise, CDC NCM class with SuperSpeed doesn't
    work correctly on this driver because its control read data size
    is more than 64 bytes.
    
    Reported-by: Junki Kato <junki.kato.xk@renesas.com>
    Fixes: 746bfe63bba3 ("usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller")
    Cc: <stable@vger.kernel.org> # v4.5+
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Tested-by: Junki Kato <junki.kato.xk@renesas.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 09ab91a521dbf9c5ff05c0549483630855893cad
Author: Maxence Duprès <xpros64@hotmail.fr>
Date:   Wed Aug 8 23:56:33 2018 +0000

    USB: add quirk for WORLDE Controller KS49 or Prodipe MIDI 49C USB controller
    
    commit 9b83a1c301ad6d24988a128c69b42cbaaf537d82 upstream.
    
    WORLDE Controller KS49 or Prodipe MIDI 49C USB controller
    cause a -EPROTO error, a communication restart and loop again.
    
    This issue has already been fixed for KS25.
    https://lore.kernel.org/patchwork/patch/753077/
    
    I just add device 201 for KS49 in quirks.c to get it works.
    
    Signed-off-by: Laurent Roux <xpros64@hotmail.fr>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 734893b83e300968aa9ba4519a2ac64e60f0d3ec
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Sat Sep 1 17:23:47 2018 +0800

    usb: host: u132-hcd: Fix a sleep-in-atomic-context bug in u132_get_frame()
    
    commit 6d4f268fa132742fe96dad22307c68d237356d88 upstream.
    
    i_usX2Y_subs_startup in usbusx2yaudio.c is a completion handler function
    for the USB driver. So it should not sleep, but it is can sleep
    according to the function call paths (from bottom to top) in Linux-4.16.
    
    [FUNC] msleep
    drivers/usb/host/u132-hcd.c, 2558:
            msleep in u132_get_frame
    drivers/usb/core/hcd.c, 2231:
            [FUNC_PTR]u132_get_frame in usb_hcd_get_frame_number
    drivers/usb/core/usb.c, 822:
            usb_hcd_get_frame_number in usb_get_current_frame_number
    sound/usb/usx2y/usbusx2yaudio.c, 303:
            usb_get_current_frame_number in i_usX2Y_urb_complete
    sound/usb/usx2y/usbusx2yaudio.c, 366:
            i_usX2Y_urb_complete in i_usX2Y_subs_startup
    
    Note that [FUNC_PTR] means a function pointer call is used.
    
    To fix this bug, msleep() is replaced with mdelay().
    
    This bug is found by my static analysis tool DSAC.
    
    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 c531c70d9e05166d1f683eefb57918be4cd7e596
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Mon Sep 3 15:44:16 2018 +0300

    usb: Avoid use-after-free by flushing endpoints early in usb_set_interface()
    
    commit f9a5b4f58b280c1d26255376713c132f93837621 upstream.
    
    The steps taken by usb core to set a new interface is very different from
    what is done on the xHC host side.
    
    xHC hardware will do everything in one go. One command is used to set up
    new endpoints, free old endpoints, check bandwidth, and run the new
    endpoints.
    
    All this is done by xHC when usb core asks the hcd to check for
    available bandwidth. At this point usb core has not yet flushed the old
    endpoints, which will cause use-after-free issues in xhci driver as
    queued URBs are cancelled on a re-allocated endpoint.
    
    To resolve this add a call to usb_disable_interface() which will flush
    the endpoints before calling usb_hcd_alloc_bandwidth()
    
    Additional checks in xhci driver will also be implemented to gracefully
    handle stale URB cancel on freed and re-allocated endpoints
    
    Cc: <stable@vger.kernel.org>
    Reported-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cdddc62b2f0f64f8c60a9bbb673452cd3bd4e62e
Author: Oliver Neukum <oneukum@suse.com>
Date:   Thu Aug 9 16:03:37 2018 +0200

    usb: uas: add support for more quirk flags
    
    commit 42d1c6d4a06a77b3ab206a919b9050c3080f3a71 upstream.
    
    The hope that UAS devices would be less broken than old style storage
    devices has turned out to be unfounded. Make UAS support more of the
    quirk flags of the old driver.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1a18f6e206971bea60f6ffb3ddabd58c2175ef7
Author: Tim Anderson <tsa@biglakesoftware.com>
Date:   Thu Aug 9 14:55:34 2018 -0700

    USB: Add quirk to support DJI CineSSD
    
    commit f45681f9becaa65111ed0a691ccf080a0cd5feb8 upstream.
    
    This device does not correctly handle the LPM operations.
    
    Also, the device cannot handle ATA pass-through commands
    and locks up when attempted while running in super speed.
    
    This patch adds the equivalent quirk logic as found in uas.
    
    Signed-off-by: Tim Anderson <tsa@biglakesoftware.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0737cf682a34599cb395090138864cfaccad9a42
Author: Alexander Usyskin <alexander.usyskin@intel.com>
Date:   Mon Aug 6 17:47:33 2018 +0300

    mei: ignore not found client in the enumeration
    
    commit 8d2d8935d30cc2acc57a3196dc10dfa8d5cbcdab upstream.
    
    Some of the ME clients are available only for BIOS operation and are
    removed during hand off to an OS. However the removal is not instant.
    A client may be visible on the client list when the mei driver requests
    for enumeration, while the subsequent request for properties will be
    answered with client not found error value. The default behavior
    for an error is to perform client reset while this error is harmless and
    the link reset should be prevented. This issue started to be visible due to
    suspend/resume timing changes. Currently reported only on the Haswell
    based system.
    
    Fixes:
    [33.564957] mei_me 0000:00:16.0: hbm: properties response: wrong status = 1 CLIENT_NOT_FOUND
    [33.564978] mei_me 0000:00:16.0: mei_irq_read_handler ret = -71.
    [33.565270] mei_me 0000:00:16.0: unexpected reset: dev_state = INIT_CLIENTS fw status = 1E000255 60002306 00000200 00004401 00000000 00000010
    
    Cc: <stable@vger.kernel.org>
    Reported-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 286a01c5d42899b3e46b1cfc16652b1cafbde193
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Sep 4 17:35:16 2018 +0300

    usb: Don't die twice if PCI xhci host is not responding in resume
    
    commit f3dc41c5d22b2ca14a0802a65d8cdc33a3882d4e upstream.
    
    usb_hc_died() should only be called once, and with the primary HCD
    as parameter. It will mark both primary and secondary hcd's dead.
    
    Remove the extra call to usb_cd_died with the shared hcd as parameter.
    
    Fixes: ff9d78b36f76 ("USB: Set usb_hcd->state and flags for shared roothubs")
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Cc: stable <stable@vger.kernel.org>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76b61ead8f4d913cc0493db624f3ac3ca8986a71
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Wed Aug 15 10:50:41 2018 -0500

    misc: hmc6352: fix potential Spectre v1
    
    commit de916736aaaadddbd6061472969f667b14204aa9 upstream.
    
    val 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/misc/hmc6352.c:54 compass_store() warn: potential spectre issue
    'map' [r]
    
    Fix this by sanitizing val before using it to index 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].
    
    [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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2516ead0aaf8145c155ff7d19c32038b8de099d8
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Fri Aug 10 23:06:07 2018 +0000

    Tools: hv: Fix a bug in the key delete code
    
    commit 86503bd35dec0ce363e9fdbf5299927422ed3899 upstream.
    
    Fix a bug in the key delete code - the num_records range
    from 0 to num_records-1.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reported-by: David Binderman <dcb314@hotmail.com>
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Michael Kelley <mikelley@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 590872d2010931b745101e287eb2b1507e1a44ef
Author: Andreas Kemnade <andreas@kemnade.info>
Date:   Sun Sep 2 09:30:58 2018 +0200

    mmc: omap_hsmmc: fix wakeirq handling on removal
    
    commit 3c398f3c3bef21961eaaeb93227fa66d440dc83d upstream.
    
    after unbinding mmc I get things like this:
    [  185.294067] mmc1: card 0001 removed
    [  185.305206] omap_hsmmc 480b4000.mmc: wake IRQ with no resume: -13
    
    The wakeirq stays in /proc-interrupts
    
    rebinding shows this:
    [  289.795959] genirq: Flags mismatch irq 112. 0000200a (480b4000.mmc:wakeup) vs. 0000200a (480b4000.mmc:wakeup)
    [  289.808959] omap_hsmmc 480b4000.mmc: Unable to request wake IRQ
    [  289.815338] omap_hsmmc 480b4000.mmc: no SDIO IRQ support, falling back to polling
    
    That bug seems to be introduced by switching from devm_request_irq()
    to generic wakeirq handling.
    
    So let us cleanup at removal.
    
    Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
    Fixes: 5b83b2234be6 ("mmc: omap_hsmmc: Change wake-up interrupt to use generic wakeirq")
    Cc: stable@vger.kernel.org # v4.2+
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 542d6faada88f271de907f8b6f103a2cc3d9fba1
Author: Aaron Knister <aaron.s.knister@nasa.gov>
Date:   Fri Aug 24 08:42:46 2018 -0400

    IB/ipoib: Avoid a race condition between start_xmit and cm_rep_handler
    
    commit 816e846c2eb9129a3e0afa5f920c8bbc71efecaa upstream.
    
    Inside of start_xmit() the call to check if the connection is up and the
    queueing of the packets for later transmission is not atomic which leaves
    a window where cm_rep_handler can run, set the connection up, dequeue
    pending packets and leave the subsequently queued packets by start_xmit()
    sitting on neigh->queue until they're dropped when the connection is torn
    down. This only applies to connected mode. These dropped packets can
    really upset TCP, for example, and cause multi-minute delays in
    transmission for open connections.
    
    Here's the code in start_xmit where we check to see if the connection is
    up:
    
           if (ipoib_cm_get(neigh)) {
                   if (ipoib_cm_up(neigh)) {
                           ipoib_cm_send(dev, skb, ipoib_cm_get(neigh));
                           goto unref;
                   }
           }
    
    The race occurs if cm_rep_handler execution occurs after the above
    connection check (specifically if it gets to the point where it acquires
    priv->lock to dequeue pending skb's) but before the below code snippet in
    start_xmit where packets are queued.
    
           if (skb_queue_len(&neigh->queue) < IPOIB_MAX_PATH_REC_QUEUE) {
                   push_pseudo_header(skb, phdr->hwaddr);
                   spin_lock_irqsave(&priv->lock, flags);
                   __skb_queue_tail(&neigh->queue, skb);
                   spin_unlock_irqrestore(&priv->lock, flags);
           } else {
                   ++dev->stats.tx_dropped;
                   dev_kfree_skb_any(skb);
           }
    
    The patch acquires the netif tx lock in cm_rep_handler for the section
    where it sets the connection up and dequeues and retransmits deferred
    skb's.
    
    Fixes: 839fcaba355a ("IPoIB: Connected mode experimental support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Aaron Knister <aaron.s.knister@nasa.gov>
    Tested-by: Ira Weiny <ira.weiny@intel.com>
    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03ae5ff3460b4240cff9af8083aafba0380f5971
Author: Juergen Gross <jgross@suse.com>
Date:   Fri Sep 7 14:21:30 2018 +0200

    xen/netfront: fix waiting for xenbus state change
    
    commit 8edfe2e992b75aee3da9316e9697c531194c2f53 upstream.
    
    Commit 822fb18a82aba ("xen-netfront: wait xenbus state change when load
    module manually") added a new wait queue to wait on for a state change
    when the module is loaded manually. Unfortunately there is no wakeup
    anywhere to stop that waiting.
    
    Instead of introducing a new wait queue rename the existing
    module_unload_q to module_wq and use it for both purposes (loading and
    unloading).
    
    As any state change of the backend might be intended to stop waiting
    do the wake_up_all() in any case when netback_changed() is called.
    
    Fixes: 822fb18a82aba ("xen-netfront: wait xenbus state change when load module manually")
    Cc: <stable@vger.kernel.org> #4.18
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7026e2457c5b0c0e8a81e65a8209b8420a437b4d
Author: Bin Yang <bin.yang@intel.com>
Date:   Wed Sep 12 03:36:34 2018 +0000

    pstore: Fix incorrect persistent ram buffer mapping
    
    commit 831b624df1b420c8f9281ed1307a8db23afb72df upstream.
    
    persistent_ram_vmap() returns the page start vaddr.
    persistent_ram_iomap() supports non-page-aligned mapping.
    
    persistent_ram_buffer_map() always adds offset-in-page to the vaddr
    returned from these two functions, which causes incorrect mapping of
    non-page-aligned persistent ram buffer.
    
    By default ftrace_size is 4096 and max_ftrace_cnt is nr_cpu_ids. Without
    this patch, the zone_sz in ramoops_init_przs() is 4096/nr_cpu_ids which
    might not be page aligned. If the offset-in-page > 2048, the vaddr will be
    in next page. If the next page is not mapped, it will cause kernel panic:
    
    [    0.074231] BUG: unable to handle kernel paging request at ffffa19e0081b000
    ...
    [    0.075000] RIP: 0010:persistent_ram_new+0x1f8/0x39f
    ...
    [    0.075000] Call Trace:
    [    0.075000]  ramoops_init_przs.part.10.constprop.15+0x105/0x260
    [    0.075000]  ramoops_probe+0x232/0x3a0
    [    0.075000]  platform_drv_probe+0x3e/0xa0
    [    0.075000]  driver_probe_device+0x2cd/0x400
    [    0.075000]  __driver_attach+0xe4/0x110
    [    0.075000]  ? driver_probe_device+0x400/0x400
    [    0.075000]  bus_for_each_dev+0x70/0xa0
    [    0.075000]  driver_attach+0x1e/0x20
    [    0.075000]  bus_add_driver+0x159/0x230
    [    0.075000]  ? do_early_param+0x95/0x95
    [    0.075000]  driver_register+0x70/0xc0
    [    0.075000]  ? init_pstore_fs+0x4d/0x4d
    [    0.075000]  __platform_driver_register+0x36/0x40
    [    0.075000]  ramoops_init+0x12f/0x131
    [    0.075000]  do_one_initcall+0x4d/0x12c
    [    0.075000]  ? do_early_param+0x95/0x95
    [    0.075000]  kernel_init_freeable+0x19b/0x222
    [    0.075000]  ? rest_init+0xbb/0xbb
    [    0.075000]  kernel_init+0xe/0xfc
    [    0.075000]  ret_from_fork+0x3a/0x50
    
    Signed-off-by: Bin Yang <bin.yang@intel.com>
    [kees: add comments describing the mapping differences, updated commit log]
    Fixes: 24c3d2f342ed ("staging: android: persistent_ram: Make it possible to use memory outside of bootmem")
    Cc: stable@vger.kernel.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 422013e4ee41a87a8e4047f70d48f6bda2f52418
Author: Parav Pandit <parav@mellanox.com>
Date:   Thu Aug 30 08:35:19 2018 +0300

    RDMA/cma: Protect cma dev list with lock
    
    commit 954a8e3aea87e896e320cf648c1a5bbe47de443e upstream.
    
    When AF_IB addresses are used during rdma_resolve_addr() a lock is not
    held. A cma device can get removed while list traversal is in progress
    which may lead to crash. ie
    
            CPU0                                     CPU1
            ====                                     ====
    rdma_resolve_addr()
     cma_resolve_ib_dev()
      list_for_each()                         cma_remove_one()
        cur_dev->device                        mutex_lock(&lock)
                                                list_del();
                                               mutex_unlock(&lock);
                                               cma_process_remove();
    
    
    Therefore, hold a lock while traversing the list which avoids such
    situation.
    
    Cc: <stable@vger.kernel.org> # 3.10
    Fixes: f17df3b0dede ("RDMA/cma: Add support for AF_IB to rdma_resolve_addr()")
    Signed-off-by: Parav Pandit <parav@mellanox.com>
    Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d47d0301ef568b8a41b38605a5654e9f867b1b4
Author: Xiao Liang <xiliang@redhat.com>
Date:   Tue Aug 14 23:21:28 2018 +0800

    xen-netfront: fix warn message as irq device name has '/'
    
    [ Upstream commit 21f2706b20100bb3db378461ab9b8e2035309b5b ]
    
    There is a call trace generated after commit 2d408c0d4574b01b9ed45e02516888bf925e11a9(
    xen-netfront: fix queue name setting). There is no 'device/vif/xx-q0-tx' file found
    under /proc/irq/xx/.
    
    This patch only picks up device type and id as its name.
    
    With the patch, now /proc/interrupts looks like below and the warning message gone:
     70:         21          0          0          0   xen-dyn    -event     vif0-q0-tx
     71:         15          0          0          0   xen-dyn    -event     vif0-q0-rx
     72:         14          0          0          0   xen-dyn    -event     vif0-q1-tx
     73:         33          0          0          0   xen-dyn    -event     vif0-q1-rx
     74:         12          0          0          0   xen-dyn    -event     vif0-q2-tx
     75:         24          0          0          0   xen-dyn    -event     vif0-q2-rx
     76:         19          0          0          0   xen-dyn    -event     vif0-q3-tx
     77:         21          0          0          0   xen-dyn    -event     vif0-q3-rx
    
    Below is call trace information without this patch:
    
    name 'device/vif/0-q0-tx'
    WARNING: CPU: 2 PID: 37 at fs/proc/generic.c:174 __xlate_proc_name+0x85/0xa0
    RIP: 0010:__xlate_proc_name+0x85/0xa0
    RSP: 0018:ffffb85c40473c18 EFLAGS: 00010286
    RAX: 0000000000000000 RBX: 0000000000000006 RCX: 0000000000000006
    RDX: 0000000000000007 RSI: 0000000000000096 RDI: ffff984c7f516930
    RBP: ffffb85c40473cb8 R08: 000000000000002c R09: 0000000000000229
    R10: 0000000000000000 R11: 0000000000000001 R12: ffffb85c40473c98
    R13: ffffb85c40473cb8 R14: ffffb85c40473c50 R15: 0000000000000000
    FS:  0000000000000000(0000) GS:ffff984c7f500000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f69b6899038 CR3: 000000001c20a006 CR4: 00000000001606e0
    Call Trace:
    __proc_create+0x45/0x230
    ? snprintf+0x49/0x60
    proc_mkdir_data+0x35/0x90
    register_handler_proc+0xef/0x110
    ? proc_register+0xfc/0x110
    ? proc_create_data+0x70/0xb0
    __setup_irq+0x39b/0x660
    ? request_threaded_irq+0xad/0x160
    request_threaded_irq+0xf5/0x160
    ? xennet_tx_buf_gc+0x1d0/0x1d0 [xen_netfront]
    bind_evtchn_to_irqhandler+0x3d/0x70
    ? xenbus_alloc_evtchn+0x41/0xa0
    netback_changed+0xa46/0xcda [xen_netfront]
    ? find_watch+0x40/0x40
    xenwatch_thread+0xc5/0x160
    ? finish_wait+0x80/0x80
    kthread+0x112/0x130
    ? kthread_create_worker_on_cpu+0x70/0x70
    ret_from_fork+0x35/0x40
    Code: 81 5c 00 48 85 c0 75 cc 5b 49 89 2e 31 c0 5d 4d 89 3c 24 41 5c 41 5d 41 5e 41 5f c3 4c 89 ee 48 c7 c7 40 4f 0e b4 e8 65 ea d8 ff <0f> 0b b8 fe ff ff ff 5b 5d 41 5c 41 5d 41 5e 41 5f c3 66 0f 1f
    ---[ end trace 650e5561b0caab3a ]---
    
    Signed-off-by: Xiao Liang <xiliang@redhat.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd758513e8d65abf3332ae959a14629edcef9f1d
Author: Michael Müller <michael@fds-team.de>
Date:   Sun Jul 15 00:27:06 2018 +0200

    crypto: sharah - Unregister correct algorithms for SAHARA 3
    
    [ Upstream commit 0e7d4d932ffc23f75efb31a8c2ac2396c1b81c55 ]
    
    This patch fixes two typos related to unregistering algorithms supported by
    SAHARAH 3. In sahara_register_algs the wrong algorithms are unregistered
    in case of an error. In sahara_unregister_algs the wrong array is used to
    determine the iteration count.
    
    Signed-off-by: Michael Müller <michael@fds-team.de>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c8706ef5033de7120bc37695d6cd5e3dde98113
Author: Hanna Hawa <hannah@marvell.com>
Date:   Tue Jul 17 13:30:00 2018 +0300

    dmaengine: mv_xor_v2: kill the tasklets upon exit
    
    [ Upstream commit 8bbafed8dd5cfa81071b50ead5cb60367fdef3a9 ]
    
    The mv_xor_v2 driver uses a tasklet, initialized during the probe()
    routine. However, it forgets to cleanup the tasklet using
    tasklet_kill() function during the remove() routine, which this patch
    fixes. This prevents the tasklet from potentially running after the
    module has been removed.
    
    Fixes: 19a340b1a820 ("dmaengine: mv_xor_v2: new driver")
    
    Signed-off-by: Hanna Hawa <hannah@marvell.com>
    Reviewed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6f55802bac406cd1894351ac8b13aa5d5459da6
Author: Pingfan Liu <kernelfans@gmail.com>
Date:   Thu Jul 19 13:14:58 2018 +0800

    drivers/base: stop new probing during shutdown
    
    [ Upstream commit 3297c8fc65af5d40501ea7cddff1b195cae57e4e ]
    
    There is a race window in device_shutdown(), which may cause
    -1. parent device shut down before child or
    -2. no shutdown on a new probing device.
    
    For 1st, taking the following scenario:
             device_shutdown                        new plugin device
      list_del_init(parent_dev);
      spin_unlock(list_lock);
                                                      device_add(child)
                                                      probe child
      shutdown parent_dev
           --> now child is on the tail of devices_kset
    
    For 2nd, taking the following scenario:
             device_shutdown                        new plugin device
                                                      device_add(dev)
      device_lock(dev);
      ...
      device_unlock(dev);
                                                      probe dev
           --> now, the new occurred dev has no opportunity to shutdown
    
    To fix this race issue, just prevent the new probing request. With this
    logic, device_shutdown() is more similar to dpm_prepare().
    
    Signed-off-by: Pingfan Liu <kernelfans@gmail.com>
    Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a10ce961bb34a0a42e60534479d8a79fc46d927
Author: Christoffer Dall <christoffer.dall@arm.com>
Date:   Tue Jul 3 22:54:14 2018 +0200

    KVM: arm/arm64: Fix vgic init race
    
    [ Upstream commit 1d47191de7e15900f8fbfe7cccd7c6e1c2d7c31a ]
    
    The vgic_init function can race with kvm_arch_vcpu_create() which does
    not hold kvm_lock() and we therefore have no synchronization primitives
    to ensure we're doing the right thing.
    
    As the user is trying to initialize or run the VM while at the same time
    creating more VCPUs, we just have to refuse to initialize the VGIC in
    this case rather than silently failing with a broken VCPU.
    
    Reviewed-by: Eric Auger <eric.auger@redhat.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f51c345732ef8e3983b64aaf65b833e14b233ba7
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Jul 6 20:53:09 2018 -0700

    platform/x86: toshiba_acpi: Fix defined but not used build warnings
    
    [ Upstream commit c2e2a618eb7104e18fdcf739d4d911563812a81c ]
    
    Fix a build warning in toshiba_acpi.c when CONFIG_PROC_FS is not enabled
    by marking the unused function as __maybe_unused.
    
    ../drivers/platform/x86/toshiba_acpi.c:1685:12: warning: 'version_proc_show' defined but not used [-Wunused-function]
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Azael Avalos <coproscefalo@gmail.com>
    Cc: platform-driver-x86@vger.kernel.org
    Cc: Andy Shevchenko <andy@infradead.org>
    Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3638df9649bd2d01a63da125db925d743a7ccef
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Thu Jul 19 12:43:49 2018 +0200

    s390/qeth: reset layer2 attribute on layer switch
    
    [ Upstream commit 70551dc46ffa3555a0b5f3545b0cd87ab67fd002 ]
    
    After the subdriver's remove() routine has completed, the card's layer
    mode is undetermined again. Reflect this in the layer2 field.
    
    If qeth_dev_layer2_store() hits an error after remove() was called, the
    card _always_ requires a setup(), even if the previous layer mode is
    requested again.
    But qeth_dev_layer2_store() bails out early if the requested layer mode
    still matches the current one. So unless we reset the layer2 field,
    re-probing the card back to its previous mode is currently not possible.
    
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 09d5c14156791b4433c8663fe1e42888f3ecdeba
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Thu Jul 19 12:43:48 2018 +0200

    s390/qeth: fix race in used-buffer accounting
    
    [ Upstream commit a702349a4099cd5a7bab0904689d8e0bf8dcd622 ]
    
    By updating q->used_buffers only _after_ do_QDIO() has completed, there
    is a potential race against the buffer's TX completion. In the unlikely
    case that the TX completion path wins, qeth_qdio_output_handler() would
    decrement the counter before qeth_flush_buffers() even incremented it.
    
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ededee86c683b0a520e6b26bf8c433c05a77a191
Author: Bhushan Shah <bshah@kde.org>
Date:   Mon Jul 9 14:46:28 2018 +0530

    ARM: dts: qcom: msm8974-hammerhead: increase load on l20 for sdhci
    
    [ Upstream commit 03864e57770a9541e7ff3990bacf2d9a2fffcd5d ]
    
    The kernel would not boot on the hammerhead hardware due to the
    following error:
    
    mmc0: Timeout waiting for hardware interrupt.
    mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
    mmc0: sdhci: Sys addr:  0x00000200 | Version:  0x00003802
    mmc0: sdhci: Blk size:  0x00000200 | Blk cnt:  0x00000200
    mmc0: sdhci: Argument:  0x00000000 | Trn mode: 0x00000023
    mmc0: sdhci: Present:   0x03e80000 | Host ctl: 0x00000034
    mmc0: sdhci: Power:     0x00000001 | Blk gap:  0x00000000
    mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000007
    mmc0: sdhci: Timeout:   0x0000000e | Int stat: 0x00000000
    mmc0: sdhci: Int enab:  0x02ff900b | Sig enab: 0x02ff100b
    mmc0: sdhci: AC12 err:  0x00000000 | Slot int: 0x00000000
    mmc0: sdhci: Caps:      0x642dc8b2 | Caps_1:   0x00008007
    mmc0: sdhci: Cmd:       0x00000c1b | Max curr: 0x00000000
    mmc0: sdhci: Resp[0]:   0x00000c00 | Resp[1]:  0x00000000
    mmc0: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000000
    mmc0: sdhci: Host ctl2: 0x00000008
    mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x70040220
    mmc0: sdhci: ============================================
    mmc0: Card stuck in wrong state! mmcblk0 card_busy_detect status: 0xe00
    mmc0: cache flush error -110
    mmc0: Reset 0x1 never completed.
    
    This patch increases the load on l20 to 0.2 amps for the sdhci
    and allows the device to boot normally.
    
    Signed-off-by: Bhushan Shah <bshah@kde.org>
    Signed-off-by: Brian Masney <masneyb@onstation.org>
    Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Tested-by: Brian Masney <masneyb@onstation.org>
    Signed-off-by: Andy Gross <andy.gross@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 68bfa6eb2fb6f67ea7b349b282ce52ffdb831b3a
Author: Loic Poulain <loic.poulain@linaro.org>
Date:   Wed Jul 11 14:18:23 2018 +0200

    arm64: dts: qcom: db410c: Fix Bluetooth LED trigger
    
    [ Upstream commit e53db018315b7660bb7000a29e79faff2496c2c2 ]
    
    Current LED trigger, 'bt', is not known/used by any existing driver.
    Fix this by renaming it to 'bluetooth-power' trigger which is
    controlled by the Bluetooth subsystem.
    
    Fixes: 9943230c8860 ("arm64: dts: qcom: Add apq8016-sbc board LED's related device nodes")
    Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
    Signed-off-by: Andy Gross <andy.gross@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 21fa748862123528c12acc29c495066d0f635d8f
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Fri Jul 20 18:33:59 2018 +0200

    xen-netfront: fix queue name setting
    
    [ Upstream commit 2d408c0d4574b01b9ed45e02516888bf925e11a9 ]
    
    Commit f599c64fdf7d ("xen-netfront: Fix race between device setup and
    open") changed the initialization order: xennet_create_queues() now
    happens before we do register_netdev() so using netdev->name in
    xennet_init_queue() is incorrect, we end up with the following in
    /proc/interrupts:
    
     60:        139          0   xen-dyn    -event     eth%d-q0-tx
     61:        265          0   xen-dyn    -event     eth%d-q0-rx
     62:        234          0   xen-dyn    -event     eth%d-q1-tx
     63:          1          0   xen-dyn    -event     eth%d-q1-rx
    
    and this looks ugly. Actually, using early netdev name (even when it's
    already set) is also not ideal: nowadays we tend to rename eth devices
    and queue name may end up not corresponding to the netdev name.
    
    Use nodename from xenbus device for queue naming: this can't change in VM's
    lifetime. Now /proc/interrupts looks like
    
     62:        202          0   xen-dyn    -event     device/vif/0-q0-tx
     63:        317          0   xen-dyn    -event     device/vif/0-q0-rx
     64:        262          0   xen-dyn    -event     device/vif/0-q1-tx
     65:         17          0   xen-dyn    -event     device/vif/0-q1-rx
    
    Fixes: f599c64fdf7d ("xen-netfront: Fix race between device setup and open")
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e824a3c7ede194620bc23ba458f01b561e5bd00
Author: Jakub Kicinski <jakub.kicinski@netronome.com>
Date:   Fri Jul 20 21:14:39 2018 -0700

    nfp: avoid buffer leak when FW communication fails
    
    [ Upstream commit 07300f774fec9519663a597987a4083225588be4 ]
    
    After device is stopped we reset the rings by moving all free buffers
    to positions [0, cnt - 2], and clear the position cnt - 1 in the ring.
    We then proceed to clear the read/write pointers.  This means that if
    we try to reset the ring again the code will assume that the next to
    fill buffer is at position 0 and swap it with cnt - 1.  Since we
    previously cleared position cnt - 1 it will lead to leaking the first
    buffer and leaving ring in a bad state.
    
    This scenario can only happen if FW communication fails, in which case
    the ring will never be used again, so the fact it's in a bad state will
    not be noticed.  Buffer leak is the only problem.  Don't try to move
    buffers in the ring if the read/write pointers indicate the ring was
    never used or have already been reset.
    
    nfp_net_clear_config_and_disable() is now fully idempotent.
    
    Found by code inspection, FW communication failures are very rare,
    and reconfiguring a live device is not common either, so it's unlikely
    anyone has ever noticed the leak.
    
    Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be2338f3a57f004a9b33ac6c23ab062061d37b7d
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Mon Jul 23 10:57:30 2018 +0900

    efi/arm: preserve early mapping of UEFI memory map longer for BGRT
    
    [ Upstream commit 3ea86495aef2f6de26b7cb1599ba350dd6a0c521 ]
    
    The BGRT code validates the contents of the table against the UEFI
    memory map, and so it expects it to be mapped when the code runs.
    
    On ARM, this is currently not the case, since we tear down the early
    mapping after efi_init() completes, and only create the permanent
    mapping in arm_enable_runtime_services(), which executes as an early
    initcall, but still leaves a window where the UEFI memory map is not
    mapped.
    
    So move the call to efi_memmap_unmap() from efi_init() to
    arm_enable_runtime_services().
    
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    [will: fold in EFI_MEMMAP attribute check from Ard]
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f42caeadf02ca374182849614614321bb7b62586
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Mon Jul 23 22:12:33 2018 +0800

    wan/fsl_ucc_hdlc: use IS_ERR_VALUE() to check return value of qe_muram_alloc
    
    [ Upstream commit fd800f646402c0f85547166b59ca065175928b7b ]
    
    qe_muram_alloc return a unsigned long integer,which should not
    compared with zero. check it using IS_ERR_VALUE() to fix this.
    
    Fixes: c19b6d246a35 ("drivers/net: support hdlc function for QE-UCC")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a64fa2731c6012410de4c7921a77741f8ea78bdc
Author: Piotr Sawicki <p.sawicki2@partner.samsung.com>
Date:   Thu Jul 19 11:42:58 2018 +0200

    Smack: Fix handling of IPv4 traffic received by PF_INET6 sockets
    
    [ Upstream commit 129a99890936766f4b69b9da7ed88366313a9210 ]
    
    A socket which has sk_family set to PF_INET6 is able to receive not
    only IPv6 but also IPv4 traffic (IPv4-mapped IPv6 addresses).
    
    Prior to this patch, the smk_skb_to_addr_ipv6() could have been
    called for socket buffers containing IPv4 packets, in result such
    traffic was allowed.
    
    Signed-off-by: Piotr Sawicki <p.sawicki2@partner.samsung.com>
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03758ba70b1727b0480d680fe06be6b78831361a
Author: Manikanta Pubbisetty <mpubbise@codeaurora.org>
Date:   Tue Jul 10 16:48:27 2018 +0530

    mac80211: restrict delayed tailroom needed decrement
    
    [ Upstream commit 133bf90dbb8b873286f8ec2e81ba26e863114b8c ]
    
    As explained in ieee80211_delayed_tailroom_dec(), during roam,
    keys of the old AP will be destroyed and new keys will be
    installed. Deletion of the old key causes
    crypto_tx_tailroom_needed_cnt to go from 1 to 0 and the new key
    installation causes a transition from 0 to 1.
    
    Whenever crypto_tx_tailroom_needed_cnt transitions from 0 to 1,
    we invoke synchronize_net(); the reason for doing this is to avoid
    a race in the TX path as explained in increment_tailroom_need_count().
    This synchronize_net() operation can be slow and can affect the station
    roam time. To avoid this, decrementing the crypto_tx_tailroom_needed_cnt
    is delayed for a while so that upon installation of new key the
    transition would be from 1 to 2 instead of 0 to 1 and thereby
    improving the roam time.
    
    This is all correct for a STA iftype, but deferring the tailroom_needed
    decrement for other iftypes may be unnecessary.
    
    For example, let's consider the case of a 4-addr client connecting to
    an AP for which AP_VLAN interface is also created, let the initial
    value for tailroom_needed on the AP be 1.
    
    * 4-addr client connects to the AP (AP: tailroom_needed = 1)
    * AP will clear old keys, delay decrement of tailroom_needed count
    * AP_VLAN is created, it takes the tailroom count from master
      (AP_VLAN: tailroom_needed = 1, AP: tailroom_needed = 1)
    * Install new key for the station, assume key is plumbed in the HW,
      there won't be any change in tailroom_needed count on AP iface
    * Delayed decrement of tailroom_needed count on AP
      (AP: tailroom_needed = 0, AP_VLAN: tailroom_needed = 1)
    
    Because of the delayed decrement on AP iface, tailroom_needed count goes
    out of sync between AP(master iface) and AP_VLAN(slave iface) and
    there would be unnecessary tailroom created for the packets going
    through AP_VLAN iface.
    
    Also, WARN_ONs were observed while trying to bring down the AP_VLAN
    interface:
    (warn_slowpath_common) (warn_slowpath_null+0x18/0x20)
    (warn_slowpath_null) (ieee80211_free_keys+0x114/0x1e4)
    (ieee80211_free_keys) (ieee80211_del_virtual_monitor+0x51c/0x850)
    (ieee80211_del_virtual_monitor) (ieee80211_stop+0x30/0x3c)
    (ieee80211_stop) (__dev_close_many+0x94/0xb8)
    (__dev_close_many) (dev_close_many+0x5c/0xc8)
    
    Restricting delayed decrement to station interface alone fixes the problem
    and it makes sense to do so because delayed decrement is done to improve
    roam time which is applicable only for client devices.
    
    Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3f1e43809130421cab16c6cf363ee69b9d22833
Author: Paul Cercueil <paul@crapouillou.net>
Date:   Sun Jul 8 17:07:12 2018 +0200

    MIPS: jz4740: Bump zload address
    
    [ Upstream commit c6ea7e9747318e5a6774995f4f8e3e0f7c0fa8ba ]
    
    Having the zload address at 0x8060.0000 means the size of the
    uncompressed kernel cannot be bigger than around 6 MiB, as it is
    deflated at address 0x8001.0000.
    
    This limit is too small; a kernel with some built-in drivers and things
    like debugfs enabled will already be over 6 MiB in size, and so will
    fail to extract properly.
    
    To fix this, we bump the zload address from 0x8060.0000 to 0x8100.0000.
    
    This is fine, as all the boards featuring Ingenic JZ SoCs have at least
    32 MiB of RAM, and use u-boot or compatible bootloaders which won't
    hardcode the load address but read it from the uImage's header.
    
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/19787/
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e15407a2a8fb346e3c5ab8bc739807d40e85d50d
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue May 1 00:55:44 2018 +1000

    powerpc/powernv: opal_put_chars partial write fix
    
    [ Upstream commit bd90284cc6c1c9e8e48c8eadd0c79574fcce0b81 ]
    
    The intention here is to consume and discard the remaining buffer
    upon error. This works if there has not been a previous partial write.
    If there has been, then total_len is no longer total number of bytes
    to copy. total_len is always "bytes left to copy", so it should be
    added to written bytes.
    
    This code may not be exercised any more if partial writes will not be
    hit, but this is a small bugfix before a larger change.
    
    Reviewed-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 24dc2f57053a7cd78584e481a5420d6c05e0d687
Author: Sandipan Das <sandipan@linux.ibm.com>
Date:   Tue Jul 10 19:28:13 2018 +0530

    perf powerpc: Fix callchain ip filtering
    
    [ Upstream commit c715fcfda5a08edabaa15508742be926b7ee51db ]
    
    For powerpc64, redundant entries in the callchain are filtered out by
    determining the state of the return address and the stack frame using
    DWARF debug information.
    
    For making these filtering decisions we must analyze the debug
    information for the location corresponding to the program counter value,
    i.e. the first entry in the callchain, and not the LR value; otherwise,
    perf may filter out either the second or the third entry in the
    callchain incorrectly.
    
    This can be observed on a powerpc64le system running Fedora 27 as shown
    below.
    
    Case 1 - Attaching a probe at inet_pton+0x8 (binary offset 0x15af28).
             Return address is still in LR and a new stack frame is not yet
             allocated. The LR value, i.e. the second entry, should not be
             filtered out.
    
      # objdump -d /usr/lib64/libc-2.26.so | less
      ...
      000000000010eb10 <gaih_inet.constprop.7>:
      ...
        10fa48:       78 bb e4 7e     mr      r4,r23
        10fa4c:       0a 00 60 38     li      r3,10
        10fa50:       d9 b4 04 48     bl      15af28 <inet_pton+0x8>
        10fa54:       00 00 00 60     nop
        10fa58:       ac f4 ff 4b     b       10ef04 <gaih_inet.constprop.7+0x3f4>
      ...
      0000000000110450 <getaddrinfo>:
      ...
        1105a8:       54 00 ff 38     addi    r7,r31,84
        1105ac:       58 00 df 38     addi    r6,r31,88
        1105b0:       69 e5 ff 4b     bl      10eb18 <gaih_inet.constprop.7+0x8>
        1105b4:       78 1b 71 7c     mr      r17,r3
        1105b8:       50 01 7f e8     ld      r3,336(r31)
      ...
      000000000015af20 <inet_pton>:
        15af20:       0b 00 4c 3c     addis   r2,r12,11
        15af24:       e0 c1 42 38     addi    r2,r2,-15904
        15af28:       a6 02 08 7c     mflr    r0
        15af2c:       f0 ff c1 fb     std     r30,-16(r1)
        15af30:       f8 ff e1 fb     std     r31,-8(r1)
      ...
    
      # perf probe -x /usr/lib64/libc-2.26.so -a inet_pton+0x8
      # perf record -e probe_libc:inet_pton -g ping -6 -c 1 ::1
      # perf script
    
    Before:
    
      ping  4507 [002] 514985.546540: probe_libc:inet_pton: (7fffa7dbaf28)
                  7fffa7dbaf28 __GI___inet_pton+0x8 (/usr/lib64/libc-2.26.so)
                  7fffa7d705b4 getaddrinfo+0x164 (/usr/lib64/libc-2.26.so)
                     13fb52d70 _init+0xbfc (/usr/bin/ping)
                  7fffa7c836a0 generic_start_main.isra.0+0x140 (/usr/lib64/libc-2.26.so)
                  7fffa7c83898 __libc_start_main+0xb8 (/usr/lib64/libc-2.26.so)
                             0 [unknown] ([unknown])
    
    After:
    
      ping  4507 [002] 514985.546540: probe_libc:inet_pton: (7fffa7dbaf28)
                  7fffa7dbaf28 __GI___inet_pton+0x8 (/usr/lib64/libc-2.26.so)
                  7fffa7d6fa54 gaih_inet.constprop.7+0xf44 (/usr/lib64/libc-2.26.so)
                  7fffa7d705b4 getaddrinfo+0x164 (/usr/lib64/libc-2.26.so)
                     13fb52d70 _init+0xbfc (/usr/bin/ping)
                  7fffa7c836a0 generic_start_main.isra.0+0x140 (/usr/lib64/libc-2.26.so)
                  7fffa7c83898 __libc_start_main+0xb8 (/usr/lib64/libc-2.26.so)
                             0 [unknown] ([unknown])
    
    Case 2 - Attaching a probe at _int_malloc+0x180 (binary offset 0x9cf10).
             Return address in still in LR and a new stack frame has already
             been allocated but not used. The caller's caller, i.e. the third
             entry, is invalid and should be filtered out and not the second
             one.
    
      # objdump -d /usr/lib64/libc-2.26.so | less
      ...
      000000000009cd90 <_int_malloc>:
         9cd90:       17 00 4c 3c     addis   r2,r12,23
         9cd94:       70 a3 42 38     addi    r2,r2,-23696
         9cd98:       26 00 80 7d     mfcr    r12
         9cd9c:       f8 ff e1 fb     std     r31,-8(r1)
         9cda0:       17 00 e4 3b     addi    r31,r4,23
         9cda4:       d8 ff 61 fb     std     r27,-40(r1)
         9cda8:       78 23 9b 7c     mr      r27,r4
         9cdac:       1f 00 bf 2b     cmpldi  cr7,r31,31
         9cdb0:       f0 ff c1 fb     std     r30,-16(r1)
         9cdb4:       b0 ff c1 fa     std     r22,-80(r1)
         9cdb8:       78 1b 7e 7c     mr      r30,r3
         9cdbc:       08 00 81 91     stw     r12,8(r1)
         9cdc0:       11 ff 21 f8     stdu    r1,-240(r1)
         9cdc4:       4c 01 9d 41     bgt     cr7,9cf10 <_int_malloc+0x180>
         9cdc8:       20 00 a4 2b     cmpldi  cr7,r4,32
      ...
         9cf08:       00 00 00 60     nop
         9cf0c:       00 00 42 60     ori     r2,r2,0
         9cf10:       e4 06 ff 7b     rldicr  r31,r31,0,59
         9cf14:       40 f8 a4 7f     cmpld   cr7,r4,r31
         9cf18:       68 05 9d 41     bgt     cr7,9d480 <_int_malloc+0x6f0>
      ...
      000000000009e3c0 <tcache_init.part.4>:
      ...
         9e420:       40 02 80 38     li      r4,576
         9e424:       78 fb e3 7f     mr      r3,r31
         9e428:       71 e9 ff 4b     bl      9cd98 <_int_malloc+0x8>
         9e42c:       00 00 a3 2f     cmpdi   cr7,r3,0
         9e430:       78 1b 7e 7c     mr      r30,r3
      ...
      000000000009f7a0 <__libc_malloc>:
      ...
         9f8f8:       00 00 89 2f     cmpwi   cr7,r9,0
         9f8fc:       1c ff 9e 40     bne     cr7,9f818 <__libc_malloc+0x78>
         9f900:       c9 ea ff 4b     bl      9e3c8 <tcache_init.part.4+0x8>
         9f904:       00 00 00 60     nop
         9f908:       e8 90 22 e9     ld      r9,-28440(r2)
      ...
    
      # perf probe -x /usr/lib64/libc-2.26.so -a _int_malloc+0x180
      # perf record -e probe_libc:_int_malloc -g ./test-malloc
      # perf script
    
    Before:
    
      test-malloc  6554 [009] 515975.797403: probe_libc:_int_malloc: (7fffa6e6cf10)
                  7fffa6e6cf10 _int_malloc+0x180 (/usr/lib64/libc-2.26.so)
                  7fffa6dd0000 [unknown] (/usr/lib64/libc-2.26.so)
                  7fffa6e6f904 malloc+0x164 (/usr/lib64/libc-2.26.so)
                  7fffa6e6f9fc malloc+0x25c (/usr/lib64/libc-2.26.so)
                      100006b4 main+0x38 (/home/testuser/test-malloc)
                  7fffa6df36a0 generic_start_main.isra.0+0x140 (/usr/lib64/libc-2.26.so)
                  7fffa6df3898 __libc_start_main+0xb8 (/usr/lib64/libc-2.26.so)
                             0 [unknown] ([unknown])
    
    After:
    
      test-malloc  6554 [009] 515975.797403: probe_libc:_int_malloc: (7fffa6e6cf10)
                  7fffa6e6cf10 _int_malloc+0x180 (/usr/lib64/libc-2.26.so)
                  7fffa6e6e42c tcache_init.part.4+0x6c (/usr/lib64/libc-2.26.so)
                  7fffa6e6f904 malloc+0x164 (/usr/lib64/libc-2.26.so)
                  7fffa6e6f9fc malloc+0x25c (/usr/lib64/libc-2.26.so)
                      100006b4 main+0x38 (/home/sandipan/test-malloc)
                  7fffa6df36a0 generic_start_main.isra.0+0x140 (/usr/lib64/libc-2.26.so)
                  7fffa6df3898 __libc_start_main+0xb8 (/usr/lib64/libc-2.26.so)
                             0 [unknown] ([unknown])
    
    Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Maynard Johnson <maynard@us.ibm.com>
    Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Fixes: a60335ba3298 ("perf tools powerpc: Adjust callchain based on DWARF debug info")
    Link: http://lkml.kernel.org/r/24bb726d91ed173aebc972ec3f41a2ef2249434e.1530724939.git.sandipan@linux.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7aea78a5ae0b5e54167dbfe31936f0d32acfbda0
Author: Krzysztof Kozlowski <krzk@kernel.org>
Date:   Tue Jul 24 18:48:14 2018 +0200

    ARM: exynos: Clear global variable on init error path
    
    [ Upstream commit cd4806911cee3901bc2b5eb95603cf1958720b57 ]
    
    For most of Exynos SoCs, Power Management Unit (PMU) address space is
    mapped into global variable 'pmu_base_addr' very early when initializing
    PMU interrupt controller.  A lot of other machine code depends on it so
    when doing iounmap() on this address, clear the global as well to avoid
    usage of invalid value (pointing to unmapped memory region).
    
    Properly mapped PMU address space is a requirement for all other machine
    code so this fix is purely theoretical.  Boot will fail immediately in
    many other places after following this error path.
    
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6431fb7b5e549f6427d43924881f1ee38276f5ea
Author: Fredrik Noring <noring@nocrew.org>
Date:   Tue Jul 24 19:11:24 2018 +0200

    fbdev: Distinguish between interlaced and progressive modes
    
    [ Upstream commit 1ba0a59cea41ea05fda92daaf2a2958a2246b9cf ]
    
    I discovered the problem when developing a frame buffer driver for the
    PlayStation 2 (not yet merged), using the following video modes for the
    PlayStation 3 in drivers/video/fbdev/ps3fb.c:
    
        }, {
            /* 1080if */
            "1080if", 50, 1920, 1080, 13468, 148, 484, 36, 4, 88, 5,
            FB_SYNC_BROADCAST, FB_VMODE_INTERLACED
        }, {
            /* 1080pf */
            "1080pf", 50, 1920, 1080, 6734, 148, 484, 36, 4, 88, 5,
            FB_SYNC_BROADCAST, FB_VMODE_NONINTERLACED
        },
    
    In ps3fb_probe, the mode_option module parameter is used with fb_find_mode
    but it can only select the interlaced variant of 1920x1080 since the loop
    matching the modes does not take the difference between interlaced and
    progressive modes into account.
    
    In short, without the patch, progressive 1920x1080 cannot be chosen as a
    mode_option parameter since fb_find_mode (falsely) thinks interlace is a
    perfect match.
    
    Signed-off-by: Fredrik Noring <noring@nocrew.org>
    Cc: "Maciej W. Rozycki" <macro@linux-mips.org>
    [b.zolnierkie: updated patch description]
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e5d820bc8d9373d82f72e1ea26ad7c3428daa07
Author: Daniel Mack <daniel@zonque.org>
Date:   Tue Jul 24 19:11:25 2018 +0200

    video: fbdev: pxafb: clear allocated memory for video modes
    
    [ Upstream commit b951d80aaf224b1f774e10def672f5e37488e4ee ]
    
    When parsing the video modes from DT properties, make sure to zero out
    memory before using it. This is important because not all fields in the mode
    struct are explicitly initialized, even though they are used later on.
    
    Fixes: 420a488278e86 ("video: fbdev: pxafb: initial devicetree conversion")
    Reviewed-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Daniel Mack <daniel@zonque.org>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14f3d6519417676db893e937167cf3f76f4efe3c
Author: Sandipan Das <sandipan@linux.ibm.com>
Date:   Tue Jul 10 19:28:14 2018 +0530

    perf powerpc: Fix callchain ip filtering when return address is in a register
    
    [ Upstream commit 9068533e4f470daf2b0f29c71d865990acd8826e ]
    
    For powerpc64, perf will filter out the second entry in the callchain,
    i.e. the LR value, if the return address of the function corresponding
    to the probed location has already been saved on its caller's stack.
    
    The state of the return address is determined using debug information.
    At any point within a function, if the return address is already saved
    somewhere, a DWARF expression can tell us about its location. If the
    return address in still in LR only, no DWARF expression would exist.
    
    Typically, the instructions in a function's prologue first copy the LR
    value to R0 and then pushes R0 on to the stack. If LR has already been
    copied to R0 but R0 is yet to be pushed to the stack, we can still get a
    DWARF expression that says that the return address is in R0. This is
    indicating that getting a DWARF expression for the return address does
    not guarantee the fact that it has already been saved on the stack.
    
    This can be observed on a powerpc64le system running Fedora 27 as shown
    below.
    
      # objdump -d /usr/lib64/libc-2.26.so | less
      ...
      000000000015af20 <inet_pton>:
        15af20:       0b 00 4c 3c     addis   r2,r12,11
        15af24:       e0 c1 42 38     addi    r2,r2,-15904
        15af28:       a6 02 08 7c     mflr    r0
        15af2c:       f0 ff c1 fb     std     r30,-16(r1)
        15af30:       f8 ff e1 fb     std     r31,-8(r1)
        15af34:       78 1b 7f 7c     mr      r31,r3
        15af38:       78 23 83 7c     mr      r3,r4
        15af3c:       78 2b be 7c     mr      r30,r5
        15af40:       10 00 01 f8     std     r0,16(r1)
        15af44:       c1 ff 21 f8     stdu    r1,-64(r1)
        15af48:       28 00 81 f8     std     r4,40(r1)
      ...
    
      # readelf --debug-dump=frames-interp /usr/lib64/libc-2.26.so | less
      ...
      00027024 0000000000000024 00027028 FDE cie=00000000 pc=000000000015af20..000000000015af88
         LOC           CFA      r30   r31   ra
      000000000015af20 r1+0     u     u     u
      000000000015af34 r1+0     c-16  c-8   r0
      000000000015af48 r1+64    c-16  c-8   c+16
      000000000015af5c r1+0     c-16  c-8   c+16
      000000000015af78 r1+0     u     u
      ...
    
      # perf probe -x /usr/lib64/libc-2.26.so -a inet_pton+0x18
      # perf record -e probe_libc:inet_pton -g ping -6 -c 1 ::1
      # perf script
    
    Before:
    
      ping  2829 [005] 512917.460174: probe_libc:inet_pton: (7fff7e2baf38)
                  7fff7e2baf38 __GI___inet_pton+0x18 (/usr/lib64/libc-2.26.so)
                  7fff7e2705b4 getaddrinfo+0x164 (/usr/lib64/libc-2.26.so)
                     12f152d70 _init+0xbfc (/usr/bin/ping)
                  7fff7e1836a0 generic_start_main.isra.0+0x140 (/usr/lib64/libc-2.26.so)
                  7fff7e183898 __libc_start_main+0xb8 (/usr/lib64/libc-2.26.so)
                             0 [unknown] ([unknown])
    
    After:
    
      ping  2829 [005] 512917.460174: probe_libc:inet_pton: (7fff7e2baf38)
                  7fff7e2baf38 __GI___inet_pton+0x18 (/usr/lib64/libc-2.26.so)
                  7fff7e26fa54 gaih_inet.constprop.7+0xf44 (/usr/lib64/libc-2.26.so)
                  7fff7e2705b4 getaddrinfo+0x164 (/usr/lib64/libc-2.26.so)
                     12f152d70 _init+0xbfc (/usr/bin/ping)
                  7fff7e1836a0 generic_start_main.isra.0+0x140 (/usr/lib64/libc-2.26.so)
                  7fff7e183898 __libc_start_main+0xb8 (/usr/lib64/libc-2.26.so)
                             0 [unknown] ([unknown])
    
    Reported-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
    Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Maynard Johnson <maynard@us.ibm.com>
    Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Link: http://lkml.kernel.org/r/66e848a7bdf2d43b39210a705ff6d828a0865661.1530724939.git.sandipan@linux.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e97220e28fe9a125459e4ac64b88020dea622623
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Tue Jul 24 19:11:27 2018 +0200

    fbdev/via: fix defined but not used warning
    
    [ Upstream commit b6566b47a67e07fdca44cf51abb14e2fbe17d3eb ]
    
    Fix a build warning in viafbdev.c when CONFIG_PROC_FS is not enabled
    by marking the unused function as __maybe_unused.
    
    ../drivers/video/fbdev/via/viafbdev.c:1471:12: warning: 'viafb_sup_odev_proc_show' defined but not used [-Wunused-function]
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9f6ae2f49c8f614a877291a4e8a6a08c73a53c2
Author: Anton Vasilyev <vasilyev@ispras.ru>
Date:   Tue Jul 24 19:11:27 2018 +0200

    video: goldfishfb: fix memory leak on driver remove
    
    [ Upstream commit 5958fde72d04e7b8c6de3669d1f794a90997e3eb ]
    
    goldfish_fb_probe() allocates memory for fb, but goldfish_fb_remove() does
    not have deallocation of fb, which leads to memory leak on probe/remove.
    
    The patch adds deallocation into goldfish_fb_remove().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
    Cc: Aleksandar Markovic <aleksandar.markovic@mips.com>
    Cc: Miodrag Dinic <miodrag.dinic@mips.com>
    Cc: Goran Ferenc <goran.ferenc@mips.com>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85d6635b637e395358aa87c4747cedbbed9d2dc1
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Jul 24 19:11:28 2018 +0200

    fbdev: omapfb: off by one in omapfb_register_client()
    
    [ Upstream commit 5ec1ec35b2979b59d0b33381e7c9aac17e159d16 ]
    
    The omapfb_register_client[] array has OMAPFB_PLANE_NUM elements so the
    > should be >= or we are one element beyond the end of the array.
    
    Fixes: 8b08cf2b64f5 ("OMAP: add TI OMAP framebuffer driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: Imre Deak <imre.deak@solidboot.com>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ddeb9cb46166f0dc6f0d5a1b510af5663f1c0dad
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Mon Jun 18 13:24:13 2018 -0500

    gfs2: Don't reject a supposedly full bitmap if we have blocks reserved
    
    [ Upstream commit e79e0e1428188b24c3b57309ffa54a33c4ae40c4 ]
    
    Before this patch, you could get into situations like this:
    
    1. Process 1 searches for X free blocks, finds them, makes a reservation
    2. Process 2 searches for free blocks in the same rgrp, but now the
       bitmap is full because process 1's reservation is skipped over.
       So it marks the bitmap as GBF_FULL.
    3. Process 1 tries to allocate blocks from its own reservation, but
       since the GBF_FULL bit is set, it skips over the rgrp and searches
       elsewhere, thus not using its own reservation.
    
    This patch adds an additional check to allow processes to use their
    own reservations.
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48c37aa37355e166de84abd735a17ad31b10e50d
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Tue Jul 24 15:48:58 2018 +0200

    perf test: Fix subtest number when showing results
    
    [ Upstream commit 9ef0112442bdddef5fb55adf20b3a5464b33de75 ]
    
    Perf test 40 for example has several subtests numbered 1-4 when
    displaying the start of the subtest. When the subtest results
    are displayed the subtests are numbered 0-3.
    
    Use this command to generate trace output:
    
      [root@s35lp76 perf]# ./perf test -Fv 40 2>/tmp/bpf1
    
    Fix this by adjusting the subtest number when show the
    subtest result.
    
    Output before:
    
      [root@s35lp76 perf]# egrep '(^40\.[0-4]| subtest [0-4]:)' /tmp/bpf1
      40.1: Basic BPF filtering                                 :
      BPF filter subtest 0: Ok
      40.2: BPF pinning                                         :
      BPF filter subtest 1: Ok
      40.3: BPF prologue generation                             :
      BPF filter subtest 2: Ok
      40.4: BPF relocation checker                              :
      BPF filter subtest 3: Ok
      [root@s35lp76 perf]#
    
    Output after:
    
      root@s35lp76 ~]# egrep '(^40\.[0-4]| subtest [0-4]:)' /tmp/bpf1
      40.1: Basic BPF filtering                                 :
      BPF filter subtest 1: Ok
      40.2: BPF pinning                                         :
      BPF filter subtest 2: Ok
      40.3: BPF prologue generation                             :
      BPF filter subtest 3: Ok
      40.4: BPF relocation checker                              :
      BPF filter subtest 4: Ok
      [root@s35lp76 ~]#
    
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Link: http://lkml.kernel.org/r/20180724134858.100644-1-tmricht@linux.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4223d4b9a433b0f6733c6a92fb470cf968b94a2b
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Tue Jul 24 11:29:01 2018 -0700

    mtd/maps: fix solutionengine.c printk format warnings
    
    [ Upstream commit 1d25e3eeed1d987404e2d2e451eebac8c15cecc1 ]
    
    Fix 2 printk format warnings (this driver is currently only used by
    arch/sh/) by using "%pap" instead of "%lx".
    
    Fixes these build warnings:
    
    ../drivers/mtd/maps/solutionengine.c: In function 'init_soleng_maps':
    ../include/linux/kern_levels.h:5:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
    ../drivers/mtd/maps/solutionengine.c:62:54: note: format string is defined here
      printk(KERN_NOTICE "Solution Engine: Flash at 0x%08lx, EPROM at 0x%08lx\n",
                                                      ~~~~^
                                                      %08x
    ../include/linux/kern_levels.h:5:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
    ../drivers/mtd/maps/solutionengine.c:62:72: note: format string is defined here
      printk(KERN_NOTICE "Solution Engine: Flash at 0x%08lx, EPROM at 0x%08lx\n",
                                                                        ~~~~^
                                                                        %08x
    
    Cc: David Woodhouse <dwmw2@infradead.org>
    Cc: Brian Norris <computersforpeace@gmail.com>
    Cc: Boris Brezillon <boris.brezillon@bootlin.com>
    Cc: Marek Vasut <marek.vasut@gmail.com>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: linux-mtd@lists.infradead.org
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Rich Felker <dalias@libc.org>
    Cc: linux-sh@vger.kernel.org
    Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a43cbd9b220be7e08cabe14edbdd8a71cb8654d5
Author: Zhu Yanjun <yanjun.zhu@oracle.com>
Date:   Fri Jul 13 03:10:20 2018 -0400

    IB/rxe: Drop QP0 silently
    
    [ Upstream commit 536ca245c512aedfd84cde072d7b3ca14b6e1792 ]
    
    According to "Annex A16: RDMA over Converged Ethernet (RoCE)":
    
    A16.4.3 MANAGEMENT INTERFACES
    
    As defined in the base specification, a special Queue Pair, QP0 is defined
    solely for communication between subnet manager(s) and subnet management
    agents. Since such an IB-defined subnet management architecture is outside
    the scope of this annex, it follows that there is also no requirement that
    a port which conforms to this annex be associated with a QP0. Thus, for
    end nodes designed to conform to this annex, the concept of QP0 is
    undefined and unused for any port connected to an Ethernet network.
    
    CA16-8: A packet arriving at a RoCE port containing a BTH with the
    destination QP field set to QP0 shall be silently dropped.
    
    Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com>
    Acked-by: Moni Shoua <monis@mellanox.com>
    Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77e59fa1bffe55f7a306bdc3b15394819be46eb9
Author: Hans Verkuil <hverkuil@xs4all.nl>
Date:   Thu Jul 5 04:25:19 2018 -0400

    media: videobuf2-core: check for q->error in vb2_core_qbuf()
    
    [ Upstream commit b509d733d337417bcb7fa4a35be3b9a49332b724 ]
    
    The vb2_core_qbuf() function didn't check if q->error was set. It is
    checked in __buf_prepare(), but that function isn't called if the buffer
    was already prepared before with VIDIOC_PREPARE_BUF.
    
    So check it at the start of vb2_core_qbuf() as well.
    
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 70ea6147c8ff2d46db295ad80700f97f09d731d0
Author: Felix Fietkau <nbd@nbd.name>
Date:   Fri Jul 20 13:58:22 2018 +0200

    MIPS: ath79: fix system restart
    
    [ Upstream commit f8a7bfe1cb2c1ebfa07775c9c8ac0ad3ba8e5ff5 ]
    
    This patch disables irq on reboot to fix hang issues that were observed
    due to pending interrupts.
    
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: John Crispin <john@phrozen.org>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/19913/
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ddf00feadd40a5901e9e491b6fc953c47d794e66
Author: John Keeping <john@metanate.com>
Date:   Tue Jul 17 11:48:16 2018 +0100

    dmaengine: pl330: fix irq race with terminate_all
    
    [ Upstream commit e49756544a21f5625b379b3871d27d8500764670 ]
    
    In pl330_update() when checking if a channel has been aborted, the
    channel's lock is not taken, only the overall pl330_dmac lock.  But in
    pl330_terminate_all() the aborted flag (req_running==-1) is set under
    the channel lock and not the pl330_dmac lock.
    
    With threaded interrupts, this leads to a potential race:
    
        pl330_terminate_all         pl330_update
        -------------------         ------------
        lock channel
                                    entry
        lock pl330
        _stop channel
        unlock pl330
                                    lock pl330
                                    check req_running != -1
        req_running = -1
                                    _start channel
    
    Signed-off-by: John Keeping <john@metanate.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8992a70297ed01f7c898f854b1edcf4a0ad4521c
Author: Krzysztof Ha?asa <khalasa@piap.pl>
Date:   Thu Jun 28 17:45:07 2018 -0400

    media: tw686x: Fix oops on buffer alloc failure
    
    [ Upstream commit 5a1a2f63d840dc2631505b607e11ff65ac1b7d3c ]
    
    The error path currently calls tw686x_video_free() which requires
    vc->dev to be initialized, causing a NULL dereference on uninitizalized
    channels.
    
    Fix this by setting the vc->dev fields for all the channels first.
    
    Fixes: f8afaa8dbc0d ("[media] tw686x: Introduce an interface to support multiple DMA modes")
    
    Signed-off-by: Krzysztof Ha?asa <khalasa@piap.pl>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48a90a9e56a37d9b0fbc81ca08411c84040d5918
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Fri Jul 20 16:46:33 2018 +0900

    kbuild: add .DELETE_ON_ERROR special target
    
    [ Upstream commit 9c2af1c7377a8a6ef86e5cabf80978f3dbbb25c0 ]
    
    If Make gets a fatal signal while a shell is executing, it may delete
    the target file that the recipe was supposed to update.  This is needed
    to make sure that it is remade from scratch when Make is next run; if
    Make is interrupted after the recipe has begun to write the target file,
    it results in an incomplete file whose time stamp is newer than that
    of the prerequisites files.  Make automatically deletes the incomplete
    file on interrupt unless the target is marked .PRECIOUS.
    
    The situation is just the same as when the shell fails for some reasons.
    Usually when a recipe line fails, if it has changed the target file at
    all, the file is corrupted, or at least it is not completely updated.
    Yet the file’s time stamp says that it is now up to date, so the next
    time Make runs, it will not try to update that file.
    
    However, Make does not cater to delete the incomplete target file in
    this case.  We need to add .DELETE_ON_ERROR somewhere in the Makefile
    to request it.
    
    scripts/Kbuild.include seems a suitable place to add it because it is
    included from almost all sub-makes.
    
    Please note .DELETE_ON_ERROR is not effective for phony targets.
    
    The external module building should never ever touch the kernel tree.
    The following recipe fails if include/generated/autoconf.h is missing.
    However, include/config/auto.conf is not deleted since it is a phony
    target.
    
     PHONY += include/config/auto.conf
    
     include/config/auto.conf:
             $(Q)test -e include/generated/autoconf.h -a -e $@ || (          \
             echo >&2;                                                       \
             echo >&2 "  ERROR: Kernel configuration is invalid.";           \
             echo >&2 "         include/generated/autoconf.h or $@ are missing.";\
             echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it."; \
             echo >&2 ;                                                      \
             /bin/false)
    
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c033654d34c39facad100906ed39b47e87a49206
Author: Rajan Vaja <rajan.vaja@xilinx.com>
Date:   Tue Jul 17 06:17:00 2018 -0700

    clk: clk-fixed-factor: Clear OF_POPULATED flag in case of failure
    
    [ Upstream commit f6dab4233d6b64d719109040503b567f71fbfa01 ]
    
    Fixed factor clock has two initializations at of_clk_init() time
    and during platform driver probe. Before of_clk_init() call,
    node is marked as populated and so its probe never gets called.
    
    During of_clk_init() fixed factor clock registration may fail if
    any of its parent clock is not registered. In this case, it doesn't
    get chance to retry registration from probe. Clear OF_POPULATED
    flag if fixed factor clock registration fails so that clock
    registration is attempted again from probe.
    
    Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59d4d41f46084bccc6716a31bdc19af1595aff28
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Fri Jul 13 13:13:20 2018 +0200

    clk: imx6ul: fix missing of_node_put()
    
    [ Upstream commit 11177e7a7aaef95935592072985526ebf0a3df43 ]
    
    of_find_compatible_node() is returning a device node with refcount
    incremented and must be explicitly decremented after the last use
    which is right after the us in of_iomap() here.
    
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Fixes: 787b4271a6a0 ("clk: imx: add imx6ul clk tree support")
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a1742883d492a7632e95bce5c4a4214ef74c0f5
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Wed Jul 25 18:45:08 2018 +0100

    gfs2: Special-case rindex for gfs2_grow
    
    [ Upstream commit 776125785a87ff05d49938bd5b9f336f2a05bff6 ]
    
    To speed up the common case of appending to a file,
    gfs2_write_alloc_required presumes that writing beyond the end of a file
    will always require additional blocks to be allocated.  This assumption
    is incorrect for preallocates files, but there are no negative
    consequences as long as *some* space is still left on the filesystem.
    
    One special file that always has some space preallocated beyond the end
    of the file is the rindex: when growing a filesystem, gfs2_grow adds one
    or more new resource groups and appends records describing those
    resource groups to the rindex; the preallocated space ensures that this
    is always possible.
    
    However, when a filesystem is completely full, gfs2_write_alloc_required
    will indicate that an additional allocation is required, and appending
    the next record to the rindex will fail even though space for that
    record has already been preallocated.  To fix that, skip the incorrect
    optimization in gfs2_write_alloc_required, but for the rindex only.
    Other writes to preallocated space beyond the end of the file are still
    allowed to fail on completely full filesystems.
    
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Reviewed-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af322ba0eb11572dc78bf6879ec7b256b3c09064
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Wed Jul 25 16:54:33 2018 +0800

    xfrm: fix 'passing zero to ERR_PTR()' warning
    
    [ Upstream commit 934ffce1343f22ed5e2d0bd6da4440f4848074de ]
    
    Fix a static code checker warning:
    
      net/xfrm/xfrm_policy.c:1836 xfrm_resolve_and_create_bundle() warn: passing zero to 'ERR_PTR'
    
    xfrm_tmpl_resolve return 0 just means no xdst found, return NULL
    instead of passing zero to ERR_PTR.
    
    Fixes: d809ec895505 ("xfrm: do not assume that template resolving always returns xfrms")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f075b4bd3db71187a0b8aa874d75b6ae9b987182
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Jul 25 23:00:46 2018 +0200

    ALSA: usb-audio: Fix multiple definitions in AU0828_DEVICE() macro
    
    [ Upstream commit bd1cd0eb2ce9141100628d476ead4de485501b29 ]
    
    AU0828_DEVICE() macro in quirks-table.h uses USB_DEVICE_VENDOR_SPEC()
    for expanding idVendor and idProduct fields.  However, the latter
    macro adds also match_flags and bInterfaceClass, which are different
    from the values AU0828_DEVICE() macro sets after that.
    
    For fixing them, just expand idVendor and idProduct fields manually in
    AU0828_DEVICE().
    
    This fixes sparse warnings like:
      sound/usb/quirks-table.h:2892:1: warning: Initializer entry defined twice
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5993f94d351d07e2abe462dd6f8f40c90742a3a2
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Jul 25 23:00:48 2018 +0200

    ALSA: msnd: Fix the default sample sizes
    
    [ Upstream commit 7c500f9ea139d0c9b80fdea5a9c911db3166ea54 ]
    
    The default sample sizes set by msnd driver are bogus; it sets ALSA
    PCM format, not the actual bit width.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd08974f90fbcee93e4807696175bc8e09d9e624
Author: Miao Zhong <zhongmiao@hisilicon.com>
Date:   Mon Jul 23 20:56:58 2018 +0800

    iommu/arm-smmu-v3: sync the OVACKFLG to PRIQ consumer register
    
    [ Upstream commit 0d535967ac658966c6ade8f82b5799092f7d5441 ]
    
    When PRI queue occurs overflow, driver should update the OVACKFLG to
    the PRIQ consumer register, otherwise subsequent PRI requests will not
    be processed.
    
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Miao Zhong <zhongmiao@hisilicon.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d1659b35cd1590960dee2049e9d134610c55392
Author: Jack Morgenstein <jackm@dev.mellanox.co.il>
Date:   Tue Aug 7 09:59:03 2018 +0300

    net/mlx5: Fix debugfs cleanup in the device init/remove flow
    
    [ Upstream commit 5df816e7f43f1297c40021ef17ec6e722b45c82f ]
    
    When initializing the device (procedure init_one), the driver
    calls mlx5_pci_init to perform pci initialization. As part of this
    initialization, mlx5_pci_init creates a debugfs directory.
    If this creation fails, init_one aborts, returning failure to
    the caller (which is the probe method caller).
    
    The main reason for such a failure to occur is if the debugfs
    directory already exists. This can happen if the last time
    mlx5_pci_close was called, debugfs_remove (silently) failed due
    to the debugfs directory not being empty.
    
    Guarantee that such a debugfs_remove failure will not occur by
    instead calling debugfs_remove_recursive in procedure mlx5_pci_close.
    
    Fixes: 59211bd3b632 ("net/mlx5: Split the load/unload flow into hardware and software flows")
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccb89610b3aa6b327c11ca8558fd544b63890538
Author: Jack Morgenstein <jackm@dev.mellanox.co.il>
Date:   Sun Aug 5 09:19:33 2018 +0300

    net/mlx5: Fix use-after-free in self-healing flow
    
    [ Upstream commit 76d5581c870454be5f1f1a106c57985902e7ea20 ]
    
    When the mlx5 health mechanism detects a problem while the driver
    is in the middle of init_one or remove_one, the driver needs to prevent
    the health mechanism from scheduling future work; if future work
    is scheduled, there is a problem with use-after-free: the system WQ
    tries to run the work item (which has been freed) at the scheduled
    future time.
    
    Prevent this by disabling work item scheduling in the health mechanism
    when the driver is in the middle of init_one() or remove_one().
    
    Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters")
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Reviewed-by: Feras Daoud <ferasda@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 53a3bad7e9e713b2734637bf21c0473c60372355
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Mon Sep 10 18:27:26 2018 -0700

    rds: fix two RCU related problems
    
    [ Upstream commit cc4dfb7f70a344f24c1c71e298deea0771dadcb2 ]
    
    When a rds sock is bound, it is inserted into the bind_hash_table
    which is protected by RCU. But when releasing rds sock, after it
    is removed from this hash table, it is freed immediately without
    respecting RCU grace period. This could cause some use-after-free
    as reported by syzbot.
    
    Mark the rds sock with SOCK_RCU_FREE before inserting it into the
    bind_hash_table, so that it would be always freed after a RCU grace
    period.
    
    The other problem is in rds_find_bound(), the rds sock could be
    freed in between rhashtable_lookup_fast() and rds_sock_addref(),
    so we need to extend RCU read lock protection in rds_find_bound()
    to close this race condition.
    
    Reported-and-tested-by: syzbot+8967084bcac563795dc6@syzkaller.appspotmail.com
    Reported-by: syzbot+93a5839deb355537440f@syzkaller.appspotmail.com
    Cc: Sowmini Varadhan <sowmini.varadhan@oracle.com>
    Cc: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Cc: rds-devel@oss.oracle.com
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oarcle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfb8799ab575c6076ca2ee1738453643d5ef6bfa
Author: Petr Oros <poros@redhat.com>
Date:   Wed Sep 5 14:37:45 2018 +0200

    be2net: Fix memory leak in be_cmd_get_profile_config()
    
    [ Upstream commit 9d7f19dc4673fbafebfcbf30eb90e09fa7d1c037 ]
    
    DMA allocated memory is lost in be_cmd_get_profile_config() when we
    call it with non-NULL port_res parameter.
    
    Signed-off-by: Petr Oros <poros@redhat.com>
    Reviewed-by: Ivan Vecera <ivecera@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>