commit e6abbe80c8838e9c0bdb51835e6218008fa49386
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Oct 3 17:01:00 2018 -0700

    Linux 4.14.74

commit d61ba3417e4fb71963441aa0c2e9c26f4568215b
Author: Sakari Ailus <sakari.ailus@linux.intel.com>
Date:   Tue Sep 11 05:32:37 2018 -0400

    media: v4l: event: Prevent freeing event subscriptions while accessed
    
    commit ad608fbcf166fec809e402d548761768f602702c upstream.
    
    The event subscriptions are added to the subscribed event list while
    holding a spinlock, but that lock is subsequently released while still
    accessing the subscription object. This makes it possible to unsubscribe
    the event --- and freeing the subscription object's memory --- while
    the subscription object is simultaneously accessed.
    
    Prevent this by adding a mutex to serialise the event subscription and
    unsubscription. This also gives a guarantee to the callback ops that the
    add op has returned before the del op is called.
    
    This change also results in making the elems field less special:
    subscriptions are only added to the event list once they are fully
    initialised.
    
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Reviewed-by: Hans Verkuil <hans.verkuil@cisco.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Cc: stable@vger.kernel.org # for 4.14 and up
    Fixes: c3b5b0241f62 ("V4L/DVB: V4L: Events: Add backend")
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fcaca557760f4fd78e793d8bfc4364fb58d7fb85
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Thu Sep 27 16:53:22 2018 +0100

    arm64: KVM: Sanitize PSTATE.M when being set from userspace
    
    commit 2a3f93459d689d990b3ecfbe782fec89b97d3279 upstream.
    
    Not all execution modes are valid for a guest, and some of them
    depend on what the HW actually supports. Let's verify that what
    userspace provides is compatible with both the VM settings and
    the HW capabilities.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 0d854a60b1d7 ("arm64: KVM: enable initialization of a 32bit vcpu")
    Reviewed-by: Christoffer Dall <christoffer.dall@arm.com>
    Reviewed-by: Mark Rutland <mark.rutland@arm.com>
    Reviewed-by: Dave Martin <Dave.Martin@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fff53acff152dcdf5d8758e273847f28c3b8e46
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sat Sep 1 21:01:28 2018 -0700

    x86/pti: Fix section mismatch warning/error
    
    [ Upstream commit ff924c5a1ec7548825cc2d07980b03be4224ffac ]
    
    Fix the section mismatch warning in arch/x86/mm/pti.c:
    
    WARNING: vmlinux.o(.text+0x6972a): Section mismatch in reference from the function pti_clone_pgtable() to the function .init.text:pti_user_pagetable_walk_pte()
    The function pti_clone_pgtable() references
    the function __init pti_user_pagetable_walk_pte().
    This is often because pti_clone_pgtable lacks a __init
    annotation or the annotation of pti_user_pagetable_walk_pte is wrong.
    FATAL: modpost: Section mismatches detected.
    
    Fixes: 85900ea51577 ("x86/pti: Map the vsyscall page if needed")
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Link: https://lkml.kernel.org/r/43a6d6a3-d69d-5eda-da09-0b1c88215a2a@infradead.org
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23210d92f617d44e6b8322d22bf59af3fd208bb9
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Thu Aug 30 11:50:13 2018 +0300

    i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus
    
    [ Upstream commit 7fd6d98b89f382d414e1db528e29a67bbd749457 ]
    
    Commit 7ae81952cda ("i2c: i801: Allow ACPI SystemIO OpRegion to conflict
    with PCI BAR") made it possible for AML code to access SMBus I/O ports
    by installing custom SystemIO OpRegion handler and blocking i80i driver
    access upon first AML read/write to this OpRegion.
    
    However, while ThinkPad T560 does have SystemIO OpRegion declared under
    the SMBus device, it does not access any of the SMBus registers:
    
        Device (SMBU)
        {
            ...
    
            OperationRegion (SMBP, PCI_Config, 0x50, 0x04)
            Field (SMBP, DWordAcc, NoLock, Preserve)
            {
                ,   5,
                TCOB,   11,
                Offset (0x04)
            }
    
            Name (TCBV, 0x00)
            Method (TCBS, 0, NotSerialized)
            {
                If ((TCBV == 0x00))
                {
                TCBV = (\_SB.PCI0.SMBU.TCOB << 0x05)
                }
    
                Return (TCBV) /* \_SB_.PCI0.SMBU.TCBV */
            }
    
            OperationRegion (TCBA, SystemIO, TCBS (), 0x10)
            Field (TCBA, ByteAcc, NoLock, Preserve)
            {
                Offset (0x04),
                ,   9,
                CPSC,   1
            }
        }
    
    Problem with the current approach is that it blocks all I/O port access
    and because this system has touchpad connected to the SMBus controller
    after first AML access (happens during suspend/resume cycle) the
    touchpad fails to work anymore.
    
    Fix this so that we allow ACPI AML I/O port access if it does not touch
    the region reserved for the SMBus.
    
    Fixes: 7ae81952cda ("i2c: i801: Allow ACPI SystemIO OpRegion to conflict with PCI BAR")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=200737
    Reported-by: Yussuf Khalil <dev@pp3345.net>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: Jean Delvare <jdelvare@suse.de>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 647b6d4ff699f841db598f378b0deec2e0b41c2f
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Fri Aug 24 15:08:30 2018 +0100

    arm/arm64: smccc-1.1: Handle function result as parameters
    
    [ Upstream commit 755a8bf5579d22eb5636685c516d8dede799e27b ]
    
    If someone has the silly idea to write something along those lines:
    
            extern u64 foo(void);
    
            void bar(struct arm_smccc_res *res)
            {
                    arm_smccc_1_1_smc(0xbad, foo(), res);
            }
    
    they are in for a surprise, as this gets compiled as:
    
            0000000000000588 <bar>:
             588:   a9be7bfd        stp     x29, x30, [sp, #-32]!
             58c:   910003fd        mov     x29, sp
             590:   f9000bf3        str     x19, [sp, #16]
             594:   aa0003f3        mov     x19, x0
             598:   aa1e03e0        mov     x0, x30
             59c:   94000000        bl      0 <_mcount>
             5a0:   94000000        bl      0 <foo>
             5a4:   aa0003e1        mov     x1, x0
             5a8:   d4000003        smc     #0x0
             5ac:   b4000073        cbz     x19, 5b8 <bar+0x30>
             5b0:   a9000660        stp     x0, x1, [x19]
             5b4:   a9010e62        stp     x2, x3, [x19, #16]
             5b8:   f9400bf3        ldr     x19, [sp, #16]
             5bc:   a8c27bfd        ldp     x29, x30, [sp], #32
             5c0:   d65f03c0        ret
             5c4:   d503201f        nop
    
    The call to foo "overwrites" the x0 register for the return value,
    and we end up calling the wrong secure service.
    
    A solution is to evaluate all the parameters before assigning
    anything to specific registers, leading to the expected result:
    
            0000000000000588 <bar>:
             588:   a9be7bfd        stp     x29, x30, [sp, #-32]!
             58c:   910003fd        mov     x29, sp
             590:   f9000bf3        str     x19, [sp, #16]
             594:   aa0003f3        mov     x19, x0
             598:   aa1e03e0        mov     x0, x30
             59c:   94000000        bl      0 <_mcount>
             5a0:   94000000        bl      0 <foo>
             5a4:   aa0003e1        mov     x1, x0
             5a8:   d28175a0        mov     x0, #0xbad
             5ac:   d4000003        smc     #0x0
             5b0:   b4000073        cbz     x19, 5bc <bar+0x34>
             5b4:   a9000660        stp     x0, x1, [x19]
             5b8:   a9010e62        stp     x2, x3, [x19, #16]
             5bc:   f9400bf3        ldr     x19, [sp, #16]
             5c0:   a8c27bfd        ldp     x29, x30, [sp], #32
             5c4:   d65f03c0        ret
    
    Reported-by: Julien Grall <julien.grall@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 826d8678cde2a4329d19b96b93e093fa0f4d0883
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Fri Aug 24 15:08:29 2018 +0100

    arm/arm64: smccc-1.1: Make return values unsigned long
    
    [ Upstream commit 1d8f574708a3fb6f18c85486d0c5217df893c0cf ]
    
    An unfortunate consequence of having a strong typing for the input
    values to the SMC call is that it also affects the type of the
    return values, limiting r0 to 32 bits and r{1,2,3} to whatever
    was passed as an input.
    
    Let's turn everything into "unsigned long", which satisfies the
    requirements of both architectures, and allows for the full
    range of return values.
    
    Reported-by: Julien Grall <julien.grall@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75b3054d6807134741601872fd0f91be6a373bd5
Author: Tony Lindgren <tony@atomide.com>
Date:   Mon Aug 27 19:18:21 2018 -0700

    ARM: dts: omap4-droid4: Fix emmc errors seen on some devices
    
    [ Upstream commit 2d59bb602314a4b2593fde267734266b5e872dd0 ]
    
    Otherwise we can get the following errors occasionally on some devices:
    
    mmc1: tried to HW reset card, got error -110
    mmcblk1: error -110 requesting status
    mmcblk1: recovery failed!
    print_req_error: I/O error, dev mmcblk1, sector 14329
    ...
    
    I have one device that hits this error almost on every boot, and another
    one that hits it only rarely with the other ones I've used behave without
    problems. I'm not sure if the issue is related to a particular eMMC card
    model, but in case it is, both of the machines with issues have:
    
    # cat /sys/class/mmc_host/mmc1/mmc1:0001/manfid \
    /sys/class/mmc_host/mmc1/mmc1:0001/oemid \
    /sys/class/mmc_host/mmc1/mmc1:0001/name
    0x000045
    0x0100
    SEM16G
    
    and the working ones have:
    
    0x000011
    0x0100
    016G92
    
    Note that "ti,non-removable" is different as omap_hsmmc_reg_get() does not
    call omap_hsmmc_disable_boot_regulators() if no_regulator_off_init is set.
    And currently we set no_regulator_off_init only for "ti,non-removable" and
    not for "non-removable". It seems that we should have "non-removable" with
    some other mmc generic property behave in the same way instead of having to
    use a non-generic property. But let's fix the issue first.
    
    Fixes: 7e2f8c0ae670 ("ARM: dts: Add minimal support for motorola droid 4
    xt894")
    Cc: Marcel Partap <mpartap@gmx.net>
    Cc: Merlijn Wajer <merlijn@wizzup.org>
    Cc: Michael Scott <hashcode0f@gmail.com>
    Cc: NeKit <nekit1000@gmail.com>
    Cc: Pavel Machek <pavel@ucw.cz>
    Cc: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d11237bdcf9570edc0c562d93df219a4a8a4c9f0
Author: James Smart <jsmart2021@gmail.com>
Date:   Thu Aug 9 16:00:14 2018 -0700

    nvme-fcloop: Fix dropped LS's to removed target port
    
    [ Upstream commit afd299ca996929f4f98ac20da0044c0cdc124879 ]
    
    When a targetport is removed from the config, fcloop will avoid calling
    the LS done() routine thinking the targetport is gone. This leaves the
    initiator reset/reconnect hanging as it waits for a status on the
    Create_Association LS for the reconnect.
    
    Change the filter in the LS callback path. If tport null (set when
    failed validation before "sending to remote port"), be sure to call
    done. This was the main bug. But, continue the logic that only calls
    done if tport was set but there is no remoteport (e.g. case where
    remoteport has been removed, thus host doesn't expect a completion).
    
    Signed-off-by: James Smart <james.smart@broadcom.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 516b72e36dedaac451a307f8e9a0ef82272d92fb
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Sun Jul 15 22:09:29 2018 +0200

    ata: ftide010: Add a quirk for SQ201
    
    [ Upstream commit 46cb52ad414ac829680d0bb8cc7090ac2b577ca7 ]
    
    The DMA is broken on this specific device for some unknown
    reason (probably badly designed or plain broken interface
    electronics) and will only work with PIO. Other users of
    the same hardware does not have this problem.
    
    Add a specific quirk so that this Gemini device gets
    DMA turned off. Also fix up some code around passing the
    port information around in probe while we're at it.
    
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    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 46cb720a8a3ece894eff4e1b85b3925efb71afd2
Author: Rex Zhu <Rex.Zhu@amd.com>
Date:   Fri Aug 24 16:17:54 2018 +0800

    drm/amdgpu: Update power state at the end of smu hw_init.
    
    [ Upstream commit 2ab4d0e74256fc49b7b270f63c1d1e47c2455abc ]
    
    For SI/Kv, the power state is managed by function
    amdgpu_pm_compute_clocks.
    
    when dpm enabled, we should call amdgpu_pm_compute_clocks
    to update current power state instand of set boot state.
    
    this change can fix the oops when kfd driver was enabled on Kv.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Tested-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 50850b432cc512551d48e2d3b49447b2eb275406
Author: Rex Zhu <Rex.Zhu@amd.com>
Date:   Fri Aug 24 17:26:23 2018 +0800

    drm/amdgpu: Enable/disable gfx PG feature in rlc safe mode
    
    [ Upstream commit 8ef23364b654d44244400d79988e677e504b21ba ]
    
    This is required by gfx hw and can fix the rlc hang when
    do s3 stree test on Cz/St.
    
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Hang Zhou <hang.zhou@amd.com>
    Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9190a7ea313ffbc94531b8c9551fb5f04bbba405
Author: Leonard Crestez <leonard.crestez@nxp.com>
Date:   Tue Jul 24 19:14:19 2018 +0300

    Revert "ARM: dts: imx7d: Invert legacy PCI irq mapping"
    
    [ Upstream commit 538d6e9d597584e80514698e24321645debde78f ]
    
    This reverts commit 1c86c9dd82f859b474474a7fee0d5195da2c9c1d.
    
    That commit followed the reference manual but unfortunately the imx7d
    manual is incorrect.
    
    Tested with ath9k pcie card and confirmed internally.
    
    Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
    Acked-by: Lucas Stach <l.stach@pengutronix.de>
    Fixes: 1c86c9dd82f8 ("ARM: dts: imx7d: Invert legacy PCI irq mapping")
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3ddd8e16cab439c0abbf08a33a6a0465c8e67da
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Aug 14 13:07:47 2018 +0300

    hwmon: (adt7475) Make adt7475_read_word() return errors
    
    [ Upstream commit f196dec6d50abb2e65fb54a0621b2f1b4d922995 ]
    
    The adt7475_read_word() function was meant to return negative error
    codes on failure.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Tokunori Ikegami <ikegami@allied-telesis.co.jp>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0647ce03bd48aac37b055355c168b4a889bcc36b
Author: Lothar Felten <lothar.felten@gmail.com>
Date:   Tue Aug 14 09:09:37 2018 +0200

    hwmon: (ina2xx) fix sysfs shunt resistor read access
    
    [ Upstream commit 3ad867001c91657c46dcf6656d52eb6080286fd5 ]
    
    fix the sysfs shunt resistor read access: return the shunt resistor
    value, not the calibration register contents.
    
    update email address
    
    Signed-off-by: Lothar Felten <lothar.felten@gmail.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59f5838cc95070135fe5137125d4ab7fdb471800
Author: Srikanth Jampala <Jampala.Srikanth@cavium.com>
Date:   Wed Aug 22 12:40:52 2018 +0530

    crypto: cavium/nitrox - fix for command corruption in queue full case with backlog submissions.
    
    [ Upstream commit 3d7c82060d1fe65bde4023aac41a0b1bd7718e07 ]
    
    Earlier used to post the current command without checking queue full
         after backlog submissions. So, post the current command only after
         confirming the space in queue after backlog submissions.
    
         Maintain host write index instead of reading device registers
         to get the next free slot to post the command.
    
         Return -ENOSPC in queue full case.
    
    Signed-off-by: Srikanth Jampala <Jampala.Srikanth@cavium.com>
    Reviewed-by: Gadam Sreerama <sgadam@cavium.com>
    Tested-by: Jha, Chandan <Chandan.Jha@cavium.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 243af256387c60f4ccdbe6b009425bb4efa0f00e
Author: Bo Chen <chenbo@pdx.edu>
Date:   Mon Jul 23 09:01:30 2018 -0700

    e1000: ensure to free old tx/rx rings in set_ringparam()
    
    [ Upstream commit ee400a3f1bfe7004a3e14b81c38ccc5583c26295 ]
    
    In 'e1000_set_ringparam()', the tx_ring and rx_ring are updated with new value
    and the old tx/rx rings are freed only when the device is up. There are resource
    leaks on old tx/rx rings when the device is not up. This bug is reported by COD,
    a tool for testing kernel module binaries I am building.
    
    This patch fixes the bug by always calling 'kfree()' on old tx/rx rings in
    'e1000_set_ringparam()'.
    
    Signed-off-by: Bo Chen <chenbo@pdx.edu>
    Reviewed-by: Alexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 716865940461b64a42e637992483708ca90d51f7
Author: Bo Chen <chenbo@pdx.edu>
Date:   Mon Jul 23 09:01:29 2018 -0700

    e1000: check on netif_running() before calling e1000_up()
    
    [ Upstream commit cf1acec008f8d7761aa3fd7c4bca7e17b2d2512d ]
    
    When the device is not up, the call to 'e1000_up()' from the error handling path
    of 'e1000_set_ringparam()' causes a kernel oops with a null-pointer
    dereference. The null-pointer dereference is triggered in function
    'e1000_alloc_rx_buffers()' at line 'buffer_info = &rx_ring->buffer_info[i]'.
    
    This bug was reported by COD, a tool for testing kernel module binaries I am
    building. This bug was also detected by KFI from Dr. Kai Cong.
    
    This patch fixes the bug by checking on 'netif_running()' before calling
    'e1000_up()' in 'e1000_set_ringparam()'.
    
    Signed-off-by: Bo Chen <chenbo@pdx.edu>
    Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8baff89bc3f79fa1977108c55a02e41d876132b
Author: Huazhong Tan <tanhuazhong@huawei.com>
Date:   Thu Aug 23 11:10:12 2018 +0800

    net: hns: fix skb->truesize underestimation
    
    [ Upstream commit b1ccd4c0ab6ef499f47dd84ed4920502a7147bba ]
    
    skb->truesize is not meant to be tracking amount of used bytes in a skb,
    but amount of reserved/consumed bytes in memory.
    
    For instance, if we use a single byte in last page fragment, we have to
    account the full size of the fragment.
    
    So skb_add_rx_frag needs to calculate the length of the entire buffer into
    turesize.
    
    Fixes: 9cbe9fd5214e ("net: hns: optimize XGE capability by reducing cpu usage")
    Signed-off-by: Huazhong tan <tanhuazhong@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 333f26129fd9f932ed50fdb71983ce3d950f8a70
Author: Huazhong Tan <tanhuazhong@huawei.com>
Date:   Thu Aug 23 11:10:10 2018 +0800

    net: hns: fix length and page_offset overflow when CONFIG_ARM64_64K_PAGES
    
    [ Upstream commit 3ed614dce3ca9912d22be215ff0f11104b69fe62 ]
    
    When enable the config item "CONFIG_ARM64_64K_PAGES", the size of PAGE_SIZE
    is 65536(64K). But the  type of length and page_offset are u16, they will
    overflow. So change them to u32.
    
    Fixes: 6fe6611ff275 ("net: add Hisilicon Network Subsystem hnae framework support")
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92935e1c2a7e27795456f5058759dbb3acf67e2c
Author: John Fastabend <john.fastabend@gmail.com>
Date:   Wed Aug 22 08:37:37 2018 -0700

    bpf: sockmap: write_space events need to be passed to TCP handler
    
    [ Upstream commit 9b2e0388bec8ec5427403e23faff3b58dd1c3200 ]
    
    When sockmap code is using the stream parser it also handles the write
    space events in order to handle the case where (a) verdict redirects
    skb to another socket and (b) the sockmap then sends the skb but due
    to memory constraints (or other EAGAIN errors) needs to do a retry.
    
    But the initial code missed a third case where the
    skb_send_sock_locked() triggers an sk_wait_event(). A typically case
    would be when sndbuf size is exceeded. If this happens because we
    do not pass the write_space event to the lower layers we never wake
    up the event and it will wait for sndtimeo. Which as noted in ktls
    fix may be rather large and look like a hang to the user.
    
    To reproduce the best test is to reduce the sndbuf size and send
    1B data chunks to stress the memory handling. To fix this pass the
    event from the upper layer to the lower layer.
    
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0a8c1257fc3e8310a14c8f9d654620370cf568f
Author: John Fastabend <john.fastabend@gmail.com>
Date:   Wed Aug 22 08:37:32 2018 -0700

    tls: possible hang when do_tcp_sendpages hits sndbuf is full case
    
    [ Upstream commit 67db7cd249e71f64346f481b629724376d063e08 ]
    
    Currently, the lower protocols sk_write_space handler is not called if
    TLS is sending a scatterlist via  tls_push_sg. However, normally
    tls_push_sg calls do_tcp_sendpage, which may be under memory pressure,
    that in turn may trigger a wait via sk_wait_event. Typically, this
    happens when the in-flight bytes exceed the sdnbuf size. In the normal
    case when enough ACKs are received sk_write_space() will be called and
    the sk_wait_event will be woken up allowing it to send more data
    and/or return to the user.
    
    But, in the TLS case because the sk_write_space() handler does not
    wake up the events the above send will wait until the sndtimeo is
    exceeded. By default this is MAX_SCHEDULE_TIMEOUT so it look like a
    hang to the user (especially this impatient user). To fix this pass
    the sk_write_space event to the lower layers sk_write_space event
    which in the TCP case will wake any pending events.
    
    I observed the above while integrating sockmap and ktls. It
    initially appeared as test_sockmap (modified to use ktls) occasionally
    hanging. To reliably reproduce this reduce the sndbuf size and stress
    the tls layer by sending many 1B sends. This results in every byte
    needing a header and each byte individually being sent to the crypto
    layer.
    
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Acked-by: Dave Watson <davejwatson@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97ee8505c63706e28d1354ea5fc721a47ee84850
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Thu Aug 16 21:44:02 2018 -0500

    isofs: reject hardware sector size > 2048 bytes
    
    [ Upstream commit 09a4e0be5826aa66c4ce9954841f110ffe63ef4f ]
    
    The largest block size supported by isofs is ISOFS_BLOCK_SIZE (2048), but
    isofs_fill_super calls sb_min_blocksize and sets the blocksize to the
    device's logical block size if it's larger than what we ended up with after
    option parsing.
    
    If for some reason we try to mount a hard 4k device as an isofs filesystem,
    we'll set opt.blocksize to 4096, and when we try to read the superblock
    we found via:
    
            block = iso_blknum << (ISOFS_BLOCK_BITS - s->s_blocksize_bits)
    
    with s_blocksize_bits greater than ISOFS_BLOCK_BITS, we'll have a negative
    shift and the bread will fail somewhat cryptically:
    
      isofs_fill_super: bread failed, dev=sda, iso_blknum=17, block=-2147483648
    
    It seems best to just catch and clearly reject mounts of such a device.
    
    Reported-by: Bryan Gurney <bgurney@redhat.com>
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 083be6fbfdcb06b59792fd5b3468069daa1bf8c2
Author: Anson Huang <Anson.Huang@nxp.com>
Date:   Tue Jul 31 00:56:49 2018 +0800

    thermal: of-thermal: disable passive polling when thermal zone is disabled
    
    [ Upstream commit 152395fd03d4ce1e535a75cdbf58105e50587611 ]
    
    When thermal zone is in passive mode, disabling its mode from
    sysfs is NOT taking effect at all, it is still polling the
    temperature of the disabled thermal zone and handling all thermal
    trips, it makes user confused. The disabling operation should
    disable the thermal zone behavior completely, for both active and
    passive mode, this patch clears the passive_delay when thermal
    zone is disabled and restores it when it is enabled.
    
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 308206bd277099607d490b4c5337c1eee7d7a1dd
Author: Tomer Tayar <Tomer.Tayar@cavium.com>
Date:   Mon Aug 20 00:01:45 2018 +0300

    qed: Avoid sending mailbox commands when MFW is not responsive
    
    [ Upstream commit b310974e041913231b6e3d5d475d4df55c312301 ]
    
    Keep sending mailbox commands to the MFW when it is not responsive ends up
    with a redundant amount of timeout expiries.
    This patch prints the MCP status on the first command which is not
    responded, and blocks the following commands.
    Since the (un)load request commands might be not responded due to other
    PFs, the patch also adds the option to skip the blocking upon a failure.
    
    Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
    Signed-off-by: Ariel Elior <Ariel.Elior@cavium.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 583f866501c1f4294670d29b242e57e8470e7bf9
Author: Tomer Tayar <Tomer.Tayar@cavium.com>
Date:   Mon Aug 20 00:01:44 2018 +0300

    qed: Prevent a possible deadlock during driver load and unload
    
    [ Upstream commit eaa50fc59e5841910987e90b0438b2643041f508 ]
    
    The MFW manages an internal lock to prevent concurrent hardware
    (de)initialization of different PFs.
    This, together with the busy-waiting for the MFW's responses for commands,
    might lead to a deadlock during concurrent load or unload of PFs.
    This patch adds the option to sleep within the busy-waiting, and uses it
    for the (un)load requests (which are not sent from an interrupt context) to
    prevent the possible deadlock.
    
    Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
    Signed-off-by: Ariel Elior <Ariel.Elior@cavium.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 73046b822c4ce80847da902af458c30cb8b1558b
Author: Tomer Tayar <Tomer.Tayar@cavium.com>
Date:   Mon Aug 20 00:01:43 2018 +0300

    qed: Wait for MCP halt and resume commands to take place
    
    [ Upstream commit 76271809f49056f079e202bf6513d17b0d6dd34d ]
    
    Successive iterations of halting and resuming the management chip (MCP)
    might fail, since currently the driver doesn't wait for these operations to
    actually take place.
    This patch prevents the driver from moving forward before the operations
    are reflected in the state register.
    
    Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
    Signed-off-by: Ariel Elior <Ariel.Elior@cavium.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 33906ae926e0634e8eea89ec36858ab4a36bcd28
Author: Tomer Tayar <Tomer.Tayar@cavium.com>
Date:   Mon Aug 20 00:01:42 2018 +0300

    qed: Wait for ready indication before rereading the shmem
    
    [ Upstream commit f00d25f3154b676fcea4502a25b94bd7f142ca74 ]
    
    The MFW might be reset and re-update its shared memory.
    Upon the detection of such a reset the driver rereads this memory, but it
    has to wait till the data is valid.
    This patch adds the missing wait for a data ready indication.
    
    Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
    Signed-off-by: Ariel Elior <Ariel.Elior@cavium.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 38d070f9090af15b5bdb26fc0e084b22f34eabd9
Author: Dave Martin <Dave.Martin@arm.com>
Date:   Thu Sep 27 16:53:21 2018 +0100

    arm64: KVM: Tighten guest core register access from userspace
    
    commit d26c25a9d19b5976b319af528886f89cf455692d upstream.
    
    We currently allow userspace to access the core register file
    in about any possible way, including straddling multiple
    registers and doing unaligned accesses.
    
    This is not the expected use of the ABI, and nobody is actually
    using it that way. Let's tighten it by explicitly checking
    the size and alignment for each field of the register file.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 2f4a07c5f9fe ("arm64: KVM: guest one-reg interface")
    Reviewed-by: Christoffer Dall <christoffer.dall@arm.com>
    Reviewed-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Dave Martin <Dave.Martin@arm.com>
    [maz: rewrote Dave's initial patch to be more easily backported]
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d428e43eb684af5f3aaad1b2f67e55276ffd6bd4
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Thu Sep 20 14:11:17 2018 +0200

    serial: imx: restore handshaking irq for imx1
    
    commit 7e620984b62532783912312e334f3c48cdacbd5d upstream.
    
    Back in 2015 when irda was dropped from the driver imx1 was broken. This
    change reintroduces the support for the third interrupt of the UART.
    
    Fixes: afe9cbb1a6ad ("serial: imx: drop support for IRDA")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 016d4aae9d849aa871707df58bedb5fee1d1a31c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 6 12:49:13 2017 +0000

    drm/i915: Remove vma from object on destroy, not close
    
    commit 010e3e68cd9cb65ea50c0af605e966cda333cb2a upstream.
    
    Originally we translated from the object to the vma by walking
    obj->vma_list to find the matching vm (for user lookups). Now we process
    user lookups using the rbtree, and we only use obj->vma_list itself for
    maintaining state (e.g. ensuring that all vma are flushed or rebound).
    As such maintenance needs to go on beyond the user's awareness of the
    vma, defer removal of the vma from the obj->vma_list from i915_vma_close()
    to i915_vma_destroy()
    
    Fixes: 5888fc9eac3c ("drm/i915: Flush pending GTT writes before unbinding")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104155
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171206124914.19960-1-chris@chris-wilson.co.uk
    Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d134e9170417c7d4ee71d8a1d195997abeee783c
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Sun Feb 4 15:35:09 2018 +0200

    ovl: hash non-dir by lower inode for fsnotify
    
    commit 764baba80168ad3adafb521d2ab483ccbc49e344 upstream.
    
    Commit 31747eda41ef ("ovl: hash directory inodes for fsnotify")
    fixed an issue of inotify watch on directory that stops getting
    events after dropping dentry caches.
    
    A similar issue exists for non-dir non-upper files, for example:
    
    $ mkdir -p lower upper work merged
    $ touch lower/foo
    $ mount -t overlay -o
    lowerdir=lower,workdir=work,upperdir=upper none merged
    $ inotifywait merged/foo &
    $ echo 2 > /proc/sys/vm/drop_caches
    $ cat merged/foo
    
    inotifywait doesn't get the OPEN event, because ovl_lookup() called
    from 'cat' allocates a new overlay inode and does not reuse the
    watched inode.
    
    Fix this by hashing non-dir overlay inodes by lower real inode in
    the following cases that were not hashed before this change:
     - A non-upper overlay mount
     - A lower non-hardlink when index=off
    
    A helper ovl_hash_bylower() was added to put all the logic and
    documentation about which real inode an overlay inode is hashed by
    into one place.
    
    The issue dates back to initial version of overlayfs, but this
    patch depends on ovl_inode code that was introduced in kernel v4.13.
    
    Cc: <stable@vger.kernel.org> #v4.13
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Mark Salyzyn <salyzyn@android.com> #4.14
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 105470069de32b48fb8a9784ee6a8fc7b76c9791
Author: Steve Wise <swise@opengridcomputing.com>
Date:   Fri Aug 31 07:16:03 2018 -0700

    RDMA/uverbs: Atomically flush and mark closed the comp event queue
    
    commit 67e3816842fe6414d629c7515b955952ec40c7d7 upstream.
    
    Currently a uverbs completion event queue is flushed of events in
    ib_uverbs_comp_event_close() with the queue spinlock held and then
    released.  Yet setting ev_queue->is_closed is not set until later in
    uverbs_hot_unplug_completion_event_file().
    
    In between the time ib_uverbs_comp_event_close() releases the lock and
    uverbs_hot_unplug_completion_event_file() acquires the lock, a completion
    event can arrive and be inserted into the event queue by
    ib_uverbs_comp_handler().
    
    This can cause a "double add" list_add warning or crash depending on the
    kernel configuration, or a memory leak because the event is never dequeued
    since the queue is already closed down.
    
    So add setting ev_queue->is_closed = 1 to ib_uverbs_comp_event_close().
    
    Cc: stable@vger.kernel.org
    Fixes: 1e7710f3f656 ("IB/core: Change completion channel to use the reworked objects schema")
    Signed-off-by: Steve Wise <swise@opengridcomputing.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 693536a7ce39a44a424acc7937fc8ebfcc7a72ee
Author: Michael J. Ruhl <michael.j.ruhl@intel.com>
Date:   Thu Sep 20 12:59:05 2018 -0700

    IB/hfi1: Fix context recovery when PBC has an UnsupportedVL
    
    commit d623500b3c4efd8d4e945ac9003c6b87b469a9ab upstream.
    
    If a packet stream uses an UnsupportedVL (virtual lane), the send
    engine will not send the packet, and it will not indicate that an
    error has occurred.  This will cause the packet stream to block.
    
    HFI has 8 virtual lanes available for packet streams.  Each lane can
    be enabled or disabled using the UnsupportedVL mask.  If a lane is
    disabled, adding a packet to the send context must be disallowed.
    
    The current mask for determining unsupported VLs defaults to 0 (allow
    all).  This is incorrect.  Only the VLs that are defined should be
    allowed.
    
    Determine which VLs are disabled (mtu == 0), and set the appropriate
    unsupported bit in the mask.  The correct mask will allow the send
    engine to error on the invalid VL, and error recovery will work
    correctly.
    
    Cc: <stable@vger.kernel.org> # 4.9.x+
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Reviewed-by: Lukasz Odzioba <lukasz.odzioba@intel.com>
    Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Signed-off-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 412a4b4db1a6754d9141538e54a15841b121a02c
Author: Michael J. Ruhl <michael.j.ruhl@intel.com>
Date:   Thu Sep 20 12:58:56 2018 -0700

    IB/hfi1: Invalid user input can result in crash
    
    commit 94694d18cf27a6faad91487a38ce516c2b16e7d9 upstream.
    
    If the number of packets in a user sdma request does not match
    the actual iovectors being sent, sdma_cleanup can be called on
    an uninitialized request structure, resulting in a crash similar
    to this:
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    IP: [<ffffffffc0ae8bb7>] __sdma_txclean+0x57/0x1e0 [hfi1]
    PGD 8000001044f61067 PUD 1052706067 PMD 0
    Oops: 0000 [#1] SMP
    CPU: 30 PID: 69912 Comm: upsm Kdump: loaded Tainted: G           OE
    ------------   3.10.0-862.el7.x86_64 #1
    Hardware name: Intel Corporation S2600KPR/S2600KPR, BIOS
    SE5C610.86B.01.01.0019.101220160604 10/12/2016
    task: ffff8b331c890000 ti: ffff8b2ed1f98000 task.ti: ffff8b2ed1f98000
    RIP: 0010:[<ffffffffc0ae8bb7>]  [<ffffffffc0ae8bb7>] __sdma_txclean+0x57/0x1e0
    [hfi1]
    RSP: 0018:ffff8b2ed1f9bab0  EFLAGS: 00010286
    RAX: 0000000000008b2b RBX: ffff8b2adf6e0000 RCX: 0000000000000000
    RDX: 00000000000000a0 RSI: ffff8b2e9eedc540 RDI: ffff8b2adf6e0000
    RBP: ffff8b2ed1f9bad8 R08: 0000000000000000 R09: ffffffffc0b04a06
    R10: ffff8b331c890190 R11: ffffe6ed00bf1840 R12: ffff8b3315480000
    R13: ffff8b33154800f0 R14: 00000000fffffff2 R15: ffff8b2e9eedc540
    FS:  00007f035ac47740(0000) GS:ffff8b331e100000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000008 CR3: 0000000c03fe6000 CR4: 00000000001607e0
    Call Trace:
     [<ffffffffc0b0570d>] user_sdma_send_pkts+0xdcd/0x1990 [hfi1]
     [<ffffffff9fe75fb0>] ? gup_pud_range+0x140/0x290
     [<ffffffffc0ad3105>] ? hfi1_mmu_rb_insert+0x155/0x1b0 [hfi1]
     [<ffffffffc0b0777b>] hfi1_user_sdma_process_request+0xc5b/0x11b0 [hfi1]
     [<ffffffffc0ac193a>] hfi1_aio_write+0xba/0x110 [hfi1]
     [<ffffffffa001a2bb>] do_sync_readv_writev+0x7b/0xd0
     [<ffffffffa001bede>] do_readv_writev+0xce/0x260
     [<ffffffffa022b089>] ? tty_ldisc_deref+0x19/0x20
     [<ffffffffa02268c0>] ? n_tty_ioctl+0xe0/0xe0
     [<ffffffffa001c105>] vfs_writev+0x35/0x60
     [<ffffffffa001c2bf>] SyS_writev+0x7f/0x110
     [<ffffffffa051f7d5>] system_call_fastpath+0x1c/0x21
    Code: 06 49 c7 47 18 00 00 00 00 0f 87 89 01 00 00 5b 41 5c 41 5d 41 5e 41 5f
    5d c3 66 2e 0f 1f 84 00 00 00 00 00 48 8b 4e 10 48 89 fb <48> 8b 51 08 49 89 d4
    83 e2 0c 41 81 e4 00 e0 00 00 48 c1 ea 02
    RIP  [<ffffffffc0ae8bb7>] __sdma_txclean+0x57/0x1e0 [hfi1]
     RSP <ffff8b2ed1f9bab0>
    CR2: 0000000000000008
    
    There are two exit points from user_sdma_send_pkts().  One (free_tx)
    merely frees the slab entry and one (free_txreq) cleans the sdma_txreq
    prior to freeing the slab entry.   The free_txreq variation can only be
    called after one of the sdma_init*() variations has been called.
    
    In the panic case, the slab entry had been allocated but not inited.
    
    Fix the issue by exiting through free_tx thus avoiding sdma_clean().
    
    Cc: <stable@vger.kernel.org> # 4.9.x+
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Reviewed-by: Lukasz Odzioba <lukasz.odzioba@intel.com>
    Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>

commit d9e49e9ed8d6f59dfc7c34f904d99462829fecc1
Author: Ira Weiny <ira.weiny@intel.com>
Date:   Thu Sep 20 12:58:46 2018 -0700

    IB/hfi1: Fix SL array bounds check
    
    commit 0dbfaa9f2813787679e296eb5476e40938ab48c8 upstream.
    
    The SL specified by a user needs to be a valid SL.
    
    Add a range check to the user specified SL value which protects from
    running off the end of the SL to SC table.
    
    CC: stable@vger.kernel.org
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Signed-off-by: Ira Weiny <ira.weiny@intel.com>
    Signed-off-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 fcbe49c82b8242fd8a45309c30c6f887f14ab83b
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Sep 17 18:10:05 2018 -0700

    IB/srp: Avoid that sg_reset -d ${srp_device} triggers an infinite loop
    
    commit ee92efe41cf358f4b99e73509f2bfd4733609f26 upstream.
    
    Use different loop variables for the inner and outer loop. This avoids
    that an infinite loop occurs if there are more RDMA channels than
    target->req_ring_size.
    
    Fixes: d92c0da71a35 ("IB/srp: Add multichannel support")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3011b91478ffa64cae02bf08dffbd8efb328458a
Author: Aaron Ma <aaron.ma@canonical.com>
Date:   Tue Sep 18 09:32:22 2018 -0700

    Input: elantech - enable middle button of touchpad on ThinkPad P72
    
    commit 91a97507323e1ad4bfc10f4a5922e67cdaf8b3cd upstream.
    
    Adding 2 new touchpad IDs to support middle button support.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9691f745e17a17f8ee7d7ea18dfe0bbd2a090cbd
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Sep 10 13:58:51 2018 -0400

    USB: remove LPM management from usb_driver_claim_interface()
    
    commit c183813fcee44a249339b7c46e1ad271ca1870aa upstream.
    
    usb_driver_claim_interface() disables and re-enables Link Power
    Management, but it shouldn't do either one, for the reasons listed
    below.  This patch removes the two LPM-related function calls from the
    routine.
    
    The reason for disabling LPM in the analogous function
    usb_probe_interface() is so that drivers won't have to deal with
    unwanted LPM transitions in their probe routine.  But
    usb_driver_claim_interface() doesn't call the driver's probe routine
    (or any other callbacks), so that reason doesn't apply here.
    
    Furthermore, no driver other than usbfs will ever call
    usb_driver_claim_interface() unless it is already bound to another
    interface in the same device, which means disabling LPM here would be
    redundant.  usbfs doesn't interact with LPM at all.
    
    Lastly, the error return from usb_unlocked_disable_lpm() isn't handled
    properly; the code doesn't clean up its earlier actions before
    returning.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Fixes: 8306095fd2c1 ("USB: Disable USB 3.0 LPM in critical sections.")
    CC: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be2360ed2d22761b8cfa5e891fd05ef08736dc71
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Tue Sep 11 10:00:44 2018 +0200

    Revert "usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()"
    
    commit e871db8d78df1c411032cbb3acfdf8930509360e upstream.
    
    This reverts commit 6e22e3af7bb3a7b9dc53cb4687659f6e63fca427.
    
    The bug the patch describes to, has been already fixed in commit
    2df6948428542 ("USB: cdc-wdm: don't enable interrupts in USB-giveback")
    so need to this, revert it.
    
    Fixes: 6e22e3af7bb3 ("usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec6dc4b61c3312e6d2de4186ccca2bf1daa1d640
Author: Oliver Neukum <oneukum@suse.com>
Date:   Wed Sep 5 12:07:03 2018 +0200

    USB: usbdevfs: restore warning for nonsensical flags
    
    commit 81e0403b26d94360abd1f6a57311337973bc82cd upstream.
    
    If we filter flags before they reach the core we need to generate our
    own warnings.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Fixes: 0cb54a3e47cb ("USB: debugging code shouldn't alter control flow")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 25a8d4825165174dfcc256cf92f7bf63c4a8812f
Author: Oliver Neukum <oneukum@suse.com>
Date:   Wed Sep 5 12:07:02 2018 +0200

    USB: usbdevfs: sanitize flags more
    
    commit 7a68d9fb851012829c29e770621905529bd9490b upstream.
    
    Requesting a ZERO_PACKET or not is sensible only for output.
    In the input direction the device decides.
    Likewise accepting short packets makes sense only for input.
    
    This allows operation with panic_on_warn without opening up
    a local DOS.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Reported-by: syzbot+843efa30c8821bd69f53@syzkaller.appspotmail.com
    Fixes: 0cb54a3e47cb ("USB: debugging code shouldn't alter control flow")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 67d8e231759fe4ba5fdbae73a94df963816e7652
Author: ming_qian <ming_qian@realsil.com.cn>
Date:   Tue May 8 22:13:08 2018 -0400

    media: uvcvideo: Support realtek's UVC 1.5 device
    
    commit f620d1d7afc7db57ab59f35000752840c91f67e7 upstream.
    
    media: uvcvideo: Support UVC 1.5 video probe & commit controls
    
    The length of UVC 1.5 video control is 48, and it is 34 for UVC 1.1.
    Change it to 48 for UVC 1.5 device, and the UVC 1.5 device can be
    recognized.
    
    More changes to the driver are needed for full UVC 1.5 compatibility.
    However, at least the UVC 1.5 Realtek RTS5847/RTS5852 cameras have been
    reported to work well.
    
    [laurent.pinchart@ideasonboard.com: Factor out code to helper function, update size checks]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: ming_qian <ming_qian@realsil.com.cn>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Tested-by: Ana Guerrero Lopez <ana.guerrero@collabora.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ddc0781c0ce451805b4ee6a5b7521bf9c49d5aa
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Thu Apr 5 16:21:10 2018 -0700

    slub: make ->cpu_partial unsigned int
    
    commit e5d9998f3e09359b372a037a6ac55ba235d95d57 upstream.
    
            /*
             * cpu_partial determined the maximum number of objects
             * kept in the per cpu partial lists of a processor.
             */
    
    Can't be negative.
    
    Link: http://lkml.kernel.org/r/20180305200730.15812-15-adobriyan@gmail.com
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Acked-by: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: zhong jiang <zhongjiang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e75c01761a11c445246bb59e15b0d2dea428f6a5
Author: Bin Liu <b-liu@ti.com>
Date:   Mon Sep 17 11:40:22 2018 -0500

    usb: musb: dsps: do not disable CPPI41 irq in driver teardown
    
    commit 783f3b4e9ec50491c21746e7e05ec6c39c21f563 upstream.
    
    TI AM335x CPPI 4.1 module uses a single register bit for CPPI interrupts
    in both musb controllers. So disabling the CPPI irq in one musb driver
    breaks the other musb module.
    
    Since musb is already disabled before tearing down dma controller in
    musb_remove(), it is safe to not disable CPPI irq in
    musb_dma_controller_destroy().
    
    Fixes: 255348289f71 ("usb: musb: dsps: Manage CPPI 4.1 DMA interrupt in DSPS")
    Cc: stable@vger.kernel.org
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b6717c6a3c0c92fe08a439717c19fa61c8c0099
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Sep 10 14:00:53 2018 -0400

    USB: handle NULL config in usb_find_alt_setting()
    
    commit c9a4cb204e9eb7fa7dfbe3f7d3a674fa530aa193 upstream.
    
    usb_find_alt_setting() takes a pointer to a struct usb_host_config as
    an argument; it searches for an interface with specified interface and
    alternate setting numbers in that config.  However, it crashes if the
    usb_host_config pointer argument is NULL.
    
    Since this is a general-purpose routine, available for use in many
    places, we want to to be more robust.  This patch makes it return NULL
    whenever the config argument is NULL.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: syzbot+19c3aaef85a89d451eac@syzkaller.appspotmail.com
    CC: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4253abe6a3aac68012b5906317803a331a472f5e
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Sep 10 13:59:59 2018 -0400

    USB: fix error handling in usb_driver_claim_interface()
    
    commit bd729f9d67aa9a303d8925bb8c4f06af25f407d1 upstream.
    
    The syzbot fuzzing project found a use-after-free bug in the USB
    core.  The bug was caused by usbfs not unbinding from an interface
    when the USB device file was closed, which led another process to
    attempt the unbind later on, after the private data structure had been
    deallocated.
    
    The reason usbfs did not unbind the interface at the appropriate time
    was because it thought the interface had never been claimed in the
    first place.  This was caused by the fact that
    usb_driver_claim_interface() does not clean up properly when
    device_bind_driver() returns an error.  Although the error code gets
    passed back to the caller, the iface->dev.driver pointer remains set
    and iface->condition remains equal to USB_INTERFACE_BOUND.
    
    This patch adds proper error handling to usb_driver_claim_interface().
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: syzbot+f84aa7209ccec829536f@syzkaller.appspotmail.com
    CC: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5eaaa5e9bd56813deef7afd5b70f2d62f51187f4
Author: Yu Zhao <yuzhao@google.com>
Date:   Wed Sep 19 15:30:51 2018 -0600

    regulator: fix crash caused by null driver data
    
    commit fb6de923ca3358a91525552b4907d4cb38730bdd upstream.
    
    dev_set_drvdata() needs to be called before device_register()
    exposes device to userspace. Otherwise kernel crashes after it
    gets null pointer from dev_get_drvdata() when userspace tries
    to access sysfs entries.
    
    [Removed backtrace for length -- broonie]
    
    Signed-off-by: Yu Zhao <yuzhao@google.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6adc1f24bb356c5601391b79ea689f06a55a17f
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Sep 5 10:49:39 2018 +0200

    spi: rspi: Fix interrupted DMA transfers
    
    commit 8dbbaa47b96f6ea5f09f922b4effff3c505cd8cf upstream.
    
    When interrupted, wait_event_interruptible_timeout() returns
    -ERESTARTSYS, and the SPI transfer in progress will fail, as expected:
    
        m25p80 spi0.0: SPI transfer failed: -512
        spi_master spi0: failed to transfer one message from queue
    
    However, as the underlying DMA transfers may not have completed, all
    subsequent SPI transfers may start to fail:
    
        spi_master spi0: receive timeout
        qspi_transfer_out_in() returned -110
        m25p80 spi0.0: SPI transfer failed: -110
        spi_master spi0: failed to transfer one message from queue
    
    Fix this by calling dmaengine_terminate_all() not only for timeouts, but
    also for errors.
    
    This can be reproduced on r8a7991/koelsch, using "hd /dev/mtd0" followed
    by CTRL-C.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 082e34f367a5493b46658ff8bee1b9fba48c3fc0
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Sep 5 10:49:38 2018 +0200

    spi: rspi: Fix invalid SPI use during system suspend
    
    commit c1ca59c22c56930b377a665fdd1b43351887830b upstream.
    
    If the SPI queue is running during system suspend, the system may lock
    up.
    
    Fix this by stopping/restarting the queue during system suspend/resume,
    by calling spi_master_suspend()/spi_master_resume() from the PM
    callbacks.  In-kernel users will receive an -ESHUTDOWN error while
    system suspend/resume is in progress.
    
    Based on a patch for sh-msiof by Gaku Inami.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6074b71d617ddfafc15164f4b6e320c7db4d24d7
Author: Hiromitsu Yamasaki <hiromitsu.yamasaki.ym@renesas.com>
Date:   Wed Sep 5 10:49:37 2018 +0200

    spi: sh-msiof: Fix handling of write value for SISTR register
    
    commit 31a5fae4c5a009898da6d177901d5328051641ff upstream.
    
    This patch changes writing to the SISTR register according to the H/W
    user's manual.
    
    The TDREQ bit and RDREQ bits of SISTR are read-only, and must be written
    their initial values of zero.
    
    Signed-off-by: Hiromitsu Yamasaki <hiromitsu.yamasaki.ym@renesas.com>
    [geert: reword]
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d120858fca5f631195fbb7e2c2768d525d1c80da
Author: Gaku Inami <gaku.inami.xw@bp.renesas.com>
Date:   Wed Sep 5 10:49:36 2018 +0200

    spi: sh-msiof: Fix invalid SPI use during system suspend
    
    commit ffa69d6a16f686efe45269342474e421f2aa58b2 upstream.
    
    If the SPI queue is running during system suspend, the system may lock
    up.
    
    Fix this by stopping/restarting the queue during system suspend/resume
    by calling spi_master_suspend()/spi_master_resume() from the PM
    callbacks.  In-kernel users will receive an -ESHUTDOWN error while
    system suspend/resume is in progress.
    
    Signed-off-by: Gaku Inami <gaku.inami.xw@bp.renesas.com>
    Signed-off-by: Hiromitsu Yamasaki <hiromitsu.yamasaki.ym@renesas.com>
    [geert: Cleanup, reword]
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 429773341c34cde3caacbc3992e2dcb1d7ccea86
Author: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Date:   Wed Aug 29 08:47:57 2018 +0200

    spi: tegra20-slink: explicitly enable/disable clock
    
    commit 7001cab1dabc0b72b2b672ef58a90ab64f5e2343 upstream.
    
    Depending on the SPI instance one may get an interrupt storm upon
    requesting resp. interrupt unless the clock is explicitly enabled
    beforehand. This has been observed trying to bring up instance 4 on
    T20.
    
    Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc89d37f9098ce6855457a86769f111e9190bd16
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Tue Sep 18 16:10:47 2018 +0300

    intel_th: Fix device removal logic
    
    commit 8801922cd94c918e4dc3a108ecaa500c4d40583f upstream.
    
    Commit a753bfcfdb1f ("intel_th: Make the switch allocate its subdevices")
    brings in new subdevice addition/removal logic that's broken for "host
    mode": the SWITCH device has no children to begin with, which is not
    handled in the code. This results in a null dereference bug later down
    the path.
    
    This patch fixes the subdevice removal code to handle host mode correctly.
    
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Fixes: a753bfcfdb1f ("intel_th: Make the switch allocate its subdevices")
    CC: stable@vger.kernel.org # v4.14+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 247cc73cd8f5e0707f19ac56affadad4300095a6
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Fri Sep 14 10:32:50 2018 +0000

    serial: cpm_uart: return immediately from console poll
    
    commit be28c1e3ca29887e207f0cbcd294cefe5074bab6 upstream.
    
    kgdb expects poll function to return immediately and
    returning NO_POLL_CHAR when no character is available.
    
    Fixes: f5316b4aea024 ("kgdb,8250,pl011: Return immediately from console poll")
    Cc: Jason Wessel <jason.wessel@windriver.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b7ba104769b4b4c5abe2f6d23284a2aaa495197
Author: Stefan Agner <stefan@agner.ch>
Date:   Tue Aug 28 12:44:24 2018 +0200

    tty: serial: lpuart: avoid leaking struct tty_struct
    
    commit 3216c622a24b0ebb9c159a8d1daf7f17a106b3f5 upstream.
    
    The function tty_port_tty_get() gets a reference to the tty. Since
    the code is not using tty_port_tty_set(), the reference is kept
    even after closing the tty.
    
    Avoid using tty_port_tty_get() by directly access the tty instance.
    Since lpuart_start_rx_dma() is called from the .startup() and
    .set_termios() callback, it is safe to assume the tty instance is
    valid.
    
    Cc: stable@vger.kernel.org # v4.9+
    Fixes: 5887ad43ee02 ("tty: serial: fsl_lpuart: Use cyclic DMA for Rx")
    Signed-off-by: Stefan Agner <stefan@agner.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fe780c1baec24dcc098cbc848fdc589b62a8ce0
Author: Feng Tang <feng.tang@intel.com>
Date:   Thu Sep 20 10:58:28 2018 +0800

    x86/mm: Expand static page table for fixmap space
    
    commit 05ab1d8a4b36ee912b7087c6da127439ed0a903e upstream.
    
    We met a kernel panic when enabling earlycon, which is due to the fixmap
    address of earlycon is not statically setup.
    
    Currently the static fixmap setup in head_64.S only covers 2M virtual
    address space, while it actually could be in 4M space with different
    kernel configurations, e.g. when VSYSCALL emulation is disabled.
    
    So increase the static space to 4M for now by defining FIXMAP_PMD_NUM to 2,
    and add a build time check to ensure that the fixmap is covered by the
    initial static page tables.
    
    Fixes: 1ad83c858c7d ("x86_64,vsyscall: Make vsyscall emulation configurable")
    Suggested-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Feng Tang <feng.tang@intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: kernel test robot <rong.a.chen@intel.com>
    Reviewed-by: Juergen Gross <jgross@suse.com> (Xen parts)
    Cc: H Peter Anvin <hpa@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Andy Lutomirsky <luto@kernel.org>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180920025828.23699-1-feng.tang@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04bc4dd86d0f2b166640c8ea5b7a030d92a3d993
Author: Andy Whitcroft <apw@canonical.com>
Date:   Thu Sep 20 09:09:48 2018 -0600

    floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl
    
    commit 65eea8edc315589d6c993cf12dbb5d0e9ef1fe4e upstream.
    
    The final field of a floppy_struct is the field "name", which is a pointer
    to a string in kernel memory.  The kernel pointer should not be copied to
    user memory.  The FDGETPRM ioctl copies a floppy_struct to user memory,
    including this "name" field.  This pointer cannot be used by the user
    and it will leak a kernel address to user-space, which will reveal the
    location of kernel code and data and undermine KASLR protection.
    
    Model this code after the compat ioctl which copies the returned data
    to a previously cleared temporary structure on the stack (excluding the
    name pointer) and copy out to userspace from there.  As we already have
    an inparam union with an appropriate member and that memory is already
    cleared even for read only calls make use of that as a temporary store.
    
    Based on an initial patch by Brian Belleville.
    
    CVE-2018-7755
    Signed-off-by: Andy Whitcroft <apw@canonical.com>
    Broke up long line.
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f88e50ea03000bba631833540a654c7692f6410f
Author: Kevin Hilman <khilman@baylibre.com>
Date:   Mon May 21 13:08:32 2018 -0700

    ARM: dts: dra7: fix DCAN node addresses
    
    [ Upstream commit 949bdcc8a97c6078f21c8d4966436b117f2e4cd3 ]
    
    Fix the DT node addresses to match the reg property addresses,
    which were verified to match the TRM:
    http://www.ti.com/lit/pdf/sprui30
    
    Cc: Roger Quadros <rogerq@ti.com>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Acked-by: Roger Quadros <rogerq@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99795ed0c62d9aa81c6930838e4a8ab6132bc7b4
Author: William Breathitt Gray <vilhelm.gray@gmail.com>
Date:   Thu May 24 16:37:46 2018 -0400

    iio: 104-quad-8: Fix off-by-one error in register selection
    
    [ Upstream commit 2873c3f0e2bd12a7612e905c920c058855f4072a ]
    
    The reset flags operation is selected by bit 2 in the "Reset and Load
    Signals Decoders" register, not bit 1.
    
    Fixes: 28e5d3bb0325 ("iio: 104-quad-8: Add IIO support for the ACCES 104-QUAD-8")
    Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a82a772da750843c30efdd3434cd5a0937193cf6
Author: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Date:   Tue Jun 12 15:03:36 2018 -0700

    Input: xen-kbdfront - fix multi-touch XenStore node's locations
    
    [ Upstream commit ce6f7d087e2b037f47349c1c36ac97678d02e394 ]
    
    kbdif protocol describes multi-touch device parameters as a
    part of frontend's XenBus configuration nodes while they
    belong to backend's configuration. Fix this by reading the
    parameters as defined by the protocol.
    
    Fixes: 49aac8204da5 ("Input: xen-kbdfront - add multi-touch support")
    
    Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91e30cae8903ad56b44e36e97b2eddb77675151c
Author: Konstantin Khorenko <khorenko@virtuozzo.com>
Date:   Fri Jun 8 17:27:11 2018 +0300

    fs/lock: skip lock owner pid translation in case we are in init_pid_ns
    
    [ Upstream commit 826d7bc9f013d01e92997883d2fd0c25f4af1f1c ]
    
    If the flock owner process is dead and its pid has been already freed,
    pid translation won't work, but we still want to show flock owner pid
    number when expecting /proc/$PID/fdinfo/$FD in init pidns.
    
    Reproducer:
    process A       process A1      process A2
    fork()--------->
    exit()          open()
                    flock()
                    fork()--------->
                    exit()          sleep()
    
    Before the patch:
    ================
    (root@vz7)/: cat /proc/${PID_A2}/fdinfo/3
    pos:    4
    flags:  02100002
    mnt_id: 257
    lock:   (root@vz7)/:
    
    After the patch:
    ===============
    (root@vz7)/:cat /proc/${PID_A2}/fdinfo/3
    pos:    4
    flags:  02100002
    mnt_id: 295
    lock:   1: FLOCK  ADVISORY  WRITE ${PID_A1} b6:f8a61:529946 0 EOF
    
    Fixes: 9d5b86ac13c5 ("fs/locks: Remove fl_nspid and use fs-specific l_pid for remote locks")
    Signed-off-by: Konstantin Khorenko <khorenko@virtuozzo.com>
    Acked-by: Andrey Vagin <avagin@openvz.org>
    Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c4439c4441608e79d4a0dcb3cd81b9becf918c2
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jun 12 14:43:34 2018 +0200

    EDAC: Fix memleak in module init error path
    
    [ Upstream commit 4708aa85d50cc6e962dfa8acf5ad4e0d290a21db ]
    
    Make sure to use put_device() to free the initialised struct device so
    that resources managed by driver core also gets released in the event of
    a registration failure.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Cc: Denis Kirjanov <kirjanov@gmail.com>
    Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Fixes: 2d56b109e3a5 ("EDAC: Handle error path in edac_mc_sysfs_init() properly")
    Link: http://lkml.kernel.org/r/20180612124335.6420-1-johan@kernel.org
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a4f7bea878871cffe39618696462e6e4881f4d6e
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Wed Jun 13 15:21:35 2018 -0400

    nfsd: fix corrupted reply to badly ordered compound
    
    [ Upstream commit 5b7b15aee641904ae269be9846610a3950cbd64c ]
    
    We're encoding a single op in the reply but leaving the number of ops
    zero, so the reply makes no sense.
    
    Somewhat academic as this isn't a case any real client will hit, though
    in theory perhaps that could change in a future protocol extension.
    
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de6ccdbd77345349b0134590a71dfcee5e4da791
Author: Nadav Amit <namit@vmware.com>
Date:   Mon Jun 4 06:58:14 2018 -0700

    gpio: Fix wrong rounding in gpio-menz127
    
    [ Upstream commit 7279d9917560bbd0d82813d6bf00490a82c06783 ]
    
    men_z127_debounce() tries to round up and down, but uses functions which
    are only suitable when the divider is a power of two, which is not the
    case. Use the appropriate ones.
    
    Found by static check. Compile tested.
    
    Fixes: f436bc2726c64 ("gpio: add driver for MEN 16Z127 GPIO controller")
    Signed-off-by: Nadav Amit <namit@vmware.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5bcbbadf6ac54568019720be6d434bf7020fe3ed
Author: Jessica Yu <jeyu@kernel.org>
Date:   Tue Jun 5 10:22:52 2018 +0200

    module: exclude SHN_UNDEF symbols from kallsyms api
    
    [ Upstream commit 9f2d1e68cf4d641def734adaccfc3823d3575e6c ]
    
    Livepatch modules are special in that we preserve their entire symbol
    tables in order to be able to apply relocations after module load. The
    unwanted side effect of this is that undefined (SHN_UNDEF) symbols of
    livepatch modules are accessible via the kallsyms api and this can
    confuse symbol resolution in livepatch (klp_find_object_symbol()) and
    cause subtle bugs in livepatch.
    
    Have the module kallsyms api skip over SHN_UNDEF symbols. These symbols
    are usually not available for normal modules anyway as we cut down their
    symbol tables to just the core (non-undefined) symbols, so this should
    really just affect livepatch modules. Note that this patch doesn't
    affect the display of undefined symbols in /proc/kallsyms.
    
    Reported-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Tested-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Jessica Yu <jeyu@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05f78b1a0e0c7d76bd97159e9a575165e7fdc6c6
Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Date:   Thu Jun 14 20:26:42 2018 +0100

    ASoC: dapm: Fix potential DAI widget pointer deref when linking DAIs
    
    [ Upstream commit e01b4f624278d5efe5fb5da585ca371947b16680 ]
    
    Sometime a component or topology may configure a DAI widget with no
    private data leading to a dev_dbg() dereferencne of this data.
    
    Fix this to check for non NULL private data and let users know if widget
    is missing DAI.
    
    Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3fd534a5480ec33913c3f76cc0c2de61f5db46e3
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jun 12 14:43:35 2018 +0200

    EDAC, i7core: Fix memleaks and use-after-free on probe and remove
    
    [ Upstream commit 6c974d4dfafe5e9ee754f2a6fba0eb1864f1649e ]
    
    Make sure to free and deregister the addrmatch and chancounts devices
    allocated during probe in all error paths. Also fix use-after-free in a
    probe error path and in the remove success path where the devices were
    being put before before deregistration.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Fixes: 356f0a30860d ("i7core_edac: change the mem allocation scheme to make Documentation/kobject.txt happy")
    Link: http://lkml.kernel.org/r/20180612124335.6420-2-johan@kernel.org
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c96c2f2b11b6ac4e048e1529084a77c90b626967
Author: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Date:   Mon Jun 4 03:45:10 2018 -0700

    scsi: megaraid_sas: Update controller info during resume
    
    [ Upstream commit c3b10a55abc943a526aaecd7e860b15671beb906 ]
    
    There is a possibility that firmware on the controller was upgraded before
    system was suspended. During resume, driver needs to read updated
    controller properties.
    
    Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.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 a56b97a2fc2d6a2490f8aa1980738b41825cc704
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Tue Jun 19 15:10:55 2018 -0700

    iomap: complete partial direct I/O writes synchronously
    
    [ Upstream commit ebf00be37de35788cad72f4f20b4a39e30c0be4a ]
    
    According to xfstest generic/240, applications seem to expect direct I/O
    writes to either complete as a whole or to fail; short direct I/O writes
    are apparently not appreciated.  This means that when only part of an
    asynchronous direct I/O write succeeds, we can either fail the entire
    write, or we can wait for the partial write to complete and retry the
    remaining write as buffered I/O.  The old __blockdev_direct_IO helper
    has code for waiting for partial writes to complete; the new
    iomap_dio_rw iomap helper does not.
    
    The above mentioned fallback mode is needed for gfs2, which doesn't
    allow block allocations under direct I/O to avoid taking cluster-wide
    exclusive locks.  As a consequence, an asynchronous direct I/O write to
    a file range that contains a hole will result in a short write.  In that
    case, wait for the short write to complete to allow gfs2 to recover.
    
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13ab355240a9dc5be2ca9e5aba56932c64ee66ff
Author: Zhouyang Jia <jiazhouyang09@gmail.com>
Date:   Tue Jun 12 11:13:00 2018 +0800

    scsi: bnx2i: add error handling for ioremap_nocache
    
    [ Upstream commit aa154ea885eb0c2407457ce9c1538d78c95456fa ]
    
    When ioremap_nocache fails, the lack of error-handling code may cause
    unexpected results.
    
    This patch adds error-handling code after calling ioremap_nocache.
    
    Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Acked-by: Manish Rangankar <Manish.Rangankar@cavium.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 d5963fae7f3691e58fe7eeb02bbcf6eaac981676
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Tue Jun 5 08:38:45 2018 -0700

    perf/x86/intel/lbr: Fix incomplete LBR call stack
    
    [ Upstream commit 0592e57b24e7e05ec1f4c50b9666c013abff7017 ]
    
    LBR has a limited stack size. If a task has a deeper call stack than
    LBR's stack size, only the overflowed part is reported. A complete call
    stack may not be reconstructed by perf tool.
    
    Current code doesn't access all LBR registers. It only read the ones
    below the TOS. The LBR registers above the TOS will be discarded
    unconditionally.
    
    When a CALL is captured, the TOS is incremented by 1 , modulo max LBR
    stack size. The LBR HW only records the call stack information to the
    register which the TOS points to. It will not touch other LBR
    registers. So the registers above the TOS probably still store the valid
    call stack information for an overflowed call stack, which need to be
    reported.
    
    To retrieve complete call stack information, we need to start from TOS,
    read all LBR registers until an invalid entry is detected.
    0s can be used to detect the invalid entry, because:
    
     - When a RET is captured, the HW zeros the LBR register which TOS points
       to, then decreases the TOS.
     - The LBR registers are reset to 0 when adding a new LBR event or
       scheduling an existing LBR event.
     - A taken branch at IP 0 is not expected
    
    The context switch code is also modified to save/restore all valid LBR
    registers. Furthermore, the LBR registers, which don't have valid call
    stack information, need to be reset in restore, because they may be
    polluted while swapped out.
    
    Here is a small test program, tchain_deep.
    Its call stack is deeper than 32.
    
     noinline void f33(void)
     {
            int i;
    
            for (i = 0; i < 10000000;) {
                    if (i%2)
                            i++;
                    else
                            i++;
            }
     }
    
     noinline void f32(void)
     {
            f33();
     }
    
     noinline void f31(void)
     {
            f32();
     }
    
     ... ...
    
     noinline void f1(void)
     {
            f2();
     }
    
     int main()
     {
            f1();
     }
    
    Here is the test result on SKX. The max stack size of SKX is 32.
    
    Without the patch:
    
     $ perf record -e cycles --call-graph lbr -- ./tchain_deep
     $ perf report --stdio
     #
     # Children      Self  Command      Shared Object     Symbol
     # ........  ........  ...........  ................  .................
     #
       100.00%    99.99%  tchain_deep    tchain_deep       [.] f33
                |
                 --99.99%--f30
                           f31
                           f32
                           f33
    
    With the patch:
    
     $ perf record -e cycles --call-graph lbr -- ./tchain_deep
     $ perf report --stdio
     # Children      Self  Command      Shared Object     Symbol
     # ........  ........  ...........  ................  ..................
     #
        99.99%     0.00%  tchain_deep    tchain_deep       [.] f1
                |
                ---f1
                   f2
                   f3
                   f4
                   f5
                   f6
                   f7
                   f8
                   f9
                   f10
                   f11
                   f12
                   f13
                   f14
                   f15
                   f16
                   f17
                   f18
                   f19
                   f20
                   f21
                   f22
                   f23
                   f24
                   f25
                   f26
                   f27
                   f28
                   f29
                   f30
                   f31
                   f32
                   f33
    
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: acme@kernel.org
    Cc: eranian@google.com
    Link: https://lore.kernel.org/lkml/1528213126-4312-1-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85222eb56f2a5a92fdf1cf95cfd8ea57cc3864ff
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Mon Apr 16 23:47:43 2018 +0900

    MIPS: boot: fix build rule of vmlinux.its.S
    
    [ Upstream commit 67e09db507db3e1642ddce512a4313d20addd6e5 ]
    
    As Documentation/kbuild/makefile.txt says, it is a typical mistake
    to forget the FORCE prerequisite for the rule invoked by if_changed.
    
    Add the FORCE to the prerequisite, but it must be filtered-out from
    the files passed to the 'cat' command.  Because this rule generates
    .vmlinux.its.S.cmd, vmlinux.its.S must be specified as targets so
    that the .cmd file is included.
    
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Patchwork: https://patchwork.linux-mips.org/patch/19097/
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: Kees Cook <keescook@chromium.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 b8e30b822d08fbacd4e023336d9035dac2736bc8
Author: Zhouyang Jia <jiazhouyang09@gmail.com>
Date:   Thu Jun 14 21:37:17 2018 +0800

    HID: hid-ntrig: add error handling for sysfs_create_group
    
    [ Upstream commit 44d4d51de9a3534a2b63d69efda02a10e66541e4 ]
    
    When sysfs_create_group fails, the lack of error-handling code may
    cause unexpected results.
    
    This patch adds error-handling code after calling sysfs_create_group.
    
    Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69cb15d6596de0e91877b19af8353a4f0192e971
Author: Viresh Kumar <viresh.kumar@linaro.org>
Date:   Fri May 25 16:01:49 2018 +0530

    arm: dts: mediatek: Add missing cooling device properties for CPUs
    
    [ Upstream commit 0c7f7a5150023f3c6f0b27c4d4940ce3dfaf62cc ]
    
    The cooling device properties, like "#cooling-cells" and
    "dynamic-power-coefficient", should either be present for all the CPUs
    of a cluster or none. If these are present only for a subset of CPUs of
    a cluster then things will start falling apart as soon as the CPUs are
    brought online in a different order. For example, this will happen
    because the operating system looks for such properties in the CPU node
    it is trying to bring up, so that it can register a cooling device.
    
    Add such missing properties.
    
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ef7a3782de84729d021a702341e33cccd06f32c
Author: Ethan Tuttle <ethan@ethantuttle.com>
Date:   Tue Jun 19 21:31:08 2018 -0700

    ARM: mvebu: declare asm symbols as character arrays in pmsu.c
    
    [ Upstream commit d0d378ff451a66e486488eec842e507d28145813 ]
    
    With CONFIG_FORTIFY_SOURCE, memcpy uses the declared size of operands to
    detect buffer overflows.  If src or dest is declared as a char, attempts to
    copy more than byte will result in a fortify_panic().
    
    Address this problem in mvebu_setup_boot_addr_wa() by declaring
    mvebu_boot_wa_start and mvebu_boot_wa_end as character arrays.  Also remove
    a couple addressof operators to avoid "arithmetic on pointer to an
    incomplete type" compiler error.
    
    See commit 54a7d50b9205 ("x86: mark kprobe templates as character arrays,
    not single characters") for a similar fix.
    
    Fixes "detected buffer overflow in memcpy" error during init on some mvebu
    systems (armada-370-xp, armada-375):
    
    (fortify_panic) from (mvebu_setup_boot_addr_wa+0xb0/0xb4)
    (mvebu_setup_boot_addr_wa) from (mvebu_v7_cpu_pm_init+0x154/0x204)
    (mvebu_v7_cpu_pm_init) from (do_one_initcall+0x7c/0x1a8)
    (do_one_initcall) from (kernel_init_freeable+0x1bc/0x254)
    (kernel_init_freeable) from (kernel_init+0x8/0x114)
    (kernel_init) from (ret_from_fork+0x14/0x2c)
    
    Signed-off-by: Ethan Tuttle <ethan@ethantuttle.com>
    Tested-by: Ethan Tuttle <ethan@ethantuttle.com>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e87efc44dd36ba3db59847c418354711ebad779b
Author: Tony Lindgren <tony@atomide.com>
Date:   Tue Jun 19 02:43:35 2018 -0700

    wlcore: Add missing PM call for wlcore_cmd_wait_for_event_or_timeout()
    
    [ Upstream commit 4ec7cece87b3ed21ffcd407c62fb2f151a366bc1 ]
    
    Otherwise we can get:
    
    WARNING: CPU: 0 PID: 55 at drivers/net/wireless/ti/wlcore/io.h:84
    
    I've only seen this few times with the runtime PM patches enabled
    so this one is probably not needed before that. This seems to
    work currently based on the current PM implementation timer. Let's
    apply this separately though in case others are hitting this issue.
    
    Signed-off-by: Tony Lindgren <tony@atomide.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 dad01c56989a91c1bbce8b8ae7eab124bb11dac7
Author: Stefan Agner <stefan@agner.ch>
Date:   Sun Jun 17 12:33:50 2018 +0200

    brcmsmac: fix wrap around in conversion from constant to s16
    
    [ Upstream commit c9a61469fc97672a08b2f798830a55ea6e03dc4a ]
    
    The last value in the log_table wraps around to a negative value
    since s16 has a value range of -32768 to 32767. This is not what
    the table intends to represent. Use the closest positive value
    32767.
    
    This fixes a warning seen with clang:
    drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_qmath.c:216:2: warning:
          implicit conversion from 'int' to 's16' (aka 'short') changes
    value from 32768
          to -32768 [-Wconstant-conversion]
            32768
            ^~~~~
    1 warning generated.
    
    Fixes: 4c0bfeaae9f9 ("brcmsmac: fix array out-of-bounds access in qm_log10")
    Cc: Tobias Regnery <tobias.regnery@gmail.com>
    Signed-off-by: Stefan Agner <stefan@agner.ch>
    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 62bd8064fa8820d4fc5dc3c504e25522f9f18f90
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Jun 5 14:31:39 2018 +0300

    rndis_wlan: potential buffer overflow in rndis_wlan_auth_indication()
    
    [ Upstream commit ae636fb1554833ee5133ca47bf4b2791b6739c52 ]
    
    This is a static checker fix, not something I have tested.  The issue
    is that on the second iteration through the loop, we jump forward by
    le32_to_cpu(auth_req->length) bytes.  The problem is that if the length
    is more than "buflen" then we end up with a negative "buflen".  A
    negative buflen is type promoted to a high positive value and the loop
    continues but it's accessing beyond the end of the buffer.
    
    I believe the "auth_req->length" comes from the firmware and if the
    firmware is malicious or buggy, you're already toasted so the impact of
    this bug is probably not very severe.
    
    Fixes: 030645aceb3d ("rndis_wlan: handle 802.11 indications from device")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.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 3c7f6b2cf6d696baf651125ba6a208fb755882b6
Author: Niklas Cassel <niklas.cassel@linaro.org>
Date:   Mon Jun 18 17:00:49 2018 +0300

    ath10k: transmit queued frames after processing rx packets
    
    [ Upstream commit 3f04950f32d5d592ab4fcaecac2178558a6f7437 ]
    
    When running iperf on ath10k SDIO, TX can stop working:
    
    iperf -c 192.168.1.1 -i 1 -t 20 -w 10K
    [  3]  0.0- 1.0 sec  2.00 MBytes  16.8 Mbits/sec
    [  3]  1.0- 2.0 sec  3.12 MBytes  26.2 Mbits/sec
    [  3]  2.0- 3.0 sec  3.25 MBytes  27.3 Mbits/sec
    [  3]  3.0- 4.0 sec   655 KBytes  5.36 Mbits/sec
    [  3]  4.0- 5.0 sec  0.00 Bytes  0.00 bits/sec
    [  3]  5.0- 6.0 sec  0.00 Bytes  0.00 bits/sec
    [  3]  6.0- 7.0 sec  0.00 Bytes  0.00 bits/sec
    [  3]  7.0- 8.0 sec  0.00 Bytes  0.00 bits/sec
    [  3]  8.0- 9.0 sec  0.00 Bytes  0.00 bits/sec
    [  3]  9.0-10.0 sec  0.00 Bytes  0.00 bits/sec
    [  3]  0.0-10.3 sec  9.01 MBytes  7.32 Mbits/sec
    
    There are frames in the ieee80211_txq and there are frames that have
    been removed from from this queue, but haven't yet been sent on the wire
    (num_pending_tx).
    
    When num_pending_tx reaches max_num_pending_tx, we will stop the queues
    by calling ieee80211_stop_queues().
    
    As frames that have previously been sent for transmission
    (num_pending_tx) are completed, we will decrease num_pending_tx and wake
    the queues by calling ieee80211_wake_queue(). ieee80211_wake_queue()
    does not call wake_tx_queue, so we might still have frames in the
    queue at this point.
    
    While the queues were stopped, the socket buffer might have filled up,
    and in order for user space to write more, we need to free the frames
    in the queue, since they are accounted to the socket. In order to free
    them, we first need to transmit them.
    
    This problem cannot be reproduced on low-latency devices, e.g. pci,
    since they call ath10k_mac_tx_push_pending() from
    ath10k_htt_txrx_compl_task(). ath10k_htt_txrx_compl_task() is not called
    on high-latency devices.
    Fix the problem by calling ath10k_mac_tx_push_pending(), after
    processing rx packets, just like for low-latency devices, also in the
    SDIO case. Since we are calling ath10k_mac_tx_push_pending() directly,
    we also need to export it.
    
    Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
    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 c1283a6270a257a3f0658b6b2cef6332e2649df8
Author: Jernej Skrabec <jernej.skrabec@siol.net>
Date:   Mon Jun 25 14:02:46 2018 +0200

    drm/sun4i: Fix releasing node when enumerating enpoints
    
    [ Upstream commit 367c359aa8637b15ee8df6335c5a29b7623966ec ]
    
    sun4i_drv_add_endpoints() has a memory leak since it uses of_node_put()
    when remote is equal to NULL and does nothing when remote has a valid
    pointer.
    
    Invert the logic to fix memory leak.
    
    Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
    Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180625120304.7543-7-jernej.skrabec@siol.net
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f7056e1822d648f8022997497edc6cad2ad1e73
Author: Brandon Maier <brandon.maier@rockwellcollins.com>
Date:   Tue Jun 26 12:50:48 2018 -0500

    net: phy: xgmiitorgmii: Check phy_driver ready before accessing
    
    [ Upstream commit ab4e6ee578e88a659938db8fbf33720bc048d29c ]
    
    Since a phy_device is added to the global mdio_bus list during
    phy_device_register(), but a phy_device's phy_driver doesn't get
    attached until phy_probe(). It's possible of_phy_find_device() in
    xgmiitorgmii will return a valid phy with a NULL phy_driver. Leading to
    a NULL pointer access during the memcpy().
    
    Fixes this Oops:
    
    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = c0004000
    [00000000] *pgd=00000000
    Internal error: Oops: 5 [#1] PREEMPT SMP ARM
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.40 #1
    Hardware name: Xilinx Zynq Platform
    task: ce4c8d00 task.stack: ce4ca000
    PC is at memcpy+0x48/0x330
    LR is at xgmiitorgmii_probe+0x90/0xe8
    pc : [<c074bc68>]    lr : [<c0529548>]    psr: 20000013
    sp : ce4cbb54  ip : 00000000  fp : ce4cbb8c
    r10: 00000000  r9 : 00000000  r8 : c0c49178
    r7 : 00000000  r6 : cdc14718  r5 : ce762800  r4 : cdc14710
    r3 : 00000000  r2 : 00000054  r1 : 00000000  r0 : cdc14718
    Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
    Control: 18c5387d  Table: 0000404a  DAC: 00000051
    Process swapper/0 (pid: 1, stack limit = 0xce4ca210)
    ...
    [<c074bc68>] (memcpy) from [<c0529548>] (xgmiitorgmii_probe+0x90/0xe8)
    [<c0529548>] (xgmiitorgmii_probe) from [<c0526a94>] (mdio_probe+0x28/0x34)
    [<c0526a94>] (mdio_probe) from [<c04db98c>] (driver_probe_device+0x254/0x414)
    [<c04db98c>] (driver_probe_device) from [<c04dbd58>] (__device_attach_driver+0xac/0x10c)
    [<c04dbd58>] (__device_attach_driver) from [<c04d96f4>] (bus_for_each_drv+0x84/0xc8)
    [<c04d96f4>] (bus_for_each_drv) from [<c04db5bc>] (__device_attach+0xd0/0x134)
    [<c04db5bc>] (__device_attach) from [<c04dbdd4>] (device_initial_probe+0x1c/0x20)
    [<c04dbdd4>] (device_initial_probe) from [<c04da8fc>] (bus_probe_device+0x98/0xa0)
    [<c04da8fc>] (bus_probe_device) from [<c04d8660>] (device_add+0x43c/0x5d0)
    [<c04d8660>] (device_add) from [<c0526cb8>] (mdio_device_register+0x34/0x80)
    [<c0526cb8>] (mdio_device_register) from [<c0580b48>] (of_mdiobus_register+0x170/0x30c)
    [<c0580b48>] (of_mdiobus_register) from [<c05349c4>] (macb_probe+0x710/0xc00)
    [<c05349c4>] (macb_probe) from [<c04dd700>] (platform_drv_probe+0x44/0x80)
    [<c04dd700>] (platform_drv_probe) from [<c04db98c>] (driver_probe_device+0x254/0x414)
    [<c04db98c>] (driver_probe_device) from [<c04dbc58>] (__driver_attach+0x10c/0x118)
    [<c04dbc58>] (__driver_attach) from [<c04d9600>] (bus_for_each_dev+0x8c/0xd0)
    [<c04d9600>] (bus_for_each_dev) from [<c04db1fc>] (driver_attach+0x2c/0x30)
    [<c04db1fc>] (driver_attach) from [<c04daa98>] (bus_add_driver+0x50/0x260)
    [<c04daa98>] (bus_add_driver) from [<c04dc440>] (driver_register+0x88/0x108)
    [<c04dc440>] (driver_register) from [<c04dd6b4>] (__platform_driver_register+0x50/0x58)
    [<c04dd6b4>] (__platform_driver_register) from [<c0b31248>] (macb_driver_init+0x24/0x28)
    [<c0b31248>] (macb_driver_init) from [<c010203c>] (do_one_initcall+0x60/0x1a4)
    [<c010203c>] (do_one_initcall) from [<c0b00f78>] (kernel_init_freeable+0x15c/0x1f8)
    [<c0b00f78>] (kernel_init_freeable) from [<c0763d10>] (kernel_init+0x18/0x124)
    [<c0763d10>] (kernel_init) from [<c0112d74>] (ret_from_fork+0x14/0x20)
    Code: ba000002 f5d1f03c f5d1f05c f5d1f07c (e8b151f8)
    ---[ end trace 3e4ec21905820a1f ]---
    
    Signed-off-by: Brandon Maier <brandon.maier@rockwellcollins.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.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 accb431813bf94cf619044e8cdc8edfdcc613cd9
Author: Ben Greear <greearb@candelatech.com>
Date:   Mon Jun 18 17:00:56 2018 +0300

    ath10k: protect ath10k_htt_rx_ring_free with rx_ring.lock
    
    [ Upstream commit 168f75f11fe68455e0d058a818ebccfc329d8685 ]
    
    While debugging driver crashes related to a buggy firmware
    crashing under load, I noticed that ath10k_htt_rx_ring_free
    could be called without being under lock.  I'm not sure if this
    is the root cause of the crash or not, but it seems prudent to
    protect it.
    
    Originally tested on 4.16+ kernel with ath10k-ct 10.4 firmware
    running on 9984 NIC.
    
    Signed-off-by: Ben Greear <greearb@candelatech.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 0f4ca55e441cf3bdf3b3d6467690d58adc681d44
Author: Brandon Maier <brandon.maier@rockwellcollins.com>
Date:   Tue Jun 26 12:50:50 2018 -0500

    net: phy: xgmiitorgmii: Check read_status results
    
    [ Upstream commit 8d0752d11312be830c33e84dfd1016e6a47c2938 ]
    
    We're ignoring the result of the attached phy device's read_status().
    Return it so we can detect errors.
    
    Signed-off-by: Brandon Maier <brandon.maier@rockwellcollins.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    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 8d9fd12b1eefa8e9138e28184d63443f36fb22f9
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Thu Jun 28 15:28:24 2018 +0800

    ALSA: hda: Add AZX_DCAPS_PM_RUNTIME for AMD Raven Ridge
    
    [ Upstream commit 1adca4b0cd65c14cb8b8c9c257720385869c3d5f ]
    
    This patch can make audio controller in AMD Raven Ridge gets runtime
    suspended to D3, to save ~1W power when it's not in use.
    
    Cc: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.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 0ebe95dee2f23419f4d5a379590d1f889bf22467
Author: Zhouyang Jia <jiazhouyang09@gmail.com>
Date:   Mon Jun 11 00:39:20 2018 -0400

    media: tm6000: add error handling for dvb_register_adapter
    
    [ Upstream commit e95d7c6eb94c634852eaa5ff4caf3db05b5d2e86 ]
    
    When dvb_register_adapter fails, the lack of error-handling code may
    cause unexpected results.
    
    This patch adds error-handling code after calling dvb_register_adapter.
    
    Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com>
    [hans.verkuil@cisco.com: use pr_err and fix typo: adater -> adapter]
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0091a4ede7834c92751cb56fe4a9bc3b62d347ed
Author: Zhouyang Jia <jiazhouyang09@gmail.com>
Date:   Tue Jun 12 12:36:25 2018 +0800

    drivers/tty: add error handling for pcmcia_loop_config
    
    [ Upstream commit 85c634e919bd6ef17427f26a52920aeba12e16ee ]
    
    When pcmcia_loop_config fails, the lack of error-handling code may
    cause unexpected results.
    
    This patch adds error-handling code after calling pcmcia_loop_config.
    
    Signed-off-by: Zhouyang Jia <jiazhouyang09@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 3af342f5ddbd2ee31aa9e3ae2c50869f304ffe4d
Author: Alistair Strachan <astrachan@google.com>
Date:   Tue Jun 19 17:57:35 2018 -0700

    staging: android: ashmem: Fix mmap size validation
    
    [ Upstream commit 8632c614565d0c5fdde527889601c018e97b6384 ]
    
    The ashmem driver did not check that the size/offset of the vma passed
    to its .mmap() function was not larger than the ashmem object being
    mapped. This could cause mmap() to succeed, even though accessing parts
    of the mapping would later fail with a segmentation fault.
    
    Ensure an error is returned by the ashmem_mmap() function if the vma
    size is larger than the ashmem object size. This enables safer handling
    of the problem in userspace.
    
    Cc: Todd Kjos <tkjos@android.com>
    Cc: devel@driverdev.osuosl.org
    Cc: linux-kernel@vger.kernel.org
    Cc: kernel-team@android.com
    Cc: Joel Fernandes <joel@joelfernandes.org>
    Signed-off-by: Alistair Strachan <astrachan@google.com>
    Acked-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Reviewed-by: Martijn Coenen <maco@android.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 1b16d06a9e271d73b4549ed9c3655d7b4d7594c5
Author: Javier Martinez Canillas <javierm@redhat.com>
Date:   Sat Jun 9 08:22:45 2018 -0400

    media: omap3isp: zero-initialize the isp cam_xclk{a,b} initial data
    
    [ Upstream commit 2ec7debd44b49927a6e2861521994cc075a389ed ]
    
    The struct clk_init_data init variable is declared in the isp_xclk_init()
    function so is an automatic variable allocated in the stack. But it's not
    explicitly zero-initialized, so some init fields are left uninitialized.
    
    This causes the data structure to have undefined values that may confuse
    the common clock framework when the clock is registered.
    
    For example, the uninitialized .flags field could have the CLK_IS_CRITICAL
    bit set, causing the framework to wrongly prepare the clk on registration.
    This leads to the isp_xclk_prepare() callback being called, which in turn
    calls to the omap3isp_get() function that increments the isp dev refcount.
    
    Since this omap3isp_get() call is unexpected, this leads to an unbalanced
    omap3isp_get() call that prevents the requested IRQ to be later enabled,
    due the refcount not being 0 when the correct omap3isp_get() call happens.
    
    Fixes: 9b28ee3c9122 ("[media] omap3isp: Use the common clock framework")
    
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit daefaacc6e027a9973c30fc34babca73e8e58094
Author: Akinobu Mita <akinobu.mita@gmail.com>
Date:   Sun Jun 10 11:42:26 2018 -0400

    media: soc_camera: ov772x: correct setting of banding filter
    
    [ Upstream commit 22216ec41e919682c15345e95928f266e8ba6f9e ]
    
    The banding filter ON/OFF is controlled via bit 5 of COM8 register.  It
    is attempted to be enabled in ov772x_set_params() by the following line.
    
            ret = ov772x_mask_set(client, COM8, BNDF_ON_OFF, 1);
    
    But this unexpectedly results disabling the banding filter, because the
    mask and set bits are exclusive.
    
    On the other hand, ov772x_s_ctrl() correctly sets the bit by:
    
            ret = ov772x_mask_set(client, COM8, BNDF_ON_OFF, BNDF_ON_OFF);
    
    The same fix was already applied to non-soc_camera version of ov772x
    driver in the commit commit a024ee14cd36 ("media: ov772x: correct setting
    of banding filter")
    
    Cc: Jacopo Mondi <jacopo+renesas@jmondi.org>
    Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Cc: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 381f8d235dd89d2cd5a90f5662e6e30c56b06d8c
Author: Akinobu Mita <akinobu.mita@gmail.com>
Date:   Sun Jun 10 11:42:01 2018 -0400

    media: s3c-camif: ignore -ENOIOCTLCMD from v4l2_subdev_call for s_power
    
    [ Upstream commit 30ed2b83343bd1e07884ca7355dac70d25ffc158 ]
    
    When the subdevice doesn't provide s_power core ops callback, the
    v4l2_subdev_call for s_power returns -ENOIOCTLCMD.  If the subdevice
    doesn't have the special handling for its power saving mode, the s_power
    isn't required.  So -ENOIOCTLCMD from the v4l2_subdev_call should be
    ignored.
    
    Cc: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Acked-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85d3dbd8e7f2af3083f8f68db468c9fdebe9d8d2
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Fri Jun 29 19:07:42 2018 +0200

    ALSA: snd-aoa: add of_node_put() in error path
    
    [ Upstream commit 222bce5eb88d1af656419db04bcd84b2419fb900 ]
    
     Both calls to of_find_node_by_name() and of_get_next_child() return a
    node pointer with refcount incremented thus it must be explicidly
    decremented here after the last usage. As we are assured to have a
    refcounted  np  either from the initial
    of_find_node_by_name(NULL, name); or from the of_get_next_child(gpio, np)
    in the while loop if we reached the error code path below, an
    x of_node_put(np) is needed.
    
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Fixes: commit f3d9478b2ce4 ("[ALSA] snd-aoa: add snd-aoa")
    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 3e3f075f72bd2dfcd5211bd1ff3919bc118ad4cd
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue Jun 26 15:21:32 2018 +0200

    posix-timers: Sanitize overrun handling
    
    [ Upstream commit 78c9c4dfbf8c04883941445a195276bb4bb92c76 ]
    
    The posix timer overrun handling is broken because the forwarding functions
    can return a huge number of overruns which does not fit in an int. As a
    consequence timer_getoverrun(2) and siginfo::si_overrun can turn into
    random number generators.
    
    The k_clock::timer_forward() callbacks return a 64 bit value now. Make
    k_itimer::ti_overrun[_last] 64bit as well, so the kernel internal
    accounting is correct. 3Remove the temporary (int) casts.
    
    Add a helper function which clamps the overrun value returned to user space
    via timer_getoverrun(2) or siginfo::si_overrun limited to a positive value
    between 0 and INT_MAX. INT_MAX is an indicator for user space that the
    overrun value has been clamped.
    
    Reported-by: Team OWL337 <icytxw@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: John Stultz <john.stultz@linaro.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Link: https://lkml.kernel.org/r/20180626132705.018623573@linutronix.de
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a05bd4ba655f5737ead5494733846a87cc80bd36
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue Jun 26 15:21:31 2018 +0200

    posix-timers: Make forward callback return s64
    
    [ Upstream commit 6fec64e1c92d5c715c6d0f50786daa7708266bde ]
    
    The posix timer ti_overrun handling is broken because the forwarding
    functions can return a huge number of overruns which does not fit in an
    int. As a consequence timer_getoverrun(2) and siginfo::si_overrun can turn
    into random number generators.
    
    As a first step to address that let the timer_forward() callbacks return
    the full 64 bit value.
    
    Cast it to (int) temporarily until k_itimer::ti_overrun is converted to
    64bit and the conversion to user space visible values is sanitized.
    
    Reported-by: Team OWL337 <icytxw@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: John Stultz <john.stultz@linaro.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Link: https://lkml.kernel.org/r/20180626132704.922098090@linutronix.de
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf373da100393aa7d6a303646c0a9a58ff8d7459
Author: Akinobu Mita <akinobu.mita@gmail.com>
Date:   Tue Jun 26 00:22:41 2018 +0900

    iio: accel: adxl345: convert address field usage in iio_chan_spec
    
    [ Upstream commit 9048f1f18a70a01eaa3c8e7166fdb2538929d780 ]
    
    Currently the address field in iio_chan_spec is filled with an accel
    data register address for the corresponding axis.
    
    In preparation for adding calibration offset support, this sets the
    address field to the index of accel data registers instead of the actual
    register address.
    
    This change makes it easier to access both accel registers and
    calibration offset registers with fewer lines of code as these are
    located in X-axis, Y-axis, Z-axis order.
    
    Cc: Eva Rachel Retuya <eraretuya@gmail.com>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8cbb2f74c0939901d8b96b8fa820afe619790758
Author: Peter Rosin <peda@axentia.se>
Date:   Thu Mar 29 15:10:54 2018 +0200

    mtd: rawnand: atmel: add module param to avoid using dma
    
    [ Upstream commit efc6362c6f8c1e74b340e2611f1b35e7d557ce7b ]
    
    On a sama5d31 with a Full-HD dual LVDS panel (132MHz pixel clock) NAND
    flash accesses have a tendency to cause display disturbances. Add a
    module param to disable DMA from the NAND controller, since that fixes
    the display problem for me.
    
    Signed-off-by: Peter Rosin <peda@axentia.se>
    Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a838008bb11f96f14bfc48a22e88116eb74351ab
Author: Vasily Gorbik <gor@linux.ibm.com>
Date:   Sun Jun 17 00:30:43 2018 +0200

    s390/extmem: fix gcc 8 stringop-overflow warning
    
    [ Upstream commit 6b2ddf33baec23dace85bd647e3fc4ac070963e8 ]
    
    arch/s390/mm/extmem.c: In function '__segment_load':
    arch/s390/mm/extmem.c:436:2: warning: 'strncat' specified bound 7 equals
    source length [-Wstringop-overflow=]
      strncat(seg->res_name, " (DCSS)", 7);
    
    What gcc complains about here is the misuse of strncat function, which
    in this case does not limit a number of bytes taken from "src", so it is
    in the end the same as strcat(seg->res_name, " (DCSS)");
    
    Keeping in mind that a res_name is 15 bytes, strncat in this case
    would overflow the buffer and write 0 into alignment byte between the
    fields in the struct. To avoid that increasing res_name size to 16,
    and reusing strlcat.
    
    Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@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 33cd135ebc97e44140f76f625b9b3d99fd8019cb
Author: Vasily Gorbik <gor@linux.ibm.com>
Date:   Mon Jun 25 14:30:42 2018 +0200

    s390/scm_blk: correct numa_node in scm_blk_dev_setup
    
    [ Upstream commit d642d6262f4fcfa5d200ec6e218c17f0c15b3390 ]
    
    The numa_node field of the tag_set struct has to be explicitly
    initialized, otherwise it stays as 0, which is a valid numa node id and
    cause memory allocation failure if node 0 is offline.
    
    Acked-by: Sebastian Ott <sebott@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@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 98a34e26d93db505afe2fe0e26f47d755c85d40a
Author: Vasily Gorbik <gor@linux.ibm.com>
Date:   Sun Jun 24 09:21:59 2018 +0200

    s390/dasd: correct numa_node in dasd_alloc_queue
    
    [ Upstream commit b17e3abb0af404cb62ad4ef1a5962f58b06e2b78 ]
    
    The numa_node field of the tag_set struct has to be explicitly
    initialized, otherwise it stays as 0, which is a valid numa node id and
    cause memory allocation failure if node 0 is offline.
    
    Acked-by: Stefan Haberland <sth@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@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 a4dbaf7c2de0d622e0fe29840dd2bf4a281277a5
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Mon Jul 2 09:34:29 2018 +0200

    alarmtimer: Prevent overflow for relative nanosleep
    
    [ Upstream commit 5f936e19cc0ef97dbe3a56e9498922ad5ba1edef ]
    
    Air Icy reported:
    
      UBSAN: Undefined behaviour in kernel/time/alarmtimer.c:811:7
      signed integer overflow:
      1529859276030040771 + 9223372036854775807 cannot be represented in type 'long long int'
      Call Trace:
       alarm_timer_nsleep+0x44c/0x510 kernel/time/alarmtimer.c:811
       __do_sys_clock_nanosleep kernel/time/posix-timers.c:1235 [inline]
       __se_sys_clock_nanosleep kernel/time/posix-timers.c:1213 [inline]
       __x64_sys_clock_nanosleep+0x326/0x4e0 kernel/time/posix-timers.c:1213
       do_syscall_64+0xb8/0x3a0 arch/x86/entry/common.c:290
    
    alarm_timer_nsleep() uses ktime_add() to add the current time and the
    relative expiry value. ktime_add() has no sanity checks so the addition
    can overflow when the relative timeout is large enough.
    
    Use ktime_add_safe() which has the necessary sanity checks in place and
    limits the result to the valid range.
    
    Fixes: 9a7adcf5c6de ("timers: Posix interface for alarm-timers")
    Reported-by: Team OWL337 <icytxw@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: John Stultz <john.stultz@linaro.org>
    Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1807020926360.1595@nanos.tec.linutronix.de
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9374ffc6f3d3fcfe0cca6ed8139324d67b120719
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Mon Jul 2 10:54:02 2018 +0200

    s390/sysinfo: add missing #ifdef CONFIG_PROC_FS
    
    [ Upstream commit 9f35b818a2f90fb6cb291aa0c9f835d4f0974a9a ]
    
    Get rid of this compile warning for !PROC_FS:
    
      CC      arch/s390/kernel/sysinfo.o
    arch/s390/kernel/sysinfo.c:275:12: warning: 'sysinfo_show' defined but not used [-Wunused-function]
     static int sysinfo_show(struct seq_file *m, void *v)
    
    Signed-off-by: Heiko Carstens <heiko.carstens@de.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 8deb5801f1548be952372303c25de95c6a243cae
Author: Alexey Kardashevskiy <aik@ozlabs.ru>
Date:   Fri Jun 1 18:06:16 2018 +1000

    powerpc/powernv/ioda2: Reduce upper limit for DMA window size
    
    [ Upstream commit d3d4ffaae439981e1e441ebb125aa3588627c5d8 ]
    
    We use PHB in mode1 which uses bit 59 to select a correct DMA window.
    However there is mode2 which uses bits 59:55 and allows up to 32 DMA
    windows per a PE.
    
    Even though documentation does not clearly specify that, it seems that
    the actual hardware does not support bits 59:55 even in mode1, in other
    words we can create a window as big as 1<<58 but DMA simply won't work.
    
    This reduces the upper limit from 59 to 55 bits to let the userspace know
    about the hardware limits.
    
    Fixes: 7aafac11e3 "powerpc/powernv/ioda2: Gracefully fail if too many TCE levels requested"
    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    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 45d3d58f9739bf422b2ec9512797eb886af3a414
Author: Alagu Sankar <alagusankar@silex-india.com>
Date:   Fri Jun 29 16:28:00 2018 +0300

    ath10k: sdio: set skb len for all rx packets
    
    [ Upstream commit 8530b4e7b22bc3bd8240579f3844c73947cd5f71 ]
    
    Without this, packets larger than 1500 will silently be dropped.
    Easily reproduced by sending a ping packet with a size larger
    than 1500.
    
    Co-Developed-by: Niklas Cassel <niklas.cassel@linaro.org>
    Signed-off-by: Alagu Sankar <alagusankar@silex-india.com>
    Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
    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 b31f41e02c800b63841066c0e4f6e04cc2c5905b
Author: Alagu Sankar <alagusankar@silex-india.com>
Date:   Fri Jun 29 16:27:56 2018 +0300

    ath10k: sdio: use same endpoint id for all packets in a bundle
    
    [ Upstream commit 679e1f07c86221b7183dd69df7068fd42d0041f6 ]
    
    All packets in a bundle should use the same endpoint id as the
    first lookahead.
    
    This matches how things are done is ath6kl, however,
    this patch can theoretically handle several bundles
    in ath10k_sdio_mbox_rx_process_packets().
    
    Without this patch we get lots of errors about invalid endpoint id:
    
    ath10k_sdio mmc2:0001:1: invalid endpoint in look-ahead: 224
    ath10k_sdio mmc2:0001:1: failed to get pending recv messages: -12
    ath10k_sdio mmc2:0001:1: failed to process pending SDIO interrupts: -12
    
    Co-Developed-by: Niklas Cassel <niklas.cassel@linaro.org>
    Signed-off-by: Alagu Sankar <alagusankar@silex-india.com>
    Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
    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 149f530334f00ba493c084d9312d8be21ebd2d2a
Author: Julia Lawall <Julia.Lawall@lip6.fr>
Date:   Sun Jul 1 19:32:04 2018 +0200

    usb: wusbcore: security: cast sizeof to int for comparison
    
    [ Upstream commit d3ac5598c5010a8999978ebbcca3b1c6188ca36b ]
    
    Comparing an int to a size, which is unsigned, causes the int to become
    unsigned, giving the wrong result.  usb_get_descriptor can return a
    negative error code.
    
    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @@
    int x;
    expression e,e1;
    identifier f;
    @@
    
    *x = f(...);
    ... when != x = e1
        when != if (x < 0 || ...) { ... return ...; }
    *x < sizeof(e)
    // </smpl>
    
    Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
    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 ebee32dd8f04ee364d20c14c2f87a51293c625a4
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Thu Jun 28 13:48:57 2018 -0500

    scsi: target: Avoid that EXTENDED COPY commands trigger lock inversion
    
    [ Upstream commit 36d4cb460bcbe2a1323732a6e4bb9dd783284368 ]
    
    The approach for adding a device to the devices_idr data structure and for
    removing it is as follows:
    
    * &dev->dev_group.cg_item is initialized before a device is added to
      devices_idr.
    
    * If the reference count of a device drops to zero then
      target_free_device() removes the device from devices_idr.
    
    * All devices_idr manipulations are protected by device_mutex.
    
    This means that increasing the reference count of a device is sufficient to
    prevent removal from devices_idr and also that it is safe access
    dev_group.cg_item for any device that is referenced by devices_idr. Use
    this to modify target_find_device() and target_for_each_device() such that
    these functions no longer introduce a dependency between device_mutex and
    the configfs root inode mutex.
    
    Note: it is safe to pass a NULL pointer to config_item_put() and also to
    config_item_get_unless_zero().
    
    This patch prevents that lockdep reports the following complaint:
    
    ======================================================
    WARNING: possible circular locking dependency detected
    4.12.0-rc1-dbg+ #1 Not tainted
    ------------------------------------------------------
    rmdir/12053 is trying to acquire lock:
     (device_mutex#2){+.+.+.}, at: [<ffffffffa010afce>]
    target_free_device+0xae/0xf0 [target_core_mod]
    
    but task is already holding lock:
     (&sb->s_type->i_mutex_key#14){++++++}, at: [<ffffffff811c5c30>]
    vfs_rmdir+0x50/0x140
    
    which lock already depends on the new lock.
    
    the existing dependency chain (in reverse order) is:
    
    -> #1 (&sb->s_type->i_mutex_key#14){++++++}:
           lock_acquire+0x59/0x80
           down_write+0x36/0x70
           configfs_depend_item+0x3a/0xb0 [configfs]
           target_depend_item+0x13/0x20 [target_core_mod]
           target_xcopy_locate_se_dev_e4_iter+0x87/0x100 [target_core_mod]
           target_devices_idr_iter+0x16/0x20 [target_core_mod]
           idr_for_each+0x39/0xc0
           target_for_each_device+0x36/0x50 [target_core_mod]
           target_xcopy_locate_se_dev_e4+0x28/0x80 [target_core_mod]
           target_xcopy_do_work+0x2e9/0xdd0 [target_core_mod]
           process_one_work+0x1ca/0x3f0
           worker_thread+0x49/0x3b0
           kthread+0x109/0x140
           ret_from_fork+0x31/0x40
    
    -> #0 (device_mutex#2){+.+.+.}:
           __lock_acquire+0x101f/0x11d0
           lock_acquire+0x59/0x80
           __mutex_lock+0x7e/0x950
           mutex_lock_nested+0x16/0x20
           target_free_device+0xae/0xf0 [target_core_mod]
           target_core_dev_release+0x10/0x20 [target_core_mod]
           config_item_put+0x6e/0xb0 [configfs]
           configfs_rmdir+0x1a6/0x300 [configfs]
           vfs_rmdir+0xb7/0x140
           do_rmdir+0x1f4/0x200
           SyS_rmdir+0x11/0x20
           entry_SYSCALL_64_fastpath+0x23/0xc2
    
    other info that might help us debug this:
    
     Possible unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(&sb->s_type->i_mutex_key#14);
                                   lock(device_mutex#2);
                                   lock(&sb->s_type->i_mutex_key#14);
      lock(device_mutex#2);
    
     *** DEADLOCK ***
    
    3 locks held by rmdir/12053:
     #0:  (sb_writers#10){.+.+.+}, at: [<ffffffff811e223f>]
    mnt_want_write+0x1f/0x50
     #1:  (&sb->s_type->i_mutex_key#14/1){+.+.+.}, at: [<ffffffff811cb97e>]
    do_rmdir+0x15e/0x200
     #2:  (&sb->s_type->i_mutex_key#14){++++++}, at: [<ffffffff811c5c30>]
    vfs_rmdir+0x50/0x140
    
    stack backtrace:
    CPU: 3 PID: 12053 Comm: rmdir Not tainted 4.12.0-rc1-dbg+ #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
    1.0.0-prebuilt.qemu-project.org 04/01/2014
    Call Trace:
     dump_stack+0x86/0xcf
     print_circular_bug+0x1c7/0x220
     __lock_acquire+0x101f/0x11d0
     lock_acquire+0x59/0x80
     __mutex_lock+0x7e/0x950
     mutex_lock_nested+0x16/0x20
     target_free_device+0xae/0xf0 [target_core_mod]
     target_core_dev_release+0x10/0x20 [target_core_mod]
     config_item_put+0x6e/0xb0 [configfs]
     configfs_rmdir+0x1a6/0x300 [configfs]
     vfs_rmdir+0xb7/0x140
     do_rmdir+0x1f4/0x200
     SyS_rmdir+0x11/0x20
     entry_SYSCALL_64_fastpath+0x23/0xc2
    
    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    [Rebased to handle conflict withe target_find_device removal]
    Signed-off-by: Mike Christie <mchristi@redhat.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 336b73754169902d2a9fead2f736b23725b41d8c
Author: Breno Leitao <leitao@debian.org>
Date:   Tue Jun 26 17:35:16 2018 -0300

    scsi: ibmvscsi: Improve strings handling
    
    [ Upstream commit 1262dc09dc9ae7bf4ad00b6a2c5ed6a6936bcd10 ]
    
    Currently an open firmware property is copied into partition_name variable
    without keeping a room for \0.
    
    Later one, this variable (partition_name), which is 97 bytes long, is
    strncpyed into ibmvcsci_host_data->madapter_info->partition_name, which is
    96 bytes long, possibly truncating it 'again' and removing the \0.
    
    This patch simply decreases the partition name to 96 and just copy using
    strlcpy() which guarantees that the string is \0 terminated. I think there
    is no issue if this there is a truncation in this very first copy, i.e,
    when the open firmware property is read and copied into the driver for the
    very first time;
    
    This issue also causes the following warning on GCC 8:
    
            drivers/scsi/ibmvscsi/ibmvscsi.c:281:2: warning:  strncpy  output may be truncated copying 96 bytes from a string of length 96 [-Wstringop-truncation]
            ...
            inlined from  ibmvscsi_probe  at drivers/scsi/ibmvscsi/ibmvscsi.c:2221:7:
            drivers/scsi/ibmvscsi/ibmvscsi.c:265:3: warning:  strncpy  specified bound 97 equals destination size [-Wstringop-truncation]
    
    CC: Bart Van Assche <bart.vanassche@wdc.com>
    CC: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
    Signed-off-by: Breno Leitao <leitao@debian.org>
    Acked-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.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 1390c37d167044c2d7bcda95cc76770ebe6ac770
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Fri Jun 22 14:54:49 2018 -0700

    scsi: klist: Make it safe to use klists in atomic context
    
    [ Upstream commit 624fa7790f80575a4ec28fbdb2034097dc18d051 ]
    
    In the scsi_transport_srp implementation it cannot be avoided to
    iterate over a klist from atomic context when using the legacy block
    layer instead of blk-mq. Hence this patch that makes it safe to use
    klists in atomic context. This patch avoids that lockdep reports the
    following:
    
    WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected
     Possible interrupt unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(&(&k->k_lock)->rlock);
                                   local_irq_disable();
                                   lock(&(&q->__queue_lock)->rlock);
                                   lock(&(&k->k_lock)->rlock);
      <Interrupt>
        lock(&(&q->__queue_lock)->rlock);
    
    stack backtrace:
    Workqueue: kblockd blk_timeout_work
    Call Trace:
     dump_stack+0xa4/0xf5
     check_usage+0x6e6/0x700
     __lock_acquire+0x185d/0x1b50
     lock_acquire+0xd2/0x260
     _raw_spin_lock+0x32/0x50
     klist_next+0x47/0x190
     device_for_each_child+0x8e/0x100
     srp_timed_out+0xaf/0x1d0 [scsi_transport_srp]
     scsi_times_out+0xd4/0x410 [scsi_mod]
     blk_rq_timed_out+0x36/0x70
     blk_timeout_work+0x1b5/0x220
     process_one_work+0x4fe/0xad0
     worker_thread+0x63/0x5a0
     kthread+0x1c1/0x1e0
     ret_from_fork+0x24/0x30
    
    See also commit c9ddf73476ff ("scsi: scsi_transport_srp: Fix shost to
    rport translation").
    
    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: James Bottomley <jejb@linux.vnet.ibm.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    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 bdfc40bc1b095c32ec519517755ab651582ea7c7
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Fri Jun 22 14:53:01 2018 -0700

    scsi: target/iscsi: Make iscsit_ta_authentication() respect the output buffer size
    
    [ Upstream commit 35bea5c84fd13c643cce63f0b5cd4b148f8c901d ]
    
    Fixes: e48354ce078c ("iscsi-target: Add iSCSI fabric support for target v4.1")
    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    Reviewed-by: Mike Christie <mchristi@redhat.com>
    Cc: Mike Christie <mchristi@redhat.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Hannes Reinecke <hare@suse.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 2cbead46fd4e9f937bed7c68fb759931b97c176e
Author: Viresh Kumar <viresh.kumar@linaro.org>
Date:   Fri May 25 16:01:48 2018 +0530

    ARM: dts: ls1021a: Add missing cooling device properties for CPUs
    
    [ Upstream commit 47768f372eae030db6fab5225f9504a820d2c07f ]
    
    The cooling device properties, like "#cooling-cells" and
    "dynamic-power-coefficient", should either be present for all the CPUs
    of a cluster or none. If these are present only for a subset of CPUs of
    a cluster then things will start falling apart as soon as the CPUs are
    brought online in a different order. For example, this will happen
    because the operating system looks for such properties in the CPU node
    it is trying to bring up, so that it can register a cooling device.
    
    Add such missing properties.
    
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8430918a04e3579fd513d8b2a289de6fb81b3ec5
Author: Jan Beulich <JBeulich@suse.com>
Date:   Mon Jul 2 04:47:57 2018 -0600

    x86/entry/64: Add two more instruction suffixes
    
    [ Upstream commit 6709812f094d96543b443645c68daaa32d3d3e77 ]
    
    Sadly, other than claimed in:
    
      a368d7fd2a ("x86/entry/64: Add instruction suffix")
    
    ... there are two more instances which want to be adjusted.
    
    As said there, omitting suffixes from instructions in AT&T mode is bad
    practice when operand size cannot be determined by the assembler from
    register operands, and is likely going to be warned about by upstream
    gas in the future (mine does already).
    
    Add the other missing suffixes here as well.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/5B3A02DD02000078001CFB78@prv1-mh.provo.novell.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e90c7ef50e243f370e981b3d79d991512d0ca5e
Author: Dave Gerlach <d-gerlach@ti.com>
Date:   Thu Jun 21 14:43:08 2018 +0530

    ARM: hwmod: RTC: Don't assume lock/unlock will be called with irq enabled
    
    [ Upstream commit 6d609b35c815ba20132b7b64bcca04516bb17c56 ]
    
    When the RTC lock and unlock functions were introduced it was likely
    assumed that they would always be called from irq enabled context, hence
    the use of local_irq_disable/enable. This is no longer true as the
    RTC+DDR path makes a late call during the suspend path after irqs
    have been disabled to enable the RTC hwmod which calls both unlock and
    lock, leading to IRQs being reenabled through the local_irq_enable call
    in omap_hwmod_rtc_lock call.
    
    To avoid this change the local_irq_disable/enable to
    local_irq_save/restore to ensure that from whatever context this is
    called the proper IRQ configuration is maintained.
    
    Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
    Signed-off-by: Keerthy <j-keerthy@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a29ab00339e641dad80db406343f007f4f8885d
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Fri Jun 29 22:31:10 2018 +0300

    x86/tsc: Add missing header to tsc_msr.c
    
    [ Upstream commit dbd0fbc76c77daac08ddd245afdcbade0d506e19 ]
    
    Add a missing header otherwise compiler warns about missed prototype:
    
    CC      arch/x86/kernel/tsc_msr.o
    arch/x86/kernel/tsc_msr.c:73:15: warning: no previous prototype for ‘cpu_khz_from_msr’ [-Wmissing-prototypes]
       unsigned long cpu_khz_from_msr(void)
                     ^~~~~~~~~~~~~~~~
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Pavel Tatashin <pasha.tatashin@oracle.com>
    Link: https://lkml.kernel.org/r/20180629193113.84425-4-andriy.shevchenko@linux.intel.com
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23e4ab4069d1d98e91c87f52dd9192bc412f8618
Author: Peter Seiderer <ps.report@gmx.net>
Date:   Thu Mar 15 15:13:22 2018 -0400

    media: staging/imx: fill vb2_v4l2_buffer field entry
    
    [ Upstream commit a38d4b71cb7a12b65317f4e3d59883a918957719 ]
    
    - fixes gstreamer v4l2src warning:
    
      0:00:00.716640334  349  0x164f720 WARN  v4l2bufferpool gstv4l2bufferpool.c:1195:gst_v4l2_buffer_pool_dqbuf:<v4l2src0:pool:src> Driver should never set v4l2_buffer.field to ANY
    
    - fixes v4l2-compliance test failure:
    
      Streaming ioctls:
              test read/write: OK (Not Supported)
                  Video Capture:
                      Buffer: 0 Sequence: 0 Field: Any Timestamp: 58.383658s
                      fail: v4l2-test-buffers.cpp(297): g_field() == V4L2_FIELD_ANY
    
    Signed-off-by: Peter Seiderer <ps.report@gmx.net>
    Reviewed-by: Steve Longerbeam <steve_longerbeam@mentor.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6fd38ba41e340b20ddd806ffa96da57c8ec2aa3e
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Fri Jun 29 17:49:22 2018 -0400

    media: fsl-viu: fix error handling in viu_of_probe()
    
    [ Upstream commit 662a99e145661c2b35155cf375044deae9b79896 ]
    
    viu_of_probe() ignores fails in i2c_get_adapter(),
    tries to unlock uninitialized mutex on error path.
    
    The patch streamlining the error handling in viu_of_probe().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 769ae06e4442d9efc4c2a7494ed0f348b6efb7ba
Author: Hari Bathini <hbathini@linux.ibm.com>
Date:   Thu Jun 28 10:49:56 2018 +0530

    powerpc/kdump: Handle crashkernel memory reservation failure
    
    [ Upstream commit 8950329c4a64c6d3ca0bc34711a1afbd9ce05657 ]
    
    Memory reservation for crashkernel could fail if there are holes around
    kdump kernel offset (128M). Fail gracefully in such cases and print an
    error message.
    
    Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
    Tested-by: David Gibson <dgibson@redhat.com>
    Reviewed-by: Dave Young <dyoung@redhat.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 333cb98f393ba2edd0e2f8577d823c0ffd9fef4b
Author: Tarick Bedeir <tarick@google.com>
Date:   Mon Jul 2 14:02:34 2018 -0700

    IB/mlx4: Test port number before querying type.
    
    [ Upstream commit f1228867adaf8890826f2b59e4caddb1c5cc2df7 ]
    
    rdma_ah_find_type() can reach into ib_device->port_immutable with a
    potentially out-of-bounds port number, so check that the port number is
    valid first.
    
    Fixes: 44c58487d51a ("IB/core: Define 'ib' and 'roce' rdma_ah_attr types")
    Signed-off-by: Tarick Bedeir <tarick@google.com>
    Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f94cf4c81cb0c654cb8d0710e4a5ddb60ae7a45
Author: Sylwester Nawrocki <s.nawrocki@samsung.com>
Date:   Tue May 15 05:21:45 2018 -0400

    media: exynos4-is: Prevent NULL pointer dereference in __isp_video_try_fmt()
    
    [ Upstream commit 7c1b9a5aeed91bef98988ac0fcf38c8c1f4f9a3a ]
    
    This patch fixes potential NULL pointer dereference as indicated
    by the following static checker warning:
    
    drivers/media/platform/exynos4-is/fimc-isp-video.c:408 isp_video_try_fmt_mplane()
    error: NULL dereference inside function '__isp_video_try_fmt(isp, &f->fmt.pix_mp, (0))()'.
    
    Fixes: 34947b8aebe3: ("[media] exynos4-is: Add the FIMC-IS ISP capture DMA driver")
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ca45668ecdb274fa861f0e863d6c1f0250060c8
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Jul 4 12:32:12 2018 +0300

    IB/core: type promotion bug in rdma_rw_init_one_mr()
    
    [ Upstream commit c2d7c8ff89b22ddefb1ac2986c0d48444a667689 ]
    
    "nents" is an unsigned int, so if ib_map_mr_sg() returns a negative
    error code then it's type promoted to a high unsigned int which is
    treated as success.
    
    Fixes: a060b5629ab0 ("IB/core: generic RDMA READ/WRITE API")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eca8598823596b740c6ef498a7c940a4ced45efa
Author: Leon Romanovsky <leonro@mellanox.com>
Date:   Sun Jul 1 19:36:24 2018 +0300

    RDMA/i40w: Hold read semaphore while looking after VMA
    
    [ Upstream commit 5d9a2b0e28759e319a623da33940dbb3ce952b7d ]
    
    VMA lookup is supposed to be performed while mmap_sem is held.
    
    Fixes: f26c7c83395b ("i40iw: Add 2MB page support")
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e862ab6b69c487fa4df545a60203fef1133bda9f
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Jul 4 12:57:11 2018 +0300

    RDMA/bnxt_re: Fix a couple off by one bugs
    
    [ Upstream commit 474e5a86067e5f12c97d1db8b170c7f45b53097a ]
    
    The sgid_tbl->tbl[] array is allocated in bnxt_qplib_alloc_sgid_tbl().
    It has sgid_tbl->max elements.  So the > should be >= to prevent
    accessing one element beyond the end of the array.
    
    Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0ccd2360a474d6505c5a5fa7ea5036a2eecd665
Author: Guoqing Jiang <gqjiang@suse.com>
Date:   Mon Jul 2 16:26:24 2018 +0800

    md-cluster: clear another node's suspend_area after the copy is finished
    
    [ Upstream commit 010228e4a932ca1e8365e3b58c8e1e44c16ff793 ]
    
    When one node leaves cluster or stops the resyncing
    (resync or recovery) array, then other nodes need to
    call recover_bitmaps to continue the unfinished task.
    
    But we need to clear suspend_area later after other
    nodes copy the resync information to their bitmap
    (by call bitmap_copy_from_slot). Otherwise, all nodes
    could write to the suspend_area even the suspend_area
    is not handled by any node, because area_resyncing
    returns 0 at the beginning of raid1_write_request.
    Which means one node could write suspend_area while
    another node is resyncing the same area, then data
    could be inconsistent.
    
    So let's clear suspend_area later to avoid above issue
    with the protection of bm lock. Also it is straightforward
    to clear suspend_area after nodes have copied the resync
    info to bitmap.
    
    Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
    Reviewed-by: NeilBrown <neilb@suse.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 e70f938a605a82c96760ee2afb6f9eac6d0e7088
Author: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date:   Mon Jun 25 09:51:48 2018 +0200

    power: remove possible deadlock when unregistering power_supply
    
    [ Upstream commit 3ffa6583e24e1ad1abab836d24bfc9d2308074e5 ]
    
    If a device gets removed right after having registered a power_supply node,
    we might enter in a deadlock between the remove call (that has a lock on
    the parent device) and the deferred register work.
    
    Allow the deferred register work to exit without taking the lock when
    we are in the remove state.
    
    Stack trace on a Ubuntu 16.04:
    
    [16072.109121] INFO: task kworker/u16:2:1180 blocked for more than 120 seconds.
    [16072.109127]       Not tainted 4.13.0-41-generic #46~16.04.1-Ubuntu
    [16072.109129] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [16072.109132] kworker/u16:2   D    0  1180      2 0x80000000
    [16072.109142] Workqueue: events_power_efficient power_supply_deferred_register_work
    [16072.109144] Call Trace:
    [16072.109152]  __schedule+0x3d6/0x8b0
    [16072.109155]  schedule+0x36/0x80
    [16072.109158]  schedule_preempt_disabled+0xe/0x10
    [16072.109161]  __mutex_lock.isra.2+0x2ab/0x4e0
    [16072.109166]  __mutex_lock_slowpath+0x13/0x20
    [16072.109168]  ? __mutex_lock_slowpath+0x13/0x20
    [16072.109171]  mutex_lock+0x2f/0x40
    [16072.109174]  power_supply_deferred_register_work+0x2b/0x50
    [16072.109179]  process_one_work+0x15b/0x410
    [16072.109182]  worker_thread+0x4b/0x460
    [16072.109186]  kthread+0x10c/0x140
    [16072.109189]  ? process_one_work+0x410/0x410
    [16072.109191]  ? kthread_create_on_node+0x70/0x70
    [16072.109194]  ret_from_fork+0x35/0x40
    [16072.109199] INFO: task test:2257 blocked for more than 120 seconds.
    [16072.109202]       Not tainted 4.13.0-41-generic #46~16.04.1-Ubuntu
    [16072.109204] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [16072.109206] test            D    0  2257   2256 0x00000004
    [16072.109208] Call Trace:
    [16072.109211]  __schedule+0x3d6/0x8b0
    [16072.109215]  schedule+0x36/0x80
    [16072.109218]  schedule_timeout+0x1f3/0x360
    [16072.109221]  ? check_preempt_curr+0x5a/0xa0
    [16072.109224]  ? ttwu_do_wakeup+0x1e/0x150
    [16072.109227]  wait_for_completion+0xb4/0x140
    [16072.109230]  ? wait_for_completion+0xb4/0x140
    [16072.109233]  ? wake_up_q+0x70/0x70
    [16072.109236]  flush_work+0x129/0x1e0
    [16072.109240]  ? worker_detach_from_pool+0xb0/0xb0
    [16072.109243]  __cancel_work_timer+0x10f/0x190
    [16072.109247]  ? device_del+0x264/0x310
    [16072.109250]  ? __wake_up+0x44/0x50
    [16072.109253]  cancel_delayed_work_sync+0x13/0x20
    [16072.109257]  power_supply_unregister+0x37/0xb0
    [16072.109260]  devm_power_supply_release+0x11/0x20
    [16072.109263]  release_nodes+0x110/0x200
    [16072.109266]  devres_release_group+0x7c/0xb0
    [16072.109274]  wacom_remove+0xc2/0x110 [wacom]
    [16072.109279]  hid_device_remove+0x6e/0xd0 [hid]
    [16072.109284]  device_release_driver_internal+0x158/0x210
    [16072.109288]  device_release_driver+0x12/0x20
    [16072.109291]  bus_remove_device+0xec/0x160
    [16072.109293]  device_del+0x1de/0x310
    [16072.109298]  hid_destroy_device+0x27/0x60 [hid]
    [16072.109303]  usbhid_disconnect+0x51/0x70 [usbhid]
    [16072.109308]  usb_unbind_interface+0x77/0x270
    [16072.109311]  device_release_driver_internal+0x158/0x210
    [16072.109315]  device_release_driver+0x12/0x20
    [16072.109318]  usb_driver_release_interface+0x77/0x80
    [16072.109321]  proc_ioctl+0x20f/0x250
    [16072.109325]  usbdev_do_ioctl+0x57f/0x1140
    [16072.109327]  ? __wake_up+0x44/0x50
    [16072.109331]  usbdev_ioctl+0xe/0x20
    [16072.109336]  do_vfs_ioctl+0xa4/0x600
    [16072.109339]  ? vfs_write+0x15a/0x1b0
    [16072.109343]  SyS_ioctl+0x79/0x90
    [16072.109347]  entry_SYSCALL_64_fastpath+0x24/0xab
    [16072.109349] RIP: 0033:0x7f20da807f47
    [16072.109351] RSP: 002b:00007ffc422ae398 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
    [16072.109353] RAX: ffffffffffffffda RBX: 00000000010b8560 RCX: 00007f20da807f47
    [16072.109355] RDX: 00007ffc422ae3a0 RSI: 00000000c0105512 RDI: 0000000000000009
    [16072.109356] RBP: 0000000000000000 R08: 00007ffc422ae3e0 R09: 0000000000000010
    [16072.109357] R10: 00000000000000a6 R11: 0000000000000246 R12: 0000000000000000
    [16072.109359] R13: 00000000010b8560 R14: 00007ffc422ae2e0 R15: 0000000000000000
    
    Reported-and-tested-by: Richard Hughes <rhughes@redhat.com>
    Tested-by: Aaron Skomra <Aaron.Skomra@wacom.com>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Fixes: 7f1a57fdd6cb ("power_supply: Fix possible NULL pointer dereference on early uevent")
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1117e411a46c4df5230b469dc4641dcc46274191
Author: Vasily Gorbik <gor@linux.ibm.com>
Date:   Sun Jun 24 12:17:43 2018 +0200

    s390/mm: correct allocate_pgste proc_handler callback
    
    [ Upstream commit 5bedf8aa03c28cb8dc98bdd32a41b66d8f7d3eaa ]
    
    Since proc_dointvec does not perform value range control,
    proc_dointvec_minmax should be used to limit value range, which is
    clearly intended here, as the internal representation of the value:
    
    unsigned int alloc_pgste:1;
    
    In fact it currently works, since we have
    
          mm->context.alloc_pgste = page_table_allocate_pgste || ...
    
    ... since commit 23fefe119ceb5 ("s390/kvm: avoid global config of vm.alloc_pgste=1")
    
    Before that it was
    
           mm->context.alloc_pgste = page_table_allocate_pgste;
    
    which was broken. That was introduced with commit 0b46e0a3ec0d7 ("s390/kvm:
    remove delayed reallocation of page tables for KVM").
    
    Fixes: 0b46e0a3ec0d7 ("s390/kvm: remove delayed reallocation of page tables for KVM")
    Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@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 bc4ce060b30549bb56411e8443a45b55e276420f
Author: Niklas Cassel <niklas.cassel@linaro.org>
Date:   Tue Jun 12 16:06:10 2018 +0200

    iommu/msm: Don't call iommu_device_{,un}link from atomic context
    
    [ Upstream commit 379521462e4add27f3514da8e4ab1fd7a54fe1c7 ]
    
    Fixes the following splat during boot:
    
    BUG: sleeping function called from invalid context at kernel/locking/mutex.c:747
    in_atomic(): 1, irqs_disabled(): 128, pid: 77, name: kworker/2:1
    4 locks held by kworker/2:1/77:
     #0: (ptrval) ((wq_completion)"events"){+.+.}, at: process_one_work+0x1fc/0x8fc
     #1: (ptrval) (deferred_probe_work){+.+.}, at: process_one_work+0x1fc/0x8fc
     #2: (ptrval) (&dev->mutex){....}, at: __device_attach+0x40/0x178
     #3: (ptrval) (msm_iommu_lock){....}, at: msm_iommu_add_device+0x28/0xcc
    irq event stamp: 348
    hardirqs last  enabled at (347): [<c049dc18>] kfree+0xe0/0x3c0
    hardirqs last disabled at (348): [<c0c35cac>] _raw_spin_lock_irqsave+0x2c/0x68
    softirqs last  enabled at (0): [<c0322fd8>] copy_process.part.5+0x280/0x1a68
    softirqs last disabled at (0): [<00000000>]   (null)
    Preemption disabled at:
    [<00000000>]   (null)
    CPU: 2 PID: 77 Comm: kworker/2:1 Not tainted 4.17.0-rc5-wt-ath-01075-gaca0516bb4cf #239
    Hardware name: Generic DT based system
    Workqueue: events deferred_probe_work_func
    [<c0314e00>] (unwind_backtrace) from [<c030fc70>] (show_stack+0x20/0x24)
    [<c030fc70>] (show_stack) from [<c0c16ad8>] (dump_stack+0xa0/0xcc)
    [<c0c16ad8>] (dump_stack) from [<c035a978>] (___might_sleep+0x1f8/0x2d4)
    ath10k_sdio mmc2:0001:1: Direct firmware load for ath10k/QCA9377/hw1.0/board-2.bin failed with error -2
    [<c035a978>] (___might_sleep) from [<c035aac4>] (__might_sleep+0x70/0xa8)
    [<c035aac4>] (__might_sleep) from [<c0c3066c>] (__mutex_lock+0x50/0xb28)
    [<c0c3066c>] (__mutex_lock) from [<c0c31170>] (mutex_lock_nested+0x2c/0x34)
    ath10k_sdio mmc2:0001:1: board_file api 1 bmi_id N/A crc32 544289f7
    [<c0c31170>] (mutex_lock_nested) from [<c052d798>] (kernfs_find_and_get_ns+0x30/0x5c)
    [<c052d798>] (kernfs_find_and_get_ns) from [<c0531cc8>] (sysfs_add_link_to_group+0x28/0x58)
    [<c0531cc8>] (sysfs_add_link_to_group) from [<c07ef75c>] (iommu_device_link+0x50/0xb4)
    [<c07ef75c>] (iommu_device_link) from [<c07f2288>] (msm_iommu_add_device+0xa0/0xcc)
    [<c07f2288>] (msm_iommu_add_device) from [<c07ec6d0>] (add_iommu_group+0x3c/0x64)
    [<c07ec6d0>] (add_iommu_group) from [<c07f9d40>] (bus_for_each_dev+0x84/0xc4)
    [<c07f9d40>] (bus_for_each_dev) from [<c07ec7c8>] (bus_set_iommu+0xd0/0x10c)
    [<c07ec7c8>] (bus_set_iommu) from [<c07f1a68>] (msm_iommu_probe+0x5b8/0x66c)
    [<c07f1a68>] (msm_iommu_probe) from [<c07feaa8>] (platform_drv_probe+0x60/0xbc)
    [<c07feaa8>] (platform_drv_probe) from [<c07fc1fc>] (driver_probe_device+0x30c/0x4cc)
    [<c07fc1fc>] (driver_probe_device) from [<c07fc59c>] (__device_attach_driver+0xac/0x14c)
    [<c07fc59c>] (__device_attach_driver) from [<c07f9e14>] (bus_for_each_drv+0x68/0xc8)
    [<c07f9e14>] (bus_for_each_drv) from [<c07fbd3c>] (__device_attach+0xe4/0x178)
    [<c07fbd3c>] (__device_attach) from [<c07fc698>] (device_initial_probe+0x1c/0x20)
    [<c07fc698>] (device_initial_probe) from [<c07faee8>] (bus_probe_device+0x98/0xa0)
    [<c07faee8>] (bus_probe_device) from [<c07fb4f4>] (deferred_probe_work_func+0x74/0x198)
    [<c07fb4f4>] (deferred_probe_work_func) from [<c0348eb4>] (process_one_work+0x2c4/0x8fc)
    [<c0348eb4>] (process_one_work) from [<c03497b0>] (worker_thread+0x2c4/0x5cc)
    [<c03497b0>] (worker_thread) from [<c0350d10>] (kthread+0x180/0x188)
    [<c0350d10>] (kthread) from [<c03010b4>] (ret_from_fork+0x14/0x20)
    
    Fixes: 42df43b36163 ("iommu/msm: Make use of iommu_device_register interface")
    Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
    Reviewed-by: Vivek Gautam <vivek.gautam@codeaurora.org>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96e878907c9023acb28e1341a5c3686fee43d60e
Author: Michael Scott <michael@opensourcefoundries.com>
Date:   Tue Jun 19 16:44:06 2018 -0700

    6lowpan: iphc: reset mac_header after decompress to fix panic
    
    [ Upstream commit 03bc05e1a4972f73b4eb8907aa373369e825c252 ]
    
    After decompression of 6lowpan socket data, an IPv6 header is inserted
    before the existing socket payload.  After this, we reset the
    network_header value of the skb to account for the difference in payload
    size from prior to decompression + the addition of the IPv6 header.
    
    However, we fail to reset the mac_header value.
    
    Leaving the mac_header value untouched here, can cause a calculation
    error in net/packet/af_packet.c packet_rcv() function when an
    AF_PACKET socket is opened in SOCK_RAW mode for use on a 6lowpan
    interface.
    
    On line 2088, the data pointer is moved backward by the value returned
    from skb_mac_header().  If skb->data is adjusted so that it is before
    the skb->head pointer (which can happen when an old value of mac_header
    is left in place) the kernel generates a panic in net/core/skbuff.c
    line 1717.
    
    This panic can be generated by BLE 6lowpan interfaces (such as bt0) and
    802.15.4 interfaces (such as lowpan0) as they both use the same 6lowpan
    sources for compression and decompression.
    
    Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
    Acked-by: Alexander Aring <aring@mojatatu.com>
    Acked-by: Jukka Rissanen <jukka.rissanen@linux.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 410534a34315b846a235542f886566a4908d25a4
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Jul 4 17:02:18 2018 +0200

    USB: serial: kobil_sct: fix modem-status error handling
    
    [ Upstream commit a420b5d939ee58f1d950f0ea782834056520aeaa ]
    
    Make sure to return -EIO in case of a short modem-status read request.
    
    While at it, split the debug message to not include the (zeroed)
    transfer-buffer content in case of errors.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90de5688afc39cbbd736a5dea6c4e98f0e9e93cb
Author: Jian-Hong Pan <jian-hong@endlessm.com>
Date:   Fri May 25 17:54:52 2018 +0800

    Bluetooth: Add a new Realtek 8723DE ID 0bda:b009
    
    [ Upstream commit 45ae68b8cfc25bdbffc11248001c47ab1b76ff6e ]
    
    Without this patch we cannot turn on the Bluethooth adapter on HP
    14-bs007la.
    
    T:  Bus=01 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#=  4 Spd=12   MxCh= 0
    D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0bda ProdID=b009 Rev= 2.00
    S:  Manufacturer=Realtek
    S:  Product=802.11n WLAN Adapter
    S:  SerialNumber=00e04c000001
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.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 834a9ef5f8318fd40741c4369600dd05d60f98d8
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Wed Jun 6 10:18:46 2018 +0800

    iommu/amd: make sure TLB to be flushed before IOVA freed
    
    [ Upstream commit 3c120143f584360a13614787e23ae2cdcb5e5ccd ]
    
    Although the mapping has already been removed in the page table, it maybe
    still exist in TLB. Suppose the freed IOVAs is reused by others before the
    flush operation completed, the new user can not correctly access to its
    meomory.
    
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Fixes: b1516a14657a ('iommu/amd: Implement flush queue')
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c7e653a24c18f15be7169f217b5a91a63116d5f9
Author: Sudeep Holla <sudeep.holla@arm.com>
Date:   Mon Jun 18 16:54:32 2018 +0100

    power: vexpress: fix corruption in notifier registration
    
    [ Upstream commit 09bebb1adb21ecd04adf7ccb3b06f73e3a851e93 ]
    
    Vexpress platforms provide two different restart handlers: SYS_REBOOT
    that restart the entire system, while DB_RESET only restarts the
    daughter board containing the CPU. DB_RESET is overridden by SYS_REBOOT
    if it exists.
    
    notifier_chain_register used in register_restart_handler by design
    relies on notifiers to be registered once only, however vexpress restart
    notifier can get registered twice. When this happen it corrupts list
    of notifiers, as result some notifiers can be not called on proper
    event, traverse on list can be cycled forever, and second unregister
    can access already freed memory.
    
    So far, since this was the only restart handler in the system, no issue
    was observed even if the same notifier was registered twice. However
    commit 6c5c0d48b686 ("watchdog: sp805: add restart handler") added
    support for SP805 restart handlers and since the system under test
    contains two vexpress restart and two SP805 watchdog instances, it was
    observed that during the boot traversing the restart handler list looped
    forever as there's a cycle in that list resulting in boot hang.
    
    This patch fixes the issues by ensuring that the notifier is installed
    only once.
    
    Cc: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
    Fixes: 46c99ac66222 ("power/reset: vexpress: Register with kernel restart handler")
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1a630680c8b62c3f34f7041fcc10441c6bd5c22
Author: Anton Vasilyev <vasilyev@ispras.ru>
Date:   Fri Jul 6 15:32:53 2018 +0300

    uwb: hwa-rc: fix memory leak at probe
    
    [ Upstream commit 11b71782c1d10d9bccc31825cf84291cd7588a1e ]
    
    hwarc_probe() allocates memory for hwarc, but does not free it
    if uwb_rc_add() or hwarc_get_version() fail.
    
    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 72bad20e9316bf6203def57256a5ade158585558
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Fri Jul 6 11:08:36 2018 +0200

    serial: sh-sci: Stop RX FIFO timer during port shutdown
    
    [ Upstream commit c5a9262fa8bfed0dddc7466ef10fcd292e2af61b ]
    
    The RX FIFO timer may be armed when the port is shut down, hence the
    timer function may still be called afterwards.
    
    Fix this race condition by deleting the timer during port shutdown.
    
    Fixes: 039403765e5da3c6 ("serial: sh-sci: SCIFA/B RX FIFO software timeout")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
    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 0470189cd9b931a4a22e2d179a788abc47f6e7fc
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jul 3 12:05:48 2018 +0200

    misc: sram: enable clock before registering regions
    
    [ Upstream commit d5b9653dd2bb7a2b1c8cc783c5d3b607bbb6b271 ]
    
    Make sure to enable the clock before registering regions and exporting
    partitions to user space at which point we must be prepared for I/O.
    
    Fixes: ee895ccdf776 ("misc: sram: fix enabled clock leak on error path")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Reviewed-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.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 914b4daa9b6d00b520e136e5a10f5286b4d211f3
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed May 23 15:33:21 2018 +0200

    power: supply: axp288_charger: Fix initial constant_charge_current value
    
    [ Upstream commit f2a42595f0865886a2d40524b0e9d15600848670 ]
    
    We should look at val which contains the value read from the register,
    not ret which is always 0 on a successful read.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Fixes: eac53b3664f59 ("power: supply: axp288_charger: Drop platform_data dependency")
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2efa4bd5aa9ad8dda2fcc44d56ac8417cd7fc43d
Author: Colin Ian King <colin.king@canonical.com>
Date:   Mon Jul 2 14:27:35 2018 +0100

    staging: rts5208: fix missing error check on call to rtsx_write_register
    
    [ Upstream commit c5fae4f4fd28189b1062fb8ef7b21fec37cb8b17 ]
    
    Currently the check on error return from the call to rtsx_write_register
    is checking the error status from the previous call. Fix this by adding
    in the missing assignment of retval.
    
    Detected by CoverityScan, CID#709877
    
    Fixes: fa590c222fba ("staging: rts5208: add support for rts5208 and rts5288")
    Signed-off-by: Colin Ian King <colin.king@canonical.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 6ecd10b1aa2298de70dc25ded68feb1b12555538
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Jul 6 09:08:01 2018 -0700

    x86/numa_emulation: Fix emulated-to-physical node mapping
    
    [ Upstream commit 3b6c62f363a19ce82bf378187ab97c9dc01e3927 ]
    
    Without this change the distance table calculation for emulated nodes
    may use the wrong numa node and report an incorrect distance.
    
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Wei Yang <richard.weiyang@gmail.com>
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/153089328103.27680.14778434392225818887.stgit@dwillia2-desk3.amr.corp.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 127cd4e23323f23ca2fe39abb8310e312af2f88f
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Jul 4 12:33:34 2018 +0300

    vmci: type promotion bug in qp_host_get_user_memory()
    
    [ Upstream commit 7fb2fd4e25fc1fb10dcb30b5519de257cfeae84c ]
    
    The problem is that if get_user_pages_fast() fails and returns a
    negative error code, it gets type promoted to a high positive value and
    treated as a success.
    
    Fixes: 06164d2b72aa ("VMCI: queue pairs implementation.")
    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 4804f372b53f65a9e04348ccfa494f169bbeadd9
Author: Matt Ranostay <matt.ranostay@konsulko.com>
Date:   Fri Jun 8 23:58:15 2018 -0700

    tsl2550: fix lux1_input error in low light
    
    [ Upstream commit ce054546cc2c26891cefa2f284d90d93b52205de ]
    
    ADC channel 0 photodiode detects both infrared + visible light,
    but ADC channel 1 just detects infrared. However, the latter is a bit
    more sensitive in that range so complete darkness or low light causes
    a error condition in which the chan0 - chan1 is negative that
    results in a -EAGAIN.
    
    This patch changes the resulting lux1_input sysfs attribute message from
    "Resource temporarily unavailable" to a user-grokable lux value of 0.
    
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.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 db12e7d3e9bc593f784ee8602c38a2b5d8d45408
Author: Akinobu Mita <akinobu.mita@gmail.com>
Date:   Mon Jun 25 00:05:21 2018 +0900

    iio: adc: ina2xx: avoid kthread_stop() with stale task_struct
    
    [ Upstream commit 7d6cd21d82bacab2d1786fe5e989e4815b75d9a3 ]
    
    When the buffer is enabled for ina2xx driver, a dedicated kthread is
    invoked to capture mesurement data.  When the buffer is disabled, the
    kthread is stopped.
    
    However if the kthread gets register access errors, it immediately exits
    and when the malfunctional buffer is disabled, the stale task_struct
    pointer is accessed as there is no kthread to be stopped.
    
    A similar issue in the usbip driver is prevented by kthread_get_run and
    kthread_stop_put helpers by increasing usage count of the task_struct.
    This change applies the same solution.
    
    Cc: Stefan Brüns <stefan.bruens@rwth-aachen.de>
    Cc: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Fixes: c43a102e67db ("iio: ina2xx: add support for TI INA2xx Power Monitors")
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29db2772349dcc71ad3192dc290a87d888ed4b09
Author: Stafford Horne <shorne@gmail.com>
Date:   Mon Jun 25 21:45:37 2018 +0900

    crypto: skcipher - Fix -Wstringop-truncation warnings
    
    [ Upstream commit cefd769fd0192c84d638f66da202459ed8ad63ba ]
    
    As of GCC 9.0.0 the build is reporting warnings like:
    
        crypto/ablkcipher.c: In function ‘crypto_ablkcipher_report’:
        crypto/ablkcipher.c:374:2: warning: ‘strncpy’ specified bound 64 equals destination size [-Wstringop-truncation]
          strncpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<default>",
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           sizeof(rblkcipher.geniv));
           ~~~~~~~~~~~~~~~~~~~~~~~~~
    
    This means the strnycpy might create a non null terminated string.  Fix this by
    explicitly performing '\0' termination.
    
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Max Filippov <jcmvbkbc@gmail.com>
    Cc: Eric Biggers <ebiggers3@gmail.com>
    Cc: Nick Desaulniers <nick.desaulniers@gmail.com>
    Signed-off-by: Stafford Horne <shorne@gmail.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>