commit aec3002d07fd2564cd32e56f126fa6db14a168bb
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Jun 25 11:36:02 2019 +0800

    Linux 4.19.56

commit cd3e49394cb0f45c8dbf3c17c0818cd3d30b1332
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Wed Jun 12 23:35:07 2019 +1000

    powerpc/mm/64s/hash: Reallocate context ids on fork
    
    commit ca72d88378b2f2444d3ec145dd442d449d3fefbc upstream.
    
    When using the Hash Page Table (HPT) MMU, userspace memory mappings
    are managed at two levels. Firstly in the Linux page tables, much like
    other architectures, and secondly in the SLB (Segment Lookaside
    Buffer) and HPT. It's the SLB and HPT that are actually used by the
    hardware to do translations.
    
    As part of the series adding support for 4PB user virtual address
    space using the hash MMU, we added support for allocating multiple
    "context ids" per process, one for each 512TB chunk of address space.
    These are tracked in an array called extended_id in the mm_context_t
    of a process that has done a mapping above 512TB.
    
    If such a process forks (ie. clone(2) without CLONE_VM set) it's mm is
    copied, including the mm_context_t, and then init_new_context() is
    called to reinitialise parts of the mm_context_t as appropriate to
    separate the address spaces of the two processes.
    
    The key step in ensuring the two processes have separate address
    spaces is to allocate a new context id for the process, this is done
    at the beginning of hash__init_new_context(). If we didn't allocate a
    new context id then the two processes would share mappings as far as
    the SLB and HPT are concerned, even though their Linux page tables
    would be separate.
    
    For mappings above 512TB, which use the extended_id array, we
    neglected to allocate new context ids on fork, meaning the parent and
    child use the same ids and therefore share those mappings even though
    they're supposed to be separate. This can lead to the parent seeing
    writes done by the child, which is essentially memory corruption.
    
    There is an additional exposure which is that if the child process
    exits, all its context ids are freed, including the context ids that
    are still in use by the parent for mappings above 512TB. One or more
    of those ids can then be reallocated to a third process, that process
    can then read/write to the parent's mappings above 512TB. Additionally
    if the freed id is used for the third process's primary context id,
    then the parent is able to read/write to the third process's mappings
    *below* 512TB.
    
    All of these are fundamental failures to enforce separation between
    processes. The only mitigating factor is that the bug only occurs if a
    process creates mappings above 512TB, and most applications still do
    not create such mappings.
    
    Only machines using the hash page table MMU are affected, eg. PowerPC
    970 (G5), PA6T, Power5/6/7/8/9. By default Power9 bare metal machines
    (powernv) use the Radix MMU and are not affected, unless the machine
    has been explicitly booted in HPT mode (using disable_radix on the
    kernel command line). KVM guests on Power9 may be affected if the host
    or guest is configured to use the HPT MMU. LPARs under PowerVM on
    Power9 are affected as they always use the HPT MMU. Kernels built with
    PAGE_SIZE=4K are not affected.
    
    The fix is relatively simple, we need to reallocate context ids for
    all extended mappings on fork.
    
    Fixes: f384796c40dc ("powerpc/mm: Add support for handling > 512TB address in SLB miss")
    Cc: stable@vger.kernel.org # v4.17+
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c4fe20091cdc348e0eada94a91d655f0d851bab
Author: James Morse <james.morse@arm.com>
Date:   Mon Jun 3 18:25:31 2019 +0100

    x86/resctrl: Don't stop walking closids when a locksetup group is found
    
    commit 87d3aa28f345bea77c396855fa5d5fec4c24461f upstream.
    
    When a new control group is created __init_one_rdt_domain() walks all
    the other closids to calculate the sets of used and unused bits.
    
    If it discovers a pseudo_locksetup group, it breaks out of the loop.  This
    means any later closid doesn't get its used bits added to used_b.  These
    bits will then get set in unused_b, and added to the new control group's
    configuration, even if they were marked as exclusive for a later closid.
    
    When encountering a pseudo_locksetup group, we should continue. This is
    because "a resource group enters 'pseudo-locked' mode after the schemata is
    written while the resource group is in 'pseudo-locksetup' mode." When we
    find a pseudo_locksetup group, its configuration is expected to be
    overwritten, we can skip it.
    
    Fixes: dfe9674b04ff6 ("x86/intel_rdt: Enable entering of pseudo-locksetup mode")
    Signed-off-by: James Morse <james.morse@arm.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Reinette Chatre <reinette.chatre@intel.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: H Peter Avin <hpa@zytor.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20190603172531.178830-1-james.morse@arm.com
    [Dropped comment due to lack of space]
    Signed-off-by: James Morse <james.morse@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d451b505b67645c65a10ff159b7ad0a93dcc29ea
Author: Jouni Malinen <j@w1.fi>
Date:   Tue May 28 01:46:43 2019 +0300

    mac80211: Do not use stack memory with scatterlist for GMAC
    
    commit a71fd9dac23613d96ba3c05619a8ef4fd6cdf9b9 upstream.
    
    ieee80211_aes_gmac() uses the mic argument directly in sg_set_buf() and
    that does not allow use of stack memory (e.g., BUG_ON() is hit in
    sg_set_buf() with CONFIG_DEBUG_SG). BIP GMAC TX side is fine for this
    since it can use the skb data buffer, but the RX side was using a stack
    variable for deriving the local MIC value to compare against the
    received one.
    
    Fix this by allocating heap memory for the mic buffer.
    
    This was found with hwsim test case ap_cipher_bip_gmac_128 hitting that
    BUG_ON() and kernel panic.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Jouni Malinen <j@w1.fi>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72dc6786d77a0c45cf68ccccff2225bd67b9cf82
Author: Andy Strohman <andrew@andrewstrohman.com>
Date:   Fri May 24 23:27:29 2019 -0700

    nl80211: fix station_info pertid memory leak
    
    commit f77bf4863dc2218362f4227d56af4a5f3f08830c upstream.
    
    When dumping stations, memory allocated for station_info's
    pertid member will leak if the nl80211 header cannot be added to
    the sk_buff due to insufficient tail room.
    
    I noticed this leak in the kmalloc-2048 cache.
    
    Cc: stable@vger.kernel.org
    Fixes: 8689c051a201 ("cfg80211: dynamically allocate per-tid stats for station info")
    Signed-off-by: Andy Strohman <andy@uplevelsystems.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e1007ac47d85dacf6d45821a2870b6268499700
Author: Yu Wang <yyuwang@codeaurora.org>
Date:   Fri May 10 17:04:52 2019 +0800

    mac80211: handle deauthentication/disassociation from TDLS peer
    
    commit 79c92ca42b5a3e0ea172ea2ce8df8e125af237da upstream.
    
    When receiving a deauthentication/disassociation frame from a TDLS
    peer, a station should not disconnect the current AP, but only
    disable the current TDLS link if it's enabled.
    
    Without this change, a TDLS issue can be reproduced by following the
    steps as below:
    
    1. STA-1 and STA-2 are connected to AP, bidirection traffic is running
       between STA-1 and STA-2.
    2. Set up TDLS link between STA-1 and STA-2, stay for a while, then
       teardown TDLS link.
    3. Repeat step #2 and monitor the connection between STA and AP.
    
    During the test, one STA may send a deauthentication/disassociation
    frame to another, after TDLS teardown, with reason code 6/7, which
    means: Class 2/3 frame received from nonassociated STA.
    
    On receive this frame, the receiver STA will disconnect the current
    AP and then reconnect. It's not a expected behavior, purpose of this
    frame should be disabling the TDLS link, not the link with AP.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Yu Wang <yyuwang@codeaurora.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccf6a155844bd7aad395f0c755b879fec870b7e0
Author: Manikanta Pubbisetty <mpubbise@codeaurora.org>
Date:   Wed May 8 14:55:33 2019 +0530

    {nl,mac}80211: allow 4addr AP operation on crypto controlled devices
    
    commit 33d915d9e8ce811d8958915ccd18d71a66c7c495 upstream.
    
    As per the current design, in the case of sw crypto controlled devices,
    it is the device which advertises the support for AP/VLAN iftype based
    on it's ability to tranmsit packets encrypted in software
    (In VLAN functionality, group traffic generated for a specific
    VLAN group is always encrypted in software). Commit db3bdcb9c3ff
    ("mac80211: allow AP_VLAN operation on crypto controlled devices")
    has introduced this change.
    
    Since 4addr AP operation also uses AP/VLAN iftype, this conditional
    way of advertising AP/VLAN support has broken 4addr AP mode operation on
    crypto controlled devices which do not support VLAN functionality.
    
    In the case of ath10k driver, not all firmwares have support for VLAN
    functionality but all can support 4addr AP operation. Because AP/VLAN
    support is not advertised for these devices, 4addr AP operations are
    also blocked.
    
    Fix this by allowing 4addr operation on devices which do not support
    AP/VLAN iftype but can support 4addr AP operation (decision is based on
    the wiphy flag WIPHY_FLAG_4ADDR_AP).
    
    Cc: stable@vger.kernel.org
    Fixes: db3bdcb9c3ff ("mac80211: allow AP_VLAN operation on crypto controlled devices")
    Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e879ef1cb5baddebe1f12a9a3940a87d8e61558
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Feb 13 15:13:30 2019 +0100

    mac80211: drop robust management frames from unknown TA
    
    commit 588f7d39b3592a36fb7702ae3b8bdd9be4621e2f upstream.
    
    When receiving a robust management frame, drop it if we don't have
    rx->sta since then we don't have a security association and thus
    couldn't possibly validate the frame.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17d941dc30337840d962dddbddfdcf9dac7c4b22
Author: Eric Biggers <ebiggers@google.com>
Date:   Mon Jun 10 13:02:19 2019 -0700

    cfg80211: fix memory leak of wiphy device name
    
    commit 4f488fbca2a86cc7714a128952eead92cac279ab upstream.
    
    In wiphy_new_nm(), if an error occurs after dev_set_name() and
    device_initialize() have already been called, it's necessary to call
    put_device() (via wiphy_free()) to avoid a memory leak.
    
    Reported-by: syzbot+7fddca22578bc67c3fe4@syzkaller.appspotmail.com
    Fixes: 1f87f7d3a3b4 ("cfg80211: add rfkill support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5293c79c6f60eafba13694bec1770b3c65507b99
Author: Steve French <stfrench@microsoft.com>
Date:   Mon Jun 17 14:49:07 2019 -0500

    SMB3: retry on STATUS_INSUFFICIENT_RESOURCES instead of failing write
    
    commit 8d526d62db907e786fd88948c75d1833d82bd80e upstream.
    
    Some servers such as Windows 10 will return STATUS_INSUFFICIENT_RESOURCES
    as the number of simultaneous SMB3 requests grows (even though the client
    has sufficient credits).  Return EAGAIN on STATUS_INSUFFICIENT_RESOURCES
    so that we can retry writes which fail with this status code.
    
    This (for example) fixes large file copies to Windows 10 on fast networks.
    
    Signed-off-by: Steve French <stfrench@microsoft.com>
    CC: Stable <stable@vger.kernel.org>
    Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db7f1076c0bd26832ee3b94eccc1a815c7dac32d
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Sat Jun 22 15:47:01 2019 +0200

    Bluetooth: Fix regression with minimum encryption key size alignment
    
    commit 693cd8ce3f882524a5d06f7800dd8492411877b3 upstream.
    
    When trying to align the minimum encryption key size requirement for
    Bluetooth connections, it turns out doing this in a central location in
    the HCI connection handling code is not possible.
    
    Original Bluetooth version up to 2.0 used a security model where the
    L2CAP service would enforce authentication and encryption.  Starting
    with Bluetooth 2.1 and Secure Simple Pairing that model has changed into
    that the connection initiator is responsible for providing an encrypted
    ACL link before any L2CAP communication can happen.
    
    Now connecting Bluetooth 2.1 or later devices with Bluetooth 2.0 and
    before devices are causing a regression.  The encryption key size check
    needs to be moved out of the HCI connection handling into the L2CAP
    channel setup.
    
    To achieve this, the current check inside hci_conn_security() has been
    moved into l2cap_check_enc_key_size() helper function and then called
    from four decisions point inside L2CAP to cover all combinations of
    Secure Simple Pairing enabled devices and device using legacy pairing
    and legacy service security model.
    
    Fixes: d5bb334a8e17 ("Bluetooth: Align minimum encryption key size for LE and BR/EDR connections")
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203643
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e9a6c68de0fd1ce37380e4947941bcd587d6b57
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Wed Apr 24 22:19:17 2019 +0200

    Bluetooth: Align minimum encryption key size for LE and BR/EDR connections
    
    commit d5bb334a8e171b262e48f378bd2096c0ea458265 upstream.
    
    The minimum encryption key size for LE connections is 56 bits and to
    align LE with BR/EDR, enforce 56 bits of minimum encryption key size for
    BR/EDR connections as well.
    
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64e370233a0781aa0954ed4079e90d0bdb748b0e
Author: Gao Xiang <gaoxiang25@huawei.com>
Date:   Thu Jun 13 16:35:41 2019 +0800

    staging: erofs: add requirements field in superblock
    
    commit 5efe5137f05bbb4688890620934538c005e7d1d6 upstream.
    
    There are some backward incompatible features pending
    for months, mainly due to on-disk format expensions.
    
    However, we should ensure that it cannot be mounted with
    old kernels. Otherwise, it will causes unexpected behaviors.
    
    Fixes: ba2b77a82022 ("staging: erofs: add super block operations")
    Cc: <stable@vger.kernel.org> # 4.19+
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6803ce36d496bc8173e3a32f5d396ead5afac02
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Wed May 29 08:15:19 2019 +0200

    drm/vmwgfx: Use the backdoor port if the HB port is not available
    
    commit cc0ba0d8624f210995924bb57a8b181ce8976606 upstream.
    
    The HB port may not be available for various reasons. Either it has been
    disabled by a config option or by the hypervisor for other reasons.
    In that case, make sure we have a backup plan and use the backdoor port
    instead with a performance penalty.
    
    Cc: stable@vger.kernel.org
    Fixes: 89da76fde68d ("drm/vmwgfx: Add VMWare host messaging capability")
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Deepak Rawat <drawat@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7499528bb0783f7a46683e1cad2eab9e5591a5e0
Author: Anisse Astier <aastier@freebox.fr>
Date:   Mon Jun 17 15:22:21 2019 +0200

    arm64: ssbd: explicitly depend on <linux/prctl.h>
    
    commit adeaa21a4b6954e878f3f7d1c5659ed9c1fe567a upstream.
    
    Fix ssbd.c which depends implicitly on asm/ptrace.h including
    linux/prctl.h (through for example linux/compat.h, then linux/time.h,
    linux/seqlock.h, linux/spinlock.h and linux/irqflags.h), and uses
    PR_SPEC* defines.
    
    This is an issue since we'll soon be removing the include from
    asm/ptrace.h.
    
    Fixes: 9cdc0108baa8 ("arm64: ssbd: Add prctl interface for per-thread mitigation")
    Cc: stable@vger.kernel.org
    Signed-off-by: Anisse Astier <aastier@freebox.fr>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e16b5c25466107d2479a5c068668dc1a8fa70e6
Author: Anisse Astier <aastier@freebox.fr>
Date:   Mon Jun 17 15:22:22 2019 +0200

    arm64/sve: <uapi/asm/ptrace.h> should not depend on <uapi/linux/prctl.h>
    
    commit 35341ca0614ab13e1ef34ad4f29a39e15ef31fa8 upstream.
    
    Pulling linux/prctl.h into asm/ptrace.h in the arm64 UAPI headers causes
    userspace build issues for any program (e.g. strace and qemu) that
    includes both <sys/prctl.h> and <linux/ptrace.h> when using musl libc:
    
      | error: redefinition of 'struct prctl_mm_map'
      |  struct prctl_mm_map {
    
    See https://github.com/foundriesio/meta-lmp/commit/6d4a106e191b5d79c41b9ac78fd321316d3013c0
    for a public example of people working around this issue.
    
    Although it's a bit grotty, fix this breakage by duplicating the prctl
    constant definitions. Since these are part of the kernel ABI, they
    cannot be changed in future and so it's not the end of the world to have
    them open-coded.
    
    Fixes: 43d4da2c45b2 ("arm64/sve: ptrace and ELF coredump support")
    Cc: stable@vger.kernel.org
    Acked-by: Dave Martin <Dave.Martin@arm.com>
    Signed-off-by: Anisse Astier <aastier@freebox.fr>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2296fd59eb3007332c66f369e875e08a04a5a94b
Author: Faiz Abbas <faiz_abbas@ti.com>
Date:   Thu May 2 14:17:48 2019 +0530

    ARM: dts: am57xx-idk: Remove support for voltage switching for SD card
    
    commit 88a748419b84187fd1da05637b8e5928b04a1e06 upstream.
    
    If UHS speed modes are enabled, a compatible SD card switches down to
    1.8V during enumeration. If after this a software reboot/crash takes
    place and on-chip ROM tries to enumerate the SD card, the difference in
    IO voltages (host @ 3.3V and card @ 1.8V) may end up damaging the card.
    
    The fix for this is to have support for power cycling the card in
    hardware (with a PORz/soft-reset line causing a power cycle of the
    card). Since am571x-, am572x- and am574x-idk don't have this
    capability, disable voltage switching for these boards.
    
    The major effect of this is that the maximum supported speed
    mode is now high speed(50 MHz) down from SDR104(200 MHz).
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cc87ab841bb1e38e481ea320ea222cdd6cd0faaa
Author: Faiz Abbas <faiz_abbas@ti.com>
Date:   Tue Apr 30 11:38:56 2019 +0530

    ARM: dts: dra76x: Update MMC2_HS200_MANUAL1 iodelay values
    
    commit c3c0b70cd3f801bded7a548198ee1c9851a0ca82 upstream.
    
    Update the MMC2_HS200_MANUAL1 iodelay values to match with the latest
    dra76x data manual[1]. The new iodelay values will have better marginality
    and should prevent issues in corner cases.
    
    Also this particular pinctrl-array is using spaces instead of tabs for
    spacing between the values and the comments. Fix this as well.
    
    [1] http://www.ti.com/lit/ds/symlink/dra76p.pdf
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
    [tony@atomide.com: updated description with a bit more info]
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03426208d1f9e3bd0a4e050481ed29b8e4966460
Author: Fabio Estevam <festevam@gmail.com>
Date:   Mon May 13 00:15:31 2019 -0300

    ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX
    
    commit b25af2ff7c07bd19af74e3f64ff82e2880d13d81 upstream.
    
    Since commit 1e434b703248 ("ARM: imx: update the cpu power up timing
    setting on i.mx6sx") some characters loss is noticed on i.MX6ULL UART
    as reported by Christoph Niedermaier.
    
    The intention of such commit was to increase the SW2ISO field for i.MX6SX
    only, but since cpuidle-imx6sx is also used on i.MX6UL/i.MX6ULL this caused
    unintended side effects on other SoCs.
    
    Fix this problem by keeping the original SW2ISO value for i.MX6UL/i.MX6ULL
    and only increase SW2ISO in the i.MX6SX case.
    
    Cc: stable@vger.kernel.org
    Fixes: 1e434b703248 ("ARM: imx: update the cpu power up timing setting on i.mx6sx")
    Reported-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Tested-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
    Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48ee85dc9c529ddde5bad311fd880b30579619fa
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Thu Jun 13 00:21:40 2019 +0530

    powerpc/bpf: use unsigned division instruction for 64-bit operations
    
    commit 758f2046ea040773ae8ea7f72dd3bbd8fa984501 upstream.
    
    BPF_ALU64 div/mod operations are currently using signed division, unlike
    BPF_ALU32 operations. Fix the same. DIV64 and MOD64 overflow tests pass
    with this fix.
    
    Fixes: 156d0e290e969c ("powerpc/ebpf/jit: Implement JIT compiler for extended BPF")
    Cc: stable@vger.kernel.org # v4.8+
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a96ac5cb8a56ad24c663dd67f8865df30f4f7b84
Author: ShihPo Hung <shihpo.hung@sifive.com>
Date:   Mon Jun 17 12:26:17 2019 +0800

    riscv: mm: synchronize MMU after pte change
    
    commit bf587caae305ae3b4393077fb22c98478ee55755 upstream.
    
    Because RISC-V compliant implementations can cache invalid entries
    in TLB, an SFENCE.VMA is necessary after changes to the page table.
    This patch adds an SFENCE.vma for the vmalloc_fault path.
    
    Signed-off-by: ShihPo Hung <shihpo.hung@sifive.com>
    [paul.walmsley@sifive.com: reversed tab->whitespace conversion,
     wrapped comment lines]
    Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Palmer Dabbelt <palmer@sifive.com>
    Cc: Albert Ou <aou@eecs.berkeley.edu>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: linux-riscv@lists.infradead.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ad9a23e6daef31c23895c5a0d8f0bc1fb4f69f6
Author: Willem de Bruijn <willemb@google.com>
Date:   Fri Jun 7 16:46:07 2019 -0400

    can: purge socket error queue on sock destruct
    
    commit fd704bd5ee749d560e86c4f1fd2ef486d8abf7cf upstream.
    
    CAN supports software tx timestamps as of the below commit. Purge
    any queued timestamp packets on socket destroy.
    
    Fixes: 51f31cabe3ce ("ip: support for TX timestamps on UDP and RAW sockets")
    Reported-by: syzbot+a90604060cb40f5bdd16@syzkaller.appspotmail.com
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Cc: linux-stable <stable@vger.kernel.org>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ea81cc49c59007a23a54fcbe7ed3cc06eac2c6a
Author: Joakim Zhang <qiangqing.zhang@nxp.com>
Date:   Thu Jan 31 09:37:22 2019 +0000

    can: flexcan: fix timeout when set small bitrate
    
    commit 247e5356a709eb49a0d95ff2a7f07dac05c8252c upstream.
    
    Current we can meet timeout issue when setting a small bitrate like
    10000 as follows on i.MX6UL EVK board (ipg clock = 66MHZ, per clock =
    30MHZ):
    
    | root@imx6ul7d:~# ip link set can0 up type can bitrate 10000
    
    A link change request failed with some changes committed already.
    Interface can0 may have been left with an inconsistent configuration,
    please check.
    
    | RTNETLINK answers: Connection timed out
    
    It is caused by calling of flexcan_chip_unfreeze() timeout.
    
    Originally the code is using usleep_range(10, 20) for unfreeze
    operation, but the patch (8badd65 can: flexcan: avoid calling
    usleep_range from interrupt context) changed it into udelay(10) which is
    only a half delay of before, there're also some other delay changes.
    
    After double to FLEXCAN_TIMEOUT_US to 100 can fix the issue.
    
    Meanwhile, Rasmus Villemoes reported that even with a timeout of 100,
    flexcan_probe() fails on the MPC8309, which requires a value of at least
    140 to work reliably. 250 works for everyone.
    
    Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
    Cc: linux-stable <stable@vger.kernel.org>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6a2c8b3c24af782c94eda629a07016a129b81e4
Author: Anssi Hannula <anssi.hannula@bitwise.fi>
Date:   Tue Sep 11 14:47:46 2018 +0300

    can: xilinx_can: use correct bittiming_const for CAN FD core
    
    commit 904044dd8fff43e289c11a2f90fa532e946a1d8b upstream.
    
    Commit 9e5f1b273e6a ("can: xilinx_can: add support for Xilinx CAN FD
    core") added a new can_bittiming_const structure for CAN FD cores that
    support larger values for tseg1, tseg2, and sjw than previous Xilinx CAN
    cores, but the commit did not actually take that into use.
    
    Fix that.
    
    Tested with CAN FD core on a ZynqMP board.
    
    Fixes: 9e5f1b273e6a ("can: xilinx_can: add support for Xilinx CAN FD core")
    Reported-by: Shubhrajyoti Datta <shubhrajyoti.datta@gmail.com>
    Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
    Cc: Michal Simek <michal.simek@xilinx.com>
    Reviewed-by: Shubhrajyoti Datta <shubhrajyoti.datta@gmail.com>
    Cc: linux-stable <stable@vger.kernel.org>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c592b1c3a994bb1fd3e8981a3f4d26a173a47511
Author: Naohiro Aota <naohiro.aota@wdc.com>
Date:   Thu Jun 6 16:54:44 2019 +0900

    btrfs: start readahead also in seed devices
    
    commit c4e0540d0ad49c8ceab06cceed1de27c4fe29f6e upstream.
    
    Currently, btrfs does not consult seed devices to start readahead. As a
    result, if readahead zone is added to the seed devices, btrfs_reada_wait()
    indefinitely wait for the reada_ctl to finish.
    
    You can reproduce the hung by modifying btrfs/163 to have larger initial
    file size (e.g. xfs_io pwrite 4M instead of current 256K).
    
    Fixes: 7414a03fbf9e ("btrfs: initial readahead code and prototypes")
    Cc: stable@vger.kernel.org # 3.2+: ce7791ffee1e: Btrfs: fix race between readahead and device replace/removal
    Cc: stable@vger.kernel.org # 3.2+
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17f1dca21d16ef37b3c1d3e6b018ccfcecf7d834
Author: Jaesoo Lee <jalee@purestorage.com>
Date:   Mon Jun 3 16:42:28 2019 -0700

    nvme: Fix u32 overflow in the number of namespace list calculation
    
    [ Upstream commit c8e8c77b3bdbade6e26e8e76595f141ede12b692 ]
    
    The Number of Namespaces (nn) field in the identify controller data structure is
    defined as u32 and the maximum allowed value in NVMe specification is
    0xFFFFFFFEUL. This change fixes the possible overflow of the DIV_ROUND_UP()
    operation used in nvme_scan_ns_list() by casting the nn to u64.
    
    Signed-off-by: Jaesoo Lee <jalee@purestorage.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 71d019a6dae90e0f6e41152fc7962791241e1aaa
Author: Dave Martin <Dave.Martin@arm.com>
Date:   Thu Jun 6 11:33:43 2019 +0100

    arm64: Silence gcc warnings about arch ABI drift
    
    [ Upstream commit ebcc5928c5d925b1c8d968d9c89cdb0d0186db17 ]
    
    Since GCC 9, the compiler warns about evolution of the
    platform-specific ABI, in particular relating for the marshaling of
    certain structures involving bitfields.
    
    The kernel is a standalone binary, and of course nobody would be
    so stupid as to expose structs containing bitfields as function
    arguments in ABI.  (Passing a pointer to such a struct, however
    inadvisable, should be unaffected by this change.  perf and various
    drivers rely on that.)
    
    So these warnings do more harm than good: turn them off.
    
    We may miss warnings about future ABI drift, but that's too bad.
    Future ABI breaks of this class will have to be debugged and fixed
    the traditional way unless the compiler evolves finer-grained
    diagnostics.
    
    Signed-off-by: Dave Martin <Dave.Martin@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d72a4c78c124dfd9fdb6a0404075e5e8fbfaa1ca
Author: Robert Hancock <hancock@sedsystems.ca>
Date:   Wed Jun 5 13:49:00 2019 -0600

    hwmon: (pmbus/core) Treat parameters as paged if on multiple pages
    
    [ Upstream commit 4a60570dce658e3f8885bbcf852430b99f65aca5 ]
    
    Some chips have attributes which exist on more than one page but the
    attribute is not presently marked as paged. This causes the attributes
    to be generated with the same label, which makes it impossible for
    userspace to tell them apart.
    
    Marking all such attributes as paged would result in the page suffix
    being added regardless of whether they were present on more than one
    page or not, which might break existing setups. Therefore, we add a
    second check which treats the attribute as paged, even if not marked as
    such, if it is present on multiple pages.
    
    Fixes: b4ce237b7f7d ("hwmon: (pmbus) Introduce infrastructure to detect sensors and limit registers")
    Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6029e58188053a925eb3a6bd42faf94cb4e839e9
Author: Eduardo Valentin <eduval@amazon.com>
Date:   Wed May 29 19:56:04 2019 -0700

    hwmon: (core) add thermal sensors only if dev->of_node is present
    
    [ Upstream commit c41dd48e21fae3e55b3670ccf2eb562fc1f6a67d ]
    
    Drivers may register to hwmon and request for also registering
    with the thermal subsystem (HWMON_C_REGISTER_TZ). However,
    some of these driver, e.g. marvell phy, may be probed from
    Device Tree or being dynamically allocated, and in the later
    case, it will not have a dev->of_node entry.
    
    Registering with hwmon without the dev->of_node may result in
    different outcomes depending on the device tree, which may
    be a bit misleading. If the device tree blob has no 'thermal-zones'
    node, the *hwmon_device_register*() family functions are going
    to gracefully succeed, because of-thermal,
    *thermal_zone_of_sensor_register() return -ENODEV in this case,
    and the hwmon error path handles this error code as success to
    cover for the case where CONFIG_THERMAL_OF is not set.
    However, if the device tree blob has the 'thermal-zones'
    entry, the *hwmon_device_register*() will always fail on callers
    with no dev->of_node, propagating -EINVAL.
    
    If dev->of_node is not present, calling of-thermal does not
    make sense. For this reason, this patch checks first if the
    device has a of_node before going over the process of registering
    with the thermal subsystem of-thermal interface. And in this case,
    when a caller of *hwmon_device_register*() with HWMON_C_REGISTER_TZ
    and no dev->of_node will still register with hwmon, but not with
    the thermal subsystem. If all the hwmon part bits are in place,
    the registration will succeed.
    
    Fixes: d560168b5d0f ("hwmon: (core) New hwmon registration API")
    Cc: Jean Delvare <jdelvare@suse.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: linux-hwmon@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Eduardo Valentin <eduval@amazon.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 153f2d97d0d7da31ddd8d6a9268338ed924796e2
Author: Alexandra Winter <wintera@linux.ibm.com>
Date:   Wed Jun 5 13:48:50 2019 +0200

    s390/qeth: fix VLAN attribute in bridge_hostnotify udev event
    
    [ Upstream commit 335726195e460cb6b3f795b695bfd31f0ea70ef0 ]
    
    Enabling sysfs attribute bridge_hostnotify triggers a series of udev events
    for the MAC addresses of all currently connected peers. In case no VLAN is
    set for a peer, the device reports the corresponding MAC addresses with
    VLAN ID 4096. This currently results in attribute VLAN=4096 for all
    non-VLAN interfaces in the initial series of events after host-notify is
    enabled.
    
    Instead, no VLAN attribute should be reported in the udev event for
    non-VLAN interfaces.
    
    Only the initial events face this issue. For dynamic changes that are
    reported later, the device uses a validity flag.
    
    This also changes the code so that it now sets the VLAN attribute for
    MAC addresses with VID 0. On Linux, no qeth interface will ever be
    registered with VID 0: Linux kernel registers VID 0 on all network
    interfaces initially, but qeth will drop .ndo_vlan_rx_add_vid for VID 0.
    Peers with other OSs could register MACs with VID 0.
    
    Fixes: 9f48b9db9a22 ("qeth: bridgeport support - address notifications")
    Signed-off-by: Alexandra Winter <wintera@linux.ibm.com>
    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 cedb209bfa5ac33e94cbe49d3c11feefa4f3a48c
Author: Miaohe Lin <linmiaohe@huawei.com>
Date:   Tue Jun 4 06:07:34 2019 +0000

    net: ipvlan: Fix ipvlan device tso disabled while NETIF_F_IP_CSUM is set
    
    [ Upstream commit ceae266bf0ae6564ac16d086bf749a096fa90ded ]
    
    There's some NICs, such as hinic, with NETIF_F_IP_CSUM and NETIF_F_TSO
    on but NETIF_F_HW_CSUM off. And ipvlan device features will be
    NETIF_F_TSO on with NETIF_F_IP_CSUM and NETIF_F_IP_CSUM both off as
    IPVLAN_FEATURES only care about NETIF_F_HW_CSUM. So TSO will be
    disabled in netdev_fix_features.
    For example:
    Features for enp129s0f0:
    rx-checksumming: on
    tx-checksumming: on
            tx-checksum-ipv4: on
            tx-checksum-ip-generic: off [fixed]
            tx-checksum-ipv6: on
    
    Fixes: a188222b6ed2 ("net: Rename NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK")
    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5327e985e61e2a58dcb655417a71da21b74707b0
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed May 29 14:07:39 2019 +0300

    scsi: smartpqi: unlock on error in pqi_submit_raid_request_synchronous()
    
    [ Upstream commit cc8f52609bb4177febade24d11713e20c0893b0a ]
    
    We need to drop the "ctrl_info->sync_request_sem" lock before returning.
    
    Fixes: 6c223761eb54 ("smartpqi: initial commit of Microsemi smartpqi driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Don Brace <don.brace@microsemi.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 04ceb1348973c36f30edc6d96b6b10183aa9cb0c
Author: Avri Altman <avri.altman@wdc.com>
Date:   Tue May 21 11:24:22 2019 +0300

    scsi: ufs: Check that space was properly alloced in copy_query_response
    
    [ Upstream commit 1c90836f70f9a8ef7b7ad9e1fdd8961903e6ced6 ]
    
    struct ufs_dev_cmd is the main container that supports device management
    commands. In the case of a read descriptor request, we assume that the
    proper space was allocated in dev_cmd to hold the returning descriptor.
    
    This is no longer true, as there are flows that doesn't use dev_cmd for
    device management requests, and was wrong in the first place.
    
    Fixes: d44a5f98bb49 (ufs: query descriptor API)
    Signed-off-by: Avri Altman <avri.altman@wdc.com>
    Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
    Acked-by: Bean Huo <beanhuo@micron.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e1a101a9dae995089c5e041bc39a08f41c0c7d66
Author: George G. Davis <george_davis@mentor.com>
Date:   Mon Jun 3 10:30:39 2019 -0400

    scripts/checkstack.pl: Fix arm64 wrong or unknown architecture
    
    [ Upstream commit 4f45d62a52297b10ded963412a158685647ecdec ]
    
    The following error occurs for the `make ARCH=arm64 checkstack` case:
    
    aarch64-linux-gnu-objdump -d vmlinux $(find . -name '*.ko') | \
    perl ./scripts/checkstack.pl arm64
    wrong or unknown architecture "arm64"
    
    As suggested by Masahiro Yamada, fix the above error using regular
    expressions in the same way it was fixed for the `ARCH=x86` case via
    commit fda9f9903be6 ("scripts/checkstack.pl: automatically handle
    32-bit and 64-bit mode for ARCH=x86").
    
    Suggested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: George G. Davis <george_davis@mentor.com>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f74977c274090e76b06cf1bc54f182672dbfafe
Author: Minwoo Im <minwoo.im.dev@gmail.com>
Date:   Sun Jun 2 12:43:39 2019 +0900

    nvmet: fix data_len to 0 for bdev-backed write_zeroes
    
    [ Upstream commit 3562f5d9f21e7779ae442a45197fed6cb247fd22 ]
    
    The WRITE ZEROES command has no data transfer so that we need to
    initialize the struct (nvmet_req *req)->data_len to 0x0.  While
    (nvmet_req *req)->transfer_len is initialized in nvmet_req_init(),
    data_len will be initialized by nowhere which might cause the failure
    with status code NVME_SC_SGL_INVALID_DATA | NVME_SC_DNR randomly.  It's
    because nvmet_req_execute() checks like:
    
            if (unlikely(req->data_len != req->transfer_len)) {
                    req->error_loc = offsetof(struct nvme_common_command, dptr);
                    nvmet_req_complete(req, NVME_SC_SGL_INVALID_DATA | NVME_SC_DNR);
            } else
                    req->execute(req);
    
    This patch fixes req->data_len not to be a randomly assigned by
    initializing it to 0x0 when preparing the command in
    nvmet_bdev_parse_io_cmd().
    
    nvmet_file_parse_io_cmd() which is for file-backed I/O has already
    initialized the data_len field to 0x0, though.
    
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Sagi Grimberg <sagi@grimberg.me>
    Cc: Chaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com>
    Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com>
    Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8388af891e0e4b347894dd9571092faf3104e0c4
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Fri May 17 17:37:22 2019 +0100

    drm/arm/hdlcd: Allow a bit of clock tolerance
    
    [ Upstream commit 1c810739097fdeb31b393b67a0a1e3d7ffdd9f63 ]
    
    On the Arm Juno platform, the HDLCD pixel clock is constrained to 250KHz
    resolution in order to avoid the tiny System Control Processor spending
    aeons trying to calculate exact PLL coefficients. This means that modes
    like my oddball 1600x1200 with 130.89MHz clock get rejected since the
    rate cannot be matched exactly. In practice, though, this mode works
    quite happily with the clock at 131MHz, so let's relax the check to
    allow a little bit of slop.
    
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c7c88deb14d9295931a3be55c3fa08cb1ea91ea
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Fri May 17 17:37:21 2019 +0100

    drm/arm/hdlcd: Actually validate CRTC modes
    
    [ Upstream commit b96151edced4edb6a18aa89a5fa02c7066efff45 ]
    
    Rather than allowing any old mode through, then subsequently refusing
    unmatchable clock rates in atomic_check when it's too late to back out
    and pick a different mode, let's do that validation up-front where it
    will cause unsupported modes to be correctly pruned in the first place.
    
    This also eliminates an issue whereby a perceived clock rate of 0 would
    cause atomic disable to fail and prevent the module from being unloaded.
    
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1fcb0e389538fc751ce092756f0564593b4dca20
Author: Wen He <wen.he_1@nxp.com>
Date:   Wed May 8 10:58:18 2019 +0000

    drm/arm/mali-dp: Add a loop around the second set CVAL and try 5 times
    
    [ Upstream commit 6a88e0c14813d00f8520d0e16cd4136c6cf8b4d4 ]
    
    This patch trying to fix monitor freeze issue caused by drm error
    'flip_done timed out' on LS1028A platform. this set try is make a loop
    around the second setting CVAL and try like 5 times before giveing up.
    
    Signed-off-by: Wen He <wen.he_1@nxp.com>
    Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 377958c3ff2cf358feba192a73c667699ee89d60
Author: Sean Wang <sean.wang@mediatek.com>
Date:   Sat Jun 1 08:16:27 2019 +0800

    net: ethernet: mediatek: Use NET_IP_ALIGN to judge if HW RX_2BYTE_OFFSET is enabled
    
    [ Upstream commit 880c2d4b2fdfd580ebcd6bb7240a8027a1d34751 ]
    
    Should only enable HW RX_2BYTE_OFFSET function in the case NET_IP_ALIGN
    equals to 2.
    
    Signed-off-by: Mark Lee <mark-mc.lee@mediatek.com>
    Signed-off-by: Sean Wang <sean.wang@mediatek.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ee2f9878bc04678a1f30b013272c698468420d0e
Author: Sean Wang <sean.wang@mediatek.com>
Date:   Sat Jun 1 08:16:26 2019 +0800

    net: ethernet: mediatek: Use hw_feature to judge if HWLRO is supported
    
    [ Upstream commit 9e4f56f1a7f3287718d0083b5cb85298dc05a5fd ]
    
    Should hw_feature as hardware capability flags to check if hardware LRO
    got support.
    
    Signed-off-by: Mark Lee <mark-mc.lee@mediatek.com>
    Signed-off-by: Sean Wang <sean.wang@mediatek.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 16cdab63987cb18fb6d025368faeda265c993606
Author: Young Xiao <92siuyang@gmail.com>
Date:   Wed May 29 10:21:48 2019 +0800

    sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD
    
    [ Upstream commit 56cd0aefa475079e9613085b14a0f05037518fed ]
    
    The PERF_EVENT_IOC_PERIOD ioctl command can be used to change the
    sample period of a running perf_event. Consequently, when calculating
    the next event period, the new period will only be considered after the
    previous one has overflowed.
    
    This patch changes the calculation of the remaining event ticks so that
    they are offset if the period has changed.
    
    See commit 3581fe0ef37c ("ARM: 7556/1: perf: fix updated event period in
    response to PERF_EVENT_IOC_PERIOD") for details.
    
    Signed-off-by: Young Xiao <92siuyang@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b460a9bb13db3f442f153c2ab8a9ff8520c368c
Author: Gen Zhang <blackgod016574@gmail.com>
Date:   Fri May 31 09:24:18 2019 +0800

    mdesc: fix a missing-check bug in get_vdev_port_node_info()
    
    [ Upstream commit 80caf43549e7e41a695c6d1e11066286538b336f ]
    
    In get_vdev_port_node_info(), 'node_info->vdev_port.name' is allcoated
    by kstrdup_const(), and it returns NULL when fails. So
    'node_info->vdev_port.name' should be checked.
    
    Signed-off-by: Gen Zhang <blackgod016574@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6bf97a6cb6ce3903ab50f072ff3552a80a5b32da
Author: Yonglong Liu <liuyonglong@huawei.com>
Date:   Fri May 31 16:59:50 2019 +0800

    net: hns: Fix loopback test failed at copper ports
    
    [ Upstream commit 2e1f164861e500f4e068a9d909bbd3fcc7841483 ]
    
    When doing a loopback test at copper ports, the serdes loopback
    and the phy loopback will fail, because of the adjust link had
    not finished, and phy not ready.
    
    Adds sleep between adjust link and test process to fix it.
    
    Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4336ba249b7d6d2a538ac994cc098e586907399e
Author: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
Date:   Fri May 31 10:35:14 2019 +0300

    net: dsa: mv88e6xxx: avoid error message on remove from VLAN 0
    
    [ Upstream commit 62394708f3e01c9f2be6be74eb6305bae1ed924f ]
    
    When non-bridged, non-vlan'ed mv88e6xxx port is moving down, error
    message is logged:
    
    failed to kill vid 0081/0 for device eth_cu_1000_4
    
    This is caused by call from __vlan_vid_del() with vin set to zero, over
    call chain this results into _mv88e6xxx_port_vlan_del() called with
    vid=0, and mv88e6xxx_vtu_get() called from there returns -EINVAL.
    
    On symmetric path moving port up, call goes through
    mv88e6xxx_port_vlan_prepare() that calls mv88e6xxx_port_check_hw_vlan()
    that returns -EOPNOTSUPP for zero vid.
    
    This patch changes mv88e6xxx_vtu_get() to also return -EOPNOTSUPP for
    zero vid, then this error code is explicitly cleared in
    dsa_slave_vlan_rx_kill_vid() and error message is no longer logged.
    
    Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
    Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf51ec92a35e09c64ba024a9afd166712ef0a4f8
Author: Naresh Kamboju <naresh.kamboju@linaro.org>
Date:   Tue May 28 13:18:09 2019 +0100

    selftests: vm: install test_vmalloc.sh for run_vmtests
    
    [ Upstream commit bc2cce3f2ebcae02aa4bb29e3436bf75ee674c32 ]
    
    Add test_vmalloc.sh to TEST_FILES to make sure it gets installed for
    run_vmtests.
    
    Fixed below error:
    ./run_vmtests: line 217: ./test_vmalloc.sh: No such file or directory
    
    Tested with: make TARGETS=vm install INSTALL_PATH=$PWD/x
    
    Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a0e8215eb9f8cc1b28b5c42ea559eece06e8391f
Author: Alex Shi <alex.shi@linux.alibaba.com>
Date:   Mon May 27 14:28:07 2019 +0800

    kselftest/cgroup: fix incorrect test_core skip
    
    [ Upstream commit f97f3f8839eb9de5843066d80819884f7722c8c5 ]
    
    The test_core will skip the
    test_cgcore_no_internal_process_constraint_on_threads test case if the
    'cpu' controller missing in root's subtree_control. In fact we need to
    set the 'cpu' in subtree_control, to make the testing meaningful.
    
    ./test_core
    ...
    ok 4 # skip test_cgcore_no_internal_process_constraint_on_threads
    ...
    
    Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Claudio Zumbo <claudioz@fb.com>
    Cc: Claudio <claudiozumbo@gmail.com>
    Cc: linux-kselftest@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Roman Gushchin <guro@fb.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 59243d6fb45c4a733f06a54c6c85d9d42085115e
Author: Alex Shi <alex.shi@linux.alibaba.com>
Date:   Mon May 27 14:28:06 2019 +0800

    kselftest/cgroup: fix unexpected testing failure on test_core
    
    [ Upstream commit 00e38a5d753d7788852f81703db804a60a84c26e ]
    
    The cgroup testing relys on the root cgroup's subtree_control setting,
    If the 'memory' controller isn't set, some test cases will be failed
    as following:
    
    $sudo  ./test_core
    not ok 1 test_cgcore_internal_process_constraint
    ok 2 test_cgcore_top_down_constraint_enable
    not ok 3 test_cgcore_top_down_constraint_disable
    ...
    
    To correct this unexpected failure, this patch write the 'memory' to
    subtree_control of root to get a right result.
    
    Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Claudio Zumbo <claudioz@fb.com>
    Cc: Claudio <claudiozumbo@gmail.com>
    Cc: linux-kselftest@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Roman Gushchin <guro@fb.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9c2eebe31d756efd8106a0ed4be80e5bda16e179
Author: Alex Shi <alex.shi@linux.alibaba.com>
Date:   Mon May 27 14:28:05 2019 +0800

    kselftest/cgroup: fix unexpected testing failure on test_memcontrol
    
    [ Upstream commit f6131f28057d4fd8922599339e701a2504e0f23d ]
    
    The cgroup testing relies on the root cgroup's subtree_control setting,
    If the 'memory' controller isn't set, all test cases will be failed
    as following:
    
    $ sudo ./test_memcontrol
    not ok 1 test_memcg_subtree_control
    not ok 2 test_memcg_current
    ok 3 # skip test_memcg_min
    not ok 4 test_memcg_low
    not ok 5 test_memcg_high
    not ok 6 test_memcg_max
    not ok 7 test_memcg_oom_events
    ok 8 # skip test_memcg_swap_max
    not ok 9 test_memcg_sock
    not ok 10 test_memcg_oom_group_leaf_events
    not ok 11 test_memcg_oom_group_parent_events
    not ok 12 test_memcg_oom_group_score_events
    
    To correct this unexpected failure, this patch write the 'memory' to
    subtree_control of root to get a right result.
    
    Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
    Cc: Jay Kamat <jgkamat@fb.com>
    Cc: linux-kselftest@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Roman Gushchin <guro@fb.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ae0d1c08843d45f458260b6b9ce99fa1353c16c6
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Thu May 30 05:41:38 2019 -0700

    xtensa: Fix section mismatch between memblock_reserve and mem_reserve
    
    [ Upstream commit adefd051a6707a6ca0ebad278d3c1c05c960fc3b ]
    
    Since commit 9012d011660ea5cf2 ("compiler: allow all arches to enable
    CONFIG_OPTIMIZE_INLINING"), xtensa:tinyconfig fails to build with section
    mismatch errors.
    
    WARNING: vmlinux.o(.text.unlikely+0x68): Section mismatch in reference
            from the function ___pa()
            to the function .meminit.text:memblock_reserve()
    WARNING: vmlinux.o(.text.unlikely+0x74): Section mismatch in reference
            from the function mem_reserve()
            to the function .meminit.text:memblock_reserve()
    FATAL: modpost: Section mismatches detected.
    
    This was not seen prior to the above mentioned commit because mem_reserve()
    was always inlined.
    
    Mark mem_reserve(() as __init_memblock to have it reside in the same
    section as memblock_reserve().
    
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Message-Id: <1559220098-9955-1-git-send-email-linux@roeck-us.net>
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3089c0ea8a1f035be6401acb7330d044366427d3
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Sat May 25 20:20:24 2019 +0800

    MIPS: uprobes: remove set but not used variable 'epc'
    
    [ Upstream commit f532beeeff0c0a3586cc15538bc52d249eb19e7c ]
    
    Fixes gcc '-Wunused-but-set-variable' warning:
    
    arch/mips/kernel/uprobes.c: In function 'arch_uprobe_pre_xol':
    arch/mips/kernel/uprobes.c:115:17: warning: variable 'epc' set but not used [-Wunused-but-set-variable]
    
    It's never used since introduction in
    commit 40e084a506eb ("MIPS: Add uprobes support.")
    
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: <ralf@linux-mips.org>
    Cc: <jhogan@kernel.org>
    Cc: <linux-kernel@vger.kernel.org>
    Cc: <linux-mips@vger.kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 63542eb24ab950e2e102eb383ad659994f1d5410
Author: Kamenee Arumugam <kamenee.arumugam@intel.com>
Date:   Fri May 24 11:45:04 2019 -0400

    IB/hfi1: Validate page aligned for a given virtual address
    
    [ Upstream commit 97736f36dbebf2cda2799db3b54717ba5b388255 ]
    
    User applications can register memory regions for TID buffers that are not
    aligned on page boundaries. Hfi1 is expected to pin those pages in memory
    and cache the pages with mmu_rb. The rb tree will fail to insert pages
    that are not aligned correctly.
    
    Validate whether a given virtual address is page aligned before pinning.
    
    Fixes: 7e7a436ecb6e ("staging/hfi1: Add TID entry program function body")
    Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Signed-off-by: Kamenee Arumugam <kamenee.arumugam@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 4d61fc383bb5ab3ba2a13ed435258c11f0e06839
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Fri May 24 11:44:51 2019 -0400

    IB/{qib, hfi1, rdmavt}: Correct ibv_devinfo max_mr value
    
    [ Upstream commit 35164f5259a47ea756fa1deb3e463ac2a4f10dc9 ]
    
    The command 'ibv_devinfo -v' reports 0 for max_mr.
    
    Fix by assigning the query values after the mr lkey_table has been built
    rather than early on in the driver.
    
    Fixes: 7b1e2099adc8 ("IB/rdmavt: Move memory registration into rdmavt")
    Reviewed-by: Josh Collier <josh.d.collier@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 830991121773d2c937e8c9d0ac3659a87e6796f1
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Fri May 24 11:44:45 2019 -0400

    IB/hfi1: Insure freeze_work work_struct is canceled on shutdown
    
    [ Upstream commit 6d517353c70bb0818b691ca003afdcb5ee5ea44e ]
    
    By code inspection, the freeze_work is never canceled.
    
    Fix by adding a cancel_work_sync in the shutdown path to insure it is no
    longer running.
    
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@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 3fe551cc9e4e4a678bf77232e24fdcef305d4985
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Fri May 24 11:44:38 2019 -0400

    IB/rdmavt: Fix alloc_qpn() WARN_ON()
    
    [ Upstream commit 2abae62a26a265129b364d8c1ef3be55e2c01309 ]
    
    The qpn allocation logic has a WARN_ON() that intends to detect the use of
    an index that will introduce bits in the lower order bits of the QOS bits
    in the QPN.
    
    Unfortunately, it has the following bugs:
    - it misfires when wrapping QPN allocation for non-QOS
    - it doesn't correctly detect low order QOS bits (despite the comment)
    
    The WARN_ON() should not be applied to non-QOS (qos_shift == 1).
    
    Additionally, it SHOULD test the qpn bits per the table below:
    
    2 data VLs:   [qp7, qp6, qp5, qp4, qp3, qp2, qp1] ^
                  [  0,   0,   0,   0,   0,   0, sc0],  qp bit 1 always 0*
    3-4 data VLs: [qp7, qp6, qp5, qp4, qp3, qp2, qp1] ^
                  [  0,   0,   0,   0,   0, sc1, sc0], qp bits [21] always 0
    5-8 data VLs: [qp7, qp6, qp5, qp4, qp3, qp2, qp1] ^
                  [  0,   0,   0,   0, sc2, sc1, sc0] qp bits [321] always 0
    
    Fix by qualifying the warning for qos_shift > 1 and producing the correct
    mask to insure the above bits are zero without generating a superfluous
    warning.
    
    Fixes: 501edc42446e ("IB/rdmavt: Correct warning during QPN allocation")
    Reviewed-by: Kaike Wan <kaike.wan@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 3333e04094246e54ab37406124873af25650ab93
Author: Helge Deller <deller@gmx.de>
Date:   Fri May 24 23:16:25 2019 +0200

    parisc: Fix compiler warnings in float emulation code
    
    [ Upstream commit 6b98d9134e14f5ef4bcf64b27eedf484ed19a1ec ]
    
    Avoid such compiler warnings:
    arch/parisc/math-emu/cnv_float.h:71:27: warning: ‘<<’ in boolean context, did you mean ‘<’ ? [-Wint-in-bool-context]
         ((Dintp1(dint_valueA) << 33 - SGL_EXP_LENGTH) || Dintp2(dint_valueB))
    arch/parisc/math-emu/fcnvxf.c:257:6: note: in expansion of macro ‘Dint_isinexact_to_sgl’
      if (Dint_isinexact_to_sgl(srcp1,srcp2)) {
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f9dd0f0928a3883522269db2061bd64d58cec6fc
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Tue May 14 23:24:37 2019 +0800

    parport: Fix mem leak in parport_register_dev_model
    
    [ Upstream commit 1c7ebeabc9e5ee12e42075a597de40fdb9059530 ]
    
    BUG: memory leak
    unreferenced object 0xffff8881df48cda0 (size 16):
      comm "syz-executor.0", pid 5077, jiffies 4295994670 (age 22.280s)
      hex dump (first 16 bytes):
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<00000000d2d0d5fe>] parport_register_dev_model+0x141/0x6e0 [parport]
        [<00000000782f6dab>] 0xffffffffc15d1196
        [<00000000d2ca6ae4>] platform_drv_probe+0x7e/0x100
        [<00000000628c2a94>] really_probe+0x342/0x4d0
        [<000000006874f5da>] driver_probe_device+0x8c/0x170
        [<00000000424de37a>] __device_attach_driver+0xda/0x100
        [<000000002acab09a>] bus_for_each_drv+0xfe/0x170
        [<000000003d9e5f31>] __device_attach+0x190/0x230
        [<0000000035d32f80>] bus_probe_device+0x123/0x140
        [<00000000a05ba627>] device_add+0x7cc/0xce0
        [<000000003f7560bf>] platform_device_add+0x230/0x3c0
        [<000000002a0be07d>] 0xffffffffc15d0949
        [<000000007361d8d2>] port_check+0x3b/0x50 [parport]
        [<000000004d67200f>] bus_for_each_dev+0x115/0x180
        [<000000003ccfd11c>] __parport_register_driver+0x1f0/0x210 [parport]
        [<00000000987f06fc>] 0xffffffffc15d803e
    
    After commit 4e5a74f1db8d ("parport: Revert "parport: fix
    memory leak""), free_pardevice do not free par_dev->state,
    we should free it in error path of parport_register_dev_model
    before return.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: 4e5a74f1db8d ("parport: Revert "parport: fix memory leak"")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c950c8bb31af39ab74a7a22f88be1d3e8ecd9a3
Author: Scott Wood <swood@redhat.com>
Date:   Thu May 9 16:08:28 2019 -0500

    fpga: dfl: Add lockdep classes for pdata->lock
    
    [ Upstream commit dfe3de8d397bf878b31864d4e489d41118ec475f ]
    
    struct dfl_feature_platform_data (and it's mutex) is used
    by both fme and port devices, and when lockdep is enabled it
    complains about nesting between these locks.  Tell lockdep about
    the difference so it can track each class separately.
    
    Here's the lockdep complaint:
    [  409.680668] WARNING: possible recursive locking detected
    [  409.685983] 5.1.0-rc3.fpga+ #1 Tainted: G            E
    [  409.691469] --------------------------------------------
    [  409.696779] fpgaconf/9348 is trying to acquire lock:
    [  409.701746] 00000000a443fe2e (&pdata->lock){+.+.}, at: port_enable_set+0x24/0x60 [dfl_afu]
    [  409.710006]
    [  409.710006] but task is already holding lock:
    [  409.715837] 0000000063b78782 (&pdata->lock){+.+.}, at: fme_pr_ioctl+0x21d/0x330 [dfl_fme]
    [  409.724012]
    [  409.724012] other info that might help us debug this:
    [  409.730535]  Possible unsafe locking scenario:
    [  409.730535]
    [  409.736457]        CPU0
    [  409.738910]        ----
    [  409.741360]   lock(&pdata->lock);
    [  409.744679]   lock(&pdata->lock);
    [  409.747999]
    [  409.747999]  *** DEADLOCK ***
    [  409.747999]
    [  409.753920]  May be due to missing lock nesting notation
    [  409.753920]
    [  409.760704] 4 locks held by fpgaconf/9348:
    [  409.764805]  #0: 0000000063b78782 (&pdata->lock){+.+.}, at: fme_pr_ioctl+0x21d/0x330 [dfl_fme]
    [  409.773408]  #1: 00000000213c8a66 (&region->mutex){+.+.}, at: fpga_region_program_fpga+0x24/0x200 [fpga_region]
    [  409.783489]  #2: 00000000fe63afb9 (&mgr->ref_mutex){+.+.}, at: fpga_mgr_lock+0x15/0x40 [fpga_mgr]
    [  409.792354]  #3: 000000000b2285c5 (&bridge->mutex){+.+.}, at: __fpga_bridge_get+0x26/0xa0 [fpga_bridge]
    [  409.801740]
    [  409.801740] stack backtrace:
    [  409.806102] CPU: 45 PID: 9348 Comm: fpgaconf Kdump: loaded Tainted: G            E     5.1.0-rc3.fpga+ #1
    [  409.815658] Hardware name: Intel Corporation S2600BT/S2600BT, BIOS SE5C620.86B.01.00.0763.022420181017 02/24/2018
    [  409.825911] Call Trace:
    [  409.828369]  dump_stack+0x5e/0x8b
    [  409.831686]  __lock_acquire+0xf3d/0x10e0
    [  409.835612]  ? find_held_lock+0x3c/0xa0
    [  409.839451]  lock_acquire+0xbc/0x1d0
    [  409.843030]  ? port_enable_set+0x24/0x60 [dfl_afu]
    [  409.847823]  ? port_enable_set+0x24/0x60 [dfl_afu]
    [  409.852616]  __mutex_lock+0x86/0x970
    [  409.856195]  ? port_enable_set+0x24/0x60 [dfl_afu]
    [  409.860989]  ? port_enable_set+0x24/0x60 [dfl_afu]
    [  409.865777]  ? __mutex_unlock_slowpath+0x4b/0x290
    [  409.870486]  port_enable_set+0x24/0x60 [dfl_afu]
    [  409.875106]  fpga_bridges_disable+0x36/0x50 [fpga_bridge]
    [  409.880502]  fpga_region_program_fpga+0xea/0x200 [fpga_region]
    [  409.886338]  fme_pr_ioctl+0x13e/0x330 [dfl_fme]
    [  409.890870]  fme_ioctl+0x66/0xe0 [dfl_fme]
    [  409.894973]  do_vfs_ioctl+0xa9/0x720
    [  409.898548]  ? lockdep_hardirqs_on+0xf0/0x1a0
    [  409.902907]  ksys_ioctl+0x60/0x90
    [  409.906225]  __x64_sys_ioctl+0x16/0x20
    [  409.909981]  do_syscall_64+0x5a/0x220
    [  409.913644]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [  409.918698] RIP: 0033:0x7f9d31b9b8d7
    [  409.922276] Code: 44 00 00 48 8b 05 b9 15 2d 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 89 15 2d 00 f7 d8 64 89 01 48
    [  409.941020] RSP: 002b:00007ffe4cae0d68 EFLAGS: 00000202 ORIG_RAX: 0000000000000010
    [  409.948588] RAX: ffffffffffffffda RBX: 00007f9d32ade6a0 RCX: 00007f9d31b9b8d7
    [  409.955719] RDX: 00007ffe4cae0df0 RSI: 000000000000b680 RDI: 0000000000000003
    [  409.962852] RBP: 0000000000000003 R08: 00007f9d2b70a177 R09: 00007ffe4cae0e40
    [  409.969984] R10: 00007ffe4cae0160 R11: 0000000000000202 R12: 00007ffe4cae0df0
    [  409.977115] R13: 000000000000b680 R14: 0000000000000000 R15: 00007ffe4cae0f60
    
    Signed-off-by: Scott Wood <swood@redhat.com>
    Acked-by: Wu Hao <hao.wu@intel.com>
    Acked-by: Alan Tull <atull@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 505de32ea95209c2b587bb91b87e460bc59221ff
Author: Scott Wood <swood@redhat.com>
Date:   Thu May 9 16:08:27 2019 -0500

    fpga: dfl: afu: Pass the correct device to dma_mapping_error()
    
    [ Upstream commit 13069847a475b60069918dc9971f5adb42811ce3 ]
    
    dma_mapping_error() was being called on a different device struct than
    what was passed to map/unmap.  Besides rendering the error checking
    ineffective, it caused a debug splat with CONFIG_DMA_API_DEBUG.
    
    Signed-off-by: Scott Wood <swood@redhat.com>
    Acked-by: Wu Hao <hao.wu@intel.com>
    Acked-by: Moritz Fischer <mdf@kernel.org>
    Acked-by: Alan Tull <atull@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b2145e2224719d4d706b4789a35fb7bd53c9707
Author: Jose Abreu <joabreu@synopsys.com>
Date:   Mon May 20 15:43:13 2019 +0200

    ARC: [plat-hsdk]: Add missing FIFO size entry in GMAC node
    
    [ Upstream commit 4c70850aeb2e40016722cd1abd43c679666d3ca0 ]
    
    Add the binding for RX/TX fifo size of GMAC node.
    
    Cc: Joao Pinto <jpinto@synopsys.com>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Vineet Gupta <vgupta@synopsys.com>
    Tested-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
    Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
    Signed-off-by: Jose Abreu <joabreu@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 15004afd98452bba4cc14c1b857419ba4d7155d9
Author: Jose Abreu <joabreu@synopsys.com>
Date:   Mon May 20 15:43:12 2019 +0200

    ARC: [plat-hsdk]: Add missing multicast filter bins number to GMAC node
    
    [ Upstream commit ecc906a11c2a0940e1a380debd8bd5bc09faf454 ]
    
    GMAC controller on HSDK boards supports 256 Hash Table size so we need to
    add the multicast filter bins property. This allows for the Hash filter
    to work properly using stmmac driver.
    
    Cc: Joao Pinto <jpinto@synopsys.com>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
    Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
    Signed-off-by: Jose Abreu <joabreu@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8f3793bfa3ea69af84d0a6a398ccc3d80e6860a8
Author: Eric Long <eric.long@unisoc.com>
Date:   Mon May 6 15:28:31 2019 +0800

    dmaengine: sprd: Fix block length overflow
    
    [ Upstream commit 89d03b3c126d683f7b2cd5b07178493993d12448 ]
    
    The maximum value of block length is 0xffff, so if the configured transfer length
    is more than 0xffff, that will cause block length overflow to lead a configuration
    error.
    
    Thus we can set block length as the maximum burst length to avoid this issue, since
    the maximum burst length will not be a big value which is more than 0xffff.
    
    Signed-off-by: Eric Long <eric.long@unisoc.com>
    Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e478abd4ebf720121cbc5ab4bf14bd4b1cbe2f3a
Author: Colin Ian King <colin.king@canonical.com>
Date:   Wed May 8 23:33:29 2019 +0100

    dmaengine: dw-axi-dmac: fix null dereference when pointer first is null
    
    [ Upstream commit 0788611c9a0925c607de536b2449de5ed98ef8df ]
    
    In the unlikely event that axi_desc_get returns a null desc in the
    very first iteration of the while-loop the error exit path ends
    up calling axi_desc_put on a null pointer 'first' and this causes
    a null pointer dereference.  Fix this by adding a null check on
    pointer 'first' before calling axi_desc_put.
    
    Addresses-Coverity: ("Explicit null dereference")
    Fixes: 1fe20f1b8454 ("dmaengine: Introduce DW AXI DMAC driver")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c21b761b40e082c6630f684e23c45bfbd5ef254
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Tue May 7 10:45:24 2019 -0700

    ARC: fix build warnings
    
    [ Upstream commit 89c92142f75eb80064f5b9f1111484b1b4d81790 ]
    
    | arch/arc/mm/tlb.c:914:2: warning: variable length array 'pd0' is used [-Wvla]
    | arch/arc/include/asm/cmpxchg.h:95:29: warning: value computed is not used [-Wunused-value]
    
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d64f99ef010dba5ffc19d233442479f207f91067
Author: Douglas Anderson <dianders@chromium.org>
Date:   Mon Jun 17 10:56:53 2019 -0700

    brcmfmac: sdio: Don't tune while the card is off
    
    commit 65dade6044079a5c206fd1803642ff420061417a upstream.
    
    When Broadcom SDIO cards are idled they go to sleep and a whole
    separate subsystem takes over their SDIO communication.  This is the
    Always-On-Subsystem (AOS) and it can't handle tuning requests.
    
    Specifically, as tested on rk3288-veyron-minnie (which reports having
    BCM4354/1 in dmesg), if I force a retune in brcmf_sdio_kso_control()
    when "on = 1" (aka we're transition from sleep to wake) by whacking:
      bus->sdiodev->func1->card->host->need_retune = 1
    ...then I can often see tuning fail.  In this case dw_mmc reports "All
    phases bad!").  Note that I don't get 100% failure, presumably because
    sometimes the card itself has already transitioned away from the AOS
    itself by the time we try to wake it up.  If I force retuning when "on
    = 0" (AKA force retuning right before sending the command to go to
    sleep) then retuning is always OK.
    
    NOTE: we need _both_ this patch and the patch to avoid triggering
    tuning due to CRC errors in the sleep/wake transition, AKA ("brcmfmac:
    sdio: Disable auto-tuning around commands expected to fail").  Though
    both patches handle issues with Broadcom's AOS, the problems are
    distinct:
    1. We want to defer (but not ignore) asynchronous (like
       timer-requested) tuning requests till the card is awake.  However,
       we want to ignore CRC errors during the transition, we don't want
       to queue deferred tuning request.
    2. You could imagine that the AOS could implement retuning but we
       could still get errors while transitioning in and out of the AOS.
       Similarly you could imagine a seamless transition into and out of
       the AOS (with no CRC errors) even if the AOS couldn't handle
       tuning.
    
    ALSO NOTE: presumably there is never a desperate need to retune in
    order to wake up the card, since doing so is impossible.  Luckily the
    only way the card can get into sleep state is if we had a good enough
    tuning to send it the command to put it into sleep, so presumably that
    "good enough" tuning is enough to wake us up, at least with a few
    retries.
    
    Cc: stable@vger.kernel.org #v4.18+
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Acked-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ad82f2eb3f6f464dbc97bd8c61142e7cbb3e02f
Author: Douglas Anderson <dianders@chromium.org>
Date:   Mon Jun 17 10:56:51 2019 -0700

    brcmfmac: sdio: Disable auto-tuning around commands expected to fail
    
    commit 2de0b42da263c97d330d276f5ccf7c4470e3324f upstream.
    
    There are certain cases, notably when transitioning between sleep and
    active state, when Broadcom SDIO WiFi cards will produce errors on the
    SDIO bus.  This is evident from the source code where you can see that
    we try commands in a loop until we either get success or we've tried
    too many times.  The comment in the code reinforces this by saying
    "just one write attempt may fail"
    
    Unfortunately these failures sometimes end up causing an "-EILSEQ"
    back to the core which triggers a retuning of the SDIO card and that
    blocks all traffic to the card until it's done.
    
    Let's disable retuning around the commands we expect might fail.
    
    Cc: stable@vger.kernel.org #v4.18+
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Acked-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31c99580687ac35a973b7bbc8fff20236540e2e5
Author: Jann Horn <jannh@google.com>
Date:   Tue May 28 17:32:26 2019 +0200

    apparmor: enforce nullbyte at end of tag string
    
    commit 8404d7a674c49278607d19726e0acc0cae299357 upstream.
    
    A packed AppArmor policy contains null-terminated tag strings that are read
    by unpack_nameX(). However, unpack_nameX() uses string functions on them
    without ensuring that they are actually null-terminated, potentially
    leading to out-of-bounds accesses.
    
    Make sure that the tag string is null-terminated before passing it to
    strcmp().
    
    Cc: stable@vger.kernel.org
    Fixes: 736ec752d95e ("AppArmor: policy routines for loading and unpacking policy")
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: John Johansen <john.johansen@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb2b0bf5c4a4afc4a761550af1da7da8444803b8
Author: John Johansen <john.johansen@canonical.com>
Date:   Sun May 26 06:42:23 2019 -0700

    apparmor: fix PROFILE_MEDIATES for untrusted input
    
    commit 23375b13f98c5464c2b4d15f983cc062940f1f4e upstream.
    
    While commit 11c236b89d7c2 ("apparmor: add a default null dfa") ensure
    every profile has a policy.dfa it does not resize the policy.start[]
    to have entries for every possible start value. Which means
    PROFILE_MEDIATES is not safe to use on untrusted input. Unforunately
    commit b9590ad4c4f2 ("apparmor: remove POLICY_MEDIATES_SAFE") did not
    take into account the start value usage.
    
    The input string in profile_query_cb() is user controlled and is not
    properly checked to be within the limited start[] entries, even worse
    it can't be as userspace policy is allowed to make us of entries types
    the kernel does not know about. This mean usespace can currently cause
    the kernel to access memory up to 240 entries beyond the start array
    bounds.
    
    Cc: stable@vger.kernel.org
    Fixes: b9590ad4c4f2 ("apparmor: remove POLICY_MEDIATES_SAFE")
    Signed-off-by: John Johansen <john.johansen@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d08fe254fd6c6dc4b18d2390ed0d02eb2be85bb
Author: Daniel Smith <danct12@disroot.org>
Date:   Thu May 23 12:54:18 2019 -0700

    Input: silead - add MSSL0017 to acpi_device_id
    
    commit 0e658060e5fc50dc282885dc424a94b5d95547e5 upstream.
    
    On Chuwi Hi10 Plus, the Silead device id is MSSL0017.
    
    Signed-off-by: Daniel Smith <danct12@disroot.org>
    Reviewed-by: Hans de Goede <hdegoede@redhat.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 ebd7dda84ec29a8d9a003d68cc5c8d1fce88ab94
Author: Andrey Smirnov <andrew.smirnov@gmail.com>
Date:   Thu May 23 12:55:26 2019 -0700

    Input: uinput - add compat ioctl number translation for UI_*_FF_UPLOAD
    
    commit 7c7da40da1640ce6814dab1e8031b44e19e5a3f6 upstream.
    
    In the case of compat syscall ioctl numbers for UI_BEGIN_FF_UPLOAD and
    UI_END_FF_UPLOAD need to be adjusted before being passed on
    uinput_ioctl_handler() since code built with -m32 will be passing
    slightly different values. Extend the code already covering
    UI_SET_PHYS to cover UI_BEGIN_FF_UPLOAD and UI_END_FF_UPLOAD as well.
    
    Reported-by: Pierre-Loup A. Griffais <pgriffais@valvesoftware.com>
    Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.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 9f3559e4f6cdf5d5366d293e9d7182db193f53fc
Author: Alexander Mikhaylenko <exalm7659@gmail.com>
Date:   Wed Jun 12 14:59:46 2019 -0700

    Input: synaptics - enable SMBus on ThinkPad E480 and E580
    
    commit 9843f3e08e2144724be7148e08d77a195dea257a upstream.
    
    They are capable of using intertouch and it works well with
    psmouse.synaptics_intertouch=1, so add them to the list.
    
    Without it, scrolling and gestures are jumpy, three-finger pinch gesture
    doesn't work and three- or four-finger swipes sometimes get stuck.
    
    Signed-off-by: Alexander Mikhaylenko <exalm7659@gmail.com>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.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 e61e41ffcfeb1941f7c1650deb06f66e043b5d00
Author: Crt Mori <cmo@melexis.com>
Date:   Thu May 23 14:07:22 2019 +0200

    iio: temperature: mlx90632 Relax the compatibility check
    
    commit 389fc70b60f534d679aea9a3f05146040ce20d77 upstream.
    
    Register EE_VERSION contains mixture of calibration information and DSP
    version. So far, because calibrations were definite, the driver
    compatibility depended on whole contents, but in the newer production
    process the calibration part changes. Because of that, value in EE_VERSION
    will be changed and to avoid that calibration value is same as DSP version
    the MSB in calibration part was fixed to 1.
    That means existing calibrations (medical and consumer) will now have
    hex values (bits 8 to 15) of 83 and 84 respectively. Driver compatibility
    should be based only on DSP version part of the EE_VERSION (bits 0 to 7)
    register.
    
    Signed-off-by: Crt Mori <cmo@melexis.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 303386b31bfb0a98391b7d098af296d6f9d1d61e
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Fri Jun 14 12:32:32 2019 -0400

    IB/hfi1: Silence txreq allocation warnings
    
    commit 3230f4a8d44e4a0bb7afea814b280b5129521f52 upstream.
    
    The following warning can happen when a memory shortage
    occurs during txreq allocation:
    
    [10220.939246] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
    [10220.939246] Hardware name: Intel Corporation S2600WT2R/S2600WT2R, BIOS SE5C610.86B.01.01.0018.C4.072020161249 07/20/2016
    [10220.939247]   cache: mnt_cache, object size: 384, buffer size: 384, default order: 2, min order: 0
    [10220.939260] Workqueue: hfi0_0 _hfi1_do_send [hfi1]
    [10220.939261]   node 0: slabs: 1026568, objs: 43115856, free: 0
    [10220.939262] Call Trace:
    [10220.939262]   node 1: slabs: 820872, objs: 34476624, free: 0
    [10220.939263]  dump_stack+0x5a/0x73
    [10220.939265]  warn_alloc+0x103/0x190
    [10220.939267]  ? wake_all_kswapds+0x54/0x8b
    [10220.939268]  __alloc_pages_slowpath+0x86c/0xa2e
    [10220.939270]  ? __alloc_pages_nodemask+0x2fe/0x320
    [10220.939271]  __alloc_pages_nodemask+0x2fe/0x320
    [10220.939273]  new_slab+0x475/0x550
    [10220.939275]  ___slab_alloc+0x36c/0x520
    [10220.939287]  ? hfi1_make_rc_req+0x90/0x18b0 [hfi1]
    [10220.939299]  ? __get_txreq+0x54/0x160 [hfi1]
    [10220.939310]  ? hfi1_make_rc_req+0x90/0x18b0 [hfi1]
    [10220.939312]  __slab_alloc+0x40/0x61
    [10220.939323]  ? hfi1_make_rc_req+0x90/0x18b0 [hfi1]
    [10220.939325]  kmem_cache_alloc+0x181/0x1b0
    [10220.939336]  hfi1_make_rc_req+0x90/0x18b0 [hfi1]
    [10220.939348]  ? hfi1_verbs_send_dma+0x386/0xa10 [hfi1]
    [10220.939359]  ? find_prev_entry+0xb0/0xb0 [hfi1]
    [10220.939371]  hfi1_do_send+0x1d9/0x3f0 [hfi1]
    [10220.939372]  process_one_work+0x171/0x380
    [10220.939374]  worker_thread+0x49/0x3f0
    [10220.939375]  kthread+0xf8/0x130
    [10220.939377]  ? max_active_store+0x80/0x80
    [10220.939378]  ? kthread_bind+0x10/0x10
    [10220.939379]  ret_from_fork+0x35/0x40
    [10220.939381] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
    
    The shortage is handled properly so the message isn't needed. Silence by
    adding the no warn option to the slab allocation.
    
    Fixes: 45842abbb292 ("staging/rdma/hfi1: move txreq header code")
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cc9c993094773c409338da34f7d0231b0e69024
Author: Kaike Wan <kaike.wan@intel.com>
Date:   Fri Jun 7 08:25:25 2019 -0400

    IB/hfi1: Validate fault injection opcode user input
    
    commit 5f90677ed31963abb184ee08ebee4a4a68225dd8 upstream.
    
    The opcode range for fault injection from user should be validated before
    it is applied to the fault->opcodes[] bitmap to avoid out-of-bound
    error.
    
    Cc: <stable@vger.kernel.org>
    Fixes: a74d5307caba ("IB/hfi1: Rework fault injection machinery")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Kaike Wan <kaike.wan@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17027034a47bda8a8fc96f2875ff19062c90e18c
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Jun 18 17:27:47 2019 +0300

    usb: xhci: Don't try to recover an endpoint if port is in error state.
    
    commit b8c3b718087bf7c3c8e388eb1f72ac1108a4926e upstream.
    
    A USB3 device needs to be reset and re-enumarated if the port it
    connects to goes to a error state, with link state inactive.
    
    There is no use in trying to recover failed transactions by resetting
    endpoints at this stage. Tests show that in rare cases, after multiple
    endpoint resets of a roothub port the whole host controller might stop
    completely.
    
    Several retries to recover from transaction error can happen as
    it can take a long time before the hub thread discovers the USB3
    port error and inactive link.
    
    We can't reliably detect the port error from slot or endpoint context
    due to a limitation in xhci, see xhci specs section 4.8.3:
    "There are several cases where the EP State field in the Output
    Endpoint Context may not reflect the current state of an endpoint"
    and
    "Software should maintain an accurate value for EP State, by tracking it
    with an internal variable that is driven by Events and Doorbell accesses"
    
    Same appears to be true for slot state.
    
    set a flag to the corresponding slot if a USB3 roothub port link goes
    inactive to prevent both queueing new URBs and resetting endpoints.
    
    Reported-by: Rapolu Chiranjeevi <chiranjeevi.rapolu@intel.com>
    Tested-by: Rapolu Chiranjeevi <chiranjeevi.rapolu@intel.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d606a82ccc0a7c7244b26698bef35b47cce9666c
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Jun 18 17:27:48 2019 +0300

    xhci: detect USB 3.2 capable host controllers correctly
    
    commit ddd57980a0fde30f7b5d14b888a2cc84d01610e8 upstream.
    
    USB 3.2 capability in a host can be detected from the
    xHCI Supported Protocol Capability major and minor revision fields.
    
    If major is 0x3 and minor 0x20 then the host is USB 3.2 capable.
    
    For USB 3.2 capable hosts set the root hub lane count to 2.
    
    The Major Revision and Minor Revision fields contain a BCD version number.
    The value of the Major Revision field is JJh and the value of the Minor
    Revision field is MNh for version JJ.M.N, where JJ = major revision number,
    M - minor version number, N = sub-minor version number,
    e.g. version 3.1 is represented with a value of 0310h.
    
    Also fix the extra whitespace printed out when announcing regular
    SuperSpeed hosts.
    
    Cc: <stable@vger.kernel.org> # v4.18+
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6563039674d41b099837b3ce12756dea0adb9bf
Author: Peter Chen <peter.chen@nxp.com>
Date:   Mon Jun 17 09:49:07 2019 +0800

    usb: chipidea: udc: workaround for endpoint conflict issue
    
    commit c19dffc0a9511a7d7493ec21019aefd97e9a111b upstream.
    
    An endpoint conflict occurs when the USB is working in device mode
    during an isochronous communication. When the endpointA IN direction
    is an isochronous IN endpoint, and the host sends an IN token to
    endpointA on another device, then the OUT transaction may be missed
    regardless the OUT endpoint number. Generally, this occurs when the
    device is connected to the host through a hub and other devices are
    connected to the same hub.
    
    The affected OUT endpoint can be either control, bulk, isochronous, or
    an interrupt endpoint. After the OUT endpoint is primed, if an IN token
    to the same endpoint number on another device is received, then the OUT
    endpoint may be unprimed (cannot be detected by software), which causes
    this endpoint to no longer respond to the host OUT token, and thus, no
    corresponding interrupt occurs.
    
    There is no good workaround for this issue, the only thing the software
    could do is numbering isochronous IN from the highest endpoint since we
    have observed most of device number endpoint from the lowest.
    
    Cc: <stable@vger.kernel.org> #v3.14+
    Cc: Fabio Estevam <festevam@gmail.com>
    Cc: Greg KH <gregkh@linuxfoundation.org>
    Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Cc: Jun Li <jun.li@nxp.com>
    Signed-off-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0746b2f501428d01fc45e36023aaf58c43b18650
Author: Stanley Chu <stanley.chu@mediatek.com>
Date:   Wed Jun 12 23:19:05 2019 +0800

    scsi: ufs: Avoid runtime suspend possibly being blocked forever
    
    commit 24e2e7a19f7e4b83d0d5189040d997bce3596473 upstream.
    
    UFS runtime suspend can be triggered after pm_runtime_enable() is invoked
    in ufshcd_pltfrm_init(). However if the first runtime suspend is triggered
    before binding ufs_hba structure to ufs device structure via
    platform_set_drvdata(), then UFS runtime suspend will be no longer
    triggered in the future because its dev->power.runtime_error was set in the
    first triggering and does not have any chance to be cleared.
    
    To be more clear, dev->power.runtime_error is set if hba is NULL in
    ufshcd_runtime_suspend() which returns -EINVAL to rpm_callback() where
    dev->power.runtime_error is set as -EINVAL. In this case, any future
    rpm_suspend() for UFS device fails because rpm_check_suspend_allowed()
    fails due to non-zero
    dev->power.runtime_error.
    
    To resolve this issue, make sure the first UFS runtime suspend get valid
    "hba" in ufshcd_runtime_suspend(): Enable UFS runtime PM only after hba is
    successfully bound to UFS device structure.
    
    Fixes: 62694735ca95 ([SCSI] ufs: Add runtime PM support for UFS host controller driver)
    Cc: stable@vger.kernel.org
    Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98467b8fda414f5340a1ac6c55297f4e6932933e
Author: Ulf Hansson <ulf.hansson@linaro.org>
Date:   Tue Jun 18 14:05:17 2019 +0200

    mmc: core: Prevent processing SDIO IRQs when the card is suspended
    
    commit 83293386bc95cf5e9f0c0175794455835bd1cb4a upstream.
    
    Processing of SDIO IRQs must obviously be prevented while the card is
    system suspended, otherwise we may end up trying to communicate with an
    uninitialized SDIO card.
    
    Reports throughout the years shows that this is not only a theoretical
    problem, but a real issue. So, let's finally fix this problem, by keeping
    track of the state for the card and bail out before processing the SDIO
    IRQ, in case the card is suspended.
    
    Cc: stable@vger.kernel.org
    Reported-by: Douglas Anderson <dianders@chromium.org>
    Tested-by: Douglas Anderson <dianders@chromium.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0349dbebbb0becda11953b3f633528d68780bc7e
Author: Douglas Anderson <dianders@chromium.org>
Date:   Mon Jun 17 10:56:52 2019 -0700

    mmc: core: Add sdio_retune_hold_now() and sdio_retune_release()
    
    commit b4c9f938d542d5f88c501744d2d12fad4fd2915f upstream.
    
    We want SDIO drivers to be able to temporarily stop retuning when the
    driver knows that the SDIO card is not in a state where retuning will
    work (maybe because the card is asleep).  We'll move the relevant
    functions to a place where drivers can call them.
    
    Cc: stable@vger.kernel.org #v4.18+
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Acked-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ed49e1bf5b398940137ba4e13fea0f03994dc84
Author: Douglas Anderson <dianders@chromium.org>
Date:   Mon Jun 17 10:56:50 2019 -0700

    mmc: core: API to temporarily disable retuning for SDIO CRC errors
    
    commit 0a55f4ab9678413a01e740c86e9367ba0c612b36 upstream.
    
    Normally when the MMC core sees an "-EILSEQ" error returned by a host
    controller then it will trigger a retuning of the card.  This is
    generally a good idea.
    
    However, if a command is expected to sometimes cause transfer errors
    then these transfer errors shouldn't cause a re-tuning.  This
    re-tuning will be a needless waste of time.  One example case where a
    transfer is expected to cause errors is when transitioning between
    idle (sometimes referred to as "sleep" in Broadcom code) and active
    state on certain Broadcom WiFi SDIO cards.  Specifically if the card
    was already transitioning between states when the command was sent it
    could cause an error on the SDIO bus.
    
    Let's add an API that the SDIO function drivers can call that will
    temporarily disable the auto-tuning functionality.  Then we can add a
    call to this in the Broadcom WiFi driver and any other driver that
    might have similar needs.
    
    NOTE: this makes the assumption that the card is already tuned well
    enough that it's OK to disable the auto-retuning during one of these
    error-prone situations.  Presumably the driver code performing the
    error-prone transfer knows how to recover / retry from errors.  ...and
    after we can get back to a state where transfers are no longer
    error-prone then we can enable the auto-retuning again.  If we truly
    find ourselves in a case where the card needs to be retuned sometimes
    to handle one of these error-prone transfers then we can always try a
    few transfers first without auto-retuning and then re-try with
    auto-retuning if the first few fail.
    
    Without this change on rk3288-veyron-minnie I periodically see this in
    the logs of a machine just sitting there idle:
      dwmmc_rockchip ff0d0000.dwmmc: Successfully tuned phase to XYZ
    
    Cc: stable@vger.kernel.org #v4.18+
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Acked-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b6d290cc1c12625a338f19f8ce249422590e6a9
Author: Raul E Rangel <rrangel@chromium.org>
Date:   Mon Jun 17 14:10:12 2019 -0600

    mmc: sdhci: sdhci-pci-o2micro: Correctly set bus width when tuning
    
    commit 0f7b79a44e7d7dd3ef1f59758c1a341f217ff5e5 upstream.
    
    The O2Micro controller only supports tuning at 4-bits. So the host driver
    needs to change the bus width while tuning and then set it back when done.
    
    There was a bug in the original implementation in that mmc->ios.bus_width
    also wasn't updated. Thus setting the incorrect blocksize in
    sdhci_send_tuning which results in a tuning failure.
    
    Signed-off-by: Raul E Rangel <rrangel@chromium.org>
    Fixes: 0086fc217d5d7 ("mmc: sdhci: Add support for O2 hardware tuning")
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c15ded559797bd969dd8222d4451554a5c1b3b5
Author: Harald Freudenberger <freude@linux.ibm.com>
Date:   Fri Nov 16 15:48:10 2018 +0100

    s390/ap: rework assembler functions to use unions for in/out register variables
    
    [ Upstream commit 159491f3b509bd8101199944dc7b0673b881c734 ]
    
    The inline assembler functions ap_aqic() and ap_qact() used two
    variables declared on the very same register. One variable was for
    input only, the other for output. Looks like newer versions of the gcc
    don't like this. Anyway it is a better coding to use one variable
    (which may have a union data type) on one register for input and
    output. So this patch introduces unions and uses only one variable now
    for input and output for GR1 for the PQAP(QACT) and PQAP(QIC)
    invocation.
    
    Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
    Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fb48fb155e1b86a3c6d3a5cd67942e0513a267f0
Author: Ilya Leoshkevich <iii@linux.ibm.com>
Date:   Fri Jun 21 17:39:12 2019 +0200

    s390/jump_label: Use "jdd" constraint on gcc9
    
    [ Upstream commit 146448524bddbf6dfc62de31957e428de001cbda ]
    
    [heiko.carstens@de.ibm.com]:
    -----
    Laura Abbott reported that the kernel doesn't build anymore with gcc 9,
    due to the "X" constraint. Ilya provided the gcc 9 patch "S/390:
    Introduce jdd constraint" which introduces the new "jdd" constraint
    which fixes this.
    -----
    
    The support for section anchors on S/390 introduced in gcc9 has changed
    the behavior of "X" constraint, which can now produce register
    references. Since existing constraints, in particular, "i", do not fit
    the intended use case on S/390, the new machine-specific "jdd"
    constraint was introduced. This patch makes jump labels use "jdd"
    constraint when building with gcc9.
    
    Reported-by: Laura Abbott <labbott@redhat.com>
    Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0319ef1d40ff39d2c0f942a46fb73918669b2350
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Jun 17 14:39:29 2019 +0200

    ovl: fix bogus -Wmaybe-unitialized warning
    
    [ Upstream commit 1dac6f5b0ed2601be21bb4e27a44b0c3e667b7f4 ]
    
    gcc gets a bit confused by the logic in ovl_setup_trap() and
    can't figure out whether the local 'trap' variable in the caller
    was initialized or not:
    
    fs/overlayfs/super.c: In function 'ovl_fill_super':
    fs/overlayfs/super.c:1333:4: error: 'trap' may be used uninitialized in this function [-Werror=maybe-uninitialized]
        iput(trap);
        ^~~~~~~~~~
    fs/overlayfs/super.c:1312:17: note: 'trap' was declared here
    
    Reword slightly to make it easier for the compiler to understand.
    
    Fixes: 146d62e5a586 ("ovl: detect overlapping layers")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 639e8c2f0910a57e9a29d9508ea6ed0960e8d4fe
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Tue Jun 18 15:06:16 2019 +0200

    ovl: don't fail with disconnected lower NFS
    
    [ Upstream commit 9179c21dc6ed1c993caa5fe4da876a6765c26af7 ]
    
    NFS mounts can be disconnected from fs root.  Don't fail the overlapping
    layer check because of this.
    
    The check is not authoritative anyway, since topology can change during or
    after the check.
    
    Reported-by: Antti Antinoja <antti@fennosys.fi>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Fixes: 146d62e5a586 ("ovl: detect overlapping layers")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1c5aa5eda08710c2ba619d93126380881fa1114
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Thu Apr 18 17:42:08 2019 +0300

    ovl: detect overlapping layers
    
    [ Upstream commit 146d62e5a5867fbf84490d82455718bfb10fe824 ]
    
    Overlapping overlay layers are not supported and can cause unexpected
    behavior, but overlayfs does not currently check or warn about these
    configurations.
    
    User is not supposed to specify the same directory for upper and
    lower dirs or for different lower layers and user is not supposed to
    specify directories that are descendants of each other for overlay
    layers, but that is exactly what this zysbot repro did:
    
        https://syzkaller.appspot.com/x/repro.syz?x=12c7a94f400000
    
    Moving layer root directories into other layers while overlayfs
    is mounted could also result in unexpected behavior.
    
    This commit places "traps" in the overlay inode hash table.
    Those traps are dummy overlay inodes that are hashed by the layers
    root inodes.
    
    On mount, the hash table trap entries are used to verify that overlay
    layers are not overlapping.  While at it, we also verify that overlay
    layers are not overlapping with directories "in-use" by other overlay
    instances as upperdir/workdir.
    
    On lookup, the trap entries are used to verify that overlay layers
    root inodes have not been moved into other layers after mount.
    
    Some examples:
    
    $ ./run --ov --samefs -s
    ...
    ( mkdir -p base/upper/0/u base/upper/0/w base/lower lower upper mnt
      mount -o bind base/lower lower
      mount -o bind base/upper upper
      mount -t overlay none mnt ...
            -o lowerdir=lower,upperdir=upper/0/u,workdir=upper/0/w)
    
    $ umount mnt
    $ mount -t overlay none mnt ...
            -o lowerdir=base,upperdir=upper/0/u,workdir=upper/0/w
    
      [   94.434900] overlayfs: overlapping upperdir path
      mount: mount overlay on mnt failed: Too many levels of symbolic links
    
    $ mount -t overlay none mnt ...
            -o lowerdir=upper/0/u,upperdir=upper/0/u,workdir=upper/0/w
    
      [  151.350132] overlayfs: conflicting lowerdir path
      mount: none is already mounted or mnt busy
    
    $ mount -t overlay none mnt ...
            -o lowerdir=lower:lower/a,upperdir=upper/0/u,workdir=upper/0/w
    
      [  201.205045] overlayfs: overlapping lowerdir path
      mount: mount overlay on mnt failed: Too many levels of symbolic links
    
    $ mount -t overlay none mnt ...
            -o lowerdir=lower,upperdir=upper/0/u,workdir=upper/0/w
    $ mv base/upper/0/ base/lower/
    $ find mnt/0
      mnt/0
      mnt/0/w
      find: 'mnt/0/w/work': Too many levels of symbolic links
      find: 'mnt/0/u': Too many levels of symbolic links
    
    Reported-by: syzbot+9c69c282adc4edd2b540@syzkaller.appspotmail.com
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a00f405e133fb486a34fb7cc1bdc64deab4d4fa0
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Sun Jun 9 19:03:44 2019 +0300

    ovl: make i_ino consistent with st_ino in more cases
    
    [ Upstream commit 6dde1e42f497b2d4e22466f23019016775607947 ]
    
    Relax the condition that overlayfs supports nfs export, to require
    that i_ino is consistent with st_ino/d_ino.
    
    It is enough to require that st_ino and d_ino are consistent.
    
    This fixes the failure of xfstest generic/504, due to mismatch of
    st_ino to inode number in the output of /proc/locks.
    
    Fixes: 12574a9f4c9c ("ovl: consistent i_ino for non-samefs with xino")
    Cc: <stable@vger.kernel.org> # v4.19
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d6623379d895db1cfd111469e6872b39839c91b1
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Tue Jun 11 18:09:28 2019 +0300

    ovl: fix wrong flags check in FS_IOC_FS[SG]ETXATTR ioctls
    
    [ Upstream commit 941d935ac7636911a3fd8fa80e758e52b0b11e20 ]
    
    The ioctl argument was parsed as the wrong type.
    
    Fixes: b21d9c435f93 ("ovl: support the FS_IOC_FS[SG]ETXATTR ioctls")
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3cb5d7fa8f7db47cf4c0016df87c7589474ed09b
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Sun May 26 09:28:25 2019 +0300

    ovl: support the FS_IOC_FS[SG]ETXATTR ioctls
    
    [ Upstream commit b21d9c435f935014d3e3fa6914f2e4fbabb0e94d ]
    
    They are the extended version of FS_IOC_FS[SG]ETFLAGS ioctls.
    xfs_io -c "chattr <flags>" uses the new ioctls for setting flags.
    
    This used to work in kernel pre v4.19, before stacked file ops
    introduced the ovl_ioctl whitelist.
    
    Reported-by: Dave Chinner <david@fromorbit.com>
    Fixes: d1d04ef8572b ("ovl: stack file ops")
    Cc: <stable@vger.kernel.org> # v4.19
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 76343a1363f8c87ea99d48d209bd26941ec329e8
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed May 1 11:05:41 2019 -0700

    gcc-9: silence 'address-of-packed-member' warning
    
    commit 6f303d60534c46aa1a239f29c321f95c83dda748 upstream.
    
    We already did this for clang, but now gcc has that warning too.  Yes,
    yes, the address may be unaligned.  And that's kind of the point.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a997c3a239ab7adda6a74196b4b8f5e333465e6
Author: Allan Xavier <allan.x.xavier@oracle.com>
Date:   Fri Sep 7 08:12:01 2018 -0500

    objtool: Support per-function rodata sections
    
    commit 4a60aa05a0634241ce17f957bf9fb5ac1eed6576 upstream.
    
    Add support for processing switch jump tables in objects with multiple
    .rodata sections, such as those created by '-ffunction-sections' and
    '-fdata-sections'.  Currently, objtool always looks in .rodata for jump
    table information, which results in many "sibling call from callable
    instruction with modified stack frame" warnings with objects compiled
    using those flags.
    
    The fix is comprised of three parts:
    
    1. Flagging all .rodata sections when importing ELF information for
       easier checking later.
    
    2. Keeping a reference to the section each relocation is from in order
       to get the list_head for the other relocations in that section.
    
    3. Finding jump tables by following relocations to .rodata sections,
       rather than always referencing a single global .rodata section.
    
    The patch has been tested without data sections enabled and no
    differences in the resulting orc unwind information were seen.
    
    Note that as objtool adds terminators to end of each .text section the
    unwind information generated between a function+data sections build and
    a normal build aren't directly comparable. Manual inspection suggests
    that objtool is now generating the correct information, or at least
    making more of an effort to do so than it did previously.
    
    Signed-off-by: Allan Xavier <allan.x.xavier@oracle.com>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lkml.kernel.org/r/099bdc375195c490dda04db777ee0b95d566ded1.1536325914.git.jpoimboe@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c493ead38adba4da664fb585176e369f06eab205
Author: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Date:   Thu May 23 14:45:35 2019 +0200

    tracing: Silence GCC 9 array bounds warning
    
    commit 0c97bf863efce63d6ab7971dad811601e6171d2f upstream.
    
    Starting with GCC 9, -Warray-bounds detects cases when memset is called
    starting on a member of a struct but the size to be cleared ends up
    writing over further members.
    
    Such a call happens in the trace code to clear, at once, all members
    after and including `seq` on struct trace_iterator:
    
        In function 'memset',
            inlined from 'ftrace_dump' at kernel/trace/trace.c:8914:3:
        ./include/linux/string.h:344:9: warning: '__builtin_memset' offset
        [8505, 8560] from the object at 'iter' is out of the bounds of
        referenced subobject 'seq' with type 'struct trace_seq' at offset
        4368 [-Warray-bounds]
          344 |  return __builtin_memset(p, c, size);
              |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    In order to avoid GCC complaining about it, we compute the address
    ourselves by adding the offsetof distance instead of referring
    directly to the member.
    
    Since there are two places doing this clear (trace.c and trace_kdb.c),
    take the chance to move the workaround into a single place in
    the internal header.
    
    Link: http://lkml.kernel.org/r/20190523124535.GA12931@gmail.com
    
    Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
    [ Removed unnecessary parenthesis around "iter" ]
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>