commit 921b2fed6a79439ef1609ef4af0ada5cccb3555c
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Sep 26 08:33:59 2018 +0200

    Linux 3.18.123

commit 66688f6191c9299ccb8ccf3e1dc99cc59b194587
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 cf9bbea6229e8aca683c3a59d43fc926dc19163a
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 32ab7310c02164a0c7d47fbe99f07dca88ee624d
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 4a8fd0459d2c910b4d086e52990c8989bcbf5147
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 4d50d942bdd8bb750ce01fae8cf875431a4d479f
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 03ace9d6d931aa3de6746652dc9cd1f853d3c978
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 073b26b9b5de681008db7cdf099506f66b945b7f
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 ebb9196a1ed43830a4790386483d272fb840e75e
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 0bcaafbf8a2a3d583a737d88a672a868a44b2902
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 2e866a2750fb683bd6d6b9422856b4f10be6659b
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 1a92b397cc527facb363617e5711702aeceb371e
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 34f39bdb040b3927ff843ca78d911d05617d8967
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 cece1875d935c58d9dd6a2733be852948d5e1b6d
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 6f3e0e8ac116f2a88e2d21d4e66e1aaa8bc59e75
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 a89c7b5a8fb9b17a994d4f74160dcd4dfd1bd6fc
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 2fd95e988e49f0a969314f907556965352e3bb8e
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 a9cdf4ce5cb8ccda956400c636829df67cb59ad6
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 c601d90f7a9eb2b547bd215f83741ab75facdb35
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 da7a5b5401b57641efc6efad2c20bead86ab4f08
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 fbc35884e1cadd0da82e5ff8a95235964bc1ca93
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 15567156db7acc1845296fdff669353f711c8e49
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 9ca1bf5eeff31769dd4a2d5ccbb808368a37cfd7
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 9778987cf346862c59d6b43666e1c6795682b79d
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 bd4971c341a348fd456780b7c058079de9492d18
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 36a9916189b46b78dbf4fa542739b464444f0537
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 e6858a99540555179f7ed1027e9307563bada64b
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 31f0ff10ccc3a0692625c94b3b77c9e82739e185
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 9cac5f329dcc8bf89685c9def4cf5bc61c6423f7
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 1437dd3977d1d16e2c274dcf69456ba05abe9c38
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 67f5abb4933bc4f96f467615fd312cea0a414cc5
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 98cc98203b9f457aab3c928e6c98d3c80ff36460
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 8eb6f3c1e90879b7407890acedebafce5e01ede1
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 026d9d4baae9af3fccb0285206c4c99a001aab19
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 2a227c0acd512fb90acec358a0858ec87cd377ca
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 a4e5e18d2c04747057af01ec70ad3c7b045991bd
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 f697031f57b570697e77dda8d8178274d4ef694d
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 bae63ef69feaa70d33dcddf65b717b3733386ec8
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 955a815d168c45af6731acd8bcc2f57771c9fc5f
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 40c8637843d8cb2799cb23679854916dee890ae9
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 3916385fc4812d4b75b1f07ed042ba67f3934911
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 0d46dece53d25de1f0113077525224156bb6cf3e
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 b741bcfe2b58a78627535fad91bfc6e55cc270a0
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 4601c4744202d6017bd9833896f5d4e8df630641
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 2b8f74c8f0a4aab0a20b9e77fdc3d17e8f2405dd
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Sep 12 23:57:48 2018 -1000

    mm: get rid of vmacache_flush_all() entirely
    
    commit 7a9cdebdcc17e426fb5287e4a82db1dfe86339b2 upstream.
    
    Jann Horn points out that the vmacache_flush_all() function is not only
    potentially expensive, it's buggy too.  It also happens to be entirely
    unnecessary, because the sequence number overflow case can be avoided by
    simply making the sequence number be 64-bit.  That doesn't even grow the
    data structures in question, because the other adjacent fields are
    already 64-bit.
    
    So simplify the whole thing by just making the sequence number overflow
    case go away entirely, which gets rid of all the complications and makes
    the code faster too.  Win-win.
    
    [ Oleg Nesterov points out that the VMACACHE_FULL_FLUSHES statistics
      also just goes away entirely with this ]
    
    Reported-by: Jann Horn <jannh@google.com>
    Suggested-by: Will Deacon <will.deacon@arm.com>
    Acked-by: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a4508e0383daf5a97aa8c0bbcbfc3914d6948010
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Oct 5 02:50:07 2017 -0700

    netfilter: x_tables: avoid stack-out-of-bounds read in xt_copy_counters_from_user
    
    commit e466af75c074e76107ae1cd5a2823e9c61894ffb upstream.
    
    syzkaller reports an out of bound read in strlcpy(), triggered
    by xt_copy_counters_from_user()
    
    Fix this by using memcpy(), then forcing a zero byte at the last position
    of the destination, as Florian did for the non COMPAT code.
    
    Fixes: d7591f0c41ce ("netfilter: x_tables: introduce and use xt_copy_counters_from_user")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Acked-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Cc: Greg Hackmann <ghackmann@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 449fab4df70f6d43f64f8bd2afafdf9c62c4bbc2
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Thu May 3 17:30:07 2018 +0300

    xhci: Fix use-after-free in xhci_free_virt_device
    
    commit 44a182b9d17765514fa2b1cc911e4e65134eef93 upstream.
    
    KASAN found a use-after-free in xhci_free_virt_device+0x33b/0x38e
    where xhci_free_virt_device() sets slot id to 0 if udev exists:
    if (dev->udev && dev->udev->slot_id)
            dev->udev->slot_id = 0;
    
    dev->udev will be true even if udev is freed because dev->udev is
    not set to NULL.
    
    set dev->udev pointer to NULL in xhci_free_dev()
    
    The original patch went to stable so this fix needs to be applied
    there as well.
    
    Fixes: a400efe455f7 ("xhci: zero usb device slot_id member when disabling and freeing a xhci slot")
    Cc: <stable@vger.kernel.org>
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84562954bd421824b98d91f6f6115262f6c87a01
Author: Paul Burton <paul.burton@imgtec.com>
Date:   Fri Nov 25 18:46:09 2016 +0000

    MIPS: WARN_ON invalid DMA cache maintenance, not BUG_ON
    
    [ Upstream commit d4da0e97baea8768b3d66ccef3967bebd50dfc3b ]
    
    If a driver causes DMA cache maintenance with a zero length then we
    currently BUG and kill the kernel. As this is a scenario that we may
    well be able to recover from, WARN & return in the condition instead.
    
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Acked-by: Florian Fainelli <f.fainelli@gmail.com>
    Patchwork: https://patchwork.linux-mips.org/patch/14623/
    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 ae3ab8fd4b056dc1827167d90cc4eb6bcafb6933
Author: Chao Yu <yuchao0@huawei.com>
Date:   Sat Jun 23 11:25:19 2018 +0800

    f2fs: fix to do sanity check with {sit,nat}_ver_bitmap_bytesize
    
    [ Upstream commit c77ec61ca0a49544ca81881cc5d5529858f7e196 ]
    
    This patch adds to do sanity check with {sit,nat}_ver_bitmap_bytesize
    during mount, in order to avoid accessing across cache boundary with
    this abnormal bitmap size.
    
    - Overview
    buffer overrun in build_sit_info() when mounting a crafted f2fs image
    
    - Reproduce
    
    - Kernel message
    [  548.580867] F2FS-fs (loop0): Invalid log blocks per segment (8201)
    
    [  548.580877] F2FS-fs (loop0): Can't find valid F2FS filesystem in 1th superblock
    [  548.584979] ==================================================================
    [  548.586568] BUG: KASAN: use-after-free in kmemdup+0x36/0x50
    [  548.587715] Read of size 64 at addr ffff8801e9c265ff by task mount/1295
    
    [  548.589428] CPU: 1 PID: 1295 Comm: mount Not tainted 4.18.0-rc1+ #4
    [  548.589432] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
    [  548.589438] Call Trace:
    [  548.589474]  dump_stack+0x7b/0xb5
    [  548.589487]  print_address_description+0x70/0x290
    [  548.589492]  kasan_report+0x291/0x390
    [  548.589496]  ? kmemdup+0x36/0x50
    [  548.589509]  check_memory_region+0x139/0x190
    [  548.589514]  memcpy+0x23/0x50
    [  548.589518]  kmemdup+0x36/0x50
    [  548.589545]  f2fs_build_segment_manager+0x8fa/0x3410
    [  548.589551]  ? __asan_loadN+0xf/0x20
    [  548.589560]  ? f2fs_sanity_check_ckpt+0x1be/0x240
    [  548.589566]  ? f2fs_flush_sit_entries+0x10c0/0x10c0
    [  548.589587]  ? __put_user_ns+0x40/0x40
    [  548.589604]  ? find_next_bit+0x57/0x90
    [  548.589610]  f2fs_fill_super+0x194b/0x2b40
    [  548.589617]  ? f2fs_commit_super+0x1b0/0x1b0
    [  548.589637]  ? set_blocksize+0x90/0x140
    [  548.589651]  mount_bdev+0x1c5/0x210
    [  548.589655]  ? f2fs_commit_super+0x1b0/0x1b0
    [  548.589667]  f2fs_mount+0x15/0x20
    [  548.589672]  mount_fs+0x60/0x1a0
    [  548.589683]  ? alloc_vfsmnt+0x309/0x360
    [  548.589688]  vfs_kern_mount+0x6b/0x1a0
    [  548.589699]  do_mount+0x34a/0x18c0
    [  548.589710]  ? lockref_put_or_lock+0xcf/0x160
    [  548.589716]  ? copy_mount_string+0x20/0x20
    [  548.589728]  ? memcg_kmem_put_cache+0x1b/0xa0
    [  548.589734]  ? kasan_check_write+0x14/0x20
    [  548.589740]  ? _copy_from_user+0x6a/0x90
    [  548.589744]  ? memdup_user+0x42/0x60
    [  548.589750]  ksys_mount+0x83/0xd0
    [  548.589755]  __x64_sys_mount+0x67/0x80
    [  548.589781]  do_syscall_64+0x78/0x170
    [  548.589797]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [  548.589820] RIP: 0033:0x7f76fc331b9a
    [  548.589821] Code: 48 8b 0d 01 c3 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d ce c2 2b 00 f7 d8 64 89 01 48
    [  548.589880] RSP: 002b:00007ffd4f0a0e48 EFLAGS: 00000206 ORIG_RAX: 00000000000000a5
    [  548.589890] RAX: ffffffffffffffda RBX: 000000000146c030 RCX: 00007f76fc331b9a
    [  548.589892] RDX: 000000000146c210 RSI: 000000000146df30 RDI: 0000000001474ec0
    [  548.589895] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000013
    [  548.589897] R10: 00000000c0ed0000 R11: 0000000000000206 R12: 0000000001474ec0
    [  548.589900] R13: 000000000146c210 R14: 0000000000000000 R15: 0000000000000003
    
    [  548.590242] The buggy address belongs to the page:
    [  548.591243] page:ffffea0007a70980 count:0 mapcount:0 mapping:0000000000000000 index:0x0
    [  548.592886] flags: 0x2ffff0000000000()
    [  548.593665] raw: 02ffff0000000000 dead000000000100 dead000000000200 0000000000000000
    [  548.595258] raw: 0000000000000000 0000000000000000 00000000ffffffff 0000000000000000
    [  548.603713] page dumped because: kasan: bad access detected
    
    [  548.605203] Memory state around the buggy address:
    [  548.606198]  ffff8801e9c26480: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    [  548.607676]  ffff8801e9c26500: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    [  548.609157] >ffff8801e9c26580: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    [  548.610629]                                                                 ^
    [  548.612088]  ffff8801e9c26600: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    [  548.613674]  ffff8801e9c26680: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    [  548.615141] ==================================================================
    [  548.616613] Disabling lock debugging due to kernel taint
    [  548.622871] WARNING: CPU: 1 PID: 1295 at mm/page_alloc.c:4065 __alloc_pages_slowpath+0xe4a/0x1420
    [  548.622878] Modules linked in: snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hwdep snd_hda_core snd_pcm snd_timer snd mac_hid i2c_piix4 soundcore ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx raid1 raid0 multipath linear 8139too crct10dif_pclmul crc32_pclmul qxl drm_kms_helper syscopyarea aesni_intel sysfillrect sysimgblt fb_sys_fops ttm drm aes_x86_64 crypto_simd cryptd 8139cp glue_helper mii pata_acpi floppy
    [  548.623217] CPU: 1 PID: 1295 Comm: mount Tainted: G    B             4.18.0-rc1+ #4
    [  548.623219] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
    [  548.623226] RIP: 0010:__alloc_pages_slowpath+0xe4a/0x1420
    [  548.623227] Code: ff ff 01 89 85 c8 fe ff ff e9 91 fc ff ff 41 89 c5 e9 5c fc ff ff 0f 0b 89 f8 25 ff ff f7 ff 89 85 8c fe ff ff e9 d5 f2 ff ff <0f> 0b e9 65 f2 ff ff 65 8b 05 38 81 d2 47 f6 c4 01 74 1c 65 48 8b
    [  548.623281] RSP: 0018:ffff8801f28c7678 EFLAGS: 00010246
    [  548.623284] RAX: 0000000000000000 RBX: 00000000006040c0 RCX: ffffffffb82f73b7
    [  548.623287] RDX: 1ffff1003e518eeb RSI: 000000000000000c RDI: 0000000000000000
    [  548.623290] RBP: ffff8801f28c7880 R08: 0000000000000000 R09: ffffed0047fff2c5
    [  548.623292] R10: 0000000000000001 R11: ffffed0047fff2c4 R12: ffff8801e88de040
    [  548.623295] R13: 00000000006040c0 R14: 000000000000000c R15: ffff8801f28c7938
    [  548.623299] FS:  00007f76fca51840(0000) GS:ffff8801f6f00000(0000) knlGS:0000000000000000
    [  548.623302] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  548.623304] CR2: 00007f19b9171760 CR3: 00000001ed952000 CR4: 00000000000006e0
    [  548.623317] Call Trace:
    [  548.623325]  ? kasan_check_read+0x11/0x20
    [  548.623330]  ? __zone_watermark_ok+0x92/0x240
    [  548.623336]  ? get_page_from_freelist+0x1c3/0x1d90
    [  548.623347]  ? _raw_spin_lock_irqsave+0x2a/0x60
    [  548.623353]  ? warn_alloc+0x250/0x250
    [  548.623358]  ? save_stack+0x46/0xd0
    [  548.623361]  ? kasan_kmalloc+0xad/0xe0
    [  548.623366]  ? __isolate_free_page+0x2a0/0x2a0
    [  548.623370]  ? mount_fs+0x60/0x1a0
    [  548.623374]  ? vfs_kern_mount+0x6b/0x1a0
    [  548.623378]  ? do_mount+0x34a/0x18c0
    [  548.623383]  ? ksys_mount+0x83/0xd0
    [  548.623387]  ? __x64_sys_mount+0x67/0x80
    [  548.623391]  ? do_syscall_64+0x78/0x170
    [  548.623396]  ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [  548.623401]  __alloc_pages_nodemask+0x3c5/0x400
    [  548.623407]  ? __alloc_pages_slowpath+0x1420/0x1420
    [  548.623412]  ? __mutex_lock_slowpath+0x20/0x20
    [  548.623417]  ? kvmalloc_node+0x31/0x80
    [  548.623424]  alloc_pages_current+0x75/0x110
    [  548.623436]  kmalloc_order+0x24/0x60
    [  548.623442]  kmalloc_order_trace+0x24/0xb0
    [  548.623448]  __kmalloc_track_caller+0x207/0x220
    [  548.623455]  ? f2fs_build_node_manager+0x399/0xbb0
    [  548.623460]  kmemdup+0x20/0x50
    [  548.623465]  f2fs_build_node_manager+0x399/0xbb0
    [  548.623470]  f2fs_fill_super+0x195e/0x2b40
    [  548.623477]  ? f2fs_commit_super+0x1b0/0x1b0
    [  548.623481]  ? set_blocksize+0x90/0x140
    [  548.623486]  mount_bdev+0x1c5/0x210
    [  548.623489]  ? f2fs_commit_super+0x1b0/0x1b0
    [  548.623495]  f2fs_mount+0x15/0x20
    [  548.623498]  mount_fs+0x60/0x1a0
    [  548.623503]  ? alloc_vfsmnt+0x309/0x360
    [  548.623508]  vfs_kern_mount+0x6b/0x1a0
    [  548.623513]  do_mount+0x34a/0x18c0
    [  548.623518]  ? lockref_put_or_lock+0xcf/0x160
    [  548.623523]  ? copy_mount_string+0x20/0x20
    [  548.623528]  ? memcg_kmem_put_cache+0x1b/0xa0
    [  548.623533]  ? kasan_check_write+0x14/0x20
    [  548.623537]  ? _copy_from_user+0x6a/0x90
    [  548.623542]  ? memdup_user+0x42/0x60
    [  548.623547]  ksys_mount+0x83/0xd0
    [  548.623552]  __x64_sys_mount+0x67/0x80
    [  548.623557]  do_syscall_64+0x78/0x170
    [  548.623562]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [  548.623566] RIP: 0033:0x7f76fc331b9a
    [  548.623567] Code: 48 8b 0d 01 c3 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d ce c2 2b 00 f7 d8 64 89 01 48
    [  548.623632] RSP: 002b:00007ffd4f0a0e48 EFLAGS: 00000206 ORIG_RAX: 00000000000000a5
    [  548.623636] RAX: ffffffffffffffda RBX: 000000000146c030 RCX: 00007f76fc331b9a
    [  548.623639] RDX: 000000000146c210 RSI: 000000000146df30 RDI: 0000000001474ec0
    [  548.623641] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000013
    [  548.623643] R10: 00000000c0ed0000 R11: 0000000000000206 R12: 0000000001474ec0
    [  548.623646] R13: 000000000146c210 R14: 0000000000000000 R15: 0000000000000003
    [  548.623650] ---[ end trace 4ce02f25ff7d3df5 ]---
    [  548.623656] F2FS-fs (loop0): Failed to initialize F2FS node manager
    [  548.627936] F2FS-fs (loop0): Invalid log blocks per segment (8201)
    
    [  548.627940] F2FS-fs (loop0): Can't find valid F2FS filesystem in 1th superblock
    [  548.635835] F2FS-fs (loop0): Failed to initialize F2FS node manager
    
    - Location
    https://elixir.bootlin.com/linux/v4.18-rc1/source/fs/f2fs/segment.c#L3578
    
            sit_i->sit_bitmap = kmemdup(src_bitmap, bitmap_size, GFP_KERNEL);
    
    Buffer overrun happens when doing memcpy. I suspect there is missing (inconsistent) checks on bitmap_size.
    
    Reported by Wen Xu (wen.xu@gatech.edu) from SSLab, Gatech.
    
    Reported-by: Wen Xu <wen.xu@gatech.edu>
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7092eb81a06292f8284ef60d8a99137cae20e9b4
Author: Zumeng Chen <zumeng.chen@gmail.com>
Date:   Wed Jul 4 12:35:29 2018 +0800

    mfd: ti_am335x_tscadc: Fix struct clk memory leak
    
    [ Upstream commit c2b1509c77a99a0dcea0a9051ca743cb88385f50 ]
    
    Use devm_elk_get() to let Linux manage struct clk memory to avoid the following
    memory leakage report:
    
    unreferenced object 0xdd75efc0 (size 64):
      comm "systemd-udevd", pid 186, jiffies 4294945126 (age 1195.750s)
      hex dump (first 32 bytes):
        61 64 63 5f 74 73 63 5f 66 63 6b 00 00 00 00 00  adc_tsc_fck.....
        00 00 00 00 92 03 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<c0a15260>] kmemleak_alloc+0x40/0x74
        [<c0287a10>] __kmalloc_track_caller+0x198/0x388
        [<c0255610>] kstrdup+0x40/0x5c
        [<c025565c>] kstrdup_const+0x30/0x3c
        [<c0636630>] __clk_create_clk+0x60/0xac
        [<c0630918>] clk_get_sys+0x74/0x144
        [<c0630cdc>] clk_get+0x5c/0x68
        [<bf0ac540>] ti_tscadc_probe+0x260/0x468 [ti_am335x_tscadc]
        [<c06f3c0c>] platform_drv_probe+0x60/0xac
        [<c06f1abc>] driver_probe_device+0x214/0x2dc
        [<c06f1c18>] __driver_attach+0x94/0xc0
        [<c06efe2c>] bus_for_each_dev+0x90/0xa0
        [<c06f1470>] driver_attach+0x28/0x30
        [<c06f1030>] bus_add_driver+0x184/0x1ec
        [<c06f2b74>] driver_register+0xb0/0xf0
        [<c06f3b4c>] __platform_driver_register+0x40/0x54
    
    Signed-off-by: Zumeng Chen <zumeng.chen@gmail.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c919a682712e802b82b81d6fa50ca1bcf31f5ac6
Author: Mauricio Faria de Oliveira <mfo@canonical.com>
Date:   Wed Jul 25 22:46:28 2018 -0300

    partitions/aix: fix usage of uninitialized lv_info and lvname structures
    
    [ Upstream commit 14cb2c8a6c5dae57ee3e2da10fa3db2b9087e39e ]
    
    The if-block that sets a successful return value in aix_partition()
    uses 'lvip[].pps_per_lv' and 'n[].name' potentially uninitialized.
    
    For example, if 'numlvs' is zero or alloc_lvn() fails, neither is
    initialized, but are used anyway if alloc_pvd() succeeds after it.
    
    So, make the alloc_pvd() call conditional on their initialization.
    
    This has been hit when attaching an apparently corrupted/stressed
    AIX LUN, misleading the kernel to pr_warn() invalid data and hang.
    
        [...] partition (null) (11 pp's found) is not contiguous
        [...] partition (null) (2 pp's found) is not contiguous
        [...] partition (null) (3 pp's found) is not contiguous
        [...] partition (null) (64 pp's found) is not contiguous
    
    Fixes: 6ceea22bbbc8 ("partitions: add aix lvm partition support files")
    Signed-off-by: Mauricio Faria de Oliveira <mfo@canonical.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 845a0a1b29dc4af57e6ed7beb8d943bfd7e74617
Author: Mauricio Faria de Oliveira <mfo@canonical.com>
Date:   Wed Jul 25 22:46:29 2018 -0300

    partitions/aix: append null character to print data from disk
    
    [ Upstream commit d43fdae7bac2def8c4314b5a49822cb7f08a45f1 ]
    
    Even if properly initialized, the lvname array (i.e., strings)
    is read from disk, and might contain corrupt data (e.g., lack
    the null terminating character for strings).
    
    So, make sure the partition name string used in pr_warn() has
    the null terminating character.
    
    Fixes: 6ceea22bbbc8 ("partitions: add aix lvm partition support files")
    Suggested-by: Daniel J. Axtens <daniel.axtens@canonical.com>
    Signed-off-by: Mauricio Faria de Oliveira <mfo@canonical.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2541d77bf0c8733ea276f9fb798f850a494a8560
Author: Petr Machata <petrm@mellanox.com>
Date:   Fri Jul 27 15:26:55 2018 +0300

    net: dcb: For wild-card lookups, use priority -1, not 0
    
    [ Upstream commit 08193d1a893c802c4b807e4d522865061f4e9f4f ]
    
    The function dcb_app_lookup walks the list of specified DCB APP entries,
    looking for one that matches a given criteria: ifindex, selector,
    protocol ID and optionally also priority. The "don't care" value for
    priority is set to 0, because that priority has not been allowed under
    CEE regime, which predates the IEEE standardization.
    
    Under IEEE, 0 is a valid priority number. But because dcb_app_lookup
    considers zero a wild card, attempts to add an APP entry with priority 0
    fail when other entries exist for a given ifindex / selector / PID
    triplet.
    
    Fix by changing the wild-card value to -1.
    
    Signed-off-by: Petr Machata <petrm@mellanox.com>
    Signed-off-by: Ido Schimmel <idosch@mellanox.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 351bce359e6e92cac585b0f8a8bcb96ccee8dfcf
Author: Yelena Krivosheev <yelena@marvell.com>
Date:   Wed Jul 18 18:10:51 2018 +0200

    net: mvneta: fix mtu change on port without link
    
    [ Upstream commit 8466baf788ec3e18836bd9c91ba0b1a07af25878 ]
    
    It is incorrect to enable TX/RX queues (call by mvneta_port_up()) for
    port without link. Indeed MTU change for interface without link causes TX
    queues to stuck.
    
    Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP
    network unit")
    Signed-off-by: Yelena Krivosheev <yelena@marvell.com>
    [gregory.clement: adding Fixes tags and rewording commit log]
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.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 d8596403ebd873c7c47229939a423f8d431a96be
Author: Anton Vasilyev <vasilyev@ispras.ru>
Date:   Mon Jul 23 19:53:30 2018 +0300

    gpio: ml-ioh: Fix buffer underwrite on probe error path
    
    [ Upstream commit 4bf4eed44bfe288f459496eaf38089502ef91a79 ]
    
    If ioh_gpio_probe() fails on devm_irq_alloc_descs() then chip may point
    to any element of chip_save array, so reverse iteration from pointer chip
    may become chip_save[-1] and gpiochip_remove() will operate with wrong
    memory.
    
    The patch fix the error path of ioh_gpio_probe() to correctly bypass
    chip_save array.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
    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 04924815bdc2a86e2a94b254397744712187352e
Author: Joerg Roedel <jroedel@suse.de>
Date:   Wed Jul 25 17:48:01 2018 +0200

    x86/mm: Remove in_nmi() warning from vmalloc_fault()
    
    [ Upstream commit 6863ea0cda8725072522cd78bda332d9a0b73150 ]
    
    It is perfectly okay to take page-faults, especially on the
    vmalloc area while executing an NMI handler. Remove the
    warning.
    
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: David H. Gutteridge <dhgutteridge@sympatico.ca>
    Cc: "H . Peter Anvin" <hpa@zytor.com>
    Cc: linux-mm@kvack.org
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Jiri Kosina <jkosina@suse.cz>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: David Laight <David.Laight@aculab.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Eduardo Valentin <eduval@amazon.com>
    Cc: Greg KH <gregkh@linuxfoundation.org>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: aliguori@amazon.com
    Cc: daniel.gruss@iaik.tugraz.at
    Cc: hughd@google.com
    Cc: keescook@google.com
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Waiman Long <llong@redhat.com>
    Cc: Pavel Machek <pavel@ucw.cz>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: joro@8bytes.org
    Link: https://lkml.kernel.org/r/1532533683-5988-2-git-send-email-joro@8bytes.org
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 128b37430eb5113155e0db556cb903aa4220fdf3
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Mon Jul 30 13:57:41 2018 +0200

    Bluetooth: hidp: Fix handling of strncpy for hid->name information
    
    [ Upstream commit b3cadaa485f0c20add1644a5c877b0765b285c0c ]
    
    This fixes two issues with setting hid->name information.
    
      CC      net/bluetooth/hidp/core.o
    In function ‘hidp_setup_hid’,
        inlined from ‘hidp_session_dev_init’ at net/bluetooth/hidp/core.c:815:9,
        inlined from ‘hidp_session_new’ at net/bluetooth/hidp/core.c:953:8,
        inlined from ‘hidp_connection_add’ at net/bluetooth/hidp/core.c:1366:8:
    net/bluetooth/hidp/core.c:778:2: warning: ‘strncpy’ output may be truncated copying 127 bytes from a string of length 127 [-Wstringop-truncation]
      strncpy(hid->name, req->name, sizeof(req->name) - 1);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
      CC      net/bluetooth/hidp/core.o
    net/bluetooth/hidp/core.c: In function ‘hidp_setup_hid’:
    net/bluetooth/hidp/core.c:778:38: warning: argument to ‘sizeof’ in ‘strncpy’ call is the same expression as the source; did you mean to use the size of the destination? [-Wsizeof-pointer-memaccess]
      strncpy(hid->name, req->name, sizeof(req->name));
                                          ^
    
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e8f26c2d5ab2471c2531204dcba88ce9eaacf28
Author: Anton Vasilyev <vasilyev@ispras.ru>
Date:   Fri Jul 27 16:51:57 2018 +0300

    scsi: 3ware: fix return 0 on the error path of probe
    
    [ Upstream commit 4dc98c1995482262e70e83ef029135247fafe0f2 ]
    
    tw_probe() returns 0 in case of fail of tw_initialize_device_extension(),
    pci_resource_start() or tw_reset_sequence() and releases resources.
    twl_probe() returns 0 in case of fail of twl_initialize_device_extension(),
    pci_iomap() and twl_reset_sequence().  twa_probe() returns 0 in case of
    fail of tw_initialize_device_extension(), ioremap() and
    twa_reset_sequence().
    
    The patch adds retval initialization for these cases.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
    Acked-by: Adam Radford <aradford@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9ab273365d023de8296aa4b08a424a8b2ef8d9c
Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Date:   Mon Jul 2 12:01:53 2018 -0700

    ata: libahci: Correct setting of DEVSLP register
    
    [ Upstream commit 2dbb3ec29a6c069035857a2fc4c24e80e5dfe3cc ]
    
    We have seen that on some platforms, SATA device never show any DEVSLP
    residency. This prevent power gating of SATA IP, which prevent system
    to transition to low power mode in systems with SLP_S0 aka modern
    standby systems. The PHY logic is off only in DEVSLP not in slumber.
    Reference:
    https://www.intel.com/content/dam/www/public/us/en/documents/datasheets
    /332995-skylake-i-o-platform-datasheet-volume-1.pdf
    Section 28.7.6.1
    
    Here driver is trying to do read-modify-write the devslp register. But
    not resetting the bits for which this driver will modify values (DITO,
    MDAT and DETO). So simply reset those bits before updating to new values.
    
    Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 220146d5c8fa5b79db3a6ceda2f71df1c5790c7c
Author: Paul Burton <paul.burton@mips.com>
Date:   Fri Jul 27 18:23:19 2018 -0700

    MIPS: Fix ISA virt/bus conversion for non-zero PHYS_OFFSET
    
    [ Upstream commit 0494d7ffdcebc6935410ea0719b24ab626675351 ]
    
    isa_virt_to_bus() & isa_bus_to_virt() claim to treat ISA bus addresses
    as being identical to physical addresses, but they fail to do so in the
    presence of a non-zero PHYS_OFFSET.
    
    Correct this by having them use virt_to_phys() & phys_to_virt(), which
    consolidates the calculations to one place & ensures that ISA bus
    addresses do indeed match physical addresses.
    
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/20047/
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: Vladimir Kondratiev <vladimir.kondratiev@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 412d0c7892c4c3da023f0de916ae9a99206e3920
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Thu Jul 26 15:59:48 2018 +0200

    ath10k: prevent active scans on potential unusable channels
    
    [ Upstream commit 3f259111583801013cb605bb4414aa529adccf1c ]
    
    The QCA4019 hw1.0 firmware 10.4-3.2.1-00050 and 10.4-3.5.3-00053 (and most
    likely all other) seem to ignore the WMI_CHAN_FLAG_DFS flag during the
    scan. This results in transmission (probe requests) on channels which are
    not "available" for transmissions.
    
    Since the firmware is closed source and nothing can be done from our side
    to fix the problem in it, the driver has to work around this problem. The
    WMI_CHAN_FLAG_PASSIVE seems to be interpreted by the firmware to not
    scan actively on a channel unless an AP was detected on it. Simple probe
    requests will then be transmitted by the STA on the channel.
    
    ath10k must therefore also use this flag when it queues a radar channel for
    scanning. This should reduce the chance of an active scan when the channel
    might be "unusable" for transmissions.
    
    Fixes: e8a50f8ba44b ("ath10k: introduce DFS implementation")
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e4dac32a9b8983a47260dcc364ef516153aee73
Author: Finn Thain <fthain@telegraphics.com.au>
Date:   Mon Jul 2 04:21:18 2018 -0400

    macintosh/via-pmu: Add missing mmio accessors
    
    [ Upstream commit 576d5290d678a651b9f36050fc1717e0573aca13 ]
    
    Add missing in_8() accessors to init_pmu() and pmu_sr_intr().
    
    This fixes several sparse warnings:
    drivers/macintosh/via-pmu.c:536:29: warning: dereference of noderef expression
    drivers/macintosh/via-pmu.c:537:33: warning: dereference of noderef expression
    drivers/macintosh/via-pmu.c:1455:17: warning: dereference of noderef expression
    drivers/macintosh/via-pmu.c:1456:69: warning: dereference of noderef expression
    
    Tested-by: Stan Johnson <userm57@yahoo.com>
    Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
    Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
    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 4d9f6cff68d4e54ee8ec8fa65f7962537af431fa
Author: Anton Vasilyev <vasilyev@ispras.ru>
Date:   Fri Jul 27 16:39:31 2018 +0300

    tty: rocket: Fix possible buffer overwrite on register_PCI
    
    [ Upstream commit 0419056ec8fd01ddf5460d2dba0491aad22657dd ]
    
    If number of isa and pci boards exceed NUM_BOARDS on the path
    rp_init()->init_PCI()->register_PCI() then buffer overwrite occurs
    in register_PCI() on assign rcktpt_io_addr[i].
    
    The patch adds check on upper bound for index of registered
    board in register_PCI.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
    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 9b48a687f1764d5fa301209927626c221ab01909
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Aug 2 11:24:47 2018 +0300

    uio: potential double frees if __uio_register_device() fails
    
    [ Upstream commit f019f07ecf6a6b8bd6d7853bce70925d90af02d1 ]
    
    The uio_unregister_device() function assumes that if "info->uio_dev" is
    non-NULL that means "info" is fully allocated.  Setting info->uio_de
    has to be the last thing in the function.
    
    In the current code, if request_threaded_irq() fails then we return with
    info->uio_dev set to non-NULL but info is not fully allocated and it can
    lead to double frees.
    
    Fixes: beafc54c4e2f ("UIO: Add the User IO core code")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.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 f2675e34bd585f3187b9becaa24a259f7361928b
Author: BingJing Chang <bingjingc@synology.com>
Date:   Wed Aug 1 17:08:36 2018 +0800

    md/raid5: fix data corruption of replacements after originals dropped
    
    [ Upstream commit d63e2fc804c46e50eee825c5d3a7228e07048b47 ]
    
    During raid5 replacement, the stripes can be marked with R5_NeedReplace
    flag. Data can be read from being-replaced devices and written to
    replacing spares without reading all other devices. (It's 'replace'
    mode. s.replacing = 1) If a being-replaced device is dropped, the
    replacement progress will be interrupted and resumed with pure recovery
    mode. However, existing stripes before being interrupted cannot read
    from the dropped device anymore. It prints lots of WARN_ON messages.
    And it results in data corruption because existing stripes write
    problematic data into its replacement device and update the progress.
    
    \# Erase disks (1MB + 2GB)
    dd if=/dev/zero of=/dev/sda bs=1MB count=2049
    dd if=/dev/zero of=/dev/sdb bs=1MB count=2049
    dd if=/dev/zero of=/dev/sdc bs=1MB count=2049
    dd if=/dev/zero of=/dev/sdd bs=1MB count=2049
    mdadm -C /dev/md0 -amd -R -l5 -n3 -x0 /dev/sd[abc] -z 2097152
    \# Ensure array stores non-zero data
    dd if=/root/data_4GB.iso of=/dev/md0 bs=1MB
    \# Start replacement
    mdadm /dev/md0 -a /dev/sdd
    mdadm /dev/md0 --replace /dev/sda
    
    Then, Hot-plug out /dev/sda during recovery, and wait for recovery done.
    echo check > /sys/block/md0/md/sync_action
    cat /sys/block/md0/md/mismatch_cnt # it will be greater than 0.
    
    Soon after you hot-plug out /dev/sda, you will see many WARN_ON
    messages. The replacement recovery will be interrupted shortly. After
    the recovery finishes, it will result in data corruption.
    
    Actually, it's just an unhandled case of replacement. In commit
    <f94c0b6658c7> (md/raid5: fix interaction of 'replace' and 'recovery'.),
    if a NeedReplace device is not UPTODATE then that is an error, the
    commit just simply print WARN_ON but also mark these corrupted stripes
    with R5_WantReplace. (it means it's ready for writes.)
    
    To fix this case, we can leverage 'sync and replace' mode mentioned in
    commit <9a3e1101b827> (md/raid5: detect and handle replacements during
    recovery.). We can add logics to detect and use 'sync and replace' mode
    for these stripes.
    
    Reported-by: Alex Chen <alexchen@synology.com>
    Reviewed-by: Alex Wu <alexwu@synology.com>
    Reviewed-by: Chung-Chiang Cheng <cccheng@synology.com>
    Signed-off-by: BingJing Chang <bingjingc@synology.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb8ef134ed5833f872fce2407dd814cf5ed0274d
Author: Mike Christie <mchristi@redhat.com>
Date:   Thu Aug 2 12:12:20 2018 -0500

    scsi: target: fix __transport_register_session locking
    
    [ Upstream commit 6a64f6e1591322beb8ce16e952a53582caf2a15c ]
    
    When __transport_register_session is called from transport_register_session
    irqs will already have been disabled, so we do not want the unlock irq call
    to enable them until the higher level has done the final
    spin_unlock_irqrestore/ spin_unlock_irq.
    
    This has __transport_register_session use the save/restore call.
    
    Signed-off-by: Mike Christie <mchristi@redhat.com>
    Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 209c27b04ccc679bd7da0b84c2144733ce79c8a3
Author: Johan Hedberg <johan.hedberg@intel.com>
Date:   Sat Aug 4 23:40:26 2018 +0300

    Bluetooth: h5: Fix missing dependency on BT_HCIUART_SERDEV
    
    [ Upstream commit 6c3711ec64fd23a9abc8aaf59a9429569a6282df ]
    
    This driver was recently updated to use serdev, so add the appropriate
    dependency. Without this one can get compiler warnings like this if
    CONFIG_SERIAL_DEV_BUS is not enabled:
    
      CC [M]  drivers/bluetooth/hci_h5.o
    drivers/bluetooth/hci_h5.c:934:36: warning: ‘h5_serdev_driver’ defined but not used [-Wunused-variable]
     static struct serdev_device_driver h5_serdev_driver = {
                                        ^~~~~~~~~~~~~~~~
    
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45845e2f817e6b1dfa00a70af92dbd8d42795f33
Author: Daniel Micay <danielmicay@gmail.com>
Date:   Mon Jun 5 21:52:34 2017 -0700

    staging/rts5208: Fix read overflow in memcpy
    
    commit 88a5b39b69ab1828fd4130e2baadd184109cea69 upstream.
    
    Noticed by FORTIFY_SOURCE, this swaps memcpy() for strncpy() to zero-value
    fill the end of the buffer instead of over-reading a string from .rodata.
    
    Signed-off-by: Daniel Micay <danielmicay@gmail.com>
    [kees: wrote commit log]
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Wayne Porter <wporter82@gmail.com>
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

commit 0ee00fd88e4eefdb5b6a3d7577e543675483b126
Author: Jia-Ju Bai <baijiaju1990@163.com>
Date:   Mon Jun 5 15:30:16 2017 +0800

    staging: rt5208: Fix a sleep-in-atomic bug in xd_copy_page
    
    commit 498c4b4e9c23855d17ecc2a108d949bb68020481 upstream.
    
    The driver may sleep under a spin lock, and the function call path is:
    rtsx_exclusive_enter_ss (acquire the lock by spin_lock)
      rtsx_enter_ss
        rtsx_power_off_card
          xd_cleanup_work
            xd_delay_write
              xd_finish_write
                xd_copy_page
                  wait_timeout
                    schedule_timeout --> may sleep
    
    To fix it, "wait_timeout" is replaced with mdelay in xd_copy_page.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com>
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ec63987f0fb2359a6130b7d75fb3cfe5121b688
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Mon May 29 09:22:07 2017 +0200

    kthread: fix boot hang (regression) on MIPS/OpenRISC
    
    commit b0f5a8f32e8bbdaae1abb8abe2d3cbafaba57e08 upstream.
    
    This fixes a regression in commit 4d6501dce079 where I didn't notice
    that MIPS and OpenRISC were reinitialising p->{set,clear}_child_tid to
    NULL after our initialisation in copy_process().
    
    We can simply get rid of the arch-specific initialisation here since it
    is now always done in copy_process() before hitting copy_thread{,_tls}().
    
    Review notes:
    
     - As far as I can tell, copy_process() is the only user of
       copy_thread_tls(), which is the only caller of copy_thread() for
       architectures that don't implement copy_thread_tls().
    
     - After this patch, there is no arch-specific code touching
       p->set_child_tid or p->clear_child_tid whatsoever.
    
     - It may look like MIPS/OpenRISC wanted to always have these fields be
       NULL, but that's not true, as copy_process() would unconditionally
       set them again _after_ calling copy_thread_tls() before commit
       4d6501dce079.
    
    Fixes: 4d6501dce079c1eb6bf0b1d8f528a5e81770109e ("kthread: Fix use-after-free if kthread fork fails")
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Guenter Roeck <linux@roeck-us.net> # MIPS only
    Acked-by: Stafford Horne <shorne@gmail.com>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: Jonas Bonn <jonas@southpole.se>
    Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
    Cc: openrisc@lists.librecores.org
    Cc: Jamie Iles <jamie.iles@oracle.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3fb2459d90e34356f47fd6810f1ee1e1ed21b446
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Tue May 9 09:39:59 2017 +0200

    kthread: Fix use-after-free if kthread fork fails
    
    commit 4d6501dce079c1eb6bf0b1d8f528a5e81770109e upstream.
    
    If a kthread forks (e.g. usermodehelper since commit 1da5c46fa965) but
    fails in copy_process() between calling dup_task_struct() and setting
    p->set_child_tid, then the value of p->set_child_tid will be inherited
    from the parent and get prematurely freed by free_kthread_struct().
    
        kthread()
         - worker_thread()
            - process_one_work()
            |  - call_usermodehelper_exec_work()
            |     - kernel_thread()
            |        - _do_fork()
            |           - copy_process()
            |              - dup_task_struct()
            |                 - arch_dup_task_struct()
            |                    - tsk->set_child_tid = current->set_child_tid // implied
            |              - ...
            |              - goto bad_fork_*
            |              - ...
            |              - free_task(tsk)
            |                 - free_kthread_struct(tsk)
            |                    - kfree(tsk->set_child_tid)
            - ...
            - schedule()
               - __schedule()
                  - wq_worker_sleeping()
                     - kthread_data(task)->flags // UAF
    
    The problem started showing up with commit 1da5c46fa965 since it reused
    ->set_child_tid for the kthread worker data.
    
    A better long-term solution might be to get rid of the ->set_child_tid
    abuse. The comment in set_kthread_struct() also looks slightly wrong.
    
    Debugged-by: Jamie Iles <jamie.iles@oracle.com>
    Fixes: 1da5c46fa965 ("kthread: Make struct kthread kmalloc'ed")
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jamie Iles <jamie.iles@oracle.com>
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/20170509073959.17858-1-vegard.nossum@oracle.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 689d21030d47833a73923c94b059a68099b55797
Author: Ritesh Harjani <riteshh@codeaurora.org>
Date:   Wed Aug 9 18:28:32 2017 +0530

    cfq: Give a chance for arming slice idle timer in case of group_idle
    
    commit b3193bc0dca9bb69c8ba1ec1a318105c76eb4172 upstream.
    
    In below scenario blkio cgroup does not work as per their assigned
    weights :-
    1. When the underlying device is nonrotational with a single HW queue
    with depth of >= CFQ_HW_QUEUE_MIN
    2. When the use case is forming two blkio cgroups cg1(weight 1000) &
    cg2(wight 100) and two processes(file1 and file2) doing sync IO in
    their respective blkio cgroups.
    
    For above usecase result of fio (without this patch):-
    file1: (groupid=0, jobs=1): err= 0: pid=685: Thu Jan  1 19:41:49 1970
      write: IOPS=1315, BW=41.1MiB/s (43.1MB/s)(1024MiB/24906msec)
    <...>
    file2: (groupid=0, jobs=1): err= 0: pid=686: Thu Jan  1 19:41:49 1970
      write: IOPS=1295, BW=40.5MiB/s (42.5MB/s)(1024MiB/25293msec)
    <...>
    // both the process BW is equal even though they belong to diff.
    cgroups with weight of 1000(cg1) and 100(cg2)
    
    In above case (for non rotational NCQ devices),
    as soon as the request from cg1 is completed and even
    though it is provided with higher set_slice=10, because of CFQ
    algorithm when the driver tries to fetch the request, CFQ expires
    this group without providing any idle time nor weight priority
    and schedules another cfq group (in this case cg2).
    And thus both cfq groups(cg1 & cg2) keep alternating to get the
    disk time and hence loses the cgroup weight based scheduling.
    
    Below patch gives a chance to cfq algorithm (cfq_arm_slice_timer)
    to arm the slice timer in case group_idle is enabled.
    In case if group_idle is also not required (including for nonrotational
    NCQ drives), we need to explicitly set group_idle = 0 from sysfs for
    such cases.
    
    With this patch result of fio(for above usecase) :-
    file1: (groupid=0, jobs=1): err= 0: pid=690: Thu Jan  1 00:06:08 1970
      write: IOPS=1706, BW=53.3MiB/s (55.9MB/s)(1024MiB/19197msec)
    <..>
    file2: (groupid=0, jobs=1): err= 0: pid=691: Thu Jan  1 00:06:08 1970
      write: IOPS=1043, BW=32.6MiB/s (34.2MB/s)(1024MiB/31401msec)
    <..>
    // In this processes BW is as per their respective cgroups weight.
    
    Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 933ce26bda5c1caa2e3cd77f0a6d93ce53f9a63a
Author: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Date:   Mon Sep 3 15:11:11 2018 +0530

    i2c: xiic: Make the start and the byte count write atomic
    
    commit ae7304c3ea28a3ba47a7a8312c76c654ef24967e upstream.
    
    Disable interrupts while configuring the transfer and enable them back.
    
    We have below as the programming sequence
    1. start and slave address
    2. byte count and stop
    
    In some customer platform there was a lot of interrupts between 1 and 2
    and after slave address (around 7 clock cyles) if 2 is not executed
    then the transaction is nacked.
    
    To fix this case make the 2 writes atomic.
    
    Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
    Signed-off-by: Michal Simek <michal.simek@xilinx.com>
    [wsa: added a newline for better readability]
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb4009e1c6baf715a241ddc508ccf5c5f456f60e
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Mon Aug 6 07:14:51 2018 -0500

    ASoC: wm8994: Fix missing break in switch
    
    commit ad0eaee6195db1db1749dd46b9e6f4466793d178 upstream.
    
    Add missing break statement in order to prevent the code from falling
    through to the default case.
    
    Addresses-Coverity-ID: 115050 ("Missing break in switch")
    Reported-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    [Gustavo: Backported to 3.16..4.18 - Remove code comment removal]
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd6ff2938d7be1a4eecdd7ba9af466959c95df3b
Author: Chas Williams <chas3@att.com>
Date:   Thu Sep 6 11:10:41 2018 -0400

    Fixes: Commit 86af955d02bb ("mm: numa: avoid waiting on freed migrated pages")
    
    Commit 86af955d02bb ("mm: numa: avoid waiting on freed migrated pages")
    was an incomplete backport of the upstream commit.  It is necessary to
    always reset page_nid before attempting any early exit.
    
    The original commit conflicted due to lack of commit 82b0f8c39a38
    ("mm: join struct fault_env and vm_fault") in 4.9 so it wasn't a clean
    application, and the change must have just gotten lost in the noise.
    
    Signed-off-by: Chas Williams <chas3@att.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 566f4e263c0d13b2d34199fa1f4c337453369d19
Author: Govindarajulu Varadarajan <gvaradar@cisco.com>
Date:   Mon Jul 30 09:56:54 2018 -0700

    enic: do not call enic_change_mtu in enic_probe
    
    commit cb5c6568867325f9905e80c96531d963bec8e5ea upstream.
    
    In commit ab123fe071c9 ("enic: handle mtu change for vf properly")
    ASSERT_RTNL() is added to _enic_change_mtu() to prevent it from being
    called without rtnl held. enic_probe() calls enic_change_mtu()
    without rtnl held. At this point netdev is not registered yet.
    Remove call to enic_change_mtu and assign the mtu to netdev->mtu.
    
    Fixes: ab123fe071c9 ("enic: handle mtu change for vf properly")
    Signed-off-by: Govindarajulu Varadarajan <gvaradar@cisco.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f24049f47194791d0393450b4f5cebea9f0b5e89
Author: Tyler Hicks <tyhicks@canonical.com>
Date:   Tue Sep 4 15:24:05 2018 +0000

    irda: Only insert new objects into the global database via setsockopt
    
    The irda_setsockopt() function conditionally allocates memory for a new
    self->ias_object or, in some cases, reuses the existing
    self->ias_object. Existing objects were incorrectly reinserted into the
    LM_IAS database which corrupted the doubly linked list used for the
    hashbin implementation of the LM_IAS database. When combined with a
    memory leak in irda_bind(), this issue could be leveraged to create a
    use-after-free vulnerability in the hashbin list. This patch fixes the
    issue by only inserting newly allocated objects into the database.
    
    CVE-2018-6555
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Reviewed-by: Seth Arnold <seth.arnold@canonical.com>
    Reviewed-by: Stefan Bader <stefan.bader@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f0547e071f848a665056e18c70cc2741a96ca76
Author: Tyler Hicks <tyhicks@canonical.com>
Date:   Tue Sep 4 15:24:04 2018 +0000

    irda: Fix memory leak caused by repeated binds of irda socket
    
    The irda_bind() function allocates memory for self->ias_obj without
    checking to see if the socket is already bound. A userspace process
    could repeatedly bind the socket, have each new object added into the
    LM-IAS database, and lose the reference to the old object assigned to
    the socket to exhaust memory resources. This patch errors out of the
    bind operation when self->ias_obj is already assigned.
    
    CVE-2018-6554
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Reviewed-by: Seth Arnold <seth.arnold@canonical.com>
    Reviewed-by: Stefan Bader <stefan.bader@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2daf1a7495833dad8ac2875906b471a0d55e6238
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Tue Aug 28 12:59:10 2018 -0700

    kbuild: make missing $DEPMOD a Warning instead of an Error
    
    commit 914b087ff9e0e9a399a4927fa30793064afc0178 upstream.
    
    When $DEPMOD is not found, only print a warning instead of exiting
    with an error message and error status:
    
    Warning: 'make modules_install' requires /sbin/depmod. Please install it.
    This is probably in the kmod package.
    
    Change the Error to a Warning because "not all build hosts for cross
    compiling Linux are Linux systems and are able to provide a working
    port of depmod, especially at the file patch /sbin/depmod."
    
    I.e., "make modules_install" may be used to copy/install the
    loadable modules files to a target directory on a build system and
    then transferred to an embedded device where /sbin/depmod is run
    instead of it being run on the build system.
    
    Fixes: 934193a654c1 ("kbuild: verify that $DEPMOD is installed")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
    Cc: stable@vger.kernel.org
    Cc: Lucas De Marchi <lucas.demarchi@profusion.mobi>
    Cc: Lucas De Marchi <lucas.de.marchi@gmail.com>
    Cc: Michal Marek <michal.lkml@markovi.net>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Chih-Wei Huang <cwhuang@linux.org.tw>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Maxim Zhukov <mussitantesmortem@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fa2d7df55faafa55afc744bbfc01d75bace457cf
Author: Joel Fernandes (Google) <joel@joelfernandes.org>
Date:   Mon Jul 23 14:25:31 2018 -0700

    debugobjects: Make stack check warning more informative
    
    commit fc91a3c4c27acdca0bc13af6fbb68c35cfd519f2 upstream.
    
    While debugging an issue debugobject tracking warned about an annotation
    issue of an object on stack. It turned out that the issue was due to the
    object in concern being on a different stack which was due to another
    issue.
    
    Thomas suggested to print the pointers and the location of the stack for
    the currently running task. This helped to figure out that the object was
    on the wrong stack.
    
    As this is general useful information for debugging similar issues, make
    the error message more informative by printing the pointers.
    
    [ tglx: Massaged changelog ]
    
    Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Waiman Long <longman@redhat.com>
    Acked-by: Yang Shi <yang.shi@linux.alibaba.com>
    Cc: kernel-team@android.com
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: astrachan@google.com
    Link: https://lkml.kernel.org/r/20180723212531.202328-1-joel@joelfernandes.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 174b32e22a7bcedf76b35cce85569bdd70ee1934
Author: Qu Wenruo <wqu@suse.com>
Date:   Fri Jun 22 12:35:00 2018 +0800

    btrfs: Don't remove block group that still has pinned down bytes
    
    [ Upstream commit 43794446548730ac8461be30bbe47d5d027d1d16 ]
    
    [BUG]
    Under certain KVM load and LTP tests, it is possible to hit the
    following calltrace if quota is enabled:
    
    BTRFS critical (device vda2): unable to find logical 8820195328 length 4096
    BTRFS critical (device vda2): unable to find logical 8820195328 length 4096
    
    WARNING: CPU: 0 PID: 49 at ../block/blk-core.c:172 blk_status_to_errno+0x1a/0x30
    CPU: 0 PID: 49 Comm: kworker/u2:1 Not tainted 4.12.14-15-default #1 SLE15 (unreleased)
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014
    Workqueue: btrfs-endio-write btrfs_endio_write_helper [btrfs]
    task: ffff9f827b340bc0 task.stack: ffffb4f8c0304000
    RIP: 0010:blk_status_to_errno+0x1a/0x30
    Call Trace:
     submit_extent_page+0x191/0x270 [btrfs]
     ? btrfs_create_repair_bio+0x130/0x130 [btrfs]
     __do_readpage+0x2d2/0x810 [btrfs]
     ? btrfs_create_repair_bio+0x130/0x130 [btrfs]
     ? run_one_async_done+0xc0/0xc0 [btrfs]
     __extent_read_full_page+0xe7/0x100 [btrfs]
     ? run_one_async_done+0xc0/0xc0 [btrfs]
     read_extent_buffer_pages+0x1ab/0x2d0 [btrfs]
     ? run_one_async_done+0xc0/0xc0 [btrfs]
     btree_read_extent_buffer_pages+0x94/0xf0 [btrfs]
     read_tree_block+0x31/0x60 [btrfs]
     read_block_for_search.isra.35+0xf0/0x2e0 [btrfs]
     btrfs_search_slot+0x46b/0xa00 [btrfs]
     ? kmem_cache_alloc+0x1a8/0x510
     ? btrfs_get_token_32+0x5b/0x120 [btrfs]
     find_parent_nodes+0x11d/0xeb0 [btrfs]
     ? leaf_space_used+0xb8/0xd0 [btrfs]
     ? btrfs_leaf_free_space+0x49/0x90 [btrfs]
     ? btrfs_find_all_roots_safe+0x93/0x100 [btrfs]
     btrfs_find_all_roots_safe+0x93/0x100 [btrfs]
     btrfs_find_all_roots+0x45/0x60 [btrfs]
     btrfs_qgroup_trace_extent_post+0x20/0x40 [btrfs]
     btrfs_add_delayed_data_ref+0x1a3/0x1d0 [btrfs]
     btrfs_alloc_reserved_file_extent+0x38/0x40 [btrfs]
     insert_reserved_file_extent.constprop.71+0x289/0x2e0 [btrfs]
     btrfs_finish_ordered_io+0x2f4/0x7f0 [btrfs]
     ? pick_next_task_fair+0x2cd/0x530
     ? __switch_to+0x92/0x4b0
     btrfs_worker_helper+0x81/0x300 [btrfs]
     process_one_work+0x1da/0x3f0
     worker_thread+0x2b/0x3f0
     ? process_one_work+0x3f0/0x3f0
     kthread+0x11a/0x130
     ? kthread_create_on_node+0x40/0x40
     ret_from_fork+0x35/0x40
    
    BTRFS critical (device vda2): unable to find logical 8820195328 length 16384
    BTRFS: error (device vda2) in btrfs_finish_ordered_io:3023: errno=-5 IO failure
    BTRFS info (device vda2): forced readonly
    BTRFS error (device vda2): pending csums is 2887680
    
    [CAUSE]
    It's caused by race with block group auto removal:
    
    - There is a meta block group X, which has only one tree block
      The tree block belongs to fs tree 257.
    - In current transaction, some operation modified fs tree 257
      The tree block gets COWed, so the block group X is empty, and marked
      as unused, queued to be deleted.
    - Some workload (like fsync) wakes up cleaner_kthread()
      Which will call btrfs_delete_unused_bgs() to remove unused block
      groups.
      So block group X along its chunk map get removed.
    - Some delalloc work finished for fs tree 257
      Quota needs to get the original reference of the extent, which will
      read tree blocks of commit root of 257.
      Then since the chunk map gets removed, the above warning gets
      triggered.
    
    [FIX]
    Just let btrfs_delete_unused_bgs() skip block group which still has
    pinned bytes.
    
    However there is a minor side effect: currently we only queue empty
    blocks at update_block_group(), and such empty block group with pinned
    bytes won't go through update_block_group() again, such block group
    won't be removed, until it gets new extent allocated and removed.
    
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 56f338b39513de39679cf0c2da704d4803c9a0d5
Author: Qu Wenruo <wqu@suse.com>
Date:   Tue Jul 3 17:10:07 2018 +0800

    btrfs: relocation: Only remove reloc rb_trees if reloc control has been initialized
    
    [ Upstream commit 389305b2aa68723c754f88d9dbd268a400e10664 ]
    
    Invalid reloc tree can cause kernel NULL pointer dereference when btrfs
    does some cleanup of the reloc roots.
    
    It turns out that fs_info::reloc_ctl can be NULL in
    btrfs_recover_relocation() as we allocate relocation control after all
    reloc roots have been verified.
    So when we hit: note, we haven't called set_reloc_control() thus
    fs_info::reloc_ctl is still NULL.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=199833
    Reported-by: Xu Wen <wen.xu@gatech.edu>
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Tested-by: Gu Jinxiang <gujx@cn.fujitsu.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb17dca7e62d4ef811d17c72d257383de44692ed
Author: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
Date:   Tue Jul 31 16:20:21 2018 +0900

    btrfs: replace: Reset on-disk dev stats value after replace
    
    [ Upstream commit 1e7e1f9e3aba00c9b9c323bfeeddafe69ff21ff6 ]
    
    on-disk devs stats value is updated in btrfs_run_dev_stats(),
    which is called during commit transaction, if device->dev_stats_ccnt
    is not zero.
    
    Since current replace operation does not touch dev_stats_ccnt,
    on-disk dev stats value is not updated. Therefore "btrfs device stats"
    may return old device's value after umount/mount
    (Example: See "btrfs ins dump-t -t DEV $DEV" after btrfs/100 finish).
    
    Fix this by just incrementing dev_stats_ccnt in
    btrfs_dev_replace_finishing() when replace is succeeded and this will
    update the values.
    
    Signed-off-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5fcb40fd186b30b72de7bf42d84e44b62aa1b4f8
Author: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Date:   Wed Jul 4 23:27:02 2018 +0530

    powerpc/pseries: Avoid using the size greater than RTAS_ERROR_LOG_MAX.
    
    [ Upstream commit 74e96bf44f430cf7a01de19ba6cf49b361cdfd6e ]
    
    The global mce data buffer that used to copy rtas error log is of 2048
    (RTAS_ERROR_LOG_MAX) bytes in size. Before the copy we read
    extended_log_length from rtas error log header, then use max of
    extended_log_length and RTAS_ERROR_LOG_MAX as a size of data to be copied.
    Ideally the platform (phyp) will never send extended error log with
    size > 2048. But if that happens, then we have a risk of buffer overrun
    and corruption. Fix this by using min_t instead.
    
    Fixes: d368514c3097 ("powerpc: Fix corruption when grabbing FWNMI data")
    Reported-by: Michal Suchanek <msuchanek@suse.com>
    Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.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 5a16326173c935c28e20ede6fdfb6b0668d1c8bd
Author: Steve French <stfrench@microsoft.com>
Date:   Mon Jul 23 09:15:18 2018 -0500

    SMB3: Number of requests sent should be displayed for SMB3 not just CIFS
    
    [ Upstream commit 289131e1f1e6ad8c661ec05e176b8f0915672059 ]
    
    For SMB2/SMB3 the number of requests sent was not displayed
    in /proc/fs/cifs/Stats unless CONFIG_CIFS_STATS2 was
    enabled (only number of failed requests displayed). As
    with earlier dialects, we should be displaying these
    counters if CONFIG_CIFS_STATS is enabled. They
    are important for debugging.
    
    e.g. when you cat /proc/fs/cifs/Stats (before the patch)
    Resources in use
    CIFS Session: 1
    Share (unique mount targets): 2
    SMB Request/Response Buffer: 1 Pool size: 5
    SMB Small Req/Resp Buffer: 1 Pool size: 30
    Operations (MIDs): 0
    
    0 session 0 share reconnects
    Total vfs operations: 690 maximum at one time: 2
    
    1) \\localhost\test
    SMBs: 975
    Negotiates: 0 sent 0 failed
    SessionSetups: 0 sent 0 failed
    Logoffs: 0 sent 0 failed
    TreeConnects: 0 sent 0 failed
    TreeDisconnects: 0 sent 0 failed
    Creates: 0 sent 2 failed
    Closes: 0 sent 0 failed
    Flushes: 0 sent 0 failed
    Reads: 0 sent 0 failed
    Writes: 0 sent 0 failed
    Locks: 0 sent 0 failed
    IOCTLs: 0 sent 1 failed
    Cancels: 0 sent 0 failed
    Echos: 0 sent 0 failed
    QueryDirectories: 0 sent 63 failed
    
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf638d3079a53843464d84aeeab9f1f5092f8843
Author: Steve French <stfrench@microsoft.com>
Date:   Wed Aug 1 00:56:12 2018 -0500

    smb3: fix reset of bytes read and written stats
    
    [ Upstream commit c281bc0c7412308c7ec0888904f7c99353da4796 ]
    
    echo 0 > /proc/fs/cifs/Stats is supposed to reset the stats
    but there were four (see example below) that were not reset
    (bytes read and witten, total vfs ops and max ops
    at one time).
    
    ...
    0 session 0 share reconnects
    Total vfs operations: 100 maximum at one time: 2
    
    1) \\localhost\test
    SMBs: 0
    Bytes read: 502092  Bytes written: 31457286
    TreeConnects: 0 total 0 failed
    TreeDisconnects: 0 total 0 failed
    ...
    
    This patch fixes cifs_stats_proc_write to properly reset
    those four.
    
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d4d534751b43ca82d7ec6146ee064b232918cfa2
Author: Breno Leitao <leitao@debian.org>
Date:   Tue Aug 7 11:15:39 2018 -0300

    selftests/powerpc: Kill child processes on SIGINT
    
    [ Upstream commit 7c27a26e1ed5a7dd709aa19685d2c98f64e1cf0c ]
    
    There are some powerpc selftests, as tm/tm-unavailable, that run for a long
    period (>120 seconds), and if it is interrupted, as pressing CRTL-C
    (SIGINT), the foreground process (harness) dies but the child process and
    threads continue to execute (with PPID = 1 now) in background.
    
    In this case, you'd think the whole test exited, but there are remaining
    threads and processes being executed in background. Sometimes these
    zombies processes are doing annoying things, as consuming the whole CPU or
    dumping things to STDOUT.
    
    This patch fixes this problem by attaching an empty signal handler to
    SIGINT in the harness process. This handler will interrupt (EINTR) the
    parent process waitpid() call, letting the code to follow through the
    normal flow, which will kill all the processes in the child process group.
    
    This patch also fixes a typo.
    
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Signed-off-by: Gustavo Romero <gromero@linux.vnet.ibm.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 c2ff51938984a18eb7028e5449a2065046452e19
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Aug 6 11:05:13 2018 +0100

    staging: comedi: ni_mio_common: fix subdevice flags for PFI subdevice
    
    [ Upstream commit e083926b3e269d4064825dcf2ad50c636fddf8cf ]
    
    The PFI subdevice flags indicate that the subdevice is readable and
    writeable, but that is only true for the supported "M-series" boards,
    not the older "E-series" boards.  Only set the SDF_READABLE and
    SDF_WRITABLE subdevice flags for the M-series boards.  These two flags
    are mainly for informational purposes.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    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 dc5b9912a7058c1f5665224287be8f34be841e31
Author: John Pittman <jpittman@redhat.com>
Date:   Mon Aug 6 15:53:12 2018 -0400

    dm kcopyd: avoid softlockup in run_complete_job
    
    [ Upstream commit 784c9a29e99eb40b842c29ecf1cc3a79e00fb629 ]
    
    It was reported that softlockups occur when using dm-snapshot ontop of
    slow (rbd) storage.  E.g.:
    
    [ 4047.990647] watchdog: BUG: soft lockup - CPU#10 stuck for 22s! [kworker/10:23:26177]
    ...
    [ 4048.034151] Workqueue: kcopyd do_work [dm_mod]
    [ 4048.034156] RIP: 0010:copy_callback+0x41/0x160 [dm_snapshot]
    ...
    [ 4048.034190] Call Trace:
    [ 4048.034196]  ? __chunk_is_tracked+0x70/0x70 [dm_snapshot]
    [ 4048.034200]  run_complete_job+0x5f/0xb0 [dm_mod]
    [ 4048.034205]  process_jobs+0x91/0x220 [dm_mod]
    [ 4048.034210]  ? kcopyd_put_pages+0x40/0x40 [dm_mod]
    [ 4048.034214]  do_work+0x46/0xa0 [dm_mod]
    [ 4048.034219]  process_one_work+0x171/0x370
    [ 4048.034221]  worker_thread+0x1fc/0x3f0
    [ 4048.034224]  kthread+0xf8/0x130
    [ 4048.034226]  ? max_active_store+0x80/0x80
    [ 4048.034227]  ? kthread_bind+0x10/0x10
    [ 4048.034231]  ret_from_fork+0x35/0x40
    [ 4048.034233] Kernel panic - not syncing: softlockup: hung tasks
    
    Fix this by calling cond_resched() after run_complete_job()'s callout to
    the dm_kcopyd_notify_fn (which is dm-snap.c:copy_callback in the above
    trace).
    
    Signed-off-by: John Pittman <jpittman@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 801edd7519194dac6c21d6d4730b7840cf78730f
Author: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date:   Fri Aug 3 16:38:44 2018 +0200

    PCI: mvebu: Fix I/O space end address calculation
    
    [ Upstream commit dfd0309fd7b30a5baffaf47b2fccb88b46d64d69 ]
    
    pcie->realio.end should be the address of last byte of the area,
    therefore using resource_size() of another resource is not correct, we
    must substract 1 to get the address of the last byte.
    
    Fixes: 11be65472a427 ("PCI: mvebu: Adapt to the new device tree layout")
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd724a4874e9b841690b80858b837bcdd48aca87
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Aug 8 17:29:09 2018 +0300

    scsi: aic94xx: fix an error code in aic94xx_init()
    
    [ Upstream commit 0756c57bce3d26da2592d834d8910b6887021701 ]
    
    We accidentally return success instead of -ENOMEM on this error path.
    
    Fixes: 2908d778ab3e ("[SCSI] aic94xx: new driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d94096ff923339931c4464332b0c87b4731e44e
Author: Stefan Haberland <sth@linux.ibm.com>
Date:   Wed Jul 25 14:00:47 2018 +0200

    s390/dasd: fix hanging offline processing due to canceled worker
    
    [ Upstream commit 669f3765b755fd8739ab46ce3a9c6292ce8b3d2a ]
    
    During offline processing two worker threads are canceled without
    freeing the device reference which leads to a hanging offline process.
    
    Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
    Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0d26e4807275d45e9e01b35b5071f3824107f29
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Aug 8 14:57:24 2018 +0300

    powerpc: Fix size calculation using resource_size()
    
    [ Upstream commit c42d3be0c06f0c1c416054022aa535c08a1f9b39 ]
    
    The problem is the the calculation should be "end - start + 1" but the
    plus one is missing in this calculation.
    
    Fixes: 8626816e905e ("powerpc: add support for MPIC message register API")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.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 47e5fde58130789eb891f0985a4507d8a28b7e26
Author: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Date:   Tue Jul 17 19:14:45 2018 -0700

    net/9p: fix error path of p9_virtio_probe
    
    [ Upstream commit 92aef4675d5b1b55404e1532379e343bed0e5cf2 ]
    
    Currently when virtio_find_single_vq fails, we go through del_vqs which
    throws a warning (Trying to free already-free IRQ).  Skip del_vqs if vq
    allocation failed.
    
    Link: http://lkml.kernel.org/r/20180524101021.49880-1-jean-philippe.brucker@arm.com
    Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
    Reviewed-by: Greg Kurz <groug@kaod.org>
    Cc: Eric Van Hensbergen <ericvh@gmail.com>
    Cc: Ron Minnich <rminnich@sandia.gov>
    Cc: Latchesar Ionkov <lucho@ionkov.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Dominique Martinet <dominique.martinet@cea.fr>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 022e1fb14900c6cc6889e06169833ff1244b0c1f
Author: Aleh Filipovich <aleh@vaolix.com>
Date:   Fri Aug 10 22:07:25 2018 +0200

    platform/x86: asus-nb-wmi: Add keymap entry for lid flip action on UX360
    
    [ Upstream commit 880b29ac107d15644bf4da228376ba3cd6af6d71 ]
    
    Add entry to WMI keymap for lid flip event on Asus UX360.
    
    On Asus Zenbook ux360 flipping lid from/to tablet mode triggers
    keyscan code 0xfa which cannot be handled and results in kernel
    log message "Unknown key fa pressed".
    
    Signed-off-by: Aleh Filipovich<aleh@appnexus.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d03b202c592d344a924fd42dacb301f575d3c312
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Fri Aug 3 20:59:51 2018 -0700

    mfd: sm501: Set coherent_dma_mask when creating subdevices
    
    [ Upstream commit 2f606da78230f09cf1a71fde6ee91d0c710fa2b2 ]
    
    Instantiating the sm501 OHCI subdevice results in a kernel warning.
    
    sm501-usb sm501-usb: SM501 OHCI
    sm501-usb sm501-usb: new USB bus registered, assigned bus number 1
    WARNING: CPU: 0 PID: 1 at ./include/linux/dma-mapping.h:516
    ohci_init+0x194/0x2d8
    Modules linked in:
    
    CPU: 0 PID: 1 Comm: swapper Tainted: G        W
    4.18.0-rc7-00178-g0b5b1f9a78b5 #1
    PC is at ohci_init+0x194/0x2d8
    PR is at ohci_init+0x168/0x2d8
    PC  : 8c27844c SP  : 8f81dd94 SR  : 40008001
    TEA : 29613060
    R0  : 00000000 R1  : 00000000 R2  : 00000000 R3  : 00000202
    R4  : 8fa98b88 R5  : 8c277e68 R6  : 00000000 R7  : 00000000
    R8  : 8f965814 R9  : 8c388100 R10 : 8fa98800 R11 : 8fa98928
    R12 : 8c48302c R13 : 8fa98920 R14 : 8c48302c
    MACH: 00000096 MACL: 0000017c GBR : 00000000 PR  : 8c278420
    
    Call trace:
     [<(ptrval)>] usb_add_hcd+0x1e8/0x6ec
     [<(ptrval)>] _dev_info+0x0/0x54
     [<(ptrval)>] arch_local_save_flags+0x0/0x8
     [<(ptrval)>] arch_local_irq_restore+0x0/0x24
     [<(ptrval)>] ohci_hcd_sm501_drv_probe+0x114/0x2d8
    ...
    
    Initialize coherent_dma_mask when creating SM501 subdevices to fix
    the problem.
    
    Fixes: b6d6454fdb66f ("mfd: SM501 core driver")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b351b942bfb3c2b464a3f7826bfa42a854dab25
Author: Tan Hu <tan.hu@zte.com.cn>
Date:   Wed Jul 25 15:23:07 2018 +0800

    ipvs: fix race between ip_vs_conn_new() and ip_vs_del_dest()
    
    [ Upstream commit a53b42c11815d2357e31a9403ae3950517525894 ]
    
    We came across infinite loop in ipvs when using ipvs in docker
    env.
    
    When ipvs receives new packets and cannot find an ipvs connection,
    it will create a new connection, then if the dest is unavailable
    (i.e. IP_VS_DEST_F_AVAILABLE), the packet will be dropped sliently.
    
    But if the dropped packet is the first packet of this connection,
    the connection control timer never has a chance to start and the
    ipvs connection cannot be released. This will lead to memory leak, or
    infinite loop in cleanup_net() when net namespace is released like
    this:
    
        ip_vs_conn_net_cleanup at ffffffffa0a9f31a [ip_vs]
        __ip_vs_cleanup at ffffffffa0a9f60a [ip_vs]
        ops_exit_list at ffffffff81567a49
        cleanup_net at ffffffff81568b40
        process_one_work at ffffffff810a851b
        worker_thread at ffffffff810a9356
        kthread at ffffffff810b0b6f
        ret_from_fork at ffffffff81697a18
    
    race condition:
        CPU1                           CPU2
        ip_vs_in()
          ip_vs_conn_new()
                                       ip_vs_del_dest()
                                         __ip_vs_unlink_dest()
                                           ~IP_VS_DEST_F_AVAILABLE
          cp->dest && !IP_VS_DEST_F_AVAILABLE
          __ip_vs_conn_put
        ...
        cleanup_net  ---> infinite looping
    
    Fix this by checking whether the timer already started.
    
    Signed-off-by: Tan Hu <tan.hu@zte.com.cn>
    Reviewed-by: Jiang Biao <jiang.biao2@zte.com.cn>
    Acked-by: Julian Anastasov <ja@ssi.bg>
    Acked-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06d14c2d92d73f5a843706ae1b643fb9dafcd60f
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Fri Aug 17 15:46:57 2018 -0700

    mm/fadvise.c: fix signed overflow UBSAN complaint
    
    [ Upstream commit a718e28f538441a3b6612da9ff226973376cdf0f ]
    
    Signed integer overflow is undefined according to the C standard.  The
    overflow in ksys_fadvise64_64() is deliberate, but since it is signed
    overflow, UBSAN complains:
    
            UBSAN: Undefined behaviour in mm/fadvise.c:76:10
            signed integer overflow:
            4 + 9223372036854775805 cannot be represented in type 'long long int'
    
    Use unsigned types to do math.  Unsigned overflow is defined so UBSAN
    will not complain about it.  This patch doesn't change generated code.
    
    [akpm@linux-foundation.org: add comment explaining the casts]
    Link: http://lkml.kernel.org/r/20180629184453.7614-1-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Reported-by: <icytxw@gmail.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd36e88857c85edee2dd9c16bfbf3bdd6827c4ef
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Wed Aug 15 12:30:38 2018 -0700

    scripts: modpost: check memory allocation results
    
    [ Upstream commit 1f3aa9002dc6a0d59a4b599b4fc8f01cf43ef014 ]
    
    Fix missing error check for memory allocation functions in
    scripts/mod/modpost.c.
    
    Fixes kernel bugzilla #200319:
    https://bugzilla.kernel.org/show_bug.cgi?id=200319
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Yuexing Wang <wangyxlandq@gmail.com>
    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 35eb26e561e500e85562e3df773ee021fa31281b
Author: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Date:   Tue Aug 21 21:59:44 2018 -0700

    fat: validate ->i_start before using
    
    [ Upstream commit 0afa9626667c3659ef8bd82d42a11e39fedf235c ]
    
    On corrupted FATfs may have invalid ->i_start.  To handle it, this checks
    ->i_start before using, and return proper error code.
    
    Link: http://lkml.kernel.org/r/87o9f8y1t5.fsf_-_@mail.parknet.co.jp
    Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
    Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Tested-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Cc: Alan Cox <gnomes@lxorguk.ukuu.org.uk>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0aa3622ac3578163722733c018cb59267465c38
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Aug 21 21:59:34 2018 -0700

    reiserfs: change j_timestamp type to time64_t
    
    [ Upstream commit 8b73ce6a4bae4fe12bcb2c361c0da4183c2e1b6f ]
    
    This uses the deprecated time_t type but is write-only, and could be
    removed, but as Jeff explains, having a timestamp can be usefule for
    post-mortem analysis in crash dumps.
    
    In order to remove one of the last instances of time_t, this changes the
    type to time64_t, same as j_trans_start_time.
    
    Link: http://lkml.kernel.org/r/20180622133315.221210-1-arnd@arndb.de
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d1346a118342d26e3b9ae03ee7f3b1bbf734b42
Author: Jann Horn <jannh@google.com>
Date:   Tue Aug 21 22:00:58 2018 -0700

    fork: don't copy inconsistent signal handler state to child
    
    [ Upstream commit 06e62a46bbba20aa5286102016a04214bb446141 ]
    
    Before this change, if a multithreaded process forks while one of its
    threads is changing a signal handler using sigaction(), the memcpy() in
    copy_sighand() can race with the struct assignment in do_sigaction().  It
    isn't clear whether this can cause corruption of the userspace signal
    handler pointer, but it definitely can cause inconsistency between
    different fields of struct sigaction.
    
    Take the appropriate spinlock to avoid this.
    
    I have tested that this patch prevents inconsistency between sa_sigaction
    and sa_flags, which is possible before this patch.
    
    Link: http://lkml.kernel.org/r/20180702145108.73189-1-jannh@google.com
    Signed-off-by: Jann Horn <jannh@google.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5bbef604bfefc84feb7358df53e1e1a3e1866166
Author: Ernesto A. Fernández <ernesto.mnd.fernandez@gmail.com>
Date:   Thu Aug 23 17:00:31 2018 -0700

    hfs: prevent crash on exit from failed search
    
    [ Upstream commit dc2572791d3a41bab94400af2b6bca9d71ccd303 ]
    
    hfs_find_exit() expects fd->bnode to be NULL after a search has failed.
    hfs_brec_insert() may instead set it to an error-valued pointer.  Fix
    this to prevent a crash.
    
    Link: http://lkml.kernel.org/r/53d9749a029c41b4016c495fc5838c9dba3afc52.1530294815.git.ernesto.mnd.fernandez@gmail.com
    Signed-off-by: Ernesto A. Fernández <ernesto.mnd.fernandez@gmail.com>
    Cc: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Cc: Viacheslav Dubeyko <slava@dubeyko.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8224be03ade3f5c17ed2533f26eaf4ef41312425
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Tue Aug 21 21:59:12 2018 -0700

    hfsplus: don't return 0 when fill_super() failed
    
    [ Upstream commit 7464726cb5998846306ed0a7d6714afb2e37b25d ]
    
    syzbot is reporting NULL pointer dereference at mount_fs() [1].  This is
    because hfsplus_fill_super() is by error returning 0 when
    hfsplus_fill_super() detected invalid filesystem image, and mount_bdev()
    is returning NULL because dget(s->s_root) == NULL if s->s_root == NULL,
    and mount_fs() is accessing root->d_sb because IS_ERR(root) == false if
    root == NULL.  Fix this by returning -EINVAL when hfsplus_fill_super()
    detected invalid filesystem image.
    
    [1] https://syzkaller.appspot.com/bug?id=21acb6850cecbc960c927229e597158cf35f33d0
    
    Link: http://lkml.kernel.org/r/d83ce31a-874c-dd5b-f790-41405983a5be@I-love.SAKURA.ne.jp
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Reported-by: syzbot <syzbot+01ffaf5d9568dd1609f7@syzkaller.appspotmail.com>
    Reviewed-by: Ernesto A. Fernández <ernesto.mnd.fernandez@gmail.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b7ebfb97ed1c214b7b83bd17f08d34c0f990946
Author: Ronnie Sahlberg <lsahlber@redhat.com>
Date:   Wed Aug 22 12:19:24 2018 +1000

    cifs: check if SMB2 PDU size has been padded and suppress the warning
    
    [ Upstream commit e6c47dd0da1e3a484e778046fc10da0b20606a86 ]
    
    Some SMB2/3 servers, Win2016 but possibly others too, adds padding
    not only between PDUs in a compound but also to the final PDU.
    This padding extends the PDU to a multiple of 8 bytes.
    
    Check if the unexpected length looks like this might be the case
    and avoid triggering the log messages for :
    
      "SMB2 server sent bad RFC1001 len %d not %d\n"
    
    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>