commit af0df68432f65915b2a316aa99eeeb588d4c65a2
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Mar 13 14:04:20 2019 -0700

    Linux 4.20.16

commit 5dfb73b63c1ef4fc356e8b03042589502d3e3f0f
Author: Peter Zijlstra (Intel) <peterz@infradead.org>
Date:   Tue Mar 5 22:23:18 2019 +0100

    perf/x86/intel: Implement support for TSX Force Abort
    
    commit 400816f60c543153656ac74eaf7f36f6b7202378 upstream
    
    Skylake (and later) will receive a microcode update to address a TSX
    errata. This microcode will, on execution of a TSX instruction
    (speculative or not) use (clobber) PMC3. This update will also provide
    a new MSR to change this behaviour along with a CPUID bit to enumerate
    the presence of this new MSR.
    
    When the MSR gets set; the microcode will no longer use PMC3 but will
    Force Abort every TSX transaction (upon executing COMMIT).
    
    When TSX Force Abort (TFA) is allowed (default); the MSR gets set when
    PMC3 gets scheduled and cleared when, after scheduling, PMC3 is
    unused.
    
    When TFA is not allowed; clear PMC3 from all constraints such that it
    will not get used.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc8a56b001b0ffe828019ad4fd85cdd31d846854
Author: Peter Zijlstra (Intel) <peterz@infradead.org>
Date:   Tue Mar 5 22:23:17 2019 +0100

    x86: Add TSX Force Abort CPUID/MSR
    
    commit 52f64909409c17adf54fcf5f9751e0544ca3a6b4 upstream
    
    Skylake systems will receive a microcode update to address a TSX
    errata. This microcode will (by default) clobber PMC3 when TSX
    instructions are (speculatively or not) executed.
    
    It also provides an MSR to cause all TSX transaction to abort and
    preserve PMC3.
    
    Add the CPUID enumeration and MSR definition.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a907a44c2867182b064719cc1c048887d41c17a
Author: Peter Zijlstra (Intel) <peterz@infradead.org>
Date:   Tue Mar 5 22:23:16 2019 +0100

    perf/x86/intel: Generalize dynamic constraint creation
    
    commit 11f8b2d65ca9029591c8df26bb6bd063c312b7fe upstream
    
    Such that we can re-use it.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 018cb6965ed6817e0dfdf210b3adec58796be611
Author: Peter Zijlstra (Intel) <peterz@infradead.org>
Date:   Tue Mar 5 22:23:15 2019 +0100

    perf/x86/intel: Make cpuc allocations consistent
    
    commit d01b1f96a82e5dd7841a1d39db3abfdaf95f70ab upstream
    
    The cpuc data structure allocation is different between fake and real
    cpuc's; use the same code to init/free both.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 21beb16585c7b4703658fd4b7971d986014e5896
Author: Daniel F. Dickinson <cshored@thecshore.com>
Date:   Sat Dec 22 01:09:13 2018 -0500

    ath9k: Avoid OF no-EEPROM quirks without qca,no-eeprom
    
    commit ce938231bd3b1d7af3cbd8836f084801090470e1 upstream.
    
    ath9k_of_init() function[0] was initially written on the assumption that
    if someone had an explicit ath9k OF node that "there must be something
    wrong, why would someone add an OF node if everything is fine"[1]
    (Quoting Martin Blumenstingl <martin.blumenstingl@googlemail.com>)
    
    "it turns out it's not that simple. with your requirements I'm now aware
    of two use-cases where the current code in ath9k_of_init() doesn't work
    without modifications"[1]
    
    The "your requirements" Martin speaks of is the result of the fact that I
    have a device (PowerCloud Systems CR5000) has some kind of default - not
    unique mac address - set and requires to set the correct MAC address via
    mac-address devicetree property, however:
    
    "some cards come with a physical EEPROM chip [or OTP] so "qca,no-eeprom"
    should not be set (your use-case). in this case AH_USE_EEPROM should be
    set (which is the default when there is no OF node)"[1]
    
    The other use case is:
    
    the firmware on some PowerMac G5 seems to add a OF node for the ath9k
    card automatically. depending on the EEPROM on the card AH_NO_EEP_SWAP
    should be unset (which is the default when there is no OF node). see [3]
    
    After this patch to ath9k_of_init() the new behavior will be:
    
        if there's no OF node then everything is the same as before
        if there's an empty OF node then ath9k will use the hardware EEPROM
          (before ath9k would fail to initialize because no EEPROM data was
          provided by userspace)
        if there's an OF node with only a MAC address then ath9k will use
          the MAC address and the hardware EEPROM (see the case above)
        with "qca,no-eeprom" EEPROM data from userspace will be requested.
          the behavior here will not change
    [1]
    
    Martin provides additional background on EEPROM swapping[1].
    
    Thanks to Christian Lamparter <chunkeey@gmail.com> for all his help on
    troubleshooting this issue and the basis for this patch.
    
    [0]https://elixir.bootlin.com/linux/v4.20-rc7/source/drivers/net/wireless/ath/ath9k/init.c#L615
    [1]https://github.com/openwrt/openwrt/pull/1645#issuecomment-448027058
    [2]https://github.com/openwrt/openwrt/pull/1613
    [3]https://patchwork.kernel.org/patch/10241731/
    
    Fixes: 138b41253d9c ("ath9k: parse the device configuration from an OF node")
    Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Cc: Christian Lamparter <chunkeey@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f236e5b394a95a9a4b7a9afab044561786cb264
Author: Gao Xiang <gaoxiang25@huawei.com>
Date:   Fri Feb 1 20:16:31 2019 +0800

    staging: erofs: keep corrupted fs from crashing kernel in erofs_namei()
    
    commit 419d6efc50e94bcf5d6b35cd8c71f79edadec564 upstream.
    
    As Al pointed out, "
    ... and while we are at it, what happens to
            unsigned int nameoff = le16_to_cpu(de[mid].nameoff);
            unsigned int matched = min(startprfx, endprfx);
    
            struct qstr dname = QSTR_INIT(data + nameoff,
                    unlikely(mid >= ndirents - 1) ?
                            maxsize - nameoff :
                            le16_to_cpu(de[mid + 1].nameoff) - nameoff);
    
            /* string comparison without already matched prefix */
            int ret = dirnamecmp(name, &dname, &matched);
    if le16_to_cpu(de[...].nameoff) is not monotonically increasing?  I.e.
    what's to prevent e.g. (unsigned)-1 ending up in dname.len?
    
    Corrupted fs image shouldn't oops the kernel.. "
    
    Revisit the related lookup flow to address the issue.
    
    Fixes: d72d1ce60174 ("staging: erofs: add namei functions")
    Cc: <stable@vger.kernel.org> # 4.19+
    Suggested-by: Al Viro <viro@ZenIV.linux.org.uk>
    Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cbd51638e808a1f6841317cd2fa4a907f10d5c6
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Wed Mar 6 15:41:57 2019 +0100

    gfs2: Fix missed wakeups in find_insert_glock
    
    commit 605b0487f0bc1ae9963bf52ece0f5c8055186f81 upstream.
    
    Mark Syms has reported seeing tasks that are stuck waiting in
    find_insert_glock.  It turns out that struct lm_lockname contains four padding
    bytes on 64-bit architectures that function glock_waitqueue doesn't skip when
    hashing the glock name.  As a result, we can end up waking up the wrong
    waitqueue, and the waiting tasks may be stuck forever.
    
    Fix that by using ht_parms.key_len instead of sizeof(struct lm_lockname) for
    the key length.
    
    Reported-by: Mark Syms <mark.syms@citrix.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46745a88b53992d4af4c9037d845633e1cc692b5
Author: Jakub Sitnicki <jakub@cloudflare.com>
Date:   Thu Mar 7 11:35:43 2019 +0100

    bpf: Stop the psock parser before canceling its work
    
    commit e8e3437762ad938880dd48a3c52d702e7cf3c124 upstream.
    
    We might have never enabled (started) the psock's parser, in which case it
    will not get stopped when destroying the psock. This leads to a warning
    when trying to cancel parser's work from psock's deferred destructor:
    
    [  405.325769] WARNING: CPU: 1 PID: 3216 at net/strparser/strparser.c:526 strp_done+0x3c/0x40
    [  405.326712] Modules linked in: [last unloaded: test_bpf]
    [  405.327359] CPU: 1 PID: 3216 Comm: kworker/1:164 Tainted: G        W         5.0.0 #42
    [  405.328294] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ?-20180531_142017-buildhw-08.phx2.fedoraproject.org-1.fc28 04/01/2014
    [  405.329712] Workqueue: events sk_psock_destroy_deferred
    [  405.330254] RIP: 0010:strp_done+0x3c/0x40
    [  405.330706] Code: 28 e8 b8 d5 6b ff 48 8d bb 80 00 00 00 e8 9c d5 6b ff 48 8b 7b 18 48 85 ff 74 0d e8 1e a5 e8 ff 48 c7 43 18 00 00 00 00 5b c3 <0f> 0b eb cf 66 66 66 66 90 55 89 f5 53 48 89 fb 48 83 c7 28 e8 0b
    [  405.332862] RSP: 0018:ffffc900026bbe50 EFLAGS: 00010246
    [  405.333482] RAX: ffffffff819323e0 RBX: ffff88812cb83640 RCX: ffff88812cb829e8
    [  405.334228] RDX: 0000000000000001 RSI: ffff88812cb837e8 RDI: ffff88812cb83640
    [  405.335366] RBP: ffff88813fd22680 R08: 0000000000000000 R09: 000073746e657665
    [  405.336472] R10: 8080808080808080 R11: 0000000000000001 R12: ffff88812cb83600
    [  405.337760] R13: 0000000000000000 R14: ffff88811f401780 R15: ffff88812cb837e8
    [  405.338777] FS:  0000000000000000(0000) GS:ffff88813fd00000(0000) knlGS:0000000000000000
    [  405.339903] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  405.340821] CR2: 00007fb11489a6b8 CR3: 000000012d4d6000 CR4: 00000000000406e0
    [  405.341981] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [  405.343131] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [  405.344415] Call Trace:
    [  405.344821]  sk_psock_destroy_deferred+0x23/0x1b0
    [  405.345585]  process_one_work+0x1ae/0x3e0
    [  405.346110]  worker_thread+0x3c/0x3b0
    [  405.346576]  ? pwq_unbound_release_workfn+0xd0/0xd0
    [  405.347187]  kthread+0x11d/0x140
    [  405.347601]  ? __kthread_parkme+0x80/0x80
    [  405.348108]  ret_from_fork+0x35/0x40
    [  405.348566] ---[ end trace a4a3af4026a327d4 ]---
    
    Stop psock's parser just before canceling its work.
    
    Fixes: 1d79895aef18 ("sk_msg: Always cancel strp work before freeing the psock")
    Reported-by: kernel test robot <rong.a.chen@intel.com>
    Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28fe1dcb59282e17262db86487effe0092cff456
Author: Jakub Sitnicki <jakub@cloudflare.com>
Date:   Mon Jan 28 10:13:35 2019 +0100

    sk_msg: Always cancel strp work before freeing the psock
    
    commit 1d79895aef18fa05789995d86d523c9b2ee58a02 upstream.
    
    Despite having stopped the parser, we still need to deinitialize it
    by calling strp_done so that it cancels its work. Otherwise the worker
    thread can run after we have freed the parser, and attempt to access
    its workqueue resulting in a use-after-free:
    
    ==================================================================
    BUG: KASAN: use-after-free in pwq_activate_delayed_work+0x1b/0x1d0
    Read of size 8 at addr ffff888069975240 by task kworker/u2:2/93
    
    CPU: 0 PID: 93 Comm: kworker/u2:2 Not tainted 5.0.0-rc2-00335-g28f9d1a3d4fe-dirty #14
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-2.fc27 04/01/2014
    Workqueue:            (null) (kstrp)
    Call Trace:
     print_address_description+0x6e/0x2b0
     ? pwq_activate_delayed_work+0x1b/0x1d0
     kasan_report+0xfd/0x177
     ? pwq_activate_delayed_work+0x1b/0x1d0
     ? pwq_activate_delayed_work+0x1b/0x1d0
     pwq_activate_delayed_work+0x1b/0x1d0
     ? process_one_work+0x4aa/0x660
     pwq_dec_nr_in_flight+0x9b/0x100
     worker_thread+0x82/0x680
     ? process_one_work+0x660/0x660
     kthread+0x1b9/0x1e0
     ? __kthread_create_on_node+0x250/0x250
     ret_from_fork+0x1f/0x30
    
    Allocated by task 111:
     sk_psock_init+0x3c/0x1b0
     sock_map_link.isra.2+0x103/0x4b0
     sock_map_update_common+0x94/0x270
     sock_map_update_elem+0x145/0x160
     __se_sys_bpf+0x152e/0x1e10
     do_syscall_64+0xb2/0x3e0
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Freed by task 112:
     kfree+0x7f/0x140
     process_one_work+0x40b/0x660
     worker_thread+0x82/0x680
     kthread+0x1b9/0x1e0
     ret_from_fork+0x1f/0x30
    
    The buggy address belongs to the object at ffff888069975180
     which belongs to the cache kmalloc-512 of size 512
    The buggy address is located 192 bytes inside of
     512-byte region [ffff888069975180, ffff888069975380)
    The buggy address belongs to the page:
    page:ffffea0001a65d00 count:1 mapcount:0 mapping:ffff88806d401280 index:0x0 compound_mapcount: 0
    flags: 0x4000000000010200(slab|head)
    raw: 4000000000010200 dead000000000100 dead000000000200 ffff88806d401280
    raw: 0000000000000000 00000000800c000c 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff888069975100: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff888069975180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    >ffff888069975200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                               ^
     ffff888069975280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff888069975300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    ==================================================================
    
    Reported-by: Marek Majkowski <marek@cloudflare.com>
    Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
    Link: https://lore.kernel.org/netdev/CAJPywTLwgXNEZ2dZVoa=udiZmtrWJ0q5SuBW64aYs0Y1khXX3A@mail.gmail.com
    Acked-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 556a064d6e3cc6b4eb5dd0894433bd60d957a150
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Thu Jan 31 20:07:45 2019 +0300

    Revert "PCI/PME: Implement runtime PM callbacks"
    
    commit c528f7bd362b097eeeafa6fbbeccd9750b79c7ba upstream.
    
    This reverts commit 0e157e52860441cb26051f131dd0b5ae3187a07b.
    
    Heiner reported that the commit in question prevents his network adapter
    from triggering PME and waking up when network cable is plugged.
    
    The commit tried to prevent root port waking up from D3cold immediately but
    looks like disabing root port PME interrupt is not the right way to fix
    that issue so revert it now.  The patch following proposes an alternative
    solution to that issue.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=202103
    Fixes: 0e157e528604 ("PCI/PME: Implement runtime PM callbacks")
    Reported-by: Heiner Kallweit <hkallweit1@gmail.com>
    Tested-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    CC: stable@vger.kernel.org      # v4.20+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e983a42a08494f2cac428338df100cdcfe6bd3a
Author: Sean Young <sean@mess.org>
Date:   Fri Feb 22 04:08:05 2019 -0500

    media: Revert "media: rc: some events are dropped by userspace"
    
    commit 05f0edadcc5fccdfc0676825b3e70e75dc0a8a84 upstream.
    
    When an rc device is created, we do not know what key codes it will
    support, since a new keymap might be loaded at some later point. So,
    we set all keybit in the input device.
    
    The uevent for the input device includes all the key codes, of which
    there are now 768. This overflows the size of the uevent
    (UEVENT_BUFFER_SIZE) and no event is generated.
    
    Revert for now until we figure out a different solution.
    
    This reverts commit fec225a04330d0f222d24feb5bea045526031675.
    
    Cc: <stable@vger.kernel.org> # 4.20+
    Reported-by: Christian Holpert <christian@holpert.de>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccf970be985d3264a27e74b876951173c6fa650f
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Thu Jan 24 13:06:58 2019 +0100

    drm: disable uncached DMA optimization for ARM and arm64
    
    [ Upstream commit e02f5c1bb2283cfcee68f2f0feddcc06150f13aa ]
    
    The DRM driver stack is designed to work with cache coherent devices
    only, but permits an optimization to be enabled in some cases, where
    for some buffers, both the CPU and the GPU use uncached mappings,
    removing the need for DMA snooping and allocation in the CPU caches.
    
    The use of uncached GPU mappings relies on the correct implementation
    of the PCIe NoSnoop TLP attribute by the platform, otherwise the GPU
    will use cached mappings nonetheless. On x86 platforms, this does not
    seem to matter, as uncached CPU mappings will snoop the caches in any
    case. However, on ARM and arm64, enabling this optimization on a
    platform where NoSnoop is ignored results in loss of coherency, which
    breaks correct operation of the device. Since we have no way of
    detecting whether NoSnoop works or not, just disable this
    optimization entirely for ARM and arm64.
    
    Cc: Christian Koenig <christian.koenig@amd.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: David Zhou <David1.Zhou@amd.com>
    Cc: Huang Rui <ray.huang@amd.com>
    Cc: Junwei Zhang <Jerry.Zhang@amd.com>
    Cc: Michel Daenzer <michel.daenzer@amd.com>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Maxime Ripard <maxime.ripard@bootlin.com>
    Cc: Sean Paul <sean@poorly.run>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Cc: amd-gfx list <amd-gfx@lists.freedesktop.org>
    Cc: dri-devel <dri-devel@lists.freedesktop.org>
    Reported-by: Carsten Haitzler <Carsten.Haitzler@arm.com>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Link: https://patchwork.kernel.org/patch/10778815/
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2f12dae5f79c294de74d378b2781c8555d9afb21
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Mon Feb 25 19:42:52 2019 +0100

    ARM: dts: exynos: Fix max voltage for buck8 regulator on Odroid XU3/XU4
    
    commit a3238924a820c1d7c977b632b769f3b5690cba09 upstream.
    
    The maximum voltage value for buck8 regulator on Odroid XU3/XU4 boards is
    set too low. Increase it to the 2000mV as specified on the board schematic.
    So far the board worked fine, because of the bug in the PMIC driver, which
    used incorrect step value for that regulator. It interpreted the voltage
    value set by the bootloader as 1225mV and kept it unchanged. The regulator
    driver has been however fixed recently in the commit 56b5d4ea778c
    ("regulator: s2mps11: Fix steps for buck7, buck8 and LDO35"), what results
    in reading the proper buck8 value and forcing it to 1500mV on boot. This
    is not enough for proper board operation and results in eMMC errors during
    heavy IO traffic. Increasing maximum voltage value for buck8 restores
    original driver behavior and fixes eMMC issues.
    
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Fixes: 86a2d2ac5e5d ("ARM: dts: Add dts file for Odroid XU3 board")
    Fixes: 56b5d4ea778c ("regulator: s2mps11: Fix steps for buck7, buck8 and LDO35")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c2c65d8356d674f37c0a1c5453b90c6382e3159
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Fri Feb 15 11:36:50 2019 +0100

    ARM: dts: exynos: Add minimal clkout parameters to Exynos3250 PMU
    
    commit a66352e005488ecb4b534ba1af58a9f671eba9b8 upstream.
    
    Add minimal parameters needed by the Exynos CLKOUT driver to Exynos3250
    PMU node. This fixes the following warning on boot:
    
    exynos_clkout_init: failed to register clkout clock
    
    Fixes: d19bb397e19e ("ARM: dts: exynos: Update PMU node with CLKOUT related data")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b0b693705dbc7fa172152594ea2b51d1911a2ed
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Thu Jan 24 13:22:57 2019 +0100

    ARM: dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid X2/U3
    
    commit ec33745bccc8f336957c751f4153421cc9ef5a54 upstream.
    
    Commit 225da7e65a03 ("ARM: dts: add eMMC reset line for
    exynos4412-odroid-common") added MMC power sequence for eMMC card of
    Odroid X2/U3. It reused generic sd1_cd pin control configuration node
    and only disabled pull-up. However that time the pinctrl configuration
    was not applied during MMC power sequence driver initialization. This
    has been changed later by commit d97a1e5d7cd2 ("mmc: pwrseq: convert to
    proper platform device").
    
    It turned out then, that the provided pinctrl configuration is not
    correct, because the eMMC_RTSN line is being re-configured as 'special
    function/card detect function for mmc1 controller' not the simple
    'output', thus the power sequence driver doesn't really set the pin
    value. This in effect broke the reboot of Odroid X2/U3 boards. Fix this
    by providing separate node with eMMC_RTSN pin configuration.
    
    Cc: <stable@vger.kernel.org>
    Reported-by: Markus Reichl <m.reichl@fivetechno.de>
    Suggested-by: Ulf Hansson <ulf.hansson@linaro.org>
    Fixes: 225da7e65a03 ("ARM: dts: add eMMC reset line for exynos4412-odroid-common")
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b26fda14fcac4b1d9eb131b6cf0dac64a550acc0
Author: Alistair Strachan <astrachan@google.com>
Date:   Wed Jan 23 12:06:06 2019 -0800

    arm64: dts: hikey: Revert "Enable HS200 mode on eMMC"
    
    commit 8d26c1390aec795d492b8de5e4437751e8805a1d upstream.
    
    This reverts commit abd7d0972a192ee653efc7b151a6af69db58f2bb. This
    change was already partially reverted by John Stultz in
    commit 9c6d26df1fae ("arm64: dts: hikey: Fix eMMC corruption regression").
    
    This change appears to cause controller resets and block read failures
    which prevents successful booting on some hikey boards.
    
    Cc: Ryan Grachek <ryan@edited.us>
    Cc: Wei Xu <xuwei5@hisilicon.com>
    Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: devicetree@vger.kernel.org
    Cc: stable <stable@vger.kernel.org> #4.17+
    Signed-off-by: Alistair Strachan <astrachan@google.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4eb6108b36b9f56fe86ef4b2714aebd77e0c7528
Author: Jan Kiszka <jan.kiszka@siemens.com>
Date:   Thu Jan 24 08:52:33 2019 +0100

    arm64: dts: hikey: Give wifi some time after power-on
    
    commit 83b944174ad79825ae84a47af1a0354485b24602 upstream.
    
    Somewhere along recent changes to power control of the wl1835, power-on
    became very unreliable on the hikey, failing like this:
    
    wl1271_sdio: probe of mmc2:0001:1 failed with error -16
    wl1271_sdio: probe of mmc2:0001:2 failed with error -16
    
    After playing with some dt parameters and comparing to other users of
    this chip, it turned out we need some power-on delay to make things
    stable again. In contrast to those other users which define 200 ms, the
    hikey would already be happy with 1 ms. Still, we use the safer 10 ms,
    like on the Ultra96.
    
    Fixes: ea452678734e ("arm64: dts: hikey: Fix WiFi support")
    Cc: <stable@vger.kernel.org> #4.12+
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 88647a1d93914675d6aba6aa1004f7515c4994b3
Author: Jan Kiszka <jan.kiszka@siemens.com>
Date:   Thu Jan 24 09:28:59 2019 +0100

    arm64: dts: zcu100-revC: Give wifi some time after power-on
    
    commit 35a4f89cd4731ac6ec985cd29ddc1630903006b7 upstream.
    
    Somewhere along recent changes to power control of the wl1831, power-on
    became very unreliable on the Ultra96, failing like this:
    
    wl1271_sdio: probe of mmc2:0001:1 failed with error -16
    wl1271_sdio: probe of mmc2:0001:2 failed with error -16
    
    After playing with some dt parameters and comparing to other users of
    this chip, it turned out we need some power-on delay to make things
    stable again. In contrast to those other users which define 200 ms,
    Ultra96 is already happy with 10 ms.
    
    Fixes: 5869ba0653b9 ("arm64: zynqmp: Add support for Xilinx zcu100-revC")
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Michal Simek <michal.simek@xilinx.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa7fd0571ab0b09bd4a3361d431d092ec628936c
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Thu Feb 7 15:30:05 2019 +0200

    x86/PCI: Fixup RTIT_BAR of Intel Denverton Trace Hub
    
    commit 2e095ce7b6ecce2f3e2ff330527f12056ed1e1a1 upstream.
    
    On Denverton's integration of the Intel(R) Trace Hub (for a reference and
    overview see Documentation/trace/intel_th.rst) the reported size of one of
    its resources (RTIT_BAR) doesn't match its actual size, which leads to
    overlaps with other devices' resources.
    
    In practice, it overlaps with XHCI MMIO space, which results in the xhci
    driver bailing out after seeing its registers as 0xffffffff, and perceived
    disappearance of all USB devices:
    
      intel_th_pci 0000:00:1f.7: enabling device (0004 -> 0006)
      xhci_hcd 0000:00:15.0: xHCI host controller not responding, assume dead
      xhci_hcd 0000:00:15.0: xHC not responding in xhci_irq, assume controller is dead
      xhci_hcd 0000:00:15.0: HC died; cleaning up
      usb 1-1: USB disconnect, device number 2
    
    For this reason, we need to resize the RTIT_BAR on Denverton to its actual
    size, which in this case is 4MB.  The corresponding erratum is DNV36 at the
    link below:
    
      DNV36.       Processor Host Root Complex May Incorrectly Route Memory
                   Accesses to Intel® Trace Hub
    
      Problem:     The Intel® Trace Hub RTIT_BAR (B0:D31:F7 offset 20h) is
                   reported as a 2KB memory range.  Due to this erratum, the
                   processor Host Root Complex will forward addresses from
                   RTIT_BAR to RTIT_BAR + 4MB -1 to Intel® Trace Hub.
    
      Implication: Devices assigned within the RTIT_BAR to RTIT_BAR + 4MB -1
                   space may not function correctly.
    
      Workaround:  A BIOS code change has been identified and may be
                   implemented as a workaround for this erratum.
    
      Status:      No Fix.
    
    Note that 5118ccd34780 ("intel_th: pci: Add Denverton SOC support") updates
    the Trace Hub driver so it claims the Denverton device, but the resource
    overlap exists regardless of whether that driver is loaded or that commit
    is included.
    
    Link: https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/atom-c3000-family-spec-update.pdf
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    [bhelgaas: include erratum text, clarify relationship with 5118ccd34780]
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84882e53e0d64a21beeaf8dd00f486cc4d8bc9be
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Fri Feb 15 15:42:42 2019 -0600

    scsi: aacraid: Fix missing break in switch statement
    
    commit 5e420fe635813e5746b296cfc8fff4853ae205a2 upstream.
    
    Add missing break statement and fix identation issue.
    
    This bug was found thanks to the ongoing efforts to enable
    -Wimplicit-fallthrough.
    
    Fixes: 9cb62fa24e0d ("aacraid: Log firmware AIF messages")
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit caf2aba6e614da5b146075fc2d16cc74fba40e86
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Mon Feb 11 12:43:23 2019 -0600

    iscsi_ibft: Fix missing break in switch statement
    
    commit df997abeebadaa4824271009e2d2b526a70a11cb upstream.
    
    Add missing break statement in order to prevent the code from falling
    through to case ISCSI_BOOT_TGT_NAME, which is unnecessary.
    
    This bug was found thanks to the ongoing efforts to enable
    -Wimplicit-fallthrough.
    
    Fixes: b33a84a38477 ("ibft: convert iscsi_ibft module to iscsi boot lib")
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13e4e858c9b933f2ac0a10bea48c34c72f6dbe85
Author: Vincent Batts <vbatts@hashbangbash.com>
Date:   Sat Mar 9 15:48:04 2019 -0800

    Input: elan_i2c - add id for touchpad found in Lenovo s21e-20
    
    commit e154ab69321ce2c54f19863d75c77b4e2dc9d365 upstream.
    
    Lenovo s21e-20 uses ELAN0601 in its ACPI tables for the Elan touchpad.
    
    Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91855cd6714bcc7f85555b089f00a4588290d89d
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Mar 9 15:32:13 2019 -0800

    Input: wacom_serial4 - add support for Wacom ArtPad II tablet
    
    commit 44fc95e218a09d7966a9d448941fdb003f6bb69f upstream.
    
    Tablet initially begins communicating at 9600 baud, so this command
    should be used to connect to the device:
    
        $ inputattach --daemon --baud 9600 --wacom_iv /dev/ttyS0
    
    https://github.com/linuxwacom/xf86-input-wacom/issues/40
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9796ee19007046562337263590a17d8224dad135
Author: Florian Westphal <fw@strlen.de>
Date:   Tue Feb 5 12:16:18 2019 +0100

    netfilter: nft_compat: don't use refcount_inc on newly allocated entry
    
    [ Upstream commit 947e492c0fc2132ae5fca081a9c2952ccaab0404 ]
    
    When I moved the refcount to refcount_t type I missed the fact that
    refcount_inc() will result in use-after-free warning with
    CONFIG_REFCOUNT_FULL=y builds.
    
    The correct fix would be to init the reference count to 1 at allocation
    time, but, unfortunately we cannot do this, as we can't undo that
    in case something else fails later in the batch.
    
    So only solution I see is to special-case the 'new entry' condition
    and replace refcount_inc() with a "delayed" refcount_set(1) in this case,
    as done here.
    
    The .activate callback can be removed to simplify things, we only
    need to make sure that deactivate() decrements/unlinks the entry
    from the list at end of transaction phase (commit or abort).
    
    Fixes: 12c44aba6618 ("netfilter: nft_compat: use refcnt_t type for nft_xt reference count")
    Reported-by: Jordan Glover <Golden_Miller83@protonmail.ch>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6f9518c5bc88e5206ed68df1f911e47095414476
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Sat Feb 2 10:49:13 2019 +0100

    netfilter: nf_tables: unbind set in rule from commit path
    
    [ Upstream commit f6ac8585897684374a19863fff21186a05805286 ]
    
    Anonymous sets that are bound to rules from the same transaction trigger
    a kernel splat from the abort path due to double set list removal and
    double free.
    
    This patch updates the logic to search for the transaction that is
    responsible for creating the set and disable the set list removal and
    release, given the rule is now responsible for this. Lookup is reverse
    since the transaction that adds the set is likely to be at the tail of
    the list.
    
    Moreover, this patch adds the unbind step to deliver the event from the
    commit path.  This should not be done from the worker thread, since we
    have no guarantees of in-order delivery to the listener.
    
    This patch removes the assumption that both activate and deactivate
    callbacks need to be provided.
    
    Fixes: cd5125d8f518 ("netfilter: nf_tables: split set destruction in deactivate and destroy phase")
    Reported-by: Mikhail Morfikov <mmorfikov@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 365e2f3a358a42c362177564d58433718cf58cda
Author: Keith Busch <keith.busch@intel.com>
Date:   Mon Feb 11 09:23:50 2019 -0700

    nvme-pci: add missing unlock for reset error
    
    [ Upstream commit 4726bcf30fad37cc555cd9dcd6c73f2b2668c879 ]
    
    The reset work holds a mutex to prevent races with removal modifying the
    same resources, but was unlocking only on success. Unlock on failure
    too.
    
    Fixes: 5c959d73dba64 ("nvme-pci: fix rapid add remove sequence")
    Signed-off-by: Keith Busch <keith.busch@intel.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit beed6109acd4efc2f1717c31bddcd0ad7ebbf253
Author: Liu Bo <bo.liu@linux.alibaba.com>
Date:   Fri Jan 25 08:12:47 2019 +0800

    blk-iolatency: fix IO hang due to negative inflight counter
    
    [ Upstream commit 8c772a9bfc7c07c76f4a58b58910452fbb20843b ]
    
    Our test reported the following stack, and vmcore showed that
    ->inflight counter is -1.
    
    [ffffc9003fcc38d0] __schedule at ffffffff8173d95d
    [ffffc9003fcc3958] schedule at ffffffff8173de26
    [ffffc9003fcc3970] io_schedule at ffffffff810bb6b6
    [ffffc9003fcc3988] blkcg_iolatency_throttle at ffffffff813911cb
    [ffffc9003fcc3a20] rq_qos_throttle at ffffffff813847f3
    [ffffc9003fcc3a48] blk_mq_make_request at ffffffff8137468a
    [ffffc9003fcc3b08] generic_make_request at ffffffff81368b49
    [ffffc9003fcc3b68] submit_bio at ffffffff81368d7d
    [ffffc9003fcc3bb8] ext4_io_submit at ffffffffa031be00 [ext4]
    [ffffc9003fcc3c00] ext4_writepages at ffffffffa03163de [ext4]
    [ffffc9003fcc3d68] do_writepages at ffffffff811c49ae
    [ffffc9003fcc3d78] __filemap_fdatawrite_range at ffffffff811b6188
    [ffffc9003fcc3e30] filemap_write_and_wait_range at ffffffff811b6301
    [ffffc9003fcc3e60] ext4_sync_file at ffffffffa030cee8 [ext4]
    [ffffc9003fcc3ea8] vfs_fsync_range at ffffffff8128594b
    [ffffc9003fcc3ee8] do_fsync at ffffffff81285abd
    [ffffc9003fcc3f18] sys_fsync at ffffffff81285d50
    [ffffc9003fcc3f28] do_syscall_64 at ffffffff81003c04
    [ffffc9003fcc3f50] entry_SYSCALL_64_after_swapgs at ffffffff81742b8e
    
    The ->inflight counter may be negative (-1) if
    
    1) blk-iolatency was disabled when the IO was issued,
    
    2) blk-iolatency was enabled before this IO reached its endio,
    
    3) the ->inflight counter is decreased from 0 to -1 in endio()
    
    In fact the hang can be easily reproduced by the below script,
    
    H=/sys/fs/cgroup/unified/
    P=/sys/fs/cgroup/unified/test
    
    echo "+io" > $H/cgroup.subtree_control
    mkdir -p $P
    
    echo $$ > $P/cgroup.procs
    
    xfs_io -f -d -c "pwrite 0 4k" /dev/sdg
    
    echo "`cat /sys/block/sdg/dev` target=1000000" > $P/io.latency
    
    xfs_io -f -d -c "pwrite 0 4k" /dev/sdg
    
    This fixes the problem by freezing the queue so that while
    enabling/disabling iolatency, there is no inflight rq running.
    
    Note that quiesce_queue is not needed as this only updating iolatency
    configuration about which dispatching request_queue doesn't care.
    
    Signed-off-by: Liu Bo <bo.liu@linux.alibaba.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42855c15864d7ad4ef44561670a797ad65ab9bbe
Author: Sudarsana Reddy Kalluru <skalluru@marvell.com>
Date:   Wed Feb 6 14:43:45 2019 -0800

    qede: Fix system crash on configuring channels.
    
    [ Upstream commit 0aa4febb420d91df5b56b1864a2465765da85f4b ]
    
    Under heavy traffic load, when changing number of channels via
    ethtool (ethtool -L) which will cause interface to be reloaded,
    it was observed that some packets gets transmitted on old TX
    channel/queue id which doesn't really exist after the channel
    configuration leads to system crash.
    
    Add a safeguard in the driver by validating queue id through
    ndo_select_queue() which is called before the ndo_start_xmit().
    
    Signed-off-by: Sudarsana Reddy Kalluru <skalluru@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a90c4fef8a132857b4b54a80c9ff7cd58d62433e
Author: Sudarsana Reddy Kalluru <skalluru@marvell.com>
Date:   Wed Feb 6 14:43:44 2019 -0800

    qed: Consider TX tcs while deriving the max num_queues for PF.
    
    [ Upstream commit fb1faab74ddef9ec2d841d54e5d0912a097b3abe ]
    
    Max supported queues is derived incorrectly in the case of multi-CoS.
    Need to consider TCs while calculating num_queues for PF.
    
    Signed-off-by: Sudarsana Reddy Kalluru <skalluru@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 06d98edaec3abc94c62d9ae6893e47378baa3bbc
Author: Manish Chopra <manishc@marvell.com>
Date:   Wed Feb 6 14:43:42 2019 -0800

    qed: Fix EQ full firmware assert.
    
    [ Upstream commit 660492bcf4a7561b5fdc13be0ae0b0c0a8c120be ]
    
    When slowpath messages are sent with high rate, the resulting
    events can lead to a FW assert in case they are not handled fast
    enough (Event Queue Full assert). Attempt to send queued slowpath
    messages only after the newly evacuated entries in the EQ ring
    are indicated to FW.
    
    Signed-off-by: Manish Chopra <manishc@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f4deec56a25e4038d45f405c0c02560420f43902
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Mon Jan 21 22:49:37 2019 +0900

    fs: ratelimit __find_get_block_slow() failure message.
    
    [ Upstream commit 43636c804df0126da669c261fc820fb22f62bfc2 ]
    
    When something let __find_get_block_slow() hit all_mapped path, it calls
    printk() for 100+ times per a second. But there is no need to print same
    message with such high frequency; it is just asking for stall warning, or
    at least bloating log files.
    
      [  399.866302][T15342] __find_get_block_slow() failed. block=1, b_blocknr=8
      [  399.873324][T15342] b_state=0x00000029, b_size=512
      [  399.878403][T15342] device loop0 blocksize: 4096
      [  399.883296][T15342] __find_get_block_slow() failed. block=1, b_blocknr=8
      [  399.890400][T15342] b_state=0x00000029, b_size=512
      [  399.895595][T15342] device loop0 blocksize: 4096
      [  399.900556][T15342] __find_get_block_slow() failed. block=1, b_blocknr=8
      [  399.907471][T15342] b_state=0x00000029, b_size=512
      [  399.912506][T15342] device loop0 blocksize: 4096
    
    This patch reduces frequency to up to once per a second, in addition to
    concatenating three lines into one.
    
      [  399.866302][T15342] __find_get_block_slow() failed. block=1, b_blocknr=8, b_state=0x00000029, b_size=512, device loop0 blocksize: 4096
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c13a99fe8c6d9d5ff85f7a90dcca07a3cbd4a0ba
Author: Keith Busch <keith.busch@intel.com>
Date:   Wed Jan 23 18:46:11 2019 -0700

    nvme-pci: fix rapid add remove sequence
    
    [ Upstream commit 5c959d73dba6495ec01d04c206ee679d61ccb2b0 ]
    
    A surprise removal may fail to tear down request queues if it is racing
    with the initial asynchronous probe. If that happens, the remove path
    won't see the queue resources to tear down, and the controller reset
    path may create a new request queue on a removed device, but will not
    be able to make forward progress, deadlocking the pci removal.
    
    Protect setting up non-blocking resources from a shutdown by holding the
    same mutex, and transition to the CONNECTING state after these resources
    are initialized so the probe path may see the dead controller state
    before dispatching new IO.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=202081
    Reported-by: Alex Gagniuc <Alex_Gagniuc@Dellteam.com>
    Signed-off-by: Keith Busch <keith.busch@intel.com>
    Tested-by: Alex Gagniuc <mr.nuke.me@gmail.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6791cbc4f57215bb7de561e2ae1603a547b26149
Author: Keith Busch <keith.busch@intel.com>
Date:   Mon Jan 28 09:46:07 2019 -0700

    nvme: lock NS list changes while handling command effects
    
    [ Upstream commit e7ad43c3eda6a1690c4c3c341f95dc1c6898da83 ]
    
    If a controller supports the NS Change Notification, the namespace
    scan_work is automatically triggered after attaching a new namespace.
    
    Occasionally the namespace scan_work may append the new namespace to the
    list before the admin command effects handling is completed. The effects
    handling unfreezes namespaces, but if it unfreezes the newly attached
    namespace, its request_queue freeze depth will be off and we'll hit the
    warning in blk_mq_unfreeze_queue().
    
    On the next namespace add, we will fail to freeze that queue due to the
    previous bad accounting and deadlock waiting for frozen.
    
    Fix that by preventing scan work from altering the namespace list while
    command effects handling needs to pair freeze with unfreeze.
    
    Reported-by: Wen Xiong <wenxiong@us.ibm.com>
    Tested-by: Wen Xiong <wenxiong@us.ibm.com>
    Signed-off-by: Keith Busch <keith.busch@intel.com>
    Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 84bee349eb1fb8004f3ac51bcf99d7f021020f78
Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
Date:   Fri Jan 11 05:50:35 2019 +0200

    drm/omap: dsi: Hack-fix DSI bus flags
    
    [ Upstream commit 6297388e1eddd2f1345cea5892156223995bcf2d ]
    
    Since commit b4935e3a3cfa ("drm/omap: Store bus flags in the
    omap_dss_device structure") video mode flags are managed by the omapdss
    (and later omapdrm) core based on bus flags stored in omap_dss_device.
    This works fine for all devices whose video modes are set by the omapdss
    and omapdrm core, but breaks DSI operation as the DSI still uses legacy
    code paths and sets the DISPC timings manually.
    
    To fix the problem properly we should move the DSI encoder to the new
    encoder model. This will however require a considerable amount of work.
    Restore DSI operation by adding back video mode flags handling in the
    DSI encoder driver as a hack in the meantime.
    
    Fixes: b4935e3a3cfa ("drm/omap: Store bus flags in the omap_dss_device structure")
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190111035120.20668-5-laurent.pinchart@ideasonboard.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ad6577716a582adf143d158fd0d00e0bb4878e5
Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
Date:   Fri Jan 11 05:50:34 2019 +0200

    drm/omap: dsi: Fix OF platform depopulate
    
    [ Upstream commit 0940c52742de0d2f70ba687bfd5fe8aa38c5f27d ]
    
    Commit edb715dffdee ("drm/omap: dss: dsi: Move initialization code from
    bind to probe") moved the of_platform_populate() call from dsi_bind() to
    dsi_probe(), but failed to move the corresponding
    of_platform_depopulate() from dsi_unbind() to dsi_remove(). This results
    in OF child devices being potentially removed multiple times. Fix it by
    placing the of_platform_depopulate() call where it belongs.
    
    Fixes: edb715dffdee ("drm/omap: dss: dsi: Move initialization code from bind to probe")
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190111035120.20668-4-laurent.pinchart@ideasonboard.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1fd9d92134d8a755715fc33e30b1f8cb6f97b83b
Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
Date:   Fri Jan 11 05:50:33 2019 +0200

    drm/omap: dsi: Fix crash in DSI debug dumps
    
    [ Upstream commit 4df04ac9b37f278c48bb696289aff8f81226af4b ]
    
    Reading any of the DSI debugfs files results in a crash, as wrong
    pointer is passed to the dump functions, and the dump functions use a
    wrong pointer. This patch fixes DSI debug dumps.
    
    Fixes: f3ed97f9ae7d ("drm/omap: dsi: Simplify debugfs implementation")
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190111035120.20668-3-laurent.pinchart@ideasonboard.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e5d3944e0e617286d02aeec92ba78e24f15bf87b
Author: Philip Yang <Philip.Yang@amd.com>
Date:   Wed Jan 30 15:21:16 2019 -0500

    drm/amdgpu: use spin_lock_irqsave to protect vm_manager.pasid_idr
    
    [ Upstream commit 0a5f49cbf9d6ad3721c16f8a6d823363ea7a160f ]
    
    amdgpu_vm_get_task_info is called from interrupt handler and sched timeout
    workqueue, we should use irq version spin_lock to avoid deadlock.
    
    Signed-off-by: Philip Yang <Philip.Yang@amd.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fcf003ca4e61e058e03178dedf39c1050d80fc8c
Author: Tony Lindgren <tony@atomide.com>
Date:   Thu Jan 10 07:59:16 2019 -0800

    i2c: omap: Use noirq system sleep pm ops to idle device for suspend
    
    [ Upstream commit c6e2bd956936d925748581e4d0294f10f1d92f2c ]
    
    We currently get the following error with pixcir_ts driver during a
    suspend resume cycle:
    
    omap_i2c 4802a000.i2c: controller timed out
    pixcir_ts 1-005c: pixcir_int_enable: can't read reg 0x34 : -110
    pixcir_ts 1-005c: Failed to disable interrupt generation: -110
    pixcir_ts 1-005c: Failed to stop
    dpm_run_callback(): pixcir_i2c_ts_resume+0x0/0x98
    [pixcir_i2c_ts] returns -110
    PM: Device 1-005c failed to resume: error -110
    
    And at least am437x based devices with pixcir_ts will fail to resume
    to a touchscreen that is configured as the wakeup-source in device
    tree for these devices.
    
    This is because pixcir_ts tries to reconfigure it's registers for
    noirq suspend which fails. This also leaves i2c-omap in enabled state
    for suspend.
    
    Let's fix the pixcir_ts issue and make sure i2c-omap is suspended by
    adding SET_NOIRQ_SYSTEM_SLEEP_PM_OPS.
    
    Let's also get rid of some ifdefs while at it and replace them with
    __maybe_unused as SET_RUNTIME_PM_OPS and SET_NOIRQ_SYSTEM_SLEEP_PM_OPS
    already deal with the various PM Kconfig options.
    
    Reported-by: Keerthy <j-keerthy@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Acked-by: Vignesh R <vigneshr@ti.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 64f948e818661348585e7dea7142a594877df403
Author: Ross Lagerwall <ross.lagerwall@citrix.com>
Date:   Fri Feb 1 14:42:28 2019 +0000

    Revert "scsi: libfc: Add WARN_ON() when deleting rports"
    
    [ Upstream commit d8f6382a7d026989029e2e50c515df954488459b ]
    
    This reverts commit bbc0f8bd88abefb0f27998f40a073634a3a2db89.
    
    It added a warning whose intent was to check whether the rport was still
    linked into the peer list. It doesn't work as intended and gives false
    positive warnings for two reasons:
    
    1) If the rport is never linked into the peer list it will not be
    considered empty since the list_head is never initialized.
    
    2) If the rport is deleted from the peer list using list_del_rcu(), then
    the list_head is in an undefined state and it is not considered empty.
    
    Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d2463c612302f1e191a010daf640aef5760eab74
Author: Jun-Ru Chang <jrjang@realtek.com>
Date:   Tue Jan 29 11:56:07 2019 +0800

    MIPS: Remove function size check in get_frame_info()
    
    [ Upstream commit 2b424cfc69728224fcb5fad138ea7260728e0901 ]
    
    Patch (b6c7a324df37b "MIPS: Fix get_frame_info() handling of
    microMIPS function size.") introduces additional function size
    check for microMIPS by only checking insn between ip and ip + func_size.
    However, func_size in get_frame_info() is always 0 if KALLSYMS is not
    enabled. This causes get_frame_info() to return immediately without
    calculating correct frame_size, which in turn causes "Can't analyze
    schedule() prologue" warning messages at boot time.
    
    This patch removes func_size check, and let the frame_size check run
    up to 128 insns for both MIPS and microMIPS.
    
    Signed-off-by: Jun-Ru Chang <jrjang@realtek.com>
    Signed-off-by: Tony Wu <tonywu@realtek.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Fixes: b6c7a324df37b ("MIPS: Fix get_frame_info() handling of microMIPS function size.")
    Cc: <ralf@linux-mips.org>
    Cc: <jhogan@kernel.org>
    Cc: <macro@mips.com>
    Cc: <yamada.masahiro@socionext.com>
    Cc: <peterz@infradead.org>
    Cc: <mingo@kernel.org>
    Cc: <linux-mips@vger.kernel.org>
    Cc: <linux-kernel@vger.kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a83b94a6bf788ad9312fad6ec8a62c895df4da88
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Tue Jan 29 15:12:34 2019 +0100

    perf trace: Support multiple "vfs_getname" probes
    
    [ Upstream commit 6ab3bc240ade47a0f52bc16d97edd9accbe0024e ]
    
    With a suitably defined "probe:vfs_getname" probe, 'perf trace' can
    "beautify" its output, so syscalls like open() or openat() can print the
    "filename" argument instead of just its hex address, like:
    
      $ perf trace -e open -- touch /dev/null
      [...]
           0.590 ( 0.014 ms): touch/18063 open(filename: /dev/null, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: IRUGO|IWUGO) = 3
      [...]
    
    The output without such beautifier looks like:
    
         0.529 ( 0.011 ms): touch/18075 open(filename: 0xc78cf288, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: IRUGO|IWUGO) = 3
    
    However, when the vfs_getname probe expands to multiple probes and it is
    not the first one that is hit, the beautifier fails, as following:
    
         0.326 ( 0.010 ms): touch/18072 open(filename: , flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: IRUGO|IWUGO) = 3
    
    Fix it by hooking into all the expanded probes (inlines), now, for instance:
    
      [root@quaco ~]# perf probe -l
        probe:vfs_getname    (on getname_flags:73@fs/namei.c with pathname)
        probe:vfs_getname_1  (on getname_flags:73@fs/namei.c with pathname)
      [root@quaco ~]# perf trace -e open* sleep 1
           0.010 ( 0.005 ms): sleep/5588 openat(dfd: CWD, filename: /etc/ld.so.cache, flags: RDONLY|CLOEXEC)   = 3
           0.029 ( 0.006 ms): sleep/5588 openat(dfd: CWD, filename: /lib64/libc.so.6, flags: RDONLY|CLOEXEC)   = 3
           0.194 ( 0.008 ms): sleep/5588 openat(dfd: CWD, filename: /usr/lib/locale/locale-archive, flags: RDONLY|CLOEXEC) = 3
      [root@quaco ~]#
    
    Works, further verified with:
    
      [root@quaco ~]# perf test vfs
      65: Use vfs_getname probe to get syscall args filenames   : Ok
      66: Add vfs_getname probe to get syscall args filenames   : Ok
      67: Check open filename arg using perf trace + vfs_getname: Ok
      [root@quaco ~]#
    
    Reported-by: Michael Petlan <mpetlan@redhat.com>
    Tested-by: Michael Petlan <mpetlan@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lkml.kernel.org/n/tip-mv8kolk17xla1smvmp3qabv1@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0aa1b94651a08e57a02a44d33133480160ef8fd1
Author: Jiri Olsa <jolsa@redhat.com>
Date:   Mon Jan 28 14:35:26 2019 +0100

    perf symbols: Filter out hidden symbols from labels
    
    [ Upstream commit 59a17706915fe5ea6f711e1f92d4fb706bce07fe ]
    
    When perf is built with the annobin plugin (RHEL8 build) extra symbols
    are added to its binary:
    
      # nm perf | grep annobin | head -10
      0000000000241100 t .annobin_annotate.c
      0000000000326490 t .annobin_annotate.c
      0000000000249255 t .annobin_annotate.c_end
      00000000003283a8 t .annobin_annotate.c_end
      00000000001bce18 t .annobin_annotate.c_end.hot
      00000000001bce18 t .annobin_annotate.c_end.hot
      00000000001bc3e2 t .annobin_annotate.c_end.unlikely
      00000000001bc400 t .annobin_annotate.c_end.unlikely
      00000000001bce18 t .annobin_annotate.c.hot
      00000000001bce18 t .annobin_annotate.c.hot
      ...
    
    Those symbols have no use for report or annotation and should be
    skipped.  Moreover they interfere with the DWARF unwind test on the PPC
    arch, where they are mixed with checked symbols and then the test fails:
    
      # perf test dwarf -v
      59: Test dwarf unwind                                     :
      --- start ---
      test child forked, pid 8515
      unwind: .annobin_dwarf_unwind.c:ip = 0x10dba40dc (0x2740dc)
      ...
      got: .annobin_dwarf_unwind.c 0x10dba40dc, expecting test__arch_unwind_sample
      unwind: failed with 'no error'
    
    The annobin symbols are defined as NOTYPE/LOCAL/HIDDEN:
    
      # readelf -s ./perf | grep annobin | head -1
        40: 00000000001bce4f     0 NOTYPE  LOCAL  HIDDEN    13 .annobin_init.c
    
    They can still pass the check for the label symbol. Adding check for
    HIDDEN and INTERNAL (as suggested by Nick below) visibility and filter
    out such symbols.
    
    >   Just to be awkward, if you are going to ignore STV_HIDDEN
    >   symbols then you should probably also ignore STV_INTERNAL ones
    >   as well...  Annobin does not generate them, but you never know,
    >   one day some other tool might create some.
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Michael Petlan <mpetlan@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Nick Clifton <nickc@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20190128133526.GD15461@krava
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e47715af66c1e3e31e1872854029ff7a314d73d4
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Mon Feb 4 17:40:09 2019 +0100

    s390/qeth: conclude all event processing before offlining a card
    
    [ Upstream commit c0a2e4d10d9366ada133a8ae4ff2f32397f8b15b ]
    
    Work for Bridgeport events is currently placed on a driver-wide
    workqueue. If the card is removed and freed while any such work is still
    active, this causes a use-after-free.
    So put the events on a per-card queue, where we can control their
    lifetime. As we also don't want stale events to last beyond an
    offline & online cycle, flush this queue when setting the card offline.
    
    Fixes: b4d72c08b358 ("qeth: bridgeport support - basic control")
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3fe364f4808279b3e43263780e55758374021a57
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Mon Feb 4 17:40:08 2019 +0100

    s390/qeth: cancel close_dev work before removing a card
    
    [ Upstream commit c2780c1a3fb724560b1d44f7976e0de17bf153c7 ]
    
    A card's close_dev work is scheduled on a driver-wide workqueue. If the
    card is removed and freed while the work is still active, this causes a
    use-after-free.
    So make sure that the work is completed before freeing the card.
    
    Fixes: 0f54761d167f ("qeth: Support VEPA mode")
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1724634efde9d8b6e55ab8c53780115869cd585a
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Mon Feb 4 17:40:07 2019 +0100

    s390/qeth: fix use-after-free in error path
    
    [ Upstream commit afa0c5904ba16d59b0454f7ee4c807dae350f432 ]
    
    The error path in qeth_alloc_qdio_buffers() that takes care of
    cleaning up the Output Queues is buggy. It first frees the queue, but
    then calls qeth_clear_outq_buffers() with that very queue struct.
    
    Make the call to qeth_clear_outq_buffers() part of the free action
    (in the correct order), and while at it fix the naming of the helper.
    
    Fixes: 0da9581ddb0f ("qeth: exploit asynchronous delivery of storage blocks")
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 04e31d96e5e23d92217ecdea3870cb7e07364989
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Mon Feb 4 17:40:06 2019 +0100

    s390/qeth: release cmd buffer in error paths
    
    [ Upstream commit 5065b2dd3e5f9247a6c9d67974bc0472bf561b9d ]
    
    Whenever we fail before/while starting an IO, make sure to release the
    IO buffer. Usually qeth_irq() would do this for us, but if the IO
    doesn't even start we obviously won't get an interrupt for it either.
    
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb0e65ec9a8b38adbc65c206f2378289dc08612a
Author: Martynas Pumputis <martynas@weave.works>
Date:   Tue Jan 29 15:51:42 2019 +0100

    netfilter: nf_nat: skip nat clash resolution for same-origin entries
    
    [ Upstream commit 4e35c1cb9460240e983a01745b5f29fe3a4d8e39 ]
    
    It is possible that two concurrent packets originating from the same
    socket of a connection-less protocol (e.g. UDP) can end up having
    different IP_CT_DIR_REPLY tuples which results in one of the packets
    being dropped.
    
    To illustrate this, consider the following simplified scenario:
    
    1. Packet A and B are sent at the same time from two different threads
       by same UDP socket.  No matching conntrack entry exists yet.
       Both packets cause allocation of a new conntrack entry.
    2. get_unique_tuple gets called for A.  No clashing entry found.
       conntrack entry for A is added to main conntrack table.
    3. get_unique_tuple is called for B and will find that the reply
       tuple of B is already taken by A.
       It will allocate a new UDP source port for B to resolve the clash.
    4. conntrack entry for B cannot be added to main conntrack table
       because its ORIGINAL direction is clashing with A and the REPLY
       directions of A and B are not the same anymore due to UDP source
       port reallocation done in step 3.
    
    This patch modifies nf_conntrack_tuple_taken so it doesn't consider
    colliding reply tuples if the IP_CT_DIR_ORIGINAL tuples are equal.
    
    [ Florian: simplify patch to not use .allow_clash setting
      and always ignore identical flows ]
    
    Signed-off-by: Martynas Pumputis <martynas@weave.works>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 477ed695237ff29387af07f5ce335aeb1aee5918
Author: Florian Westphal <fw@strlen.de>
Date:   Tue Jan 29 15:16:23 2019 +0100

    selftests: netfilter: add simple masq/redirect test cases
    
    [ Upstream commit 98bfc3414bda335dbd7fec58bde6266f991801d7 ]
    
    Check basic nat/redirect/masquerade for ipv4 and ipv6.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1cdb0002ccd9bdfa2ff1c427de095fe63f5702a0
Author: Naresh Kamboju <naresh.kamboju@linaro.org>
Date:   Tue Jan 29 06:28:35 2019 +0000

    selftests: netfilter: fix config fragment CONFIG_NF_TABLES_INET
    
    [ Upstream commit 952b72f89ae23b316da8c1021b18d0c388ad6cc4 ]
    
    In selftests the config fragment for netfilter was added as
    NF_TABLES_INET=y and this patch correct it as CONFIG_NF_TABLES_INET=y
    
    Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Acked-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3e46018f4d7f4fcb86bd46b0e6ad10f81f926ad
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Jan 30 21:48:44 2019 +0200

    dmaengine: dmatest: Abort test in case of mapping error
    
    [ Upstream commit 6454368a804c4955ccd116236037536f81e5b1f1 ]
    
    In case of mapping error the DMA addresses are invalid and continuing
    will screw system memory or potentially something else.
    
    [  222.480310] dmatest: dma0chan7-copy0: summary 1 tests, 3 failures 6 iops 349 KB/s (0)
    ...
    [  240.912725] check: Corrupted low memory at 00000000c7c75ac9 (2940 phys) = 5656000000000000
    [  240.921998] check: Corrupted low memory at 000000005715a1cd (2948 phys) = 279f2aca5595ab2b
    [  240.931280] check: Corrupted low memory at 000000002f4024c0 (2950 phys) = 5e5624f349e793cf
    ...
    
    Abort any test if mapping failed.
    
    Fixes: 4076e755dbec ("dmatest: convert to dmaengine_unmap_data")
    Cc: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a76b1cdb7291483fa86ab9babaa5161d7452c966
Author: Stefano Garzarella <sgarzare@redhat.com>
Date:   Fri Feb 1 12:42:07 2019 +0100

    vsock/virtio: reset connected sockets on device removal
    
    [ Upstream commit 85965487abc540368393a15491e6e7fcd230039d ]
    
    When the virtio transport device disappear, we should reset all
    connected sockets in order to inform the users.
    
    Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b48bbf4bd0eb7eb8044f9ef219e4def0972a3408
Author: Stefano Garzarella <sgarzare@redhat.com>
Date:   Fri Feb 1 12:42:06 2019 +0100

    vsock/virtio: fix kernel panic after device hot-unplug
    
    [ Upstream commit 22b5c0b63f32568e130fa2df4ba23efce3eb495b ]
    
    virtio_vsock_remove() invokes the vsock_core_exit() also if there
    are opened sockets for the AF_VSOCK protocol family. In this way
    the vsock "transport" pointer is set to NULL, triggering the
    kernel panic at the first socket activity.
    
    This patch move the vsock_core_init()/vsock_core_exit() in the
    virtio_vsock respectively in module_init and module_exit functions,
    that cannot be invoked until there are open sockets.
    
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1609699
    Reported-by: Yan Fu <yafu@redhat.com>
    Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2099fbd08137d92fc9cdd7a3faea6a8436b56550
Author: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Date:   Wed Jan 23 16:33:47 2019 +0000

    dmaengine: at_xdmac: Fix wrongfull report of a channel as in use
    
    [ Upstream commit dc3f595b6617ebc0307e0ce151e8f2f2b2489b95 ]
    
    atchan->status variable is used to store two different information:
     - pass channel interrupts status from interrupt handler to tasklet;
     - channel information like whether it is cyclic or paused;
    
    This causes a bug when device_terminate_all() is called,
    (AT_XDMAC_CHAN_IS_CYCLIC cleared on atchan->status) and then a late End
    of Block interrupt arrives (AT_XDMAC_CIS_BIS), which sets bit 0 of
    atchan->status. Bit 0 is also used for AT_XDMAC_CHAN_IS_CYCLIC, so when
    a new descriptor for a cyclic transfer is created, the driver reports
    the channel as in use:
    
    if (test_and_set_bit(AT_XDMAC_CHAN_IS_CYCLIC, &atchan->status)) {
            dev_err(chan2dev(chan), "channel currently used\n");
            return NULL;
    }
    
    This patch fixes the bug by adding a different struct member to keep
    the interrupts status separated from the channel status bits.
    
    Fixes: e1f7c9eee707 ("dmaengine: at_xdmac: creation of the atmel eXtended DMA Controller driver")
    Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
    Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07acb3774e05c578a3839362c2eb3f8077dfb851
Author: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Date:   Thu Jan 31 14:25:50 2019 +0100

    drm/sun4i: tcon: Prepare and enable TCON channel 0 clock at init
    
    [ Upstream commit b14e945bda8ae227d1bf2b1837c0c4a61721cd1a ]
    
    When initializing clocks, a reference to the TCON channel 0 clock is
    obtained. However, the clock is never prepared and enabled later.
    Switching from simplefb to DRM actually disables the clock (that was
    usually configured by U-Boot) because of that.
    
    On the V3s, this results in a hang when writing to some mixer registers
    when switching over to DRM from simplefb.
    
    Fix this by preparing and enabling the clock when initializing other
    clocks. Waiting for sun4i_tcon_channel_enable to enable the clock is
    apparently too late and results in the same mixer register access hang.
    
    Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
    Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190131132550.26355-1-paul.kocialkowski@bootlin.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 462265d508b9824c28769bc5523d2a0344f7cd5c
Author: Huang Rui <ray.huang@amd.com>
Date:   Wed Jan 30 19:50:04 2019 +0800

    drm/amdgpu: fix the incorrect external id for raven series
    
    [ Upstream commit 7e4545d372b560df10fa47281ef0783a479ce435 ]
    
    This patch fixes the incorrect external id that kernel reports to user mode
    driver. Raven2's rev_id is starts from 0x8, so its external id (0x81) should
    start from rev_id + 0x79 (0x81 - 0x8). And Raven's rev_id should be 0x21 while
    rev_id == 1.
    
    Reported-by: Crystal Jin <Crystal.Jin@amd.com>
    Signed-off-by: Huang Rui <ray.huang@amd.com>
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ebce7c67b198541f9a683786583faaeeba2fd0b6
Author: Jay Cornwall <Jay.Cornwall@amd.com>
Date:   Wed Jan 30 12:53:29 2019 -0600

    drm/amdgpu: Implement doorbell self-ring for NBIO 7.4
    
    [ Upstream commit 12292519d919ecde92e7e7c8acbcdb9f0c7c6013 ]
    
    Fixes doorbell reflection on Vega20.
    
    Change-Id: I0495139d160a9032dff5977289b1eec11c16f781
    Signed-off-by: Jay Cornwall <Jay.Cornwall@amd.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1038213107fc64be7d421a8340c45297747ecb94
Author: Martin KaFai Lau <kafai@fb.com>
Date:   Wed Jan 30 18:12:45 2019 -0800

    bpf: Fix syscall's stackmap lookup potential deadlock
    
    [ Upstream commit 7c4cd051add3d00bbff008a133c936c515eaa8fe ]
    
    The map_lookup_elem used to not acquiring spinlock
    in order to optimize the reader.
    
    It was true until commit 557c0c6e7df8 ("bpf: convert stackmap to pre-allocation")
    The syscall's map_lookup_elem(stackmap) calls bpf_stackmap_copy().
    bpf_stackmap_copy() may find the elem no longer needed after the copy is done.
    If that is the case, pcpu_freelist_push() saves this elem for reuse later.
    This push requires a spinlock.
    
    If a tracing bpf_prog got run in the middle of the syscall's
    map_lookup_elem(stackmap) and this tracing bpf_prog is calling
    bpf_get_stackid(stackmap) which also requires the same pcpu_freelist's
    spinlock, it may end up with a dead lock situation as reported by
    Eric Dumazet in https://patchwork.ozlabs.org/patch/1030266/
    
    The situation is the same as the syscall's map_update_elem() which
    needs to acquire the pcpu_freelist's spinlock and could race
    with tracing bpf_prog.  Hence, this patch fixes it by protecting
    bpf_stackmap_copy() with this_cpu_inc(bpf_prog_active)
    to prevent tracing bpf_prog from running.
    
    A later syscall's map_lookup_elem commit f1a2e44a3aec ("bpf: add queue and stack maps")
    also acquires a spinlock and races with tracing bpf_prog similarly.
    Hence, this patch is forward looking and protects the majority
    of the map lookups.  bpf_map_offload_lookup_elem() is the exception
    since it is for network bpf_prog only (i.e. never called by tracing
    bpf_prog).
    
    Fixes: 557c0c6e7df8 ("bpf: convert stackmap to pre-allocation")
    Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Martin KaFai Lau <kafai@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0795cf1a9315a75f8910760620806934fbd1f2fd
Author: Alexei Starovoitov <ast@kernel.org>
Date:   Wed Jan 30 18:12:44 2019 -0800

    bpf: fix potential deadlock in bpf_prog_register
    
    [ Upstream commit e16ec34039c701594d55d08a5aa49ee3e1abc821 ]
    
    Lockdep found a potential deadlock between cpu_hotplug_lock, bpf_event_mutex, and cpuctx_mutex:
    [   13.007000] WARNING: possible circular locking dependency detected
    [   13.007587] 5.0.0-rc3-00018-g2fa53f892422-dirty #477 Not tainted
    [   13.008124] ------------------------------------------------------
    [   13.008624] test_progs/246 is trying to acquire lock:
    [   13.009030] 0000000094160d1d (tracepoints_mutex){+.+.}, at: tracepoint_probe_register_prio+0x2d/0x300
    [   13.009770]
    [   13.009770] but task is already holding lock:
    [   13.010239] 00000000d663ef86 (bpf_event_mutex){+.+.}, at: bpf_probe_register+0x1d/0x60
    [   13.010877]
    [   13.010877] which lock already depends on the new lock.
    [   13.010877]
    [   13.011532]
    [   13.011532] the existing dependency chain (in reverse order) is:
    [   13.012129]
    [   13.012129] -> #4 (bpf_event_mutex){+.+.}:
    [   13.012582]        perf_event_query_prog_array+0x9b/0x130
    [   13.013016]        _perf_ioctl+0x3aa/0x830
    [   13.013354]        perf_ioctl+0x2e/0x50
    [   13.013668]        do_vfs_ioctl+0x8f/0x6a0
    [   13.014003]        ksys_ioctl+0x70/0x80
    [   13.014320]        __x64_sys_ioctl+0x16/0x20
    [   13.014668]        do_syscall_64+0x4a/0x180
    [   13.015007]        entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [   13.015469]
    [   13.015469] -> #3 (&cpuctx_mutex){+.+.}:
    [   13.015910]        perf_event_init_cpu+0x5a/0x90
    [   13.016291]        perf_event_init+0x1b2/0x1de
    [   13.016654]        start_kernel+0x2b8/0x42a
    [   13.016995]        secondary_startup_64+0xa4/0xb0
    [   13.017382]
    [   13.017382] -> #2 (pmus_lock){+.+.}:
    [   13.017794]        perf_event_init_cpu+0x21/0x90
    [   13.018172]        cpuhp_invoke_callback+0xb3/0x960
    [   13.018573]        _cpu_up+0xa7/0x140
    [   13.018871]        do_cpu_up+0xa4/0xc0
    [   13.019178]        smp_init+0xcd/0xd2
    [   13.019483]        kernel_init_freeable+0x123/0x24f
    [   13.019878]        kernel_init+0xa/0x110
    [   13.020201]        ret_from_fork+0x24/0x30
    [   13.020541]
    [   13.020541] -> #1 (cpu_hotplug_lock.rw_sem){++++}:
    [   13.021051]        static_key_slow_inc+0xe/0x20
    [   13.021424]        tracepoint_probe_register_prio+0x28c/0x300
    [   13.021891]        perf_trace_event_init+0x11f/0x250
    [   13.022297]        perf_trace_init+0x6b/0xa0
    [   13.022644]        perf_tp_event_init+0x25/0x40
    [   13.023011]        perf_try_init_event+0x6b/0x90
    [   13.023386]        perf_event_alloc+0x9a8/0xc40
    [   13.023754]        __do_sys_perf_event_open+0x1dd/0xd30
    [   13.024173]        do_syscall_64+0x4a/0x180
    [   13.024519]        entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [   13.024968]
    [   13.024968] -> #0 (tracepoints_mutex){+.+.}:
    [   13.025434]        __mutex_lock+0x86/0x970
    [   13.025764]        tracepoint_probe_register_prio+0x2d/0x300
    [   13.026215]        bpf_probe_register+0x40/0x60
    [   13.026584]        bpf_raw_tracepoint_open.isra.34+0xa4/0x130
    [   13.027042]        __do_sys_bpf+0x94f/0x1a90
    [   13.027389]        do_syscall_64+0x4a/0x180
    [   13.027727]        entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [   13.028171]
    [   13.028171] other info that might help us debug this:
    [   13.028171]
    [   13.028807] Chain exists of:
    [   13.028807]   tracepoints_mutex --> &cpuctx_mutex --> bpf_event_mutex
    [   13.028807]
    [   13.029666]  Possible unsafe locking scenario:
    [   13.029666]
    [   13.030140]        CPU0                    CPU1
    [   13.030510]        ----                    ----
    [   13.030875]   lock(bpf_event_mutex);
    [   13.031166]                                lock(&cpuctx_mutex);
    [   13.031645]                                lock(bpf_event_mutex);
    [   13.032135]   lock(tracepoints_mutex);
    [   13.032441]
    [   13.032441]  *** DEADLOCK ***
    [   13.032441]
    [   13.032911] 1 lock held by test_progs/246:
    [   13.033239]  #0: 00000000d663ef86 (bpf_event_mutex){+.+.}, at: bpf_probe_register+0x1d/0x60
    [   13.033909]
    [   13.033909] stack backtrace:
    [   13.034258] CPU: 1 PID: 246 Comm: test_progs Not tainted 5.0.0-rc3-00018-g2fa53f892422-dirty #477
    [   13.034964] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014
    [   13.035657] Call Trace:
    [   13.035859]  dump_stack+0x5f/0x8b
    [   13.036130]  print_circular_bug.isra.37+0x1ce/0x1db
    [   13.036526]  __lock_acquire+0x1158/0x1350
    [   13.036852]  ? lock_acquire+0x98/0x190
    [   13.037154]  lock_acquire+0x98/0x190
    [   13.037447]  ? tracepoint_probe_register_prio+0x2d/0x300
    [   13.037876]  __mutex_lock+0x86/0x970
    [   13.038167]  ? tracepoint_probe_register_prio+0x2d/0x300
    [   13.038600]  ? tracepoint_probe_register_prio+0x2d/0x300
    [   13.039028]  ? __mutex_lock+0x86/0x970
    [   13.039337]  ? __mutex_lock+0x24a/0x970
    [   13.039649]  ? bpf_probe_register+0x1d/0x60
    [   13.039992]  ? __bpf_trace_sched_wake_idle_without_ipi+0x10/0x10
    [   13.040478]  ? tracepoint_probe_register_prio+0x2d/0x300
    [   13.040906]  tracepoint_probe_register_prio+0x2d/0x300
    [   13.041325]  bpf_probe_register+0x40/0x60
    [   13.041649]  bpf_raw_tracepoint_open.isra.34+0xa4/0x130
    [   13.042068]  ? __might_fault+0x3e/0x90
    [   13.042374]  __do_sys_bpf+0x94f/0x1a90
    [   13.042678]  do_syscall_64+0x4a/0x180
    [   13.042975]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [   13.043382] RIP: 0033:0x7f23b10a07f9
    [   13.045155] RSP: 002b:00007ffdef42fdd8 EFLAGS: 00000202 ORIG_RAX: 0000000000000141
    [   13.045759] RAX: ffffffffffffffda RBX: 00007ffdef42ff70 RCX: 00007f23b10a07f9
    [   13.046326] RDX: 0000000000000070 RSI: 00007ffdef42fe10 RDI: 0000000000000011
    [   13.046893] RBP: 00007ffdef42fdf0 R08: 0000000000000038 R09: 00007ffdef42fe10
    [   13.047462] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000000
    [   13.048029] R13: 0000000000000016 R14: 00007f23b1db4690 R15: 0000000000000000
    
    Since tracepoints_mutex will be taken in tracepoint_probe_register/unregister()
    there is no need to take bpf_event_mutex too.
    bpf_event_mutex is protecting modifications to prog array used in kprobe/perf bpf progs.
    bpf_raw_tracepoints don't need to take this mutex.
    
    Fixes: c4f6699dfcb8 ("bpf: introduce BPF_RAW_TRACEPOINT")
    Acked-by: Martin KaFai Lau <kafai@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ad9c8ec58ccb52cb9dde782a4ca04e0474073730
Author: Alexei Starovoitov <ast@kernel.org>
Date:   Wed Jan 30 18:12:43 2019 -0800

    bpf: fix lockdep false positive in percpu_freelist
    
    [ Upstream commit a89fac57b5d080771efd4d71feaae19877cf68f0 ]
    
    Lockdep warns about false positive:
    [   12.492084] 00000000e6b28347 (&head->lock){+...}, at: pcpu_freelist_push+0x2a/0x40
    [   12.492696] but this lock was taken by another, HARDIRQ-safe lock in the past:
    [   12.493275]  (&rq->lock){-.-.}
    [   12.493276]
    [   12.493276]
    [   12.493276] and interrupts could create inverse lock ordering between them.
    [   12.493276]
    [   12.494435]
    [   12.494435] other info that might help us debug this:
    [   12.494979]  Possible interrupt unsafe locking scenario:
    [   12.494979]
    [   12.495518]        CPU0                    CPU1
    [   12.495879]        ----                    ----
    [   12.496243]   lock(&head->lock);
    [   12.496502]                                local_irq_disable();
    [   12.496969]                                lock(&rq->lock);
    [   12.497431]                                lock(&head->lock);
    [   12.497890]   <Interrupt>
    [   12.498104]     lock(&rq->lock);
    [   12.498368]
    [   12.498368]  *** DEADLOCK ***
    [   12.498368]
    [   12.498837] 1 lock held by dd/276:
    [   12.499110]  #0: 00000000c58cb2ee (rcu_read_lock){....}, at: trace_call_bpf+0x5e/0x240
    [   12.499747]
    [   12.499747] the shortest dependencies between 2nd lock and 1st lock:
    [   12.500389]  -> (&rq->lock){-.-.} {
    [   12.500669]     IN-HARDIRQ-W at:
    [   12.500934]                       _raw_spin_lock+0x2f/0x40
    [   12.501373]                       scheduler_tick+0x4c/0xf0
    [   12.501812]                       update_process_times+0x40/0x50
    [   12.502294]                       tick_periodic+0x27/0xb0
    [   12.502723]                       tick_handle_periodic+0x1f/0x60
    [   12.503203]                       timer_interrupt+0x11/0x20
    [   12.503651]                       __handle_irq_event_percpu+0x43/0x2c0
    [   12.504167]                       handle_irq_event_percpu+0x20/0x50
    [   12.504674]                       handle_irq_event+0x37/0x60
    [   12.505139]                       handle_level_irq+0xa7/0x120
    [   12.505601]                       handle_irq+0xa1/0x150
    [   12.506018]                       do_IRQ+0x77/0x140
    [   12.506411]                       ret_from_intr+0x0/0x1d
    [   12.506834]                       _raw_spin_unlock_irqrestore+0x53/0x60
    [   12.507362]                       __setup_irq+0x481/0x730
    [   12.507789]                       setup_irq+0x49/0x80
    [   12.508195]                       hpet_time_init+0x21/0x32
    [   12.508644]                       x86_late_time_init+0xb/0x16
    [   12.509106]                       start_kernel+0x390/0x42a
    [   12.509554]                       secondary_startup_64+0xa4/0xb0
    [   12.510034]     IN-SOFTIRQ-W at:
    [   12.510305]                       _raw_spin_lock+0x2f/0x40
    [   12.510772]                       try_to_wake_up+0x1c7/0x4e0
    [   12.511220]                       swake_up_locked+0x20/0x40
    [   12.511657]                       swake_up_one+0x1a/0x30
    [   12.512070]                       rcu_process_callbacks+0xc5/0x650
    [   12.512553]                       __do_softirq+0xe6/0x47b
    [   12.512978]                       irq_exit+0xc3/0xd0
    [   12.513372]                       smp_apic_timer_interrupt+0xa9/0x250
    [   12.513876]                       apic_timer_interrupt+0xf/0x20
    [   12.514343]                       default_idle+0x1c/0x170
    [   12.514765]                       do_idle+0x199/0x240
    [   12.515159]                       cpu_startup_entry+0x19/0x20
    [   12.515614]                       start_kernel+0x422/0x42a
    [   12.516045]                       secondary_startup_64+0xa4/0xb0
    [   12.516521]     INITIAL USE at:
    [   12.516774]                      _raw_spin_lock_irqsave+0x38/0x50
    [   12.517258]                      rq_attach_root+0x16/0xd0
    [   12.517685]                      sched_init+0x2f2/0x3eb
    [   12.518096]                      start_kernel+0x1fb/0x42a
    [   12.518525]                      secondary_startup_64+0xa4/0xb0
    [   12.518986]   }
    [   12.519132]   ... key      at: [<ffffffff82b7bc28>] __key.71384+0x0/0x8
    [   12.519649]   ... acquired at:
    [   12.519892]    pcpu_freelist_pop+0x7b/0xd0
    [   12.520221]    bpf_get_stackid+0x1d2/0x4d0
    [   12.520563]    ___bpf_prog_run+0x8b4/0x11a0
    [   12.520887]
    [   12.521008] -> (&head->lock){+...} {
    [   12.521292]    HARDIRQ-ON-W at:
    [   12.521539]                     _raw_spin_lock+0x2f/0x40
    [   12.521950]                     pcpu_freelist_push+0x2a/0x40
    [   12.522396]                     bpf_get_stackid+0x494/0x4d0
    [   12.522828]                     ___bpf_prog_run+0x8b4/0x11a0
    [   12.523296]    INITIAL USE at:
    [   12.523537]                    _raw_spin_lock+0x2f/0x40
    [   12.523944]                    pcpu_freelist_populate+0xc0/0x120
    [   12.524417]                    htab_map_alloc+0x405/0x500
    [   12.524835]                    __do_sys_bpf+0x1a3/0x1a90
    [   12.525253]                    do_syscall_64+0x4a/0x180
    [   12.525659]                    entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [   12.526167]  }
    [   12.526311]  ... key      at: [<ffffffff838f7668>] __key.13130+0x0/0x8
    [   12.526812]  ... acquired at:
    [   12.527047]    __lock_acquire+0x521/0x1350
    [   12.527371]    lock_acquire+0x98/0x190
    [   12.527680]    _raw_spin_lock+0x2f/0x40
    [   12.527994]    pcpu_freelist_push+0x2a/0x40
    [   12.528325]    bpf_get_stackid+0x494/0x4d0
    [   12.528645]    ___bpf_prog_run+0x8b4/0x11a0
    [   12.528970]
    [   12.529092]
    [   12.529092] stack backtrace:
    [   12.529444] CPU: 0 PID: 276 Comm: dd Not tainted 5.0.0-rc3-00018-g2fa53f892422 #475
    [   12.530043] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014
    [   12.530750] Call Trace:
    [   12.530948]  dump_stack+0x5f/0x8b
    [   12.531248]  check_usage_backwards+0x10c/0x120
    [   12.531598]  ? ___bpf_prog_run+0x8b4/0x11a0
    [   12.531935]  ? mark_lock+0x382/0x560
    [   12.532229]  mark_lock+0x382/0x560
    [   12.532496]  ? print_shortest_lock_dependencies+0x180/0x180
    [   12.532928]  __lock_acquire+0x521/0x1350
    [   12.533271]  ? find_get_entry+0x17f/0x2e0
    [   12.533586]  ? find_get_entry+0x19c/0x2e0
    [   12.533902]  ? lock_acquire+0x98/0x190
    [   12.534196]  lock_acquire+0x98/0x190
    [   12.534482]  ? pcpu_freelist_push+0x2a/0x40
    [   12.534810]  _raw_spin_lock+0x2f/0x40
    [   12.535099]  ? pcpu_freelist_push+0x2a/0x40
    [   12.535432]  pcpu_freelist_push+0x2a/0x40
    [   12.535750]  bpf_get_stackid+0x494/0x4d0
    [   12.536062]  ___bpf_prog_run+0x8b4/0x11a0
    
    It has been explained that is a false positive here:
    https://lkml.org/lkml/2018/7/25/756
    Recap:
    - stackmap uses pcpu_freelist
    - The lock in pcpu_freelist is a percpu lock
    - stackmap is only used by tracing bpf_prog
    - A tracing bpf_prog cannot be run if another bpf_prog
      has already been running (ensured by the percpu bpf_prog_active counter).
    
    Eric pointed out that this lockdep splats stops other
    legit lockdep splats in selftests/bpf/test_progs.c.
    
    Fix this by calling local_irq_save/restore for stackmap.
    
    Another false positive had also been worked around by calling
    local_irq_save in commit 89ad2fa3f043 ("bpf: fix lockdep splat").
    That commit added unnecessary irq_save/restore to fast path of
    bpf hash map. irqs are already disabled at that point, since htab
    is holding per bucket spin_lock with irqsave.
    
    Let's reduce overhead for htab by introducing __pcpu_freelist_push/pop
    function w/o irqsave and convert pcpu_freelist_push/pop to irqsave
    to be used elsewhere (right now only in stackmap).
    It stops lockdep false positive in stackmap with a bit of acceptable overhead.
    
    Fixes: 557c0c6e7df8 ("bpf: convert stackmap to pre-allocation")
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
    Acked-by: Martin KaFai Lau <kafai@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 55bc09838a42a8479ba08f6cb553137f626c5de5
Author: Alexei Starovoitov <ast@kernel.org>
Date:   Mon Jan 28 18:43:34 2019 -0800

    bpf: run bpf programs with preemption disabled
    
    [ Upstream commit 6cab5e90ab2bd323c9f3811b6c70a4687df51e27 ]
    
    Disabled preemption is necessary for proper access to per-cpu maps
    from BPF programs.
    
    But the sender side of socket filters didn't have preemption disabled:
    unix_dgram_sendmsg->sk_filter->sk_filter_trim_cap->bpf_prog_run_save_cb->BPF_PROG_RUN
    
    and a combination of af_packet with tun device didn't disable either:
    tpacket_snd->packet_direct_xmit->packet_pick_tx_queue->ndo_select_queue->
      tun_select_queue->tun_ebpf_select_queue->bpf_prog_run_clear_cb->BPF_PROG_RUN
    
    Disable preemption before executing BPF programs (both classic and extended).
    
    Reported-by: Jann Horn <jannh@google.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fbc1f62cce884c975fee323bf258c033c5d6547e
Author: Martynas Pumputis <m@lambda.lt>
Date:   Thu Jan 31 10:19:33 2019 +0100

    bpf, selftests: fix handling of sparse CPU allocations
    
    [ Upstream commit 1bb54c4071f585ebef56ce8fdfe6026fa2cbcddd ]
    
    Previously, bpf_num_possible_cpus() had a bug when calculating a
    number of possible CPUs in the case of sparse CPU allocations, as
    it was considering only the first range or element of
    /sys/devices/system/cpu/possible.
    
    E.g. in the case of "0,2-3" (CPU 1 is not available), the function
    returned 1 instead of 3.
    
    This patch fixes the function by making it parse all CPU ranges and
    elements.
    
    Signed-off-by: Martynas Pumputis <m@lambda.lt>
    Acked-by: Yonghong Song <yhs@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 494d92a0c349ff1494868887886ac0473d069beb
Author: Brian Norris <briannorris@chromium.org>
Date:   Tue Jan 29 15:12:01 2019 -0800

    ath10k: correct bus type for WCN3990
    
    [ Upstream commit 2c2008a63e482654ab137c84d3c61c03b75e7df6 ]
    
    WCN3990 is SNOC, not PCI. This prevents probing WCN3990.
    
    Fixes: 367c899f622c ("ath10k: add bus type check in ath10k_init_hw_params")
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4aebaff3e9bfcad6770e0248044d7c7ba2c97e90
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jan 31 13:57:58 2019 +0100

    relay: check return of create_buf_file() properly
    
    [ Upstream commit 2c1cf00eeacb784781cf1c9896b8af001246d339 ]
    
    If create_buf_file() returns an error, don't try to reference it later
    as a valid dentry pointer.
    
    This problem was exposed when debugfs started to return errors instead
    of just NULL for some calls when they do not succeed properly.
    
    Also, the check for WARN_ON(dentry) was just wrong :)
    
    Reported-by: Kees Cook <keescook@chromium.org>
    Reported-and-tested-by: syzbot+16c3a70e1e9b29346c43@syzkaller.appspotmail.com
    Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: David Rientjes <rientjes@google.com>
    Fixes: ff9fb72bc077 ("debugfs: return error values, not NULL")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 01fe6b413d552e1db7f90919bda928e0d91fcd8c
Author: Zenghui Yu <yuzenghui@huawei.com>
Date:   Thu Jan 31 11:19:43 2019 +0000

    irqchip/gic-v3-its: Fix ITT_entry_size accessor
    
    [ Upstream commit 56841070ccc87b463ac037d2d1f2beb8e5e35f0c ]
    
    According to ARM IHI 0069C (ID070116), we should use GITS_TYPER's
    bits [7:4] as ITT_entry_size instead of [8:4]. Although this is
    pretty annoying, it only results in a potential over-allocation
    of memory, and nothing bad happens.
    
    Fixes: 3dfa576bfb45 ("irqchip/gic-v3-its: Add probing for VLPI properties")
    Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
    [maz: massaged subject and commit message]
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 93b0bd05278fed9297d8119ab3c36774d8abad9e
Author: Jose Abreu <jose.abreu@synopsys.com>
Date:   Wed Jan 30 15:54:21 2019 +0100

    net: stmmac: Disable EEE mode earlier in XMIT callback
    
    [ Upstream commit e2cd682deb231ba6f80524bb84e57e7138261149 ]
    
    In stmmac xmit callback we use a different flow for TSO packets but TSO
    xmit callback is not disabling the EEE mode.
    
    Fix this by disabling earlier the EEE mode, i.e. before calling the TSO
    xmit callback.
    
    Signed-off-by: Jose Abreu <joabreu@synopsys.com>
    Cc: Joao Pinto <jpinto@synopsys.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Cc: Alexandre Torgue <alexandre.torgue@st.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c57f95b2ca98deb6b040d4fa3aecd87c74f51ccb
Author: Jose Abreu <jose.abreu@synopsys.com>
Date:   Wed Jan 30 15:54:20 2019 +0100

    net: stmmac: Send TSO packets always from Queue 0
    
    [ Upstream commit c5acdbee22a1b200dde07effd26fd1f649e9ab8a ]
    
    The number of TSO enabled channels in HW can be different than the
    number of total channels. There is no way to determined, at runtime, the
    number of TSO capable channels and its safe to assume that if TSO is
    enabled then at least channel 0 will be TSO capable.
    
    Lets always send TSO packets from Queue 0.
    
    Signed-off-by: Jose Abreu <joabreu@synopsys.com>
    Cc: Joao Pinto <jpinto@synopsys.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Cc: Alexandre Torgue <alexandre.torgue@st.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1a649c0292ff81e7884a36d5cc2091f842aaa26
Author: Jose Abreu <jose.abreu@synopsys.com>
Date:   Wed Jan 30 15:54:19 2019 +0100

    net: stmmac: Fallback to Platform Data clock in Watchdog conversion
    
    [ Upstream commit 4ec5302fa906ec9d86597b236f62315bacdb9622 ]
    
    If we don't have DT then stmmac_clk will not be available. Let's add a
    new Platform Data field so that we can specify the refclk by this mean.
    
    This way we can still use the coalesce command in PCI based setups.
    
    Signed-off-by: Jose Abreu <joabreu@synopsys.com>
    Cc: Joao Pinto <jpinto@synopsys.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Cc: Alexandre Torgue <alexandre.torgue@st.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a4a3dc0288fdbd9623c1f3f618b2d4b5783e634f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 30 10:55:17 2019 +0000

    drm/amdgpu: Transfer fences to dmabuf importer
    
    [ Upstream commit 6e11ea9de9576a644045ffdc2067c09bc2012eda ]
    
    amdgpu only uses shared-fences internally, but dmabuf importers rely on
    implicit write hazard tracking via the reservation_object.fence_excl.
    For example, the importer use the write hazard for timing a page flip to
    only occur after the exporter has finished flushing its write into the
    surface. As such, on exporting a dmabuf, we must either flush all
    outstanding fences (for we do not know which are writes and should have
    been exclusive) or alternatively create a new exclusive fence that is
    the composite of all the existing shared fences, and so will only be
    signaled when all earlier fences are signaled (ensuring that we can not
    be signaled before the completion of any earlier write).
    
    v2: reservation_object is already locked by amdgpu_bo_reserve()
    v3: Replace looping with get_fences_rcu and special case the promotion
    of a single shared fence directly to an exclusive fence, bypassing the
    fence array.
    v4: Drop the fence array ref after assigning to reservation_object
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107341
    Testcase: igt/amd_prime/amd-to-i915
    References: 8e94a46c1770 ("drm/amdgpu: Attach exclusive fence to prime exported bo's. (v5)")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: "Christian König" <christian.koenig@amd.com>
    Reviewed-by: "Christian König" <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 05fd1eb03ea81aec6ed11dbd11f5954e5f36c8e8
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Tue Jan 15 12:05:16 2019 -0500

    drm/radeon: check if device is root before getting pci speed caps
    
    [ Upstream commit afeff4c16edaa6275b903f82b0561406259aa3a3 ]
    
    Check if the device is root rather before attempting to see what
    speeds the pcie port supports.  Fixes a crash with pci passthrough
    in a VM.
    
    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=109366
    Reviewed-by: Evan Quan <evan.quan@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 68955afb2e8c3407f083a17ac8d51c57f156b973
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Wed Jan 9 22:19:28 2019 -0500

    drm/amdgpu: Add missing power attribute to APU check
    
    [ Upstream commit dc14eb12f6bb3e779c5461429c1889a339c67aab ]
    
    Add missing power_average to visible check for power
    attributes for APUs.  Was missed before.
    
    Reviewed-by: Evan Quan <evan.quan@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 73bcb7558363384f243c3111198c82813ff0c4d7
Author: Lubomir Rintel <lkundrak@v3.sk>
Date:   Mon Jan 28 16:59:35 2019 +0100

    irqchip/mmp: Only touch the PJ4 IRQ & FIQ bits on enable/disable
    
    [ Upstream commit 2380a22b60ce6f995eac806e69c66e397b59d045 ]
    
    Resetting bit 4 disables the interrupt delivery to the "secure
    processor" core. This breaks the keyboard on a OLPC XO 1.75 laptop,
    where the firmware running on the "secure processor" bit-bangs the
    PS/2 protocol over the GPIO lines.
    
    It is not clear what the rest of the bits are and Marvell was unhelpful
    when asked for documentation. Aside from the SP bit, there are probably
    priority bits.
    
    Leaving the unknown bits as the firmware set them up seems to be a wiser
    course of action compared to just turning them off.
    
    Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
    Acked-by: Pavel Machek <pavel@ucw.cz>
    [maz: fixed-up subject and commit message]
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 61d0518dd102d99948b3552c48f0bca88e2d6276
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Tue Jan 29 15:19:23 2019 +0000

    irqchip/gic-v3-its: Gracefully fail on LPI exhaustion
    
    [ Upstream commit 45725e0fc3e7fe52fedb94f59806ec50e9618682 ]
    
    In the unlikely event that we cannot find any available LPI in the
    system, we should gracefully return an error instead of carrying
    on with no LPI allocated at all.
    
    Fixes: 38dd7c494cf6 ("irqchip/gic-v3-its: Drop chunk allocation compatibility")
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 81df3fc086d1990f320d6a5174a580322b9d07fe
Author: Heyi Guo <guoheyi@huawei.com>
Date:   Thu Jan 24 21:37:08 2019 +0800

    irqchip/gic-v4: Fix occasional VLPI drop
    
    [ Upstream commit 6479450f72c1391c03f08affe0d0110f41ae7ca0 ]
    
    1. In current implementation, every VLPI will temporarily be mapped to
    the first CPU in system (normally CPU0) and then moved to the real
    scheduled CPU later.
    
    2. So there is a time window and a VLPI may be sent to CPU0 instead of
    the real scheduled vCPU, in a multi-CPU virtual machine.
    
    3. However, CPU0 may have not been scheduled as a virtual CPU after
    system boots up, so the value of its GICR_VPROPBASER is unknown at
    that moment.
    
    4. If the INTID of VLPI is larger than 2^(GICR_VPROPBASER.IDbits+1),
    while IDbits is also in unknown state, GIC will behave as if the VLPI
    is out of range and simply drop it, which results in interrupt missing
    in Guest.
    
    As no code will clear GICR_VPROPBASER at runtime, we can safely
    initialize the IDbits field at boot time for each CPU to get rid of
    this issue.
    
    We also clear Valid bit of GICR_VPENDBASER in case any ancient
    programming gets left in and causes memory corrupting. A new function
    its_clear_vpend_valid() is added to reuse the code in
    its_vpe_deschedule().
    
    Fixes: e643d8034036 ("irqchip/gic-v3-its: Add VPE scheduling")
    Signed-off-by: Heyi Guo <guoheyi@huawei.com>
    Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 58f556fa99dd4bc556722b3f5afe7a97d48b3513
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Tue Jan 22 00:23:50 2019 +0300

    usb: dwc3: exynos: Fix error handling of clk_prepare_enable
    
    [ Upstream commit 512e6fb589bc18f9321457632e89b95017447db9 ]
    
    If clk_prepare_enable() fails in dwc3_exynos_probe() or in
    dwc3_exynos_resume(), exynos->clks[0] is left undisabled
    because of usage preincrement in while condition.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Fixes: 9f2168367a0a ("usb: dwc3: exynos: Rework clock handling and prepare for new variants")
    Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c6479b85bc8f76927c7a726e9cda8de1d1b45bb
Author: Anders Roxell <anders.roxell@linaro.org>
Date:   Tue Jan 22 11:36:02 2019 +0100

    usb: phy: fix link errors
    
    [ Upstream commit f2105d42597f4d10e431b195d69e96dccaf9b012 ]
    
    Fix link errors when CONFIG_FSL_USB2_OTG is enabled and USB_OTG_FSM is
    set to module then the following link error occurs.
    
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.o: in function `fsl_otg_ioctl':
    drivers/usb/phy/phy-fsl-usb.c:1083: undefined reference to `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.c:1083:(.text+0x574): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.o: in function `fsl_otg_start_srp':
    drivers/usb/phy/phy-fsl-usb.c:674: undefined reference to `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.c:674:(.text+0x61c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.o: in function `fsl_otg_set_host':
    drivers/usb/phy/phy-fsl-usb.c:593: undefined reference to `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.c:593:(.text+0x7a4): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.o: in function `fsl_otg_start_hnp':
    drivers/usb/phy/phy-fsl-usb.c:695: undefined reference to `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.c:695:(.text+0x858): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.o: in function `a_wait_enum':
    drivers/usb/phy/phy-fsl-usb.c:274: undefined reference to `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.c:274:(.text+0x16f0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `otg_statemachine'
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.o:drivers/usb/phy/phy-fsl-usb.c:619: more undefined references to `otg_statemachine' follow
    aarch64-linux-gnu-ld: drivers/usb/phy/phy-fsl-usb.o: in function `fsl_otg_set_peripheral':
    drivers/usb/phy/phy-fsl-usb.c:619:(.text+0x1fa0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `otg_statemachine'
    make[1]: *** [Makefile:1020: vmlinux] Error 1
    make[1]: Target 'Image' not remade because of errors.
    make: *** [Makefile:152: sub-make] Error 2
    make: Target 'Image' not remade because of errors.
    
    Rework so that FSL_USB2_OTG depends on that the USB_OTG_FSM is builtin.
    
    Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3cf1c9b318ad89b218cc1b3fe210c0fe383a853f
Author: Zhou Yanjie <zhouyanjie@cduestc.edu.cn>
Date:   Fri Jan 25 02:22:15 2019 +0800

    DTS: CI20: Fix bugs in ci20's device tree.
    
    [ Upstream commit 1ca1c87f91d9dc50d6a38e2177b2032996e7901c ]
    
    According to the Schematic, the hardware of ci20 leads to uart3,
    but not to uart2. Uart2 is miswritten in the original code.
    
    Signed-off-by: Zhou Yanjie <zhouyanjie@cduestc.edu.cn>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: linux-mips <linux-mips@vger.kernel.org>
    Cc: linux-kernel <linux-kernel@vger.kernel.org>
    Cc: devicetree@vger.kernel.org
    Cc: robh+dt@kernel.org
    Cc: ralf@linux-mips.org
    Cc: jhogan@kernel.org
    Cc: mark.rutland@arm.com
    Cc: malat@debian.org
    Cc: ezequiel@collabora.co.uk
    Cc: ulf.hansson@linaro.org
    Cc: syq <syq@debian.org>
    Cc: jiaxun.yang <jiaxun.yang@flygoat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a6c6e75550d43f301e861535e61986b1fdf877e9
Author: Paul Cercueil <paul@crapouillou.net>
Date:   Fri Jan 25 15:12:45 2019 -0300

    MIPS: DTS: jz4740: Correct interrupt number of DMA core
    
    [ Upstream commit 70999ec1c9d3f783a7232973cfc26971e5732758 ]
    
    The interrupt number set in the devicetree node of the DMA driver was
    wrong.
    
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: devicetree@vger.kernel.org
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 49621035a97f5ae78d837a6e774441891f0ef925
Author: Felix Fietkau <nbd@nbd.name>
Date:   Fri Jan 25 08:21:26 2019 +0100

    batman-adv: release station info tidstats
    
    [ Upstream commit 7d652669b61d702c6e62a39579d17f6881670ab6 ]
    
    With the addition of TXQ stats in the per-tid statistics the struct
    station_info grew significantly. This resulted in stack size warnings
    due to the structure itself being above the limit for the warnings.
    
    To work around this, the TID array was allocated dynamically. Also a
    function to free this content was introduced with commit 7ea3e110f2f8
    ("cfg80211: release station info tidstats where needed") but the necessary
    changes were not provided for batman-adv's B.A.T.M.A.N. V implementation.
    
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Fixes: 8689c051a201 ("cfg80211: dynamically allocate per-tid stats for station info")
    [sven@narfation.org: add commit message]
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9af0f013ae506f1085db82cdbb0be22c3509d50e
Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date:   Mon Dec 10 13:56:33 2018 +0000

    arm64: dts: add msm8996 compatible to gicv3
    
    [ Upstream commit 2a81efb0de0e33f2d2c83154af0bd3ce389b3269 ]
    
    Add compatible to gicv3 node to enable quirk required to restrict writing
    to GICR_WAKER register which is restricted on msm8996 SoC in Hypervisor.
    
    With this quirk MSM8996 can at least boot out of mainline, which can help
    community to work with boards based on MSM8996.
    
    Without this patch Qualcomm DB820c board reboots on mainline.
    
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Signed-off-by: Andy Gross <andy.gross@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 48009ffe7d8e3084e9fd1fbe99cf1e3bebf922a5
Author: Heiko Schocher <hs@denx.de>
Date:   Tue Jan 22 06:26:23 2019 +0100

    ARM: dts: am335x-shc.dts: fix wrong cd pin level
    
    [ Upstream commit 063c20e12f8bbbc10cabc2413606b140085beb62 ]
    
    cd pin on mmc1 is GPIO_ACTIVE_LOW not GPIO_ACTIVE_HIGH
    
    Fixes: e63201f19438 ("mmc: omap_hsmmc: Delete platform data GPIO CD and WP")
    Signed-off-by: Heiko Schocher <hs@denx.de>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8fd5aa097b83c976fcc6706b6424a9462d310a3c
Author: Arthur Demchenkov <spinal.by@gmail.com>
Date:   Mon Jan 21 06:21:09 2019 +0300

    ARM: dts: n900: fix mmc1 card detect gpio polarity
    
    [ Upstream commit ac9c908eecde3ed252cb1d67fc79b3c1346f76bc ]
    
    Wrong polarity of card detect GPIO pin leads to the system not
    booting from external mmc, if the back cover of N900 is closed.
    When the cover is open the system boots fine.
    
    This wasn't noticed before, because of a bug, which was fixed
    by commit e63201f19 (mmc: omap_hsmmc: Delete platform data GPIO
    CD and WP).
    
    Kernels up to 4.19 ignored the card detect GPIO from DT.
    
    Fixes: e63201f19438 ("mmc: omap_hsmmc: Delete platform data GPIO CD and WP")
    Signed-off-by: Arthur Demchenkov <spinal.by@gmail.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fe222cc190fd322271adc166eb48600d8c842530
Author: Tony Lindgren <tony@atomide.com>
Date:   Wed Jan 9 20:01:56 2019 +0100

    ARM: dts: omap3-gta04: Fix graph_port warning
    
    [ Upstream commit 5b90df44fd9b415d8c5d11b92746212a63d3c47f ]
    
    We're currently getting a warning with make dtbs:
    
    arch/arm/boot/dts/omap3-gta04.dtsi:720.7-727.4: Warning (graph_port):
    /ocp@68000000/dss@48050000/encoder@48050c0 0/port: graph node unit
    address error, expected "0"
    
    Tested-by: H. Nikolaus Schaller <hns@goldelico.com>
    Acked-by: Rob Herring <robh@kernel.org>
    Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 880bccdbf296f39532b92c0a65f1bfbfd57b880f
Author: Peng Hao <peng.hao2@zte.com.cn>
Date:   Sat Dec 29 13:10:06 2018 +0800

    ARM: pxa: ssp: unneeded to free devm_ allocated data
    
    [ Upstream commit ba16adeb346387eb2d1ada69003588be96f098fa ]
    
    devm_ allocated data will be automatically freed. The free
    of devm_ allocated data is invalid.
    
    Fixes: 1c459de1e645 ("ARM: pxa: ssp: use devm_ functions")
    Signed-off-by: Peng Hao <peng.hao2@zte.com.cn>
    [title's prefix changed]
    Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2793c9d9e49dc81466bc5246b303e91041570c2b
Author: Yafang Shao <laoar.shao@gmail.com>
Date:   Wed Jan 23 12:37:19 2019 +0800

    bpf: sock recvbuff must be limited by rmem_max in bpf_setsockopt()
    
    [ Upstream commit c9e4576743eeda8d24dedc164d65b78877f9a98c ]
    
    When sock recvbuff is set by bpf_setsockopt(), the value must by
    limited by rmem_max. It is the same with sendbuff.
    
    Fixes: 8c4b4c7e9ff0 ("bpf: Add setsockopt helper function to bpf")
    Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
    Acked-by: Martin KaFai Lau <kafai@fb.com>
    Acked-by: Lawrence Brakmo <brakmo@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2af8fb0fcfdca14cf60e5a2804954b79f1f4e7a7
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Mon Jan 21 12:36:12 2019 +0100

    bpftool: fix percpu maps updating
    
    [ Upstream commit b0ca5ecb8e2279d706261f525f1bd0ba9e3fe800 ]
    
    When updating a percpu map, bpftool currently copies the provided
    value only into the first per CPU copy of the specified value,
    all others instances are left zeroed.
    
    This change explicitly copies the user-provided bytes to all the
    per CPU instances, keeping the sub-command syntax unchanged.
    
    v2 -> v3:
     - drop unused argument, as per Quentin's suggestion
    v1 -> v2:
     - rename the helper as per Quentin's suggestion
    
    Fixes: 71bb428fe2c1 ("tools: bpf: add bpftool")
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 27c21839fc3dce64d6f71f71ee52ddb0b14a3299
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Fri Jan 18 13:58:17 2019 +0100

    bpftool: Fix prog dump by tag
    
    [ Upstream commit 752bcf80f5549c9901b2e8bc77b2138de55b1026 ]
    
    Lance reported an issue with bpftool not being able to
    dump program if there are more programs loaded and you
    want to dump any but the first program, like:
    
      # bpftool prog
      28: kprobe  name trace_req_start  tag 1dfc28ba8b3dd597  gpl
            loaded_at 2019-01-18T17:02:40+1100  uid 0
            xlated 112B  jited 109B  memlock 4096B  map_ids 13
      29: kprobe  name trace_req_compl  tag 5b6a5ecc6030a683  gpl
            loaded_at 2019-01-18T17:02:40+1100  uid 0
            xlated 928B  jited 575B  memlock 4096B  map_ids 13,14
      #  bpftool prog dum jited tag 1dfc28ba8b3dd597
       0:   push   %rbp
       1:   mov    %rsp,%rbp
      ...
    
      #  bpftool prog dum jited tag 5b6a5ecc6030a683
      Error: can't get prog info (29): Bad address
    
    The problem is in the prog_fd_by_tag function not cleaning
    the struct bpf_prog_info before another request, so the
    previous program length is still in there and kernel assumes
    it needs to dump the program, which fails because there's no
    user pointer set.
    
    Moving the struct bpf_prog_info declaration into the loop,
    so it gets cleaned before each query.
    
    Fixes: 71bb428fe2c1 ("tools: bpf: add bpftool")
    Reported-by: Lance Digby <ldigby@redhat.com>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
    Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb0ef5c926ebfb6e47443bb992775f8187936d30
Author: Ulf Hansson <ulf.hansson@linaro.org>
Date:   Wed Jan 16 12:37:23 2019 +0100

    wlcore: sdio: Fixup power on/off sequence
    
    [ Upstream commit 13e62626c578d9889ebbda7c521be5adff9bef8e ]
    
    During "wlan-up", we are programming the FW into the WiFi-chip. However,
    re-programming the FW doesn't work, unless a power cycle of the WiFi-chip
    is made in-between the programmings.
    
    To conform to this requirement and to fix the regression in a simple way,
    let's start by allowing that the SDIO card (WiFi-chip) may stay powered on
    (runtime resumed) when wl12xx_sdio_power_off() returns. The intent with the
    current code is to treat this scenario as an error, but unfortunate this
    doesn't work as expected, so let's fix this.
    
    The other part is to guarantee that a power cycle of the SDIO card has been
    completed when wl12xx_sdio_power_on() returns, as to allow the FW
    programming to succeed. However, relying solely on runtime PM to deal with
    this isn't sufficient. For example, userspace may prevent runtime suspend
    via sysfs for the device that represents the SDIO card, leading to that the
    mmc core also keeps it powered on. For this reason, let's instead do a
    brute force power cycle in wl12xx_sdio_power_on().
    
    Fixes: 728a9dc61f13 ("wlcore: sdio: Fix flakey SDIO runtime PM handling")
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Tested-by: Tony Lindgren <tony@atomide.com>
    Tested-by: Anders Roxell <anders.roxell@linaro.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b4e611a16a0f7b028f8a43ceb2a38caa87ce2258
Author: Jason Kridner <jkridner@gmail.com>
Date:   Fri Jan 11 10:02:13 2019 -0500

    pinctrl: mcp23s08: spi: Fix regmap allocation for mcp23s18
    
    [ Upstream commit f165988b77ef849eb0c1aebd94fe778024f88314 ]
    
    Fixes issue created by 9b3e4207661e67f04c72af15e29f74cd944f5964.
    
    It wasn't possible for one_regmap_config to be non-NULL at the point
    it was tested for mcp23s18 devices.
    
    Applied the same pattern of allocating one_regmap_config using
    devm_kmemdump() and then initializing the local regmap structure
    from that.
    
    Signed-off-by: Jason Kridner <jdk@ti.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b9d08d7608d6e96bfe8329a58e5483cf6794921
Author: Madalin Bucur <madalin.bucur@nxp.com>
Date:   Fri Dec 21 16:41:42 2018 +0200

    soc: fsl: qbman: avoid race in clearing QMan interrupt
    
    [ Upstream commit 89857a8a5c89a406b967ab2be7bd2ccdbe75e73d ]
    
    By clearing all interrupt sources, not only those that
    already occurred, the existing code may acknowledge by
    mistake interrupts that occurred after the code checks
    for them.
    
    Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
    Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
    Signed-off-by: Li Yang <leoyang.li@nxp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 546fd61c5215913bdf6104aefcefcb0aab4bd738
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Jan 10 14:39:16 2019 +0100

    arm64: dts: renesas: r8a77965: Enable DMA for SCIF2
    
    [ Upstream commit 05c8478abd485507c25aa565afab604af8d8fe46 ]
    
    SCIF2 on R-Car M3-N can be used with both DMAC1 and DMAC2.
    
    Fixes: 0ea5b2fd38db56aa ("arm64: dts: renesas: r8a77965: Add SCIF device nodes")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e208073a9a26a5b5041c2c67eaa1042a7a5b5b7f
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Jan 10 14:39:15 2019 +0100

    arm64: dts: renesas: r8a7796: Enable DMA for SCIF2
    
    [ Upstream commit 97f26702bc95b5c3a72671d5c6675e4d6ee0a2f4 ]
    
    SCIF2 on R-Car M3-W can be used with both DMAC1 and DMAC2.
    
    Fixes: dbcae5ea4bd27409 ("arm64: dts: r8a7796: Enable SCIF DMA")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 003d547343f544d23cbc2603b51a0f101b253b63
Author: Anson Huang <anson.huang@nxp.com>
Date:   Sat Dec 29 10:01:18 2018 +0000

    ARM: dts: imx6sx: correct backward compatible of gpt
    
    [ Upstream commit ba0f4560526ba19300c07ed5a3c1df7592815dc6 ]
    
    i.MX6SX has same GPT type as i.MX6DL, in GPT driver, it uses
    below TIMER_OF_DECLARE, so the backward compatible should be
    "fsl,imx6dl-gpt", correct it.
    
    TIMER_OF_DECLARE(imx6sx_timer, "fsl,imx6sx-gpt", imx6dl_timer_init_dt);
    
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ea947843fc94c194ea51a7d2ff597e246b15458
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sat Jan 12 11:48:20 2019 -0600

    signal: Make siginmask safe when passed a signal of 0
    
    [ Upstream commit ee17e5d6201c66492a0e8053190fca2ed2b8457d ]
    
    Eric Biggers reported:
    > The following commit, which went into v4.20, introduced undefined behavior when
    > sys_rt_sigqueueinfo() is called with sig=0:
    >
    > commit 4ce5f9c9e7546915c559ffae594e6d73f918db00
    > Author: Eric W. Biederman <ebiederm@xmission.com>
    > Date:   Tue Sep 25 12:59:31 2018 +0200
    >
    >     signal: Use a smaller struct siginfo in the kernel
    >
    > In sig_specific_sicodes(), used from known_siginfo_layout(), the expression
    > '1ULL << ((sig)-1)' is undefined as it evaluates to 1ULL << 4294967295.
    >
    > Reproducer:
    >
    > #include <signal.h>
    > #include <sys/syscall.h>
    > #include <unistd.h>
    >
    > int main(void)
    > {
    >       siginfo_t si = { .si_code = 1 };
    >       syscall(__NR_rt_sigqueueinfo, 0, 0, &si);
    > }
    >
    > UBSAN report for v5.0-rc1:
    >
    > UBSAN: Undefined behaviour in kernel/signal.c:2946:7
    > shift exponent 4294967295 is too large for 64-bit type 'long unsigned int'
    > CPU: 2 PID: 346 Comm: syz_signal Not tainted 5.0.0-rc1 #25
    > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
    > Call Trace:
    >  __dump_stack lib/dump_stack.c:77 [inline]
    >  dump_stack+0x70/0xa5 lib/dump_stack.c:113
    >  ubsan_epilogue+0xd/0x40 lib/ubsan.c:159
    >  __ubsan_handle_shift_out_of_bounds+0x12c/0x170 lib/ubsan.c:425
    >  known_siginfo_layout+0xae/0xe0 kernel/signal.c:2946
    >  post_copy_siginfo_from_user kernel/signal.c:3009 [inline]
    >  __copy_siginfo_from_user+0x35/0x60 kernel/signal.c:3035
    >  __do_sys_rt_sigqueueinfo kernel/signal.c:3553 [inline]
    >  __se_sys_rt_sigqueueinfo kernel/signal.c:3549 [inline]
    >  __x64_sys_rt_sigqueueinfo+0x31/0x70 kernel/signal.c:3549
    >  do_syscall_64+0x4c/0x1b0 arch/x86/entry/common.c:290
    >  entry_SYSCALL_64_after_hwframe+0x49/0xbe
    > RIP: 0033:0x433639
    > Code: c4 18 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 7b 27 00 00 c3 66 2e 0f 1f 84 00 00 00 00
    > RSP: 002b:00007fffcb289fc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000081
    > RAX: ffffffffffffffda RBX: 00000000004002e0 RCX: 0000000000433639
    > RDX: 00007fffcb289fd0 RSI: 0000000000000000 RDI: 0000000000000000
    > RBP: 00000000006b2018 R08: 000000000000004d R09: 0000000000000000
    > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000401560
    > R13: 00000000004015f0 R14: 0000000000000000 R15: 0000000000000000
    
    I have looked at the other callers of siginmask and they all appear to
    in locations where sig can not be zero.
    
    I have looked at the code generation of adding an extra test against
    zero and gcc was able with a simple decrement instruction to combine
    the two tests together. So the at most adding this test cost a single
    cpu cycle.  In practice that decrement instruction was already present
    as part of the mask comparison, so the only change was when the
    instruction was executed.
    
    So given that it is cheap, and obviously correct to update siginmask
    to verify the signal is not zero.  Fix this issue there to avoid any
    future problems.
    
    Reported-by: Eric Biggers <ebiggers@kernel.org>
    Fixes: 4ce5f9c9e754 ("signal: Use a smaller struct siginfo in the kernel")
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e6301ef048e7e6c04df1277ac1c7a595b59e96e6
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Sat Dec 29 13:57:11 2018 +0100

    ARM: dts: meson8m2: mxiii-plus: mark the SD card detection GPIO active-low
    
    [ Upstream commit 8615f5596335db0978cea593dcd0070dc5f8b116 ]
    
    After commit 89a5e15bcba87d ("gpio/mmc/of: Respect polarity in the device
    tree") SD cards are not detected anymore.
    
    The CD GPIO is "active low" on the MXIII-Plus. The MMC dt-bindings
    specify: "[...] using the "cd-inverted" property means, that the CD line
    is active high, i.e. it is high, when a card is inserted".
    
    Fix the description of the SD card by marking it as GPIO_ACTIVE_LOW and
    drop the "cd-inverted" property. This makes the definition consistent
    with the existing dt-bindings and fixes the check whether an SD card is
    inserted.
    
    Fixes: 35ee52bea66c74 ("ARM: dts: meson8m2: add support for the Tronsmart MXIII Plus")
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c33aac2f12bcd5e8d5b1c3d3bb096b519b9c662d
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Sat Dec 29 13:57:10 2018 +0100

    ARM: dts: meson8b: ec100: mark the SD card detection GPIO active-low
    
    [ Upstream commit c8bfe65fb1fb7a43d766df1dfa379406112cba61 ]
    
    After commit 89a5e15bcba87d ("gpio/mmc/of: Respect polarity in the device
    tree") SD cards are not detected anymore.
    
    The CD GPIO is "active low" on the EC-100. The MMC dt-bindings specify:
    "[...] using the "cd-inverted" property means, that the CD line is active
    high, i.e. it is high, when a card is inserted".
    
    Fix the description of the SD card by marking it as GPIO_ACTIVE_LOW and
    drop the "cd-inverted" property. This makes the definition consistent
    with the existing dt-bindings and fixes the check whether an SD card is
    inserted.
    
    Fixes: bbedc1f1d90e33 ("ARM: dts: meson8b: Add support for the Endless Mini (EC-100)")
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f331ed2dae2bb8a0ca28e26df958dc9038ff860
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Sat Dec 29 13:57:09 2018 +0100

    ARM: dts: meson8b: odroidc1: mark the SD card detection GPIO active-low
    
    [ Upstream commit 3fb348e030319f20ebbde082a449d4bf8a96f2fd ]
    
    After commit 89a5e15bcba87d ("gpio/mmc/of: Respect polarity in the device
    tree") SD cards are not detected anymore.
    
    The CD GPIO is "active low" on Odroid-C1. The MMC dt-bindings specify:
    "[...] using the "cd-inverted" property means, that the CD line is active
    high, i.e. it is high, when a card is inserted".
    
    Fix the description of the SD card by marking it as GPIO_ACTIVE_LOW and
    drop the "cd-inverted" property. This makes the definition consistent
    with the existing dt-bindings and fixes the check whether an SD card is
    inserted.
    
    Fixes: e03efbce6bebf5 ("ARM: dts: meson8b-odroidc1: add microSD support")
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Tested-by: Anand Moon <linux.amoon@gmail.com>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6db193bf3995c6336c04d06c346e8daafcfe6b0e
Author: Carlo Caione <ccaione@baylibre.com>
Date:   Fri Dec 7 10:52:31 2018 +0000

    arm: dts: meson: Fix IRQ trigger type for macirq
    
    [ Upstream commit e35e26b26e955c53e61c154ba26b9bb15da6b858 ]
    
    A long running stress test on a custom board shipping an AXG SoCs and a
    Realtek RTL8211F PHY revealed that after a few hours the connection
    speed would drop drastically, from ~1000Mbps to ~3Mbps. At the same time
    the 'macirq' (eth0) IRQ would stop being triggered at all and as
    consequence the GMAC IRQs never ACKed.
    
    After a painful investigation the problem seemed to be due to a wrong
    defined IRQ type for the GMAC IRQ that should be LEVEL_HIGH instead of
    EDGE_RISING.
    
    The change in the macirq IRQ type also solved another long standing
    issue affecting this SoC/PHY where EEE was causing the network
    connection to die after stressing it with iperf3 (even though much
    sooner). It's now possible to remove the 'eee-broken-1000t' quirk as
    well.
    
    Fixes: 9c15795a4f96 ("ARM: dts: meson8b-odroidc1: ethernet support")
    Signed-off-by: Carlo Caione <ccaione@baylibre.com>
    Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a2781bdf94377201031137b7c22b37f12dfb3154
Author: Jernej Skrabec <jernej.skrabec@siol.net>
Date:   Tue Jan 8 20:18:40 2019 +0100

    ARM: dts: sun8i: h3: Add ethernet0 alias to Beelink X2
    
    [ Upstream commit cc4bddade114b696ab27c1a77cfc7040151306da ]
    
    Because "ethernet0" alias is missing, U-Boot doesn't generate board
    specific MAC address. Effect of this is random MAC address every boot
    and thus new IP address is assigned to the board.
    
    Fix this by adding alias.
    
    Fixes: 7389172fc3ed ("ARM: dts: sun8i: h3: Enable dwmac-sun8i on the Beelink X2")
    Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
    [Maxime: Removed unneeded comment]
    Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e36f2409c153344c36d90c5c5d808751e35817a
Author: Tony Lindgren <tony@atomide.com>
Date:   Mon Jan 7 09:52:43 2019 -0800

    ARM: dts: omap4-droid4: Fix typo in cpcap IRQ flags
    
    [ Upstream commit ef4a55b9197a8f844ea0663138e902dcce3e2f36 ]
    
    We're now getting the following error:
    
    genirq: Setting trigger mode 1 for irq 230 failed
    (regmap_irq_set_type+0x0/0x15c)
    cpcap-usb-phy cpcap-usb-phy.0: could not get irq dp: -524
    
    Cc: Sebastian Reichel <sre@kernel.org>
    Reported-by: Pavel Machek <pavel@ucw.cz>
    Tested-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 10bd144008c5f0a07d3111a0ff23707902aec656
Author: Aaro Koskinen <aaro.koskinen@iki.fi>
Date:   Sun Dec 23 20:24:13 2018 +0200

    ARM: OMAP: dts: N950/N9: fix onenand timings
    
    [ Upstream commit 8443e4843e1c2594bf5664e1d993a1be71d1befb ]
    
    Commit a758f50f10cf ("mtd: onenand: omap2: Configure driver from DT")
    started using DT specified timings for GPMC, and as a result the
    OneNAND stopped working on N950/N9 as we had wrong values in the DT.
    Fix by updating the values to bootloader timings that have been tested
    to be working on both Nokia N950 and N9.
    
    Fixes: a758f50f10cf ("mtd: onenand: omap2: Configure driver from DT")
    Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0853c84ecedc1a1952e70af161376f9c5e2a9e3
Author: Michal Hocko <mhocko@suse.com>
Date:   Wed Feb 20 22:20:46 2019 -0800

    mm, memory_hotplug: fix off-by-one in is_pageblock_removable
    
    [ Upstream commit 891cb2a72d821f930a39d5900cb7a3aa752c1d5b ]
    
    Rong Chen has reported the following boot crash:
    
        PGD 0 P4D 0
        Oops: 0000 [#1] PREEMPT SMP PTI
        CPU: 1 PID: 239 Comm: udevd Not tainted 5.0.0-rc4-00149-gefad4e4 #1
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
        RIP: 0010:page_mapping+0x12/0x80
        Code: 5d c3 48 89 df e8 0e ad 02 00 85 c0 75 da 89 e8 5b 5d c3 0f 1f 44 00 00 53 48 89 fb 48 8b 43 08 48 8d 50 ff a8 01 48 0f 45 da <48> 8b 53 08 48 8d 42 ff 83 e2 01 48 0f 44 c3 48 83 38 ff 74 2f 48
        RSP: 0018:ffff88801fa87cd8 EFLAGS: 00010202
        RAX: ffffffffffffffff RBX: fffffffffffffffe RCX: 000000000000000a
        RDX: fffffffffffffffe RSI: ffffffff820b9a20 RDI: ffff88801e5c0000
        RBP: 6db6db6db6db6db7 R08: ffff88801e8bb000 R09: 0000000001b64d13
        R10: ffff88801fa87cf8 R11: 0000000000000001 R12: ffff88801e640000
        R13: ffffffff820b9a20 R14: ffff88801f145258 R15: 0000000000000001
        FS:  00007fb2079817c0(0000) GS:ffff88801dd00000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 0000000000000006 CR3: 000000001fa82000 CR4: 00000000000006a0
        Call Trace:
         __dump_page+0x14/0x2c0
         is_mem_section_removable+0x24c/0x2c0
         removable_show+0x87/0xa0
         dev_attr_show+0x25/0x60
         sysfs_kf_seq_show+0xba/0x110
         seq_read+0x196/0x3f0
         __vfs_read+0x34/0x180
         vfs_read+0xa0/0x150
         ksys_read+0x44/0xb0
         do_syscall_64+0x5e/0x4a0
         entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    and bisected it down to commit efad4e475c31 ("mm, memory_hotplug:
    is_mem_section_removable do not pass the end of a zone").
    
    The reason for the crash is that the mapping is garbage for poisoned
    (uninitialized) page.  This shouldn't happen as all pages in the zone's
    boundary should be initialized.
    
    Later debugging revealed that the actual problem is an off-by-one when
    evaluating the end_page.  'start_pfn + nr_pages' resp 'zone_end_pfn'
    refers to a pfn after the range and as such it might belong to a
    differen memory section.
    
    This along with CONFIG_SPARSEMEM then makes the loop condition
    completely bogus because a pointer arithmetic doesn't work for pages
    from two different sections in that memory model.
    
    Fix the issue by reworking is_pageblock_removable to be pfn based and
    only use struct page where necessary.  This makes the code slightly
    easier to follow and we will remove the problematic pointer arithmetic
    completely.
    
    Link: http://lkml.kernel.org/r/20190218181544.14616-1-mhocko@kernel.org
    Fixes: efad4e475c31 ("mm, memory_hotplug: is_mem_section_removable do not pass the end of a zone")
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Reported-by: <rong.a.chen@intel.com>
    Tested-by: <rong.a.chen@intel.com>
    Acked-by: Mike Rapoport <rppt@linux.ibm.com>
    Reviewed-by: Oscar Salvador <osalvador@suse.de>
    Cc: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit db3a649ba534e8a55d7ffdd3f8c0711502aac9e3
Author: Ian Kent <raven@themaw.net>
Date:   Fri Feb 1 14:21:29 2019 -0800

    autofs: fix error return in autofs_fill_super()
    
    [ Upstream commit f585b283e3f025754c45bbe7533fc6e5c4643700 ]
    
    In autofs_fill_super() on error of get inode/make root dentry the return
    should be ENOMEM as this is the only failure case of the called
    functions.
    
    Link: http://lkml.kernel.org/r/154725123240.11260.796773942606871359.stgit@pluto-themaw-net
    Signed-off-by: Ian Kent <raven@themaw.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7bc2601824baf12e74b661928fadd4c8b3f2a9a7
Author: Pan Bian <bianpan2016@163.com>
Date:   Fri Feb 1 14:21:26 2019 -0800

    autofs: drop dentry reference only when it is never used
    
    [ Upstream commit 63ce5f552beb9bdb41546b3a26c4374758b21815 ]
    
    autofs_expire_run() calls dput(dentry) to drop the reference count of
    dentry.  However, dentry is read via autofs_dentry_ino(dentry) after
    that.  This may result in a use-free-bug.  The patch drops the reference
    count of dentry only when it is never used.
    
    Link: http://lkml.kernel.org/r/154725122396.11260.16053424107144453867.stgit@pluto-themaw-net
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Ian Kent <raven@themaw.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9f9f033fdb77245382bfac0ca01eb3de5629f22d
Author: Jan Kara <jack@suse.cz>
Date:   Fri Feb 1 14:21:23 2019 -0800

    fs/drop_caches.c: avoid softlockups in drop_pagecache_sb()
    
    [ Upstream commit c27d82f52f75fc9d8d9d40d120d2a96fdeeada5e ]
    
    When superblock has lots of inodes without any pagecache (like is the
    case for /proc), drop_pagecache_sb() will iterate through all of them
    without dropping sb->s_inode_list_lock which can lead to softlockups
    (one of our customers hit this).
    
    Fix the problem by going to the slow path and doing cond_resched() in
    case the process needs rescheduling.
    
    Link: http://lkml.kernel.org/r/20190114085343.15011-1-jack@suse.cz
    Signed-off-by: Jan Kara <jack@suse.cz>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d051009daca34e629b353e18cf0adb39ac88228
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Feb 1 14:20:58 2019 -0800

    lib/test_kmod.c: potential double free in error handling
    
    [ Upstream commit db7ddeab3ce5d64c9696e70d61f45ea9909cd196 ]
    
    There is a copy and paste bug so we set "config->test_driver" to NULL
    twice instead of setting "config->test_fs".  Smatch complains that it
    leads to a double free:
    
      lib/test_kmod.c:840 __kmod_config_init() warn: 'config->test_fs' double freed
    
    Link: http://lkml.kernel.org/r/20190121140011.GA14283@kadam
    Fixes: d9c6a72d6fa2 ("kmod: add test driver to stress test the module loader")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Luis Chamberlain <mcgrof@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94ea61db81c6ab4e3f5e8c2c2735ad8e80ea3caa
Author: Johannes Weiner <hannes@cmpxchg.org>
Date:   Fri Feb 1 14:20:42 2019 -0800

    psi: fix aggregation idle shut-off
    
    [ Upstream commit 1b69ac6b40ebd85eed73e4dbccde2a36961ab990 ]
    
    psi has provisions to shut off the periodic aggregation worker when
    there is a period of no task activity - and thus no data that needs
    aggregating.  However, while developing psi monitoring, Suren noticed
    that the aggregation clock currently won't stay shut off for good.
    
    Debugging this revealed a flaw in the idle design: an aggregation run
    will see no task activity and decide to go to sleep; shortly thereafter,
    the kworker thread that executed the aggregation will go idle and cause
    a scheduling change, during which the psi callback will kick the
    !pending worker again.  This will ping-pong forever, and is equivalent
    to having no shut-off logic at all (but with more code!)
    
    Fix this by exempting aggregation workers from psi's clock waking logic
    when the state change is them going to sleep.  To do this, tag workers
    with the last work function they executed, and if in psi we see a worker
    going to sleep after aggregating psi data, we will not reschedule the
    aggregation work item.
    
    What if the worker is also executing other items before or after?
    
    Any psi state times that were incurred by work items preceding the
    aggregation work will have been collected from the per-cpu buckets
    during the aggregation itself.  If there are work items following the
    aggregation work, the worker's last_func tag will be overwritten and the
    aggregator will be kept alive to process this genuine new activity.
    
    If the aggregation work is the last thing the worker does, and we decide
    to go idle, the brief period of non-idle time incurred between the
    aggregation run and the kworker's dequeue will be stranded in the
    per-cpu buckets until the clock is woken by later activity.  But that
    should not be a problem.  The buckets can hold 4s worth of time, and
    future activity will wake the clock with a 2s delay, giving us 2s worth
    of data we can leave behind when disabling aggregation.  If it takes a
    worker more than two seconds to go idle after it finishes its last work
    item, we likely have bigger problems in the system, and won't notice one
    sample that was averaged with a bogus per-CPU weight.
    
    Link: http://lkml.kernel.org/r/20190116193501.1910-1-hannes@cmpxchg.org
    Fixes: eb414681d5a0 ("psi: pressure stall information for CPU, memory, and IO")
    Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
    Reported-by: Suren Baghdasaryan <surenb@google.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Lai Jiangshan <jiangshanlai@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4d1ea1857663dedca73c0853d1095fb0bfd70f13
Author: Mikhail Zaslonko <zaslonko@linux.ibm.com>
Date:   Fri Feb 1 14:20:38 2019 -0800

    mm, memory_hotplug: test_pages_in_a_zone do not pass the end of zone
    
    [ Upstream commit 24feb47c5fa5b825efb0151f28906dfdad027e61 ]
    
    If memory end is not aligned with the sparse memory section boundary,
    the mapping of such a section is only partly initialized.  This may lead
    to VM_BUG_ON due to uninitialized struct pages access from
    test_pages_in_a_zone() function triggered by memory_hotplug sysfs
    handlers.
    
    Here are the the panic examples:
     CONFIG_DEBUG_VM_PGFLAGS=y
     kernel parameter mem=2050M
     --------------------------
     page:000003d082008000 is uninitialized and poisoned
     page dumped because: VM_BUG_ON_PAGE(PagePoisoned(p))
     Call Trace:
       test_pages_in_a_zone+0xde/0x160
       show_valid_zones+0x5c/0x190
       dev_attr_show+0x34/0x70
       sysfs_kf_seq_show+0xc8/0x148
       seq_read+0x204/0x480
       __vfs_read+0x32/0x178
       vfs_read+0x82/0x138
       ksys_read+0x5a/0xb0
       system_call+0xdc/0x2d8
     Last Breaking-Event-Address:
       test_pages_in_a_zone+0xde/0x160
     Kernel panic - not syncing: Fatal exception: panic_on_oops
    
    Fix this by checking whether the pfn to check is within the zone.
    
    [mhocko@suse.com: separated this change from http://lkml.kernel.org/r/20181105150401.97287-2-zaslonko@linux.ibm.com]
    Link: http://lkml.kernel.org/r/20190128144506.15603-3-mhocko@kernel.org
    
    [mhocko@suse.com: separated this change from
    http://lkml.kernel.org/r/20181105150401.97287-2-zaslonko@linux.ibm.com]
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com>
    Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
    Reviewed-by: Oscar Salvador <osalvador@suse.de>
    Tested-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
    Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3a5f40eff4a35c4b1f862d1dd77e06bda5fd1784
Author: Michal Hocko <mhocko@suse.com>
Date:   Fri Feb 1 14:20:34 2019 -0800

    mm, memory_hotplug: is_mem_section_removable do not pass the end of a zone
    
    [ Upstream commit efad4e475c312456edb3c789d0996d12ed744c13 ]
    
    Patch series "mm, memory_hotplug: fix uninitialized pages fallouts", v2.
    
    Mikhail Zaslonko has posted fixes for the two bugs quite some time ago
    [1].  I have pushed back on those fixes because I believed that it is
    much better to plug the problem at the initialization time rather than
    play whack-a-mole all over the hotplug code and find all the places
    which expect the full memory section to be initialized.
    
    We have ended up with commit 2830bf6f05fb ("mm, memory_hotplug:
    initialize struct pages for the full memory section") merged and cause a
    regression [2][3].  The reason is that there might be memory layouts
    when two NUMA nodes share the same memory section so the merged fix is
    simply incorrect.
    
    In order to plug this hole we really have to be zone range aware in
    those handlers.  I have split up the original patch into two.  One is
    unchanged (patch 2) and I took a different approach for `removable'
    crash.
    
    [1] http://lkml.kernel.org/r/20181105150401.97287-2-zaslonko@linux.ibm.com
    [2] https://bugzilla.redhat.com/show_bug.cgi?id=1666948
    [3] http://lkml.kernel.org/r/20190125163938.GA20411@dhcp22.suse.cz
    
    This patch (of 2):
    
    Mikhail has reported the following VM_BUG_ON triggered when reading sysfs
    removable state of a memory block:
    
     page:000003d08300c000 is uninitialized and poisoned
     page dumped because: VM_BUG_ON_PAGE(PagePoisoned(p))
     Call Trace:
       is_mem_section_removable+0xb4/0x190
       show_mem_removable+0x9a/0xd8
       dev_attr_show+0x34/0x70
       sysfs_kf_seq_show+0xc8/0x148
       seq_read+0x204/0x480
       __vfs_read+0x32/0x178
       vfs_read+0x82/0x138
       ksys_read+0x5a/0xb0
       system_call+0xdc/0x2d8
     Last Breaking-Event-Address:
       is_mem_section_removable+0xb4/0x190
     Kernel panic - not syncing: Fatal exception: panic_on_oops
    
    The reason is that the memory block spans the zone boundary and we are
    stumbling over an unitialized struct page.  Fix this by enforcing zone
    range in is_mem_section_removable so that we never run away from a zone.
    
    Link: http://lkml.kernel.org/r/20190128144506.15603-2-mhocko@kernel.org
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Reported-by: Mikhail Zaslonko <zaslonko@linux.ibm.com>
    Debugged-by: Mikhail Zaslonko <zaslonko@linux.ibm.com>
    Tested-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
    Reviewed-by: Oscar Salvador <osalvador@suse.de>
    Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c5f9ccd61e63790e525b6b0524d43acb58e2b66
Author: Qian Cai <cai@lca.pw>
Date:   Fri Feb 1 14:20:20 2019 -0800

    x86_64: increase stack size for KASAN_EXTRA
    
    [ Upstream commit a8e911d13540487942d53137c156bd7707f66e5d ]
    
    If the kernel is configured with KASAN_EXTRA, the stack size is
    increasted significantly because this option sets "-fstack-reuse" to
    "none" in GCC [1].  As a result, it triggers stack overrun quite often
    with 32k stack size compiled using GCC 8.  For example, this reproducer
    
      https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/syscalls/madvise/madvise06.c
    
    triggers a "corrupted stack end detected inside scheduler" very reliably
    with CONFIG_SCHED_STACK_END_CHECK enabled.
    
    There are just too many functions that could have a large stack with
    KASAN_EXTRA due to large local variables that have been called over and
    over again without being able to reuse the stacks.  Some noticiable ones
    are
    
      size
      7648 shrink_page_list
      3584 xfs_rmap_convert
      3312 migrate_page_move_mapping
      3312 dev_ethtool
      3200 migrate_misplaced_transhuge_page
      3168 copy_process
    
    There are other 49 functions are over 2k in size while compiling kernel
    with "-Wframe-larger-than=" even with a related minimal config on this
    machine.  Hence, it is too much work to change Makefiles for each object
    to compile without "-fsanitize-address-use-after-scope" individually.
    
    [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715#c23
    
    Although there is a patch in GCC 9 to help the situation, GCC 9 probably
    won't be released in a few months and then it probably take another
    6-month to 1-year for all major distros to include it as a default.
    Hence, the stack usage with KASAN_EXTRA can be revisited again in 2020
    when GCC 9 is everywhere.  Until then, this patch will help users avoid
    stack overrun.
    
    This has already been fixed for arm64 for the same reason via
    6e8830674ea ("arm64: kasan: Increase stack size for KASAN_EXTRA").
    
    Link: http://lkml.kernel.org/r/20190109215209.2903-1-cai@lca.pw
    Signed-off-by: Qian Cai <cai@lca.pw>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 84f5605a34a21fca82460648560d5135795389d7
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Fri Feb 1 14:20:01 2019 -0800

    proc: fix /proc/net/* after setns(2)
    
    [ Upstream commit 1fde6f21d90f8ba5da3cb9c54ca991ed72696c43 ]
    
    /proc entries under /proc/net/* can't be cached into dcache because
    setns(2) can change current net namespace.
    
    [akpm@linux-foundation.org: coding-style fixes]
    [akpm@linux-foundation.org: avoid vim miscolorization]
    [adobriyan@gmail.com: write test, add dummy ->d_revalidate hook: necessary if /proc/net/* is pinned at setns time]
      Link: http://lkml.kernel.org/r/20190108192350.GA12034@avx2
    Link: http://lkml.kernel.org/r/20190107162336.GA9239@avx2
    Fixes: 1da4d377f943fe4194ffb9fb9c26cc58fad4dd24 ("proc: revalidate misc dentries")
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Reported-by: Mateusz Stępień <mateusz.stepien@netrounds.com>
    Reported-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c0e65b169e01a0301ae3ea8d96c8c15aa047185
Author: Kairui Song <kasong@redhat.com>
Date:   Fri Jan 18 19:13:08 2019 +0800

    x86/kexec: Don't setup EFI info if EFI runtime is not enabled
    
    [ Upstream commit 2aa958c99c7fd3162b089a1a56a34a0cdb778de1 ]
    
    Kexec-ing a kernel with "efi=noruntime" on the first kernel's command
    line causes the following null pointer dereference:
    
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
      #PF error: [normal kernel read fault]
      Call Trace:
       efi_runtime_map_copy+0x28/0x30
       bzImage64_load+0x688/0x872
       arch_kexec_kernel_image_load+0x6d/0x70
       kimage_file_alloc_init+0x13e/0x220
       __x64_sys_kexec_file_load+0x144/0x290
       do_syscall_64+0x55/0x1a0
       entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Just skip the EFI info setup if EFI runtime services are not enabled.
    
     [ bp: Massage commit message. ]
    
    Suggested-by: Dave Young <dyoung@redhat.com>
    Signed-off-by: Kairui Song <kasong@redhat.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Acked-by: Dave Young <dyoung@redhat.com>
    Cc: AKASHI Takahiro <takahiro.akashi@linaro.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: bhe@redhat.com
    Cc: David Howells <dhowells@redhat.com>
    Cc: erik.schmauss@intel.com
    Cc: fanc.fnst@cn.fujitsu.com
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: kexec@lists.infradead.org
    Cc: lenb@kernel.org
    Cc: linux-acpi@vger.kernel.org
    Cc: Philipp Rudo <prudo@linux.vnet.ibm.com>
    Cc: rafael.j.wysocki@intel.com
    Cc: robert.moore@intel.com
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86-ml <x86@kernel.org>
    Cc: Yannik Sembritzki <yannik@sembritzki.me>
    Link: https://lkml.kernel.org/r/20190118111310.29589-2-kasong@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a579fde7bd48e851daec98c892192a47da1ad5ea
Author: John Johansen <john.johansen@canonical.com>
Date:   Thu Jan 24 13:53:05 2019 -0800

    apparmor: Fix aa_label_build() error handling for failed merges
    
    [ Upstream commit d6d478aee003e19ef90321176552a8ad2929a47f ]
    
    aa_label_merge() can return NULL for memory allocations failures
    make sure to handle and set the correct error in this case.
    
    Reported-by: Peng Hao <peng.hao2@zte.com.cn>
    Signed-off-by: John Johansen <john.johansen@canonical.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94d4062f6193ef617c1e1ef5d757a44445bdb66f
Author: James Morse <james.morse@arm.com>
Date:   Thu Jan 24 16:32:55 2019 +0000

    arm64: kprobe: Always blacklist the KVM world-switch code
    
    [ Upstream commit f2b3d8566d81deaca31f4e3163def0bea7746e11 ]
    
    On systems with VHE the kernel and KVM's world-switch code run at the
    same exception level. Code that is only used on a VHE system does not
    need to be annotated as __hyp_text as it can reside anywhere in the
     kernel text.
    
    __hyp_text was also used to prevent kprobes from patching breakpoint
    instructions into this region, as this code runs at a different
    exception level. While this is no longer true with VHE, KVM still
    switches VBAR_EL1, meaning a kprobe's breakpoint executed in the
    world-switch code will cause a hyp-panic.
    
    Move the __hyp_text check in the kprobes blacklist so it applies on
    VHE systems too, to cover the common code and guest enter/exit
    assembly.
    
    Fixes: 888b3c8720e0 ("arm64: Treat all entry code as non-kprobe-able")
    Reviewed-by: Christoffer Dall <christoffer.dall@arm.com>
    Signed-off-by: James Morse <james.morse@arm.com>
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c7dbdca7d486c9b99696d79c82b22ab7c71ad41
Author: Petr Vorel <pvorel@suse.cz>
Date:   Mon Nov 12 11:59:12 2018 +0100

    apparmor: Fix warning about unused function apparmor_ipv6_postroute
    
    [ Upstream commit a1a02062ad466052a34a8c4323143ccf9726eb52 ]
    
    when compiled without CONFIG_IPV6:
    security/apparmor/lsm.c:1601:21: warning: ‘apparmor_ipv6_postroute’ defined but not used [-Wunused-function]
     static unsigned int apparmor_ipv6_postroute(void *priv,
                         ^~~~~~~~~~~~~~~~~~~~~~~
    
    Reported-by: Jordan Glover <Golden_Miller83@protonmail.ch>
    Tested-by: Jordan Glover <Golden_Miller83@protonmail.ch>
    Signed-off-by: Petr Vorel <pvorel@suse.cz>
    Signed-off-by: John Johansen <john.johansen@canonical.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 069debe326c30618d480a230584aa107ba193296
Author: Thomas Lendacky <Thomas.Lendacky@amd.com>
Date:   Thu Jan 31 14:33:06 2019 +0000

    x86/microcode/amd: Don't falsely trick the late loading mechanism
    
    [ Upstream commit 912139cfbfa6a2bc1da052314d2c29338dae1f6a ]
    
    The load_microcode_amd() function searches for microcode patches and
    attempts to apply a microcode patch if it is of different level than the
    currently installed level.
    
    While the processor won't actually load a level that is less than
    what is already installed, the logic wrongly returns UCODE_NEW thus
    signaling to its caller reload_store() that a late loading should be
    attempted.
    
    If the file-system contains an older microcode revision than what is
    currently running, such a late microcode reload can result in these
    misleading messages:
    
      x86/CPU: CPU features have changed after loading microcode, but might not take effect.
      x86/CPU: Please consider either early loading through initrd/built-in or a potential BIOS update.
    
    These messages were issued on a system where SME/SEV are not
    enabled by the BIOS (MSR C001_0010[23] = 0b) because during boot,
    early_detect_mem_encrypt() is called and cleared the SME and SEV
    features in this case.
    
    However, after the wrong late load attempt, get_cpu_cap() is called and
    reloads the SME and SEV feature bits, resulting in the messages.
    
    Update the microcode level check to not attempt microcode loading if the
    current level is greater than(!) and not only equal to the current patch
    level.
    
     [ bp: massage commit message. ]
    
    Fixes: 2613f36ed965 ("x86/microcode: Attempt late loading only when new microcode is present")
    Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/154894518427.9406.8246222496874202773.stgit@tlendack-t1.amdoffice.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 16ea4c74a8a3ea0c4da20cd491b9e4a73b724db1
Author: Ronnie Sahlberg <lsahlber@redhat.com>
Date:   Tue Jan 29 12:46:16 2019 +1000

    cifs: fix computation for MAX_SMB2_HDR_SIZE
    
    [ Upstream commit 58d15ed1203f4d858c339ea4d7dafa94bd2a56d3 ]
    
    The size of the fixed part of the create response is 88 bytes not 56.
    
    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f45e43910e1b1ca60f4b015edbae31921eb4192
Author: Wei Huang <wei@redhat.com>
Date:   Thu Jan 3 23:44:11 2019 -0600

    x86/boot/compressed/64: Set EFER.LME=1 in 32-bit trampoline before returning to long mode
    
    [ Upstream commit b677dfae5aa197afc5191755a76a8727ffca538a ]
    
    In some old AMD KVM implementation, guest's EFER.LME bit is cleared by KVM
    when the hypervsior detects that the guest sets CR0.PG to 0. This causes
    the guest OS to reboot when it tries to return from 32-bit trampoline code
    because the CPU is in incorrect state: CR4.PAE=1, CR0.PG=1, CS.L=1, but
    EFER.LME=0.  As a precaution, set EFER.LME=1 as part of long mode
    activation procedure. This extra step won't cause any harm when Linux is
    booted on a bare-metal machine.
    
    Signed-off-by: Wei Huang <wei@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: bp@alien8.de
    Cc: hpa@zytor.com
    Link: https://lkml.kernel.org/r/20190104054411.12489-1-wei@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 347bfae62f4013987dae6e2929a86409cf187b4e
Author: Harini Katakam <harini.katakam@xilinx.com>
Date:   Tue Jan 29 15:20:03 2019 +0530

    net: macb: Apply RXUBR workaround only to versions with errata
    
    [ Upstream commit e501070e4db0b67a4c17a5557d1e9d098f3db310 ]
    
    The interrupt handler contains a workaround for RX hang applicable
    to Zynq and AT91RM9200 only. Subsequent versions do not need this
    workaround. This workaround unnecessarily resets RX whenever RX used
    bit read is observed, which can be often under heavy traffic. There
    is no other action performed on RX UBR interrupt. Hence introduce a
    CAPS mask; enable this interrupt and workaround only on affected
    versions.
    
    Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5412d7cc306b761f250bcd40be0b58ef625473e7
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Fri Jan 25 11:59:01 2019 -0800

    x86/cpu: Add Atom Tremont (Jacobsville)
    
    [ Upstream commit 00ae831dfe4474ef6029558f5eb3ef0332d80043 ]
    
    Add the Atom Tremont model number to the Intel family list.
    
    [ Tony: Also update comment at head of file to say "_X" suffix is
      also used for microserver parts. ]
    
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Aristeu Rozanski <aris@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Cc: Megha Dey <megha.dey@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
    Cc: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20190125195902.17109-4-tony.luck@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9703ae3d157d32d429426f942f88ed8ef90b54a8
Author: Sinan Kaya <okaya@kernel.org>
Date:   Thu Jan 24 19:31:01 2019 +0000

    platform/x86: Fix unmet dependency warning for SAMSUNG_Q10
    
    [ Upstream commit 0ee4b5f801b73b83a9fb3921d725f2162fd4a2e5 ]
    
    Add BACKLIGHT_LCD_SUPPORT for SAMSUNG_Q10 to fix the
    warning: unmet direct dependencies detected for BACKLIGHT_CLASS_DEVICE.
    
    SAMSUNG_Q10 selects BACKLIGHT_CLASS_DEVICE but BACKLIGHT_CLASS_DEVICE
    depends on BACKLIGHT_LCD_SUPPORT.
    
    Copy BACKLIGHT_LCD_SUPPORT dependency into SAMSUNG_Q10 to fix:
    
    WARNING: unmet direct dependencies detected for BACKLIGHT_CLASS_DEVICE
      Depends on [n]: HAS_IOMEM [=y] && BACKLIGHT_LCD_SUPPORT [=n]
      Selected by [y]:
      - SAMSUNG_Q10 [=y] && X86 [=y] && X86_PLATFORM_DEVICES [=y] && ACPI [=y]
    
    Signed-off-by: Sinan Kaya <okaya@kernel.org>
    Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 117ba44abcfe6edf97c9c574273ca7b8b025e349
Author: Sinan Kaya <okaya@kernel.org>
Date:   Thu Jan 24 19:31:00 2019 +0000

    platform/x86: Fix unmet dependency warning for ACPI_CMPC
    
    [ Upstream commit d58bf90a32a33becec78c3034e781735049fcd25 ]
    
    Add BACKLIGHT_LCD_SUPPORT for ACPI_CMPC to fix the
    warning: unmet direct dependencies detected for BACKLIGHT_CLASS_DEVICE.
    
    ACPI_CMPC selects BACKLIGHT_CLASS_DEVICE but BACKLIGHT_CLASS_DEVICE
    depends on BACKLIGHT_LCD_SUPPORT.
    
    Copy BACKLIGHT_LCD_SUPPORT dependency into ACPI_CMPC to fix
    
    WARNING: unmet direct dependencies detected for BACKLIGHT_CLASS_DEVICE
      Depends on [n]: HAS_IOMEM [=y] && BACKLIGHT_LCD_SUPPORT [=n]
      Selected by [y]:
      - ACPI_CMPC [=y] && X86 [=y] && X86_PLATFORM_DEVICES [=y] && ACPI [=y] && INPUT [=y] && (RFKILL [=n] || RFKILL [=n]=n)
    
    Signed-off-by: Sinan Kaya <okaya@kernel.org>
    Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 05376101d7f53c1e27b803ae2f7c49436abee0b4
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Jan 24 13:33:27 2019 +0300

    scsi: 53c700: pass correct "dev" to dma_alloc_attrs()
    
    [ Upstream commit 8437fcf14deed67e5ad90b5e8abf62fb20f30881 ]
    
    The "hostdata->dev" pointer is NULL here.  We set "hostdata->dev = dev;"
    later in the function and we also use "hostdata->dev" when we call
    dma_free_attrs() in NCR_700_release().
    
    This bug predates git version control.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c4b35343a37b6c7b33025812667e0d97738bb008
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Jan 24 13:29:40 2019 +0300

    scsi: bnx2fc: Fix error handling in probe()
    
    [ Upstream commit b2d3492fc591b1fb46b81d79ca1fc44cac6ae0ae ]
    
    There are two issues here.  First if cmgr->hba is not set early enough then
    it leads to a NULL dereference.  Second if we don't completely initialize
    cmgr->io_bdt_pool[] then we end up dereferencing uninitialized pointers.
    
    Fixes: 853e2bd2103a ("[SCSI] bnx2fc: Broadcom FCoE offload driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5b0a0a5d8ccfd8b53e7c35b464170f5a938312a1
Author: Douglas Gilbert <dgilbert@interlog.com>
Date:   Fri Jan 25 12:46:09 2019 -0500

    scsi: scsi_debug: fix write_same with virtual_gb problem
    
    [ Upstream commit 40d07b523cf434f252b134c86b1f8f2d907ffb0b ]
    
    The WRITE SAME(10) and (16) implementations didn't take account of the
    buffer wrap required when the virtual_gb parameter is greater than 0.
    
    Fix that and rename the fake_store() function to lba2fake_store() to lessen
    confusion with the global fake_storep pointer. Bump version date.
    
    Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
    Reported-by: Bart Van Assche <bvanassche@acm.org>
    Tested by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f047567703e526652892fda4f443ff11b3ec9fa7
Author: Ming Lu <ming.lu@citrix.com>
Date:   Thu Jan 24 13:25:42 2019 +0800

    scsi: libfc: free skb when receiving invalid flogi resp
    
    [ Upstream commit 5d8fc4a9f0eec20b6c07895022a6bea3fb6dfb38 ]
    
    The issue to be fixed in this commit is when libfc found it received a
    invalid FLOGI response from FC switch, it would return without freeing the
    fc frame, which is just the skb data. This would cause memory leak if FC
    switch keeps sending invalid FLOGI responses.
    
    This fix is just to make it execute `fc_frame_free(fp)` before returning
    from function `fc_lport_flogi_resp`.
    
    Signed-off-by: Ming Lu <ming.lu@citrix.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07d580da34697f618f663a15a418b8b0fa3af116
Author: Manish Chopra <manishc@marvell.com>
Date:   Mon Jan 28 10:05:08 2019 -0800

    qed: Fix stack out of bounds bug
    
    [ Upstream commit ffb057f98928aa099b08e419bbe5afc26ec9f448 ]
    
    KASAN reported following bug in qed_init_qm_get_idx_from_flags
    due to inappropriate casting of "pq_flags". Fix the type of "pq_flags".
    
    [  196.624707] BUG: KASAN: stack-out-of-bounds in qed_init_qm_get_idx_from_flags+0x1a4/0x1b8 [qed]
    [  196.624712] Read of size 8 at addr ffff809b00bc7360 by task kworker/0:9/1712
    [  196.624714]
    [  196.624720] CPU: 0 PID: 1712 Comm: kworker/0:9 Not tainted 4.18.0-60.el8.aarch64+debug #1
    [  196.624723] Hardware name: To be filled by O.E.M. Saber/Saber, BIOS 0ACKL024 09/26/2018
    [  196.624733] Workqueue: events work_for_cpu_fn
    [  196.624738] Call trace:
    [  196.624742]  dump_backtrace+0x0/0x2f8
    [  196.624745]  show_stack+0x24/0x30
    [  196.624749]  dump_stack+0xe0/0x11c
    [  196.624755]  print_address_description+0x68/0x260
    [  196.624759]  kasan_report+0x178/0x340
    [  196.624762]  __asan_report_load_n_noabort+0x38/0x48
    [  196.624786]  qed_init_qm_get_idx_from_flags+0x1a4/0x1b8 [qed]
    [  196.624808]  qed_init_qm_info+0xec0/0x2200 [qed]
    [  196.624830]  qed_resc_alloc+0x284/0x7e8 [qed]
    [  196.624853]  qed_slowpath_start+0x6cc/0x1ae8 [qed]
    [  196.624864]  __qede_probe.isra.10+0x1cc/0x12c0 [qede]
    [  196.624874]  qede_probe+0x78/0xf0 [qede]
    [  196.624879]  local_pci_probe+0xc4/0x180
    [  196.624882]  work_for_cpu_fn+0x54/0x98
    [  196.624885]  process_one_work+0x758/0x1900
    [  196.624888]  worker_thread+0x4e0/0xd18
    [  196.624892]  kthread+0x2c8/0x350
    [  196.624897]  ret_from_fork+0x10/0x18
    [  196.624899]
    [  196.624902] Allocated by task 2:
    [  196.624906]  kasan_kmalloc.part.1+0x40/0x108
    [  196.624909]  kasan_kmalloc+0xb4/0xc8
    [  196.624913]  kasan_slab_alloc+0x14/0x20
    [  196.624916]  kmem_cache_alloc_node+0x1dc/0x480
    [  196.624921]  copy_process.isra.1.part.2+0x1d8/0x4a98
    [  196.624924]  _do_fork+0x150/0xfa0
    [  196.624926]  kernel_thread+0x48/0x58
    [  196.624930]  kthreadd+0x3a4/0x5a0
    [  196.624932]  ret_from_fork+0x10/0x18
    [  196.624934]
    [  196.624937] Freed by task 0:
    [  196.624938] (stack is not available)
    [  196.624940]
    [  196.624943] The buggy address belongs to the object at ffff809b00bc0000
    [  196.624943]  which belongs to the cache thread_stack of size 32768
    [  196.624946] The buggy address is located 29536 bytes inside of
    [  196.624946]  32768-byte region [ffff809b00bc0000, ffff809b00bc8000)
    [  196.624948] The buggy address belongs to the page:
    [  196.624952] page:ffff7fe026c02e00 count:1 mapcount:0 mapping:ffff809b4001c000 index:0x0 compound_mapcount: 0
    [  196.624960] flags: 0xfffff8000008100(slab|head)
    [  196.624967] raw: 0fffff8000008100 dead000000000100 dead000000000200 ffff809b4001c000
    [  196.624970] raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000
    [  196.624973] page dumped because: kasan: bad access detected
    [  196.624974]
    [  196.624976] Memory state around the buggy address:
    [  196.624980]  ffff809b00bc7200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [  196.624983]  ffff809b00bc7280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [  196.624985] >ffff809b00bc7300: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 04 f2 f2 f2
    [  196.624988]                                                        ^
    [  196.624990]  ffff809b00bc7380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [  196.624993]  ffff809b00bc7400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [  196.624995] ==================================================================
    
    Signed-off-by: Manish Chopra <manishc@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 17c7797e45e650e240338d1b6773ef0d04891060
Author: Manish Chopra <manishc@marvell.com>
Date:   Mon Jan 28 10:05:07 2019 -0800

    qed: Fix system crash in ll2 xmit
    
    [ Upstream commit 7c81626a3c37e4ac320b8ad785694ba498f24794 ]
    
    Cache number of fragments in the skb locally as in case
    of linear skb (with zero fragments), tx completion
    (or freeing of skb) may happen before driver tries
    to get number of frgaments from the skb which could
    lead to stale access to an already freed skb.
    
    Signed-off-by: Manish Chopra <manishc@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2ed10156bba315996e6424592548dcb8a73436b6
Author: Manish Chopra <manishc@marvell.com>
Date:   Mon Jan 28 10:05:06 2019 -0800

    qed: Fix VF probe failure while FLR
    
    [ Upstream commit 327852ec64205bb651be391a069784872098a3b2 ]
    
    VFs may hit VF-PF channel timeout while probing, as in some
    cases it was observed that VF FLR and VF "acquire" message
    transaction (i.e first message from VF to PF in VF's probe flow)
    could occur simultaneously which could lead VF to fail sending
    "acquire" message to PF as VF is marked disabled from HW perspective
    due to FLR, which will result into channel timeout and VF probe failure.
    
    In such cases, try retrying VF "acquire" message so that in later
    attempts it could be successful to pass message to PF after the VF
    FLR is completed and can be probed successfully.
    
    Signed-off-by: Manish Chopra <manishc@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1142bceb2f4e4d132a746198c334ff24412ad5e4
Author: Manish Chopra <manishc@marvell.com>
Date:   Mon Jan 28 10:05:05 2019 -0800

    qed: Fix LACP pdu drops for VFs
    
    [ Upstream commit ff9296966e5e00b0d0d00477b2365a178f0f06a3 ]
    
    VF is always configured to drop control frames
    (with reserved mac addresses) but to work LACP
    on the VFs, it would require LACP control frames
    to be forwarded or transmitted successfully.
    
    This patch fixes this in such a way that trusted VFs
    (marked through ndo_set_vf_trust) would be allowed to
    pass the control frames such as LACP pdus.
    
    Signed-off-by: Manish Chopra <manishc@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6ae914541df2052c04e7ec50dfa8034b54f53681
Author: Manish Chopra <manishc@marvell.com>
Date:   Mon Jan 28 10:05:04 2019 -0800

    qed: Fix bug in tx promiscuous mode settings
    
    [ Upstream commit 9e71a15d8b5bbce25c637f7f8833cd3f45b65646 ]
    
    When running tx switched traffic between VNICs
    created via a bridge(to which VFs are added),
    adapter drops the unicast packets in tx flow due to
    VNIC's ucast mac being unknown to it. But VF interfaces
    being in promiscuous mode should have caused adapter
    to accept all the unknown ucast packets. Later, it
    was found that driver doesn't really configure tx
    promiscuous mode settings to accept all unknown unicast macs.
    
    This patch fixes tx promiscuous mode settings to accept all
    unknown/unmatched unicast macs and works out the scenario.
    
    Signed-off-by: Manish Chopra <manishc@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9fcfff19d89779b994674843d5c2f7eac0528b04
Author: Yao Liu <yotta.liu@ucloud.cn>
Date:   Mon Jan 28 19:44:14 2019 +0800

    nfs: Fix NULL pointer dereference of dev_name
    
    [ Upstream commit 80ff00172407e0aad4b10b94ef0816fc3e7813cb ]
    
    There is a NULL pointer dereference of dev_name in nfs_parse_devname()
    
    The oops looks something like:
    
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
      ...
      RIP: 0010:nfs_fs_mount+0x3b6/0xc20 [nfs]
      ...
      Call Trace:
       ? ida_alloc_range+0x34b/0x3d0
       ? nfs_clone_super+0x80/0x80 [nfs]
       ? nfs_free_parsed_mount_data+0x60/0x60 [nfs]
       mount_fs+0x52/0x170
       ? __init_waitqueue_head+0x3b/0x50
       vfs_kern_mount+0x6b/0x170
       do_mount+0x216/0xdc0
       ksys_mount+0x83/0xd0
       __x64_sys_mount+0x25/0x30
       do_syscall_64+0x65/0x220
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Fix this by adding a NULL check on dev_name
    
    Signed-off-by: Yao Liu <yotta.liu@ucloud.cn>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7048f3db92bd1347640416c31f8dfa1c49f26813
Author: Fathi Boudra <fathi.boudra@linaro.org>
Date:   Wed Jan 16 11:43:20 2019 -0600

    selftests: timers: use LDLIBS instead of LDFLAGS
    
    [ Upstream commit 7d4e591bc051d3382c45caaa2530969fb42ed23d ]
    
    posix_timers fails to build due to undefined reference errors:
    
     aarch64-linaro-linux-gcc --sysroot=/build/tmp-rpb-glibc/sysroots/hikey
     -O2 -pipe -g -feliminate-unused-debug-types -O3 -Wl,-no-as-needed -Wall
     -DKTEST  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -lrt -lpthread
     posix_timers.c
     -o /build/tmp-rpb-glibc/work/hikey-linaro-linux/kselftests/4.12-r0/linux-4.12-rc7/tools/testing/selftests/timers/posix_timers
     /tmp/cc1FTZzT.o: In function `check_timer_create':
     /usr/src/debug/kselftests/4.12-r0/linux-4.12-rc7/tools/testing/selftests/timers/posix_timers.c:157:
     undefined reference to `timer_create'
     /usr/src/debug/kselftests/4.12-r0/linux-4.12-rc7/tools/testing/selftests/timers/posix_timers.c:170:
     undefined reference to `timer_settime'
     collect2: error: ld returned 1 exit status
    
    It's GNU Make and linker specific.
    
    The default Makefile rule looks like:
    
    $(CC) $(CFLAGS) $(LDFLAGS) $@ $^ $(LDLIBS)
    
    When linking is done by gcc itself, no issue, but when it needs to be passed
    to proper ld, only LDLIBS follows and then ld cannot know what libs to link
    with.
    
    More detail:
    https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
    
    LDFLAGS
    Extra flags to give to compilers when they are supposed to invoke the linker,
    ‘ld’, such as -L. Libraries (-lfoo) should be added to the LDLIBS variable
    instead.
    
    LDLIBS
    Library flags or names given to compilers when they are supposed to invoke the
    linker, ‘ld’. LOADLIBES is a deprecated (but still supported) alternative to
    LDLIBS. Non-library linker flags, such as -L, should go in the LDFLAGS
    variable.
    
    https://lkml.org/lkml/2010/2/10/362
    
    tools/perf: libraries must come after objects
    
    Link order matters, use LDLIBS instead of LDFLAGS to properly link against
    libpthread.
    
    Signed-off-by: Denys Dmytriyenko <denys@ti.com>
    Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
    Signed-off-by: Shuah Khan <shuah@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3348156064fedc105a7cfef5462032194c60c15f
Author: Fathi Boudra <fathi.boudra@linaro.org>
Date:   Wed Jan 16 11:43:18 2019 -0600

    selftests: net: use LDLIBS instead of LDFLAGS
    
    [ Upstream commit 870f193d48c25a97d61a8e6c04e3c29a2c606850 ]
    
    reuseport_bpf_numa fails to build due to undefined reference errors:
    
     aarch64-linaro-linux-gcc
     --sysroot=/build/tmp-rpb-glibc/sysroots/hikey -Wall
     -Wl,--no-as-needed -O2 -g -I../../../../usr/include/  -Wl,-O1
     -Wl,--hash-style=gnu -Wl,--as-needed -lnuma  reuseport_bpf_numa.c
     -o
     /build/tmp-rpb-glibc/work/hikey-linaro-linux/kselftests/4.12-r0/linux-4.12-rc7/tools/testing/selftests/net/reuseport_bpf_numa
     /tmp/ccfUuExT.o: In function `send_from_node':
     /build/tmp-rpb-glibc/work/hikey-linaro-linux/kselftests/4.12-r0/linux-4.12-rc7/tools/testing/selftests/net/reuseport_bpf_numa.c:138:
     undefined reference to `numa_run_on_node'
     /tmp/ccfUuExT.o: In function `main':
     /build/tmp-rpb-glibc/work/hikey-linaro-linux/kselftests/4.12-r0/linux-4.12-rc7/tools/testing/selftests/net/reuseport_bpf_numa.c:230:
     undefined reference to `numa_available'
     /build/tmp-rpb-glibc/work/hikey-linaro-linux/kselftests/4.12-r0/linux-4.12-rc7/tools/testing/selftests/net/reuseport_bpf_numa.c:233:
     undefined reference to `numa_max_node'
    
    It's GNU Make and linker specific.
    
    The default Makefile rule looks like:
    
    $(CC) $(CFLAGS) $(LDFLAGS) $@ $^ $(LDLIBS)
    
    When linking is done by gcc itself, no issue, but when it needs to be passed
    to proper ld, only LDLIBS follows and then ld cannot know what libs to link
    with.
    
    More detail:
    https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
    
    LDFLAGS
    Extra flags to give to compilers when they are supposed to invoke the linker,
    ‘ld’, such as -L. Libraries (-lfoo) should be added to the LDLIBS variable
    instead.
    
    LDLIBS
    Library flags or names given to compilers when they are supposed to invoke the
    linker, ‘ld’. LOADLIBES is a deprecated (but still supported) alternative to
    LDLIBS. Non-library linker flags, such as -L, should go in the LDFLAGS
    variable.
    
    https://lkml.org/lkml/2010/2/10/362
    
    tools/perf: libraries must come after objects
    
    Link order matters, use LDLIBS instead of LDFLAGS to properly link against
    libnuma.
    
    Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
    Signed-off-by: Shuah Khan <shuah@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit da0c7c2b502b2734e8f32455d4a274d1eb48f63b
Author: Andrew Lunn <andrew@lunn.ch>
Date:   Sun Jan 27 22:58:00 2019 +0100

    gpio: vf610: Mask all GPIO interrupts
    
    [ Upstream commit 7ae710f9f8b2cf95297e7bbfe1c09789a7dc43d4 ]
    
    On SoC reset all GPIO interrupts are disable. However, if kexec is
    used to boot into a new kernel, the SoC does not experience a
    reset. Hence GPIO interrupts can be left enabled from the previous
    kernel. It is then possible for the interrupt to fire before an
    interrupt handler is registered, resulting in the kernel complaining
    of an "unexpected IRQ trap", the interrupt is never cleared, and so
    fires again, resulting in an interrupt storm.
    
    Disable all GPIO interrupts before registering the GPIO IRQ chip.
    
    Fixes: 7f2691a19627 ("gpio: vf610: add gpiolib/IRQ chip driver for Vybrid")
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Acked-by: Stefan Agner <stefan@agner.ch>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 359bee9d8e1b28914183be69dc2372cff3c87fe9
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Jan 21 21:54:36 2019 +0100

    netfilter: ebtables: compat: un-break 32bit setsockopt when no rules are present
    
    [ Upstream commit 2035f3ff8eaa29cfb5c8e2160b0f6e85eeb21a95 ]
    
    Unlike ip(6)tables ebtables only counts user-defined chains.
    
    The effect is that a 32bit ebtables binary on a 64bit kernel can do
    'ebtables -N FOO' only after adding at least one rule, else the request
    fails with -EINVAL.
    
    This is a similar fix as done in
    3f1e53abff84 ("netfilter: ebtables: don't attempt to allocate 0-sized compat array").
    
    Fixes: 7d7d7e02111e9 ("netfilter: compat: reject huge allocation requests")
    Reported-by: Francesco Ruggeri <fruggeri@arista.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b49b1b23e0d6819f6b14ac0b171a62bb02aab89
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Sat Jan 26 22:48:57 2019 +0300

    net: stmmac: dwmac-rk: fix error handling in rk_gmac_powerup()
    
    [ Upstream commit c69c29a1a0a8f68cd87e98ba4a5a79fb8ef2a58c ]
    
    If phy_power_on() fails in rk_gmac_powerup(), clocks are left enabled.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ed0b52225d05b3acc70efaa87408d5891a5ac89
Author: Yonglong Liu <liuyonglong@huawei.com>
Date:   Sat Jan 26 17:18:27 2019 +0800

    net: hns: Fix wrong read accesses via Clause 45 MDIO protocol
    
    [ Upstream commit cec8abba13e6a26729dfed41019720068eeeff2b ]
    
    When reading phy registers via Clause 45 MDIO protocol, after write
    address operation, the driver use another write address operation, so
    can not read the right value of any phy registers. This patch fixes it.
    
    Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9a7bb39c1c50172c2dc39edb3901010fa0593083
Author: Yonglong Liu <liuyonglong@huawei.com>
Date:   Sat Jan 26 17:18:26 2019 +0800

    net: hns: Restart autoneg need return failed when autoneg off
    
    [ Upstream commit ed29ca8b9592562559c64d027fb5eb126e463e2c ]
    
    The hns driver of earlier devices, when autoneg off, restart autoneg
    will return -EINVAL, so make the hns driver for the latest devices
    do the same.
    
    Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 61523640c7a6b99e59179b645f00e4454158a09e
Author: Yonglong Liu <liuyonglong@huawei.com>
Date:   Sat Jan 26 17:18:25 2019 +0800

    net: hns: Fix for missing of_node_put() after of_parse_phandle()
    
    [ Upstream commit 263c6d75f9a544a3c2f8f6a26de4f4808d8f59cf ]
    
    In hns enet driver, we use of_parse_handle() to get hold of the
    device node related to "ae-handle" but we have missed to put
    the node reference using of_node_put() after we are done using
    the node. This patch fixes it.
    
    Note:
    This problem is stated in Link: https://lkml.org/lkml/2018/12/22/217
    
    Fixes: 48189d6aaf1e ("net: hns: enet specifies a reference to dsaf")
    Reported-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60d2b1e5faad8e84e4bf5802f682a2264219585e
Author: Tomonori Sakita <tomonori.sakita@sord.co.jp>
Date:   Fri Jan 25 11:02:22 2019 +0900

    net: altera_tse: fix msgdma_tx_completion on non-zero fill_level case
    
    [ Upstream commit 6571ebce112a21ec9be68ef2f53b96fcd41fd81b ]
    
    If fill_level was not zero and status was not BUSY,
    result of "tx_prod - tx_cons - inuse" might be zero.
    Subtracting 1 unconditionally results invalid negative return value
    on this case.
    Make sure not to return an negative value.
    
    Signed-off-by: Tomonori Sakita <tomonori.sakita@sord.co.jp>
    Signed-off-by: Atsushi Nemoto <atsushi.nemoto@sord.co.jp>
    Reviewed-by: Dalon L Westergreen <dalon.westergreen@linux.intel.com>
    Acked-by: Thor Thayer <thor.thayer@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4aad65e0885536c3715cd26c119569395c09b24c
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Sat Jan 26 20:35:18 2019 -0800

    xtensa: SMP: limit number of possible CPUs by NR_CPUS
    
    [ Upstream commit 25384ce5f9530def39421597b1457d9462df6455 ]
    
    This fixes the following warning at boot when the kernel is booted on a
    board with more CPU cores than was configured in NR_CPUS:
    
      smp_init_cpus: Core Count = 8
      smp_init_cpus: Core Id = 0
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 0 at include/linux/cpumask.h:121 smp_init_cpus+0x54/0x74
      Modules linked in:
      CPU: 0 PID: 0 Comm: swapper Not tainted 5.0.0-rc3-00015-g1459333f88a0 #124
      Call Trace:
        __warn$part$3+0x6a/0x7c
        warn_slowpath_null+0x35/0x3c
        smp_init_cpus+0x54/0x74
        setup_arch+0x1c0/0x1d0
        start_kernel+0x44/0x310
        _startup+0x107/0x107
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1f42a56e3a7400aa4427ca1efcb66dc9bb72476
Author: Christoph Hellwig <hch@lst.de>
Date:   Thu Jan 17 08:58:58 2019 -0800

    iomap: fix a use after free in iomap_dio_rw
    
    [ Upstream commit 4ea899ead2786a30aaa8181fefa81a3df4ad28f6 ]
    
    Introduce a local wait_for_completion variable to avoid an access to the
    potentially freed dio struture after dropping the last reference count.
    
    Also use the chance to document the completion behavior to make the
    refcounting clear to the reader of the code.
    
    Fixes: ff6a9292e6 ("iomap: implement direct I/O")
    Reported-by: Chandan Rajendra <chandan@linux.ibm.com>
    Reported-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Tested-by: Chandan Rajendra <chandan@linux.ibm.com>
    Tested-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d28747c8f659755d58d20f0837e0ba22a85249d3
Author: Piotr Jaroszynski <pjaroszynski@nvidia.com>
Date:   Sun Jan 27 08:46:45 2019 -0800

    iomap: get/put the page in iomap_page_create/release()
    
    [ Upstream commit 8e47a457321ca1a74ad194ab5dcbca764bc70731 ]
    
    migrate_page_move_mapping() expects pages with private data set to have
    a page_count elevated by 1.  This is what used to happen for xfs through
    the buffer_heads code before the switch to iomap in commit 82cb14175e7d
    ("xfs: add support for sub-pagesize writeback without buffer_heads").
    Not having the count elevated causes move_pages() to fail on memory
    mapped files coming from xfs.
    
    Make iomap compatible with the migrate_page_move_mapping() assumption by
    elevating the page count as part of iomap_page_create() and lowering it
    in iomap_page_release().
    
    It causes the move_pages() syscall to misbehave on memory mapped files
    from xfs.  It does not not move any pages, which I suppose is "just" a
    perf issue, but it also ends up returning a positive number which is out
    of spec for the syscall.  Talking to Michal Hocko, it sounds like
    returning positive numbers might be a necessary update to move_pages()
    anyway though.
    
    Fixes: 82cb14175e7d ("xfs: add support for sub-pagesize writeback without buffer_heads")
    Signed-off-by: Piotr Jaroszynski <pjaroszynski@nvidia.com>
    [hch: actually get/put the page iomap_migrate_page() to make it work
          properly]
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 90053239f6185e1cef7399a2726e9e126b4373c4
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Sat Jan 19 00:26:48 2019 -0800

    xtensa: SMP: mark each possible CPU as present
    
    [ Upstream commit 8b1c42cdd7181200dc1fff39dcb6ac1a3fac2c25 ]
    
    Otherwise it is impossible to enable CPUs after booting with 'maxcpus'
    parameter.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cccafb10022ab8d4abf06f853c830f7bb6213770
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Thu Jan 24 17:16:11 2019 -0800

    xtensa: smp_lx200_defconfig: fix vectors clash
    
    [ Upstream commit 306b38305c0f86de7f17c5b091a95451dcc93d7d ]
    
    Secondary CPU reset vector overlaps part of the double exception handler
    code, resulting in weird crashes and hangups when running user code.
    Move exception vectors one page up so that they don't clash with the
    secondary CPU reset vector.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit abb21eef1bc4826394ed0b5cb086ce0877caa22f
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Fri Dec 21 08:26:20 2018 -0800

    xtensa: SMP: fix secondary CPU initialization
    
    [ Upstream commit 32a7726c4f4aadfabdb82440d84f88a5a2c8fe13 ]
    
    - add missing memory barriers to the secondary CPU synchronization spin
      loops; add comment to the matching memory barrier in the boot_secondary
      and __cpu_die functions;
    - use READ_ONCE/WRITE_ONCE to access cpu_start_id/cpu_start_ccount
      instead of reading/writing them directly;
    - re-initialize cpu_running every time before starting secondary CPU to
      flush possible previous CPU startup results.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 59f746bcc39601e185271bb8bec81f0a4e76d58a
Author: Colin Ian King <colin.king@canonical.com>
Date:   Thu Jan 10 12:38:02 2019 +0000

    selftests: cpu-hotplug: fix case where CPUs offline > CPUs present
    
    [ Upstream commit 2b531b6137834a55857a337ac17510d6436b6fbb ]
    
    The cpu-hotplug test assumes that we can offline the maximum CPU as
    described by /sys/devices/system/cpu/offline.  However, in the case
    where the number of CPUs exceeds like kernel configuration then
    the offline count can be greater than the present count and we end
    up trying to test the offlining of a CPU that is not available to
    offline.  Fix this by testing the maximum present CPU instead.
    
    Also, the test currently offlines the CPU and does not online it,
    so fix this by onlining the CPU after the test.
    
    Fixes: d89dffa976bc ("fault-injection: add selftests for cpu and memory hotplug")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Shuah Khan <shuah@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ecfdb9b32cdf8e84c8a568f2551f234b242ce8fc
Author: Feras Daoud <ferasda@mellanox.com>
Date:   Thu Jan 24 14:33:19 2019 +0200

    IB/ipoib: Fix for use-after-free in ipoib_cm_tx_start
    
    [ Upstream commit 6ab4aba00f811a5265acc4d3eb1863bb3ca60562 ]
    
    The following BUG was reported by kasan:
    
     BUG: KASAN: use-after-free in ipoib_cm_tx_start+0x430/0x1390 [ib_ipoib]
     Read of size 80 at addr ffff88034c30bcd0 by task kworker/u16:1/24020
    
     Workqueue: ipoib_wq ipoib_cm_tx_start [ib_ipoib]
     Call Trace:
      dump_stack+0x9a/0xeb
      print_address_description+0xe3/0x2e0
      kasan_report+0x18a/0x2e0
      ? ipoib_cm_tx_start+0x430/0x1390 [ib_ipoib]
      memcpy+0x1f/0x50
      ipoib_cm_tx_start+0x430/0x1390 [ib_ipoib]
      ? kvm_clock_read+0x1f/0x30
      ? ipoib_cm_skb_reap+0x610/0x610 [ib_ipoib]
      ? __lock_is_held+0xc2/0x170
      ? process_one_work+0x880/0x1960
      ? process_one_work+0x912/0x1960
      process_one_work+0x912/0x1960
      ? wq_pool_ids_show+0x310/0x310
      ? lock_acquire+0x145/0x440
      worker_thread+0x87/0xbb0
      ? process_one_work+0x1960/0x1960
      kthread+0x314/0x3d0
      ? kthread_create_worker_on_cpu+0xc0/0xc0
      ret_from_fork+0x3a/0x50
    
     Allocated by task 0:
      kasan_kmalloc+0xa0/0xd0
      kmem_cache_alloc_trace+0x168/0x3e0
      path_rec_create+0xa2/0x1f0 [ib_ipoib]
      ipoib_start_xmit+0xa98/0x19e0 [ib_ipoib]
      dev_hard_start_xmit+0x159/0x8d0
      sch_direct_xmit+0x226/0xb40
      __dev_queue_xmit+0x1d63/0x2950
      neigh_update+0x889/0x1770
      arp_process+0xc47/0x21f0
      arp_rcv+0x462/0x760
      __netif_receive_skb_core+0x1546/0x2da0
      netif_receive_skb_internal+0xf2/0x590
      napi_gro_receive+0x28e/0x390
      ipoib_ib_handle_rx_wc_rss+0x873/0x1b60 [ib_ipoib]
      ipoib_rx_poll_rss+0x17d/0x320 [ib_ipoib]
      net_rx_action+0x427/0xe30
      __do_softirq+0x28e/0xc42
    
     Freed by task 26680:
      __kasan_slab_free+0x11d/0x160
      kfree+0xf5/0x360
      ipoib_flush_paths+0x532/0x9d0 [ib_ipoib]
      ipoib_set_mode_rss+0x1ad/0x560 [ib_ipoib]
      set_mode+0xc8/0x150 [ib_ipoib]
      kernfs_fop_write+0x279/0x440
      __vfs_write+0xd8/0x5c0
      vfs_write+0x15e/0x470
      ksys_write+0xb8/0x180
      do_syscall_64+0x9b/0x420
      entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
     The buggy address belongs to the object at ffff88034c30bcc8
                    which belongs to the cache kmalloc-512 of size 512
     The buggy address is located 8 bytes inside of
                    512-byte region [ffff88034c30bcc8, ffff88034c30bec8)
     The buggy address belongs to the page:
    
    The following race between change mode and xmit flow is the reason for
    this use-after-free:
    
    Change mode     Send packet 1 to GID XX      Send packet 2 to GID XX
         |                    |                             |
       start                  |                             |
         |                    |                             |
         |                    |                             |
         |         Create new path for GID XX               |
         |           and update neigh path                  |
         |                    |                             |
         |                    |                             |
         |                    |                             |
     flush_paths              |                             |
                              |                             |
                   queue_work(cm.start_task)                |
                              |                 Path for GID XX not found
                              |                      create new path
                              |
                              |
                   start_task runs with old
                        released path
    
    There is no locking to protect the lifetime of the path through the
    ipoib_cm_tx struct, so delete it entirely and always use the newly looked
    up path under the priv->lock.
    
    Fixes: 546481c2816e ("IB/ipoib: Fix memory corruption in ipoib cm mode connect flow")
    Signed-off-by: Feras Daoud <ferasda@mellanox.com>
    Reviewed-by: Erez Shitrit <erezsh@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf981e9b8ab7caaf782a548527923edf3a25fc03
Author: Alexandre Ghiti <aghiti@upmem.com>
Date:   Mon Dec 10 06:21:46 2018 +0000

    riscv: Adjust mmap base address at a third of task size
    
    [ Upstream commit ae662eec8a515ab550524e04c793b5ddf1aae3a1 ]
    
    This ratio is the most used among all other architectures and make
    icache_hygiene libhugetlbfs test pass: this test mmap lots of
    hugepages whose addresses, without this patch, reach the end of
    the process user address space.
    
    Signed-off-by: Alexandre Ghiti <aghiti@upmem.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c5e5e6c6c55c8f2ebfb3c37d1987c998f5b19990
Author: Artemy Kovalyov <artemyko@mellanox.com>
Date:   Tue Jan 22 09:16:10 2019 +0200

    RDMA/umem: Add missing initialization of owning_mm
    
    [ Upstream commit a2093dd35f8cfb28dd7c878ccbd020c1bb20d0d7 ]
    
    When allocating a umem leaf for implicit ODP MR during page fault the
    field owning_mm was not set.
    
    Initialize and take a reference on this field to avoid kernel panic when
    trying to access this field.
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
     PGD 800000022dfed067 P4D 800000022dfed067 PUD 22dfcf067 PMD 0
     Oops: 0000 [#1] SMP PTI
     CPU: 0 PID: 634 Comm: kworker/u33:0 Not tainted 4.20.0-rc6+ #89
     Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
     Workqueue: mlx5_ib_page_fault mlx5_ib_eqe_pf_action [mlx5_ib]
     RIP: 0010:ib_umem_odp_map_dma_pages+0xf3/0x710 [ib_core]
     Code: 45 c0 48 21 f3 48 89 75 b0 31 f6 4a 8d 04 33 48 89 45 a8 49 8b 44 24 60 48 8b 78 10 e8 66 16 a8 c5 49 8b 54 24 08 48 89 45 98 <8b> 42 58 85 c0 0f 84 8e 05 00 00 8d 48 01 48 8d 72 58 f0 0f b1 4a
     RSP: 0000:ffffb610813a7c20 EFLAGS: 00010202
     RAX: ffff95ace6e8ac80 RBX: 0000000000000000 RCX: 000000000000000c
     RDX: 0000000000000000 RSI: 0000000000000850 RDI: ffff95aceaadae80
     RBP: ffffb610813a7ce0 R08: 0000000000000000 R09: 0000000000080c77
     R10: ffff95acfffdbd00 R11: 0000000000000000 R12: ffff95aceaa20a00
     R13: 0000000000001000 R14: 0000000000001000 R15: 000000000000000c
     FS:  0000000000000000(0000) GS:ffff95acf7800000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000000058 CR3: 000000022c834001 CR4: 00000000001606f0
     Call Trace:
      pagefault_single_data_segment+0x1df/0xc60 [mlx5_ib]
      mlx5_ib_eqe_pf_action+0x7bc/0xa70 [mlx5_ib]
      ? __switch_to+0xe1/0x470
      process_one_work+0x174/0x390
      worker_thread+0x4f/0x3e0
      kthread+0x102/0x140
      ? drain_workqueue+0x130/0x130
      ? kthread_stop+0x110/0x110
      ret_from_fork+0x1f/0x30
    
    Fixes: f27a0d50a4bc ("RDMA/umem: Use umem->owning_mm inside ODP")
    Signed-off-by: Artemy Kovalyov <artemyko@mellanox.com>
    Signed-off-by: Moni Shoua <monis@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c4f5f56327c919c8d5bccb1a1f002ede41b2876
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Mon Jan 29 09:09:41 2018 -0800

    xtensa: SMP: fix ccount_timer_shutdown
    
    [ Upstream commit 4fe8713b873fc881284722ce4ac47995de7cf62c ]
    
    ccount_timer_shutdown is called from the atomic context in the
    secondary_start_kernel, resulting in the following BUG:
    
    BUG: sleeping function called from invalid context
    in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/1
    Preemption disabled at:
      secondary_start_kernel+0xa1/0x130
    Call Trace:
      ___might_sleep+0xe7/0xfc
      __might_sleep+0x41/0x44
      synchronize_irq+0x24/0x64
      disable_irq+0x11/0x14
      ccount_timer_shutdown+0x12/0x20
      clockevents_switch_state+0x82/0xb4
      clockevents_exchange_device+0x54/0x60
      tick_check_new_device+0x46/0x70
      clockevents_register_device+0x8c/0xc8
      clockevents_config_and_register+0x1d/0x2c
      local_timer_setup+0x75/0x7c
      secondary_start_kernel+0xb4/0x130
      should_never_return+0x32/0x35
    
    Use disable_irq_nosync instead of disable_irq to avoid it.
    This is safe because the ccount timer IRQ is per-CPU, and once IRQ is
    masked the ISR will not be called.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e59bb8c7e29b1a01e646b4eddd988196150fbec4
Author: Taniya Das <tdas@codeaurora.org>
Date:   Tue Dec 18 23:49:41 2018 +0530

    clk: qcom: gcc: Use active only source for CPUSS clocks
    
    [ Upstream commit 9ff1a3b4912528f853048ccd9757ba6a2cc75557 ]
    
    The clocks of the CPUSS such as "gcc_cpuss_ahb_clk_src" is a CRITICAL
    clock and needs to vote on the active only source of XO, so as to keep
    the vote as long as CPUSS is active. Similar rbcpr_clk_src is also has
    the same requirement.
    
    Signed-off-by: Taniya Das <tdas@codeaurora.org>
    Fixes: 06391eddb60a ("clk: qcom: Add Global Clock controller (GCC) driver for SDM845")
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ec0f9738076726a930135368e092df1d05310280
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Jan 15 22:46:25 2019 +0300

    clk: ti: Fix error handling in ti_clk_parse_divider_data()
    
    [ Upstream commit 303aef8b84272d73999a3207dd05bbe10ed89dc5 ]
    
    The ti_clk_parse_divider_data() function is only called from
    _get_div_table_from_setup().  That function doesn't look at the return
    value but instead looks at the "*table" pointer.  In this case, if the
    kcalloc() fails then *table is NULL (which means success).  It should
    instead be an error pointer.
    
    The ti_clk_parse_divider_data() function has two callers.  One checks
    for errors and the other doesn't.  I have fixed it so now both handle
    errors.
    
    Fixes: 4f6be5655dc9 ("clk: ti: divider: add driver internal API for parsing divider data")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Tero Kristo <t-kristo@ti.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d874c4f2f911ee34d04b4bd62691711ee2c226ea
Author: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Date:   Thu Jan 24 04:16:45 2019 +0000

    iommu/amd: Fix IOMMU page flush when detach device from a domain
    
    [ Upstream commit 9825bd94e3a2baae1f4874767ae3a7d4c049720e ]
    
    When a VM is terminated, the VFIO driver detaches all pass-through
    devices from VFIO domain by clearing domain id and page table root
    pointer from each device table entry (DTE), and then invalidates
    the DTE. Then, the VFIO driver unmap pages and invalidate IOMMU pages.
    
    Currently, the IOMMU driver keeps track of which IOMMU and how many
    devices are attached to the domain. When invalidate IOMMU pages,
    the driver checks if the IOMMU is still attached to the domain before
    issuing the invalidate page command.
    
    However, since VFIO has already detached all devices from the domain,
    the subsequent INVALIDATE_IOMMU_PAGES commands are being skipped as
    there is no IOMMU attached to the domain. This results in data
    corruption and could cause the PCI device to end up in indeterministic
    state.
    
    Fix this by invalidate IOMMU pages when detach a device, and
    before decrementing the per-domain device reference counts.
    
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Suggested-by: Joerg Roedel <joro@8bytes.org>
    Co-developed-by: Brijesh Singh <brijesh.singh@amd.com>
    Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
    Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Fixes: 6de8ad9b9ee0 ('x86/amd-iommu: Make iommu_flush_pages aware of multiple IOMMUs')
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fe258e8fadbd5e94e5768176ec43e01b3912afcc
Author: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
Date:   Thu Jan 10 16:39:06 2019 +0800

    ipvs: Fix signed integer overflow when setsockopt timeout
    
    [ Upstream commit 53ab60baa1ac4f20b080a22c13b77b6373922fd7 ]
    
    There is a UBSAN bug report as below:
    UBSAN: Undefined behaviour in net/netfilter/ipvs/ip_vs_ctl.c:2227:21
    signed integer overflow:
    -2147483647 * 1000 cannot be represented in type 'int'
    
    Reproduce program:
            #include <stdio.h>
            #include <sys/types.h>
            #include <sys/socket.h>
    
            #define IPPROTO_IP 0
            #define IPPROTO_RAW 255
    
            #define IP_VS_BASE_CTL          (64+1024+64)
            #define IP_VS_SO_SET_TIMEOUT    (IP_VS_BASE_CTL+10)
    
            /* The argument to IP_VS_SO_GET_TIMEOUT */
            struct ipvs_timeout_t {
                    int tcp_timeout;
                    int tcp_fin_timeout;
                    int udp_timeout;
            };
    
            int main() {
                    int ret = -1;
                    int sockfd = -1;
                    struct ipvs_timeout_t to;
    
                    sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
                    if (sockfd == -1) {
                            printf("socket init error\n");
                            return -1;
                    }
    
                    to.tcp_timeout = -2147483647;
                    to.tcp_fin_timeout = -2147483647;
                    to.udp_timeout = -2147483647;
    
                    ret = setsockopt(sockfd,
                                     IPPROTO_IP,
                                     IP_VS_SO_SET_TIMEOUT,
                                     (char *)(&to),
                                     sizeof(to));
    
                    printf("setsockopt return %d\n", ret);
                    return ret;
            }
    
    Return -EINVAL if the timeout value is negative or max than 'INT_MAX / HZ'.
    
    Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
    Acked-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 61e454511cfdb49ba5a78000a89c73697602bf6d
Author: Guo Ren <ren_guo@c-sky.com>
Date:   Sat Jan 12 16:16:27 2019 +0800

    riscv: fixup max_low_pfn with PFN_DOWN.
    
    [ Upstream commit 28198c4639b39899a728ac89aea29d2a7a72562f ]
    
    max_low_pfn should be pfn_size not byte_size.
    
    Signed-off-by: Guo Ren <ren_guo@c-sky.com>
    Signed-off-by: Mao Han <mao_han@c-sky.com>
    Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 98c9a1d0a70da13d9c2f0f05d878fb0b2e9060ec
Author: Jerry Snitselaar <jsnitsel@redhat.com>
Date:   Sat Jan 19 10:38:05 2019 -0700

    iommu/amd: Unmap all mapped pages in error path of map_sg
    
    [ Upstream commit f1724c0883bb0ce93b8dcb94b53dcca3b75ac9a7 ]
    
    In the error path of map_sg there is an incorrect if condition
    for breaking out of the loop that searches the scatterlist
    for mapped pages to unmap. Instead of breaking out of the
    loop once all the pages that were mapped have been unmapped,
    it will break out of the loop after it has unmapped 1 page.
    Fix the condition, so it breaks out of the loop only after
    all the mapped pages have been unmapped.
    
    Fixes: 80187fd39dcb ("iommu/amd: Optimize map_sg and unmap_sg")
    Cc: Joerg Roedel <joro@8bytes.org>
    Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 447ecf49a890aa0abe6a620877ecd59501cd32d4
Author: Jerry Snitselaar <jsnitsel@redhat.com>
Date:   Thu Jan 17 12:29:02 2019 -0700

    iommu/amd: Call free_iova_fast with pfn in map_sg
    
    [ Upstream commit 51d8838d66d3249508940d8f59b07701f2129723 ]
    
    In the error path of map_sg, free_iova_fast is being called with
    address instead of the pfn. This results in a bad value getting into
    the rcache, and can result in hitting a BUG_ON when
    iova_magazine_free_pfns is called.
    
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
    Fixes: 80187fd39dcb ("iommu/amd: Optimize map_sg and unmap_sg")
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 81325d15bf13f4479b44bf08c8c0ee677cc16b3e
Author: Brian Welty <brian.welty@intel.com>
Date:   Thu Jan 17 12:41:32 2019 -0800

    IB/{hfi1, qib}: Fix WC.byte_len calculation for UD_SEND_WITH_IMM
    
    [ Upstream commit 904bba211acc2112fdf866e5a2bc6cd9ecd0de1b ]
    
    The work completion length for a receiving a UD send with immediate is
    short by 4 bytes causing application using this opcode to fail.
    
    The UD receive logic incorrectly subtracts 4 bytes for immediate
    value. These bytes are already included in header length and are used to
    calculate header/payload split, so the result is these 4 bytes are
    subtracted twice, once when the header length subtracted from the overall
    length and once again in the UD opcode specific path.
    
    Remove the extra subtraction when handling the opcode.
    
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Signed-off-by: Brian Welty <brian.welty@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 32a45740018ae4675d2c1b32acf0be86ddc070a2
Author: Tony Jones <tonyj@suse.de>
Date:   Sun Jan 20 11:14:14 2019 -0800

    perf script: Fix crash when processing recorded stat data
    
    [ Upstream commit 8bf8c6da53c2265aea365a1de6038f118f522113 ]
    
    While updating perf to work with Python3 and Python2 I noticed that the
    stat-cpi script was dumping core.
    
    $ perf  stat -e cycles,instructions record -o /tmp/perf.data /bin/false
    
     Performance counter stats for '/bin/false':
    
               802,148      cycles
    
               604,622      instructions                                                       802,148      cycles
               604,622      instructions
    
           0.001445842 seconds time elapsed
    
    $ perf script -i /tmp/perf.data -s scripts/python/stat-cpi.py
    Segmentation fault (core dumped)
    ...
    ...
        rblist=rblist@entry=0xb2a200 <rt_stat>,
        new_entry=new_entry@entry=0x7ffcb755c310) at util/rblist.c:33
        ctx=<optimized out>, type=<optimized out>, create=<optimized out>,
        cpu=<optimized out>, evsel=<optimized out>) at util/stat-shadow.c:118
        ctx=<optimized out>, type=<optimized out>, st=<optimized out>)
        at util/stat-shadow.c:196
        count=count@entry=727442, cpu=cpu@entry=0, st=0xb2a200 <rt_stat>)
        at util/stat-shadow.c:239
        config=config@entry=0xafeb40 <stat_config>,
        counter=counter@entry=0x133c6e0) at util/stat.c:372
    ...
    ...
    
    The issue is that since 1fcd03946b52 perf_stat__update_shadow_stats now calls
    update_runtime_stat passing rt_stat rather than calling update_stats but
    perf_stat__init_shadow_stats has never been called to initialize rt_stat in
    the script path processing recorded stat data.
    
    Since I can't see any reason why perf_stat__init_shadow_stats() is presently
    initialized like it is in builtin-script.c::perf_sample__fprint_metric()
    [4bd1bef8bba2f] I'm proposing it instead be initialized once in __cmd_script
    
    Committer testing:
    
    After applying the patch:
    
      # perf script -i /tmp/perf.data -s tools/perf/scripts/python/stat-cpi.py
           0.001970: cpu -1, thread -1 -> cpi 1.709079 (1075684/629394)
      #
    
    No segfault.
    
    Signed-off-by: Tony Jones <tonyj@suse.de>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Tested-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jin Yao <yao.jin@linux.intel.com>
    Fixes: 1fcd03946b52 ("perf stat: Update per-thread shadow stats")
    Link: http://lkml.kernel.org/r/20190120191414.12925-1-tonyj@suse.de
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e7d1a38846e07321ded1391721d7ea96882f50e4
Author: Stephane Eranian <eranian@google.com>
Date:   Sat Jan 19 00:12:39 2019 -0800

    perf tools: Handle TOPOLOGY headers with no CPU
    
    [ Upstream commit 1497e804d1a6e2bd9107ddf64b0310449f4673eb ]
    
    This patch fixes an issue in cpumap.c when used with the TOPOLOGY
    header. In some configurations, some NUMA nodes may have no CPU (empty
    cpulist). Yet a cpumap map must be created otherwise perf abort with an
    error. This patch handles this case by creating a dummy map.
    
      Before:
    
      $ perf record -o - -e cycles noploop 2 | perf script -i -
      0x6e8 [0x6c]: failed to process type: 80
    
      After:
    
      $ perf record -o - -e cycles noploop 2 | perf script -i -
      noploop for 2 seconds
    
    Signed-off-by: Stephane Eranian <eranian@google.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1547885559-1657-1-git-send-email-eranian@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 76fb9909983eddb12d07f7f1fc59a6a700a2adb6
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Fri Jan 18 11:34:15 2019 -0300

    perf python: Remove -fstack-clash-protection when building with some clang versions
    
    [ Upstream commit 94ec1eb711db69be1414b56b3160b816e86a5c5b ]
    
    These options are not present in some (all?) clang versions, so when we
    build for a distro that has a gcc new enough to have these options and
    that the distro python build config settings use them but clang doesn't
    support, b00m.
    
    This is the case with fedora rawhide (now gearing towards f30), so check
    if clang has the  and remove the missing ones from CFLAGS.
    
    Cc: Eduardo Habkost <ehabkost@redhat.com>
    Cc: Thiago Macieira <thiago.macieira@intel.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lkml.kernel.org/n/tip-5q50q9w458yawgxf9ez54jbp@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5b1eed6b863ef020a6309d9040f3cea31fcdb10
Author: Stephane Eranian <eranian@google.com>
Date:   Thu Jan 10 17:17:16 2019 -0800

    perf core: Fix perf_proc_update_handler() bug
    
    [ Upstream commit 1a51c5da5acc6c188c917ba572eebac5f8793432 ]
    
    The perf_proc_update_handler() handles /proc/sys/kernel/perf_event_max_sample_rate
    syctl variable.  When the PMU IRQ handler timing monitoring is disabled, i.e,
    when /proc/sys/kernel/perf_cpu_time_max_percent is equal to 0 or 100,
    then no modification to sysctl_perf_event_sample_rate is allowed to prevent
    possible hang from wrong values.
    
    The problem is that the test to prevent modification is made after the
    sysctl variable is modified in perf_proc_update_handler().
    
    You get an error:
    
      $ echo 10001 >/proc/sys/kernel/perf_event_max_sample_rate
      echo: write error: invalid argument
    
    But the value is still modified causing all sorts of inconsistencies:
    
      $ cat /proc/sys/kernel/perf_event_max_sample_rate
      10001
    
    This patch fixes the problem by moving the parsing of the value after
    the test.
    
    Committer testing:
    
      # echo 100 > /proc/sys/kernel/perf_cpu_time_max_percent
      # echo 10001 > /proc/sys/kernel/perf_event_max_sample_rate
      -bash: echo: write error: Invalid argument
      # cat /proc/sys/kernel/perf_event_max_sample_rate
      10001
      #
    
    Signed-off-by: Stephane Eranian <eranian@google.com>
    Reviewed-by: Andi Kleen <ak@linux.intel.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1547169436-6266-1-git-send-email-eranian@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 57fe34af562e2601aa52877e73d411b442a1d72c
Author: Andi Kleen <ak@linux.intel.com>
Date:   Thu Jan 17 11:48:34 2019 -0800

    perf script: Fix crash with printing mixed trace point and other events
    
    [ Upstream commit 96167167b6e17b25c0e05ecc31119b73baeab094 ]
    
    'perf script' crashes currently when printing mixed trace points and
    other events because the trace format does not handle events without
    trace meta data. Add a simple check to avoid that.
    
      % cat > test.c
      main()
      {
          printf("Hello world\n");
      }
      ^D
      % gcc -g -o test test.c
      % sudo perf probe -x test 'test.c:3'
      % perf record -e '{cpu/cpu-cycles,period=10000/,probe_test:main}:S' ./test
      % perf script
      <segfault>
    
    Committer testing:
    
    Before:
    
      # perf probe -x /lib64/libc-2.28.so malloc
      Added new event:
        probe_libc:malloc    (on malloc in /usr/lib64/libc-2.28.so)
    
      You can now use it in all perf tools, such as:
    
            perf record -e probe_libc:malloc -aR sleep 1
    
      # perf probe -l
      probe_libc:malloc    (on __libc_malloc@malloc/malloc.c in /usr/lib64/libc-2.28.so)
      # perf record -e '{cpu/cpu-cycles,period=10000/,probe_libc:*}:S' sleep 1
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.023 MB perf.data (40 samples) ]
      # perf script
      Segmentation fault (core dumped)
      ^C
      #
    
    After:
    
      # perf script | head -6
         sleep 2888 94796.944981: 16198 cpu/cpu-cycles,period=10000/: ffffffff925dc04f get_random_u32+0x1f (/lib/modules/5.0.0-rc2+/build/vmlinux)
         sleep 2888 [-01] 94796.944981: probe_libc:malloc:
         sleep 2888 94796.944983:  4713 cpu/cpu-cycles,period=10000/: ffffffff922763af change_protection+0xcf (/lib/modules/5.0.0-rc2+/build/vmlinux)
         sleep 2888 [-01] 94796.944983: probe_libc:malloc:
         sleep 2888 94796.944986:  9934 cpu/cpu-cycles,period=10000/: ffffffff922777e0 move_page_tables+0x0 (/lib/modules/5.0.0-rc2+/build/vmlinux)
         sleep 2888 [-01] 94796.944986: probe_libc:malloc:
      #
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Link: http://lkml.kernel.org/r/20190117194834.21940-1-andi@firstfloor.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b990e9ce05c0a7999e2b85fc911ccf78392d03a9
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Jan 14 14:28:50 2019 +0100

    netfilter: nft_compat: destroy function must not have side effects
    
    [ Upstream commit b2e3d68d1251a051a620f9086e18f7ffa6833b5b ]
    
    The nft_compat destroy function deletes the nft_xt object from a list.
    This isn't allowed anymore. Destroy functions are called asynchronously,
    i.e. next batch can find the object that has a pending ->destroy()
    invocation:
    
    cpu0                       cpu1
     worker
       ->destroy               for_each_entry()
                                 if (x == ...
                                    return x->ops;
         list_del(x)
         kfree_rcu(x)
                               expr->ops->... // ops was free'd
    
    To resolve this, the list_del needs to occur before the transaction
    mutex gets released.  nf_tables has a 'deactivate' hook for this
    purpose, so use that to unlink the object from the list.
    
    Fixes: 0935d5588400 ("netfilter: nf_tables: asynchronous release")
    Reported-by: Taehee Yoo <ap420073@gmail.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ae9dc017941ca3e8f815e261714719943f41d161
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Jan 14 14:28:49 2019 +0100

    netfilter: nft_compat: make lists per netns
    
    [ Upstream commit cf52572ebbd7189a1966c2b5fc34b97078cd1dce ]
    
    There are two problems with nft_compat since the netlink config
    plane uses a per-netns mutex:
    
    1. Concurrent add/del accesses to the same list
    2. accesses to a list element after it has been free'd already.
    
    This patch fixes the first problem.
    
    Freeing occurs from a work queue, after transaction mutexes have been
    released, i.e., it still possible for a new transaction (even from
    same net ns) to find the to-be-deleted expression in the list.
    
    The ->destroy functions are not allowed to have any such side effects,
    i.e. the list_del() in the destroy function is not allowed.
    
    This part of the problem is solved in the next patch.
    I tried to make this work by serializing list access via mutex
    and by moving list_del() to a deactivate callback, but
    Taehee spotted following race on this approach:
    
      NET #0                          NET #1
       >select_ops()
       ->init()
                                       ->select_ops()
       ->deactivate()
       ->destroy()
          nft_xt_put()
           kfree_rcu(xt, rcu_head);
                                       ->init() <-- use-after-free occurred.
    
    Unfortunately, we can't increment reference count in
    select_ops(), because we can't undo the refcount increase in
    case a different expression fails in the same batch.
    
    (The destroy hook will only be called in case the expression
     was initialized successfully).
    
    Fixes: f102d66b335a ("netfilter: nf_tables: use dedicated mutex to guard transactions")
    Reported-by: Taehee Yoo <ap420073@gmail.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 80a7d0a78c2e70a3862e5aeb2bff3b6f6570d545
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Jan 14 14:28:48 2019 +0100

    netfilter: nft_compat: use refcnt_t type for nft_xt reference count
    
    [ Upstream commit 12c44aba6618b7f6c437076e5722237190f6cd5f ]
    
    Using standard integer type was fine while all operations on it were
    guarded by the nftnl subsys mutex.
    
    This isn't true anymore:
    1. transactions are guarded only by a pernet mutex, so concurrent
       rule manipulation in different netns is racy
    2. the ->destroy hook runs from a work queue after the transaction
       mutex has been released already.
    
    cpu0                           cpu1 (net 1)        cpu2 (net 2)
     kworker
        nft_compat->destroy        nft_compat->init    nft_compat->init
          if (--nft_xt->ref == 0)   nft_xt->ref++        nft_xt->ref++
    
    Switch to refcount_t.  Doing this however only fixes a minor aspect,
    nft_compat also performs linked-list operations in an unsafe way.
    
    This is addressed in the next two patches.
    
    Fixes: f102d66b335a ("netfilter: nf_tables: use dedicated mutex to guard transactions")
    Fixes: 0935d5588400 ("netfilter: nf_tables: asynchronous release")
    Reported-by: Taehee Yoo <ap420073@gmail.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9a67c2ab689654937e3417c20b0a32d4b3ba61d5
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Thu Jan 17 12:30:17 2019 +0100

    perf ordered_events: Fix crash in ordered_events__free
    
    [ Upstream commit 99d86c8b88393e29cf07c020585f2c8afbcdd97d ]
    
    Song Liu reported crash in 'perf record':
    
      > #0  0x0000000000500055 in ordered_events(float, long double,...)(...) ()
      > #1  0x0000000000500196 in ordered_events.reinit ()
      > #2  0x00000000004fe413 in perf_session.process_events ()
      > #3  0x0000000000440431 in cmd_record ()
      > #4  0x00000000004a439f in run_builtin ()
      > #5  0x000000000042b3e5 in main ()"
    
    This can happen when we get out of buffers during event processing.
    
    The subsequent ordered_events__free() call assumes oe->buffer != NULL
    and crashes. Add a check to prevent that.
    
    Reported-by: Song Liu <liu.song.a23@gmail.com>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Reviewed-by: Song Liu <liu.song.a23@gmail.com>
    Tested-by: Song Liu <liu.song.a23@gmail.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/r/20190117113017.12977-1-jolsa@kernel.org
    Fixes: d5ceb62b3654 ("perf ordered_events: Add 'struct ordered_events_buffer' layer")
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c78ed6198ac85fdf4e9b1af9ccfe79e5da80cda
Author: Su Yanjun <suyj.fnst@cn.fujitsu.com>
Date:   Sun Jan 6 21:31:20 2019 -0500

    vti4: Fix a ipip packet processing bug in 'IPCOMP' virtual tunnel
    
    [ Upstream commit dd9ee3444014e8f28c0eefc9fffc9ac9c5248c12 ]
    
    Recently we run a network test over ipcomp virtual tunnel.We find that
    if a ipv4 packet needs fragment, then the peer can't receive
    it.
    
    We deep into the code and find that when packet need fragment the smaller
    fragment will be encapsulated by ipip not ipcomp. So when the ipip packet
    goes into xfrm, it's skb->dev is not properly set. The ipv4 reassembly code
    always set skb'dev to the last fragment's dev. After ipv4 defrag processing,
    when the kernel rp_filter parameter is set, the skb will be drop by -EXDEV
    error.
    
    This patch adds compatible support for the ipip process in ipcomp virtual tunnel.
    
    Signed-off-by: Su Yanjun <suyj.fnst@cn.fujitsu.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 97bb064bd2dc15411c710a73c7955faf2b9a64c4
Author: Alistair Strachan <astrachan@google.com>
Date:   Tue Dec 18 20:32:48 2018 -0500

    media: uvcvideo: Fix 'type' check leading to overflow
    
    commit 47bb117911b051bbc90764a8bff96543cbd2005f upstream.
    
    When initially testing the Camera Terminal Descriptor wTerminalType
    field (buffer[4]), no mask is used. Later in the function, the MSB is
    overloaded to store the descriptor subtype, and so a mask of 0x7fff
    is used to check the type.
    
    If a descriptor is specially crafted to set this overloaded bit in the
    original wTerminalType field, the initial type check will fail (falling
    through, without adjusting the buffer size), but the later type checks
    will pass, assuming the buffer has been made suitably large, causing an
    overflow.
    
    Avoid this problem by checking for the MSB in the wTerminalType field.
    If the bit is set, assume the descriptor is bad, and abort parsing it.
    
    Originally reported here:
    https://groups.google.com/forum/#!topic/syzkaller/Ot1fOE6v1d8
    A similar (non-compiling) patch was provided at that time.
    
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Alistair Strachan <astrachan@google.com>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>