commit aad39e30fb9e6e7212318a1dad898f36f1075648
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Aug 16 10:11:12 2019 +0200

    Linux 5.2.9

commit be088ac6e1c29655de1329a86ca017a65cf1c631
Author: Luca Coelho <luciano.coelho@intel.com>
Date:   Fri Jul 19 12:21:59 2019 +0300

    iwlwifi: mvm: fix version check for GEO_TX_POWER_LIMIT support
    
    commit f5a47fae6aa3eb06f100e701d2342ee56b857bee upstream.
    
    We erroneously added a check for FW API version 41 before sending
    GEO_TX_POWER_LIMIT, but this was already implemented in version 38.
    Additionally, it was cherry-picked to older versions, namely 17, 26
    and 29, so check for those as well.
    
    Cc: stable@vger.kernel.org
    Fixes: eca1e56ceedd ("iwlwifi: mvm: don't send GEO_TX_POWER_LIMIT to old firmwares")
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2985d54cc5f7b0bc9f35032521e66039e1a559c
Author: Luca Coelho <luciano.coelho@intel.com>
Date:   Mon Jun 24 22:29:33 2019 +0300

    iwlwifi: mvm: don't send GEO_TX_POWER_LIMIT on version < 41
    
    commit 39bd984c203e86f3109b49c2a2e20677c4d3ab65 upstream.
    
    Firmware versions before 41 don't support the GEO_TX_POWER_LIMIT
    command, and sending it to the firmware will cause a firmware crash.
    We allow this via debugfs, so we need to return an error value in case
    it's not supported.
    
    This had already been fixed during init, when we send the command if
    the ACPI WGDS table is present.  Fix it also for the other,
    userspace-triggered case.
    
    Cc: stable@vger.kernel.org
    Fixes: 7fe90e0e3d60 ("iwlwifi: mvm: refactor geo init")
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a985a6b398d6054f5abf048cba18c30d3cffd8a0
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Mon Jul 22 13:02:25 2019 +0300

    iwlwifi: mvm: fix a use-after-free bug in iwl_mvm_tx_tso_segment
    
    commit 71b256f8f7a5c09810d2c3ed6165629c2cc0a652 upstream.
    
    Accessing the hdr of an skb that was consumed already isn't
    a good idea.
    First ask if the skb is a QoS packet, then keep that data
    on stack, and then consume the skb.
    This was spotted by KASAN.
    
    Cc: stable@vger.kernel.org
    Fixes: 08f7d8b69aaf ("iwlwifi: mvm: bring back mvm GSO code")
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 54ae6149f4cb0ae9c622ba2ef9cb908446ed8c45
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Mon Jul 22 12:47:27 2019 +0300

    iwlwifi: mvm: fix an out-of-bound access
    
    commit ba3224db78034435e9ff0247277cce7c7bb1756c upstream.
    
    The index for the elements of the ACPI object we dereference
    was static. This means that if we called the function twice
    we wouldn't start from 3 again, but rather from the latest
    index we reached in the previous call.
    This was dutifully reported by KASAN.
    
    Fix this.
    
    Cc: stable@vger.kernel.org
    Fixes: 6996490501ed ("iwlwifi: mvm: add support for EWRD (Dynamic SAR) ACPI table")
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ddee2b078360038527a7feece687307ea2685940
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Sun Jul 21 14:02:27 2019 +0300

    iwlwifi: don't unmap as page memory that was mapped as single
    
    commit 87e7e25aee6b59fef740856f4e86d4b60496c9e1 upstream.
    
    In order to remember how to unmap a memory (as single or
    as page), we maintain a bit per Transmit Buffer (TBs) in
    the meta data (structure iwl_cmd_meta).
    We maintain a bitmap: 1 bit per TB.
    If the TB is set, we will free the memory as a page.
    This bitmap was never cleared. Fix this.
    
    Cc: stable@vger.kernel.org
    Fixes: 3cd1980b0cdf ("iwlwifi: pcie: introduce new tfd and tb formats")
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa0199d83de696e334f6d8e93c0fa3973ca2468a
Author: Brian Norris <briannorris@chromium.org>
Date:   Wed Jul 24 12:46:34 2019 -0700

    mwifiex: fix 802.11n/WPA detection
    
    commit df612421fe2566654047769c6852ffae1a31df16 upstream.
    
    Commit 63d7ef36103d ("mwifiex: Don't abort on small, spec-compliant
    vendor IEs") adjusted the ieee_types_vendor_header struct, which
    inadvertently messed up the offsets used in
    mwifiex_is_wpa_oui_present(). Add that offset back in, mirroring
    mwifiex_is_rsn_oui_present().
    
    As it stands, commit 63d7ef36103d breaks compatibility with WPA (not
    WPA2) 802.11n networks, since we hit the "info: Disable 11n if AES is
    not supported by AP" case in mwifiex_is_network_compatible().
    
    Fixes: 63d7ef36103d ("mwifiex: Don't abort on small, spec-compliant vendor IEs")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81ccda70dd52f445699d9eb49117df5549ab54ce
Author: Marc Zyngier <maz@kernel.org>
Date:   Fri Aug 2 10:28:32 2019 +0100

    KVM: arm/arm64: Sync ICH_VMCR_EL2 back when about to block
    
    commit 5eeaf10eec394b28fad2c58f1f5c3a5da0e87d1c upstream.
    
    Since commit commit 328e56647944 ("KVM: arm/arm64: vgic: Defer
    touching GICH_VMCR to vcpu_load/put"), we leave ICH_VMCR_EL2 (or
    its GICv2 equivalent) loaded as long as we can, only syncing it
    back when we're scheduled out.
    
    There is a small snag with that though: kvm_vgic_vcpu_pending_irq(),
    which is indirectly called from kvm_vcpu_check_block(), needs to
    evaluate the guest's view of ICC_PMR_EL1. At the point were we
    call kvm_vcpu_check_block(), the vcpu is still loaded, and whatever
    changes to PMR is not visible in memory until we do a vcpu_put().
    
    Things go really south if the guest does the following:
    
            mov x0, #0      // or any small value masking interrupts
            msr ICC_PMR_EL1, x0
    
            [vcpu preempted, then rescheduled, VMCR sampled]
    
            mov x0, #ff     // allow all interrupts
            msr ICC_PMR_EL1, x0
            wfi             // traps to EL2, so samping of VMCR
    
            [interrupt arrives just after WFI]
    
    Here, the hypervisor's view of PMR is zero, while the guest has enabled
    its interrupts. kvm_vgic_vcpu_pending_irq() will then say that no
    interrupts are pending (despite an interrupt being received) and we'll
    block for no reason. If the guest doesn't have a periodic interrupt
    firing once it has blocked, it will stay there forever.
    
    To avoid this unfortuante situation, let's resync VMCR from
    kvm_arch_vcpu_blocking(), ensuring that a following kvm_vcpu_check_block()
    will observe the latest value of PMR.
    
    This has been found by booting an arm64 Linux guest with the pseudo NMI
    feature, and thus using interrupt priorities to mask interrupts instead
    of the usual PSTATE masking.
    
    Cc: stable@vger.kernel.org # 4.12
    Fixes: 328e56647944 ("KVM: arm/arm64: vgic: Defer touching GICH_VMCR to vcpu_load/put")
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3968fee8385eed72835f02f56bafae064c52f98
Author: Wanpeng Li <wanpengli@tencent.com>
Date:   Mon Aug 5 10:03:19 2019 +0800

    KVM: Fix leak vCPU's VMCS value into other pCPU
    
    commit 17e433b54393a6269acbcb792da97791fe1592d8 upstream.
    
    After commit d73eb57b80b (KVM: Boost vCPUs that are delivering interrupts), a
    five years old bug is exposed. Running ebizzy benchmark in three 80 vCPUs VMs
    on one 80 pCPUs Skylake server, a lot of rcu_sched stall warning splatting
    in the VMs after stress testing:
    
     INFO: rcu_sched detected stalls on CPUs/tasks: { 4 41 57 62 77} (detected by 15, t=60004 jiffies, g=899, c=898, q=15073)
     Call Trace:
       flush_tlb_mm_range+0x68/0x140
       tlb_flush_mmu.part.75+0x37/0xe0
       tlb_finish_mmu+0x55/0x60
       zap_page_range+0x142/0x190
       SyS_madvise+0x3cd/0x9c0
       system_call_fastpath+0x1c/0x21
    
    swait_active() sustains to be true before finish_swait() is called in
    kvm_vcpu_block(), voluntarily preempted vCPUs are taken into account
    by kvm_vcpu_on_spin() loop greatly increases the probability condition
    kvm_arch_vcpu_runnable(vcpu) is checked and can be true, when APICv
    is enabled the yield-candidate vCPU's VMCS RVI field leaks(by
    vmx_sync_pir_to_irr()) into spinning-on-a-taken-lock vCPU's current
    VMCS.
    
    This patch fixes it by checking conservatively a subset of events.
    
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Marc Zyngier <Marc.Zyngier@arm.com>
    Cc: stable@vger.kernel.org
    Fixes: 98f4a1467 (KVM: add kvm_arch_vcpu_runnable() test to kvm_vcpu_on_spin() loop)
    Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 863ccea53435179bd3811fc92176cfa00895f871
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Sat Aug 3 10:28:18 2019 -0400

    NFSv4: Fix an Oops in nfs4_do_setattr
    
    commit 09a54f0ebfe263bc27c90bbd80187b9a93283887 upstream.
    
    If the user specifies an open mode of 3, then we don't have a NFSv4 state
    attached to the context, and so we Oops when we try to dereference it.
    
    Reported-by: Olga Kornievskaia <aglo@umich.edu>
    Fixes: 29b59f9416937 ("NFSv4: change nfs4_do_setattr to take...")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Cc: stable@vger.kernel.org # v4.10: 991eedb1371dc: NFSv4: Only pass the...
    Cc: stable@vger.kernel.org # v4.10+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 983674ab26f90b03e3ca839d26b4c8e01427f043
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Mon Jul 29 18:25:00 2019 +0100

    NFSv4: Check the return value of update_open_stateid()
    
    commit e3c8dc761ead061da2220ee8f8132f729ac3ddfe upstream.
    
    Ensure that we always check the return value of update_open_stateid()
    so that we can retry if the update of local state failed. This fixes
    infinite looping on state recovery.
    
    Fixes: e23008ec81ef3 ("NFSv4 reduce attribute requests for open reclaim")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Cc: stable@vger.kernel.org # v3.7+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c98c9d695b7ff6ded7b07d67ae1efc4be0fa4aef
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Fri Jul 19 14:08:37 2019 -0400

    NFSv4: Fix delegation state recovery
    
    commit 5eb8d18ca0e001c6055da2b7f30d8f6dca23a44f upstream.
    
    Once we clear the NFS_DELEGATED_STATE flag, we're telling
    nfs_delegation_claim_opens() that we're done recovering all open state
    for that stateid, so we really need to ensure that we test for all
    open modes that are currently cached and recover them before exiting
    nfs4_open_delegation_recall().
    
    Fixes: 24311f884189d ("NFSv4: Recovery of recalled read delegations...")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Cc: stable@vger.kernel.org # v4.3+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48ed55d668a16f3bb0540c89c7d26637a6d9e75f
Author: Steve French <stfrench@microsoft.com>
Date:   Thu Jul 25 18:13:10 2019 -0500

    smb3: send CAP_DFS capability during session setup
    
    commit 8d33096a460d5b9bd13300f01615df5bb454db10 upstream.
    
    We had a report of a server which did not do a DFS referral
    because the session setup Capabilities field was set to 0
    (unlike negotiate protocol where we set CAP_DFS).  Better to
    send it session setup in the capabilities as well (this also
    more closely matches Windows client behavior).
    
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37ba1062b2692199110c7c84fcb722fcb9add691
Author: Pavel Shilovsky <pshilov@microsoft.com>
Date:   Mon Jul 22 11:34:59 2019 -0700

    SMB3: Fix deadlock in validate negotiate hits reconnect
    
    commit e99c63e4d86d3a94818693147b469fa70de6f945 upstream.
    
    Currently we skip SMB2_TREE_CONNECT command when checking during
    reconnect because Tree Connect happens when establishing
    an SMB session. For SMB 3.0 protocol version the code also calls
    validate negotiate which results in SMB2_IOCL command being sent
    over the wire. This may deadlock on trying to acquire a mutex when
    checking for reconnect. Fix this by skipping SMB2_IOCL command
    when doing the reconnect check.
    
    Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ad905c1587dbdf29409972f1b3669408c4bb847
Author: Vivek Goyal <vgoyal@redhat.com>
Date:   Fri Aug 2 15:29:56 2019 -0400

    dax: dax_layout_busy_page() should not unmap cow pages
    
    commit d75996dd022b6d83bd14af59b2775b1aa639e4b9 upstream.
    
    Vivek:
    
        "As of now dax_layout_busy_page() calls unmap_mapping_range() with last
         argument as 1, which says even unmap cow pages. I am wondering who needs
         to get rid of cow pages as well.
    
         I noticed one interesting side affect of this. I mount xfs with -o dax and
         mmaped a file with MAP_PRIVATE and wrote some data to a page which created
         cow page. Then I called fallocate() on that file to zero a page of file.
         fallocate() called dax_layout_busy_page() which unmapped cow pages as well
         and then I tried to read back the data I wrote and what I get is old
         data from persistent memory. I lost the data I had written. This
         read basically resulted in new fault and read back the data from
         persistent memory.
    
         This sounds wrong. Are there any users which need to unmap cow pages
         as well? If not, I am proposing changing it to not unmap cow pages.
    
         I noticed this while while writing virtio_fs code where when I tried
         to reclaim a memory range and that corrupted the executable and I
         was running from virtio-fs and program got segment violation."
    
    Dan:
    
        "In fact the unmap_mapping_range() in this path is only to synchronize
         against get_user_pages_fast() and force it to call back into the
         filesystem to re-establish the mapping. COW pages should be left
         untouched by dax_layout_busy_page()."
    
    Cc: <stable@vger.kernel.org>
    Fixes: 5fac7408d828 ("mm, fs, dax: handle layout changes to pinned dax mappings")
    Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
    Link: https://lore.kernel.org/r/20190802192956.GA3032@redhat.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8bf73b4ad38985b7b1d404c263d47474fa5c520f
Author: Brian Norris <briannorris@chromium.org>
Date:   Fri Jul 26 15:47:58 2019 -0700

    mac80211: don't WARN on short WMM parameters from AP
    
    commit 05aaa5c97dce4c10a9e7eae2f1569a684e0c5ced upstream.
    
    In a very similar spirit to commit c470bdc1aaf3 ("mac80211: don't WARN
    on bad WMM parameters from buggy APs"), an AP may not transmit a
    fully-formed WMM IE. For example, it may miss or repeat an Access
    Category. The above loop won't catch that and will instead leave one of
    the four ACs zeroed out. This triggers the following warning in
    drv_conf_tx()
    
      wlan0: invalid CW_min/CW_max: 0/0
    
    and it may leave one of the hardware queues unconfigured. If we detect
    such a case, let's just print a warning and fall back to the defaults.
    
    Tested with a hacked version of hostapd, intentionally corrupting the
    IEs in hostapd_eid_wmm().
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Link: https://lore.kernel.org/r/20190726224758.210953-1-briannorris@chromium.org
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5fe41c2f2bce6c4869c1927c6cafea895976c8a
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Aug 6 17:31:48 2019 +0200

    ALSA: hda - Workaround for crackled sound on AMD controller (1022:1457)
    
    commit c02f77d32d2c45cfb1b2bb99eabd8a78f5ecc7db upstream.
    
    A long-time problem on the recent AMD chip (X370, X470, B450, etc with
    PCI ID 1022:1457) with Realtek codecs is the crackled or distorted
    sound for capture streams, as well as occasional playback hiccups.
    After lengthy debugging sessions, the workarounds we've found are like
    the following:
    
    - Set up the proper driver caps for this controller, similar as the
      other AMD controller.
    
    - Correct the DMA position reporting with the fixed FIFO size, which
      is similar like as workaround used for VIA chip set.
    
    - Even after the position correction, PulseAudio still shows
      mysterious stalls of playback streams when a capture is triggered in
      timer-scheduled mode.  Since we have no clear way to eliminate the
      stall, pass the BATCH PCM flag for PA to suppress the tsched mode as
      a temporary workaround.
    
    This patch implements the workarounds.  For the driver caps, it
    defines a new preset, AXZ_DCAPS_PRESET_AMD_SB.  It enables the FIFO-
    corrected position reporting (corresponding to the new position_fix=6)
    and enforces the SNDRV_PCM_INFO_BATCH flag.
    
    Note that the current implementation is merely a workaround.
    Hopefully we'll find a better alternative in future, especially about
    removing the BATCH flag hack again.
    
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=195303
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f1e925744bb998c82f5bfb71f3bcefb9bce6ded
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Aug 6 14:03:56 2019 +0200

    ALSA: hda - Don't override global PCM hw info flag
    
    commit c1c6c877b0c79fd7e05c931435aa42211eaeebaf upstream.
    
    The commit bfcba288b97f ("ALSA - hda: Add support for link audio time
    reporting") introduced the conditional PCM hw info setup, but it
    overwrites the global azx_pcm_hw object.  This will cause a problem if
    any other HD-audio controller, as it'll inherit the same bit flag
    although another controller doesn't support that feature.
    
    Fix the bug by setting the PCM hw info flag locally.
    
    Fixes: bfcba288b97f ("ALSA - hda: Add support for link audio time reporting")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aef97df436103cd8b74452f7d8873339814e7cae
Author: Wenwen Wang <wenwen@cs.uga.edu>
Date:   Wed Aug 7 04:08:51 2019 -0500

    ALSA: hiface: fix multiple memory leak bugs
    
    commit 3d92aa45fbfd7319e3a19f4ec59fd32b3862b723 upstream.
    
    In hiface_pcm_init(), 'rt' is firstly allocated through kzalloc(). Later
    on, hiface_pcm_init_urb() is invoked to initialize 'rt->out_urbs[i]'. In
    hiface_pcm_init_urb(), 'rt->out_urbs[i].buffer' is allocated through
    kzalloc().  However, if hiface_pcm_init_urb() fails, both 'rt' and
    'rt->out_urbs[i].buffer' are not deallocated, leading to memory leak bugs.
    Also, 'rt->out_urbs[i].buffer' is not deallocated if snd_pcm_new() fails.
    
    To fix the above issues, free 'rt' and 'rt->out_urbs[i].buffer'.
    
    Fixes: a91c3fb2f842 ("Add M2Tech hiFace USB-SPDIF driver")
    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb5519f28405dd7e082b4f0a73758376775a0ce4
Author: Wenwen Wang <wenwen@cs.uga.edu>
Date:   Thu Aug 8 00:50:58 2019 -0500

    ALSA: firewire: fix a memory leak bug
    
    commit 1be3c1fae6c1e1f5bb982b255d2034034454527a upstream.
    
    In iso_packets_buffer_init(), 'b->packets' is allocated through
    kmalloc_array(). Then, the aligned packet size is checked. If it is
    larger than PAGE_SIZE, -EINVAL will be returned to indicate the error.
    However, the allocated 'b->packets' is not deallocated on this path,
    leading to a memory leak.
    
    To fix the above issue, free 'b->packets' before returning the error code.
    
    Fixes: 31ef9134eb52 ("ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver")
    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Cc: <stable@vger.kernel.org> # v2.6.39+
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b3d9d03c207a1b3f4faabde99ff3571c57fbf346
Author: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Date:   Fri Jul 12 11:19:38 2019 +0300

    drm/i915: Fix wrong escape clock divisor init for GLK
    
    commit 73a0ff0b30af79bf0303d557eb82f1d1945bb6ee upstream.
    
    According to Bspec clock divisor registers in GeminiLake
    should be initialized by shifting 1(<<) to amount of correspondent
    divisor. While i915 was writing all this time that value as is.
    
    Surprisingly that it by accident worked, until we met some issues
    with Microtech Etab.
    
    v2: Added Fixes tag and cc
    v3: Added stable to cc as well.
    
    Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    Reviewed-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108826
    Fixes: bcc657004841 ("drm/i915/glk: Program txesc clock divider for GLK")
    Cc: Deepak M <m.deepak@intel.com>
    Cc: Madhav Chauhan <madhav.chauhan@intel.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: intel-gfx@lists.freedesktop.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190712081938.14185-1-stanislav.lisovskiy@intel.com
    (cherry picked from commit ce52ad5dd52cfaf3398058384e0ff94134bbd89c)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ace146b613fdd83ca76b8bda817b0099ce6f7398
Author: Iker Perez del Palomar Sustatxa <iker.perez@codethink.co.uk>
Date:   Thu Aug 1 08:53:24 2019 +0100

    hwmon: (lm75) Fixup tmp75b clr_mask
    
    commit a95a4f3f2702b55a89393bf0f1b2b3d79e0f7da2 upstream.
    
    The configuration register of the tmp75b sensor is 16bit long, however
    the first byte is reserved, so there is not no need to take care of it.
    
    Because the order of the bytes is little endian and it is only necessary
    to write one byte, the desired bits must be shifted into a 8 bit range.
    
    Fixes: 39abe9d88b30 ("hwmon: (lm75) Add support for TMP75B")
    Cc: stable@vger.kernel.org
    Signed-off-by: Iker Perez del Palomar Sustatxa <iker.perez@codethink.co.uk>
    Link: https://lore.kernel.org/r/20190801075324.4638-1-iker.perez@codethink.co.uk
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4dfe9926b86c7c913d52a4ab871e4bb2606b5a30
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Fri Jul 26 08:00:49 2019 -0700

    hwmon: (nct7802) Fix wrong detection of in4 presence
    
    commit 38ada2f406a9b81fb1249c5c9227fa657e7d5671 upstream.
    
    The code to detect if in4 is present is wrong; if in4 is not present,
    the in4_input sysfs attribute is still present.
    
    In detail:
    
    - Ihen RTD3_MD=11 (VSEN3 present), everything is as expected (no bug).
    - If we have RTD3_MD!=11 (no VSEN3), we unexpectedly have a in4_input
      file under /sys and the "sensors" command displays in4_input.
      But as expected, we have no in4_min, in4_max, in4_alarm, in4_beep.
    
    Fix is_visible function to detect and report in4_input visibility
    as expected.
    
    Reported-by: Gilles Buloz <Gilles.Buloz@kontron.com>
    Cc: Gilles Buloz <Gilles.Buloz@kontron.com>
    Cc: stable@vger.kernel.org
    Fixes: 3434f37835804 ("hwmon: Driver for Nuvoton NCT7802Y")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0604e052feacea516f4c93417209acfc45815ea
Author: Tomas Bortoli <tomasbortoli@gmail.com>
Date:   Wed Jul 31 10:54:47 2019 -0400

    can: peak_usb: pcan_usb_fd: Fix info-leaks to USB devices
    
    commit 30a8beeb3042f49d0537b7050fd21b490166a3d9 upstream.
    
    Uninitialized Kernel memory can leak to USB devices.
    
    Fix by using kzalloc() instead of kmalloc() on the affected buffers.
    
    Signed-off-by: Tomas Bortoli <tomasbortoli@gmail.com>
    Reported-by: syzbot+513e4d0985298538bf9b@syzkaller.appspotmail.com
    Fixes: 0a25e1f4f185 ("can: peak_usb: add support for PEAK new CANFD USB adapters")
    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 2ad05374e90316a109e3e14250dfa1346d8c8eda
Author: Tomas Bortoli <tomasbortoli@gmail.com>
Date:   Wed Jul 31 10:54:47 2019 -0400

    can: peak_usb: pcan_usb_pro: Fix info-leaks to USB devices
    
    commit ead16e53c2f0ed946d82d4037c630e2f60f4ab69 upstream.
    
    Uninitialized Kernel memory can leak to USB devices.
    
    Fix by using kzalloc() instead of kmalloc() on the affected buffers.
    
    Signed-off-by: Tomas Bortoli <tomasbortoli@gmail.com>
    Reported-by: syzbot+d6a5a1a3657b596ef132@syzkaller.appspotmail.com
    Fixes: f14e22435a27 ("net: can: peak_usb: Do not do dma on the stack")
    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 6c3bb5437fb2069388ee9222805b26b55936531f
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Tue Jun 4 18:09:39 2019 +0200

    KVM/nSVM: properly map nested VMCB
    
    commit 8f38302c0be2d2daf3b40f7d2142ec77e35d209e upstream.
    
    Commit 8c5fbf1a7231 ("KVM/nSVM: Use the new mapping API for mapping guest
    memory") broke nested SVM completely: kvm_vcpu_map()'s second parameter is
    GFN so vmcb_gpa needs to be converted with gpa_to_gfn(), not the other way
    around.
    
    Fixes: 8c5fbf1a7231 ("KVM/nSVM: Use the new mapping API for mapping guest memory")
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Reviewed-by: Sean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99be0ce782720e4cd6139e8d1e1144f1d06aecfe
Author: Wenwen Wang <wenwen@cs.uga.edu>
Date:   Tue Aug 6 03:00:27 2019 -0400

    ALSA: usb-audio: fix a memory leak bug
    
    commit a67060201b746a308b1674f66bf289c9faef6d09 upstream.
    
    In snd_usb_get_audioformat_uac3(), a structure for channel maps 'chmap' is
    allocated through kzalloc() before the execution goto 'found_clock'.
    However, this structure is not deallocated if the memory allocation for
    'pd' fails, leading to a memory leak bug.
    
    To fix the above issue, free 'fp->chmap' before returning NULL.
    
    Fixes: 7edf3b5e6a45 ("ALSA: usb-audio: AudioStreaming Power Domain parsing")
    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bba097c444618e07aac4f1d1dee172284b1f5b5d
Author: Roderick Colenbrander <roderick@gaikai.com>
Date:   Fri Aug 2 15:50:19 2019 -0700

    HID: sony: Fix race condition between rumble and device remove.
    
    commit e0f6974a54d3f7f1b5fdf5a593bd43ce9206ec04 upstream.
    
    Valve reported a kernel crash on Ubuntu 18.04 when disconnecting a DS4
    gamepad while rumble is enabled. This issue is reproducible with a
    frequency of 1 in 3 times in the game Borderlands 2 when using an
    automatic weapon, which triggers many rumble operations.
    
    We found the issue to be a race condition between sony_remove and the
    final device destruction by the HID / input system. The problem was
    that sony_remove didn't clean some of its work_item state in
    "struct sony_sc". After sony_remove work, the corresponding evdev
    node was around for sufficient time for applications to still queue
    rumble work after "sony_remove".
    
    On pre-4.19 kernels the race condition caused a kernel crash due to a
    NULL-pointer dereference as "sc->output_report_dmabuf" got freed during
    sony_remove. On newer kernels this crash doesn't happen due the buffer
    now being allocated using devm_kzalloc. However we can still queue work,
    while the driver is an undefined state.
    
    This patch fixes the described problem, by guarding the work_item
    "state_worker" with an initialized variable, which we are setting back
    to 0 on cleanup.
    
    Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
    CC: stable@vger.kernel.org
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e90cc87bbaa9ac929be327f01b3aa3a07ba27774
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Sat Jul 27 12:01:10 2019 +0900

    gen_compile_commands: lower the entry count threshold
    
    [ Upstream commit cb36955a5569f1ff17a42ae93264ef391c013a97 ]
    
    Running gen_compile_commands.py after building the kernel with
    allnoconfig gave this:
    
    $ ./scripts/gen_compile_commands.py
    WARNING: Found 449 entries. Have you compiled the kernel?
    
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8be0ce4f3678106e06a21687db3cda2449ddb4e7
Author: Halil Pasic <pasic@linux.ibm.com>
Date:   Wed Jul 24 00:51:55 2019 +0200

    s390/dma: provide proper ARCH_ZONE_DMA_BITS value
    
    [ Upstream commit 1a2dcff881059dedc14fafc8a442664c8dbd60f1 ]
    
    On s390 ZONE_DMA is up to 2G, i.e. ARCH_ZONE_DMA_BITS should be 31 bits.
    The current value is 24 and makes __dma_direct_alloc_pages() take a
    wrong turn first (but __dma_direct_alloc_pages() recovers then).
    
    Let's correct ARCH_ZONE_DMA_BITS value and avoid wrong turns.
    
    Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
    Reported-by: Petr Tesarik <ptesarik@suse.cz>
    Fixes: c61e9637340e ("dma-direct: add support for allocation from ZONE_DMA and ZONE_DMA32")
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ca37bfa8c39d0d794661dc0cf234a7aa66074c6
Author: Leonard Crestez <leonard.crestez@nxp.com>
Date:   Wed Jul 24 15:53:24 2019 +0300

    perf/core: Fix creating kernel counters for PMUs that override event->cpu
    
    [ Upstream commit 4ce54af8b33d3e21ca935fc1b89b58cbba956051 ]
    
    Some hardware PMU drivers will override perf_event.cpu inside their
    event_init callback. This causes a lockdep splat when initialized through
    the kernel API:
    
     WARNING: CPU: 0 PID: 250 at kernel/events/core.c:2917 ctx_sched_out+0x78/0x208
     pc : ctx_sched_out+0x78/0x208
     Call trace:
      ctx_sched_out+0x78/0x208
      __perf_install_in_context+0x160/0x248
      remote_function+0x58/0x68
      generic_exec_single+0x100/0x180
      smp_call_function_single+0x174/0x1b8
      perf_install_in_context+0x178/0x188
      perf_event_create_kernel_counter+0x118/0x160
    
    Fix this by calling perf_install_in_context with event->cpu, just like
    perf_event_open
    
    Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Mark Rutland <mark.rutland@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Frank Li <Frank.li@nxp.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lkml.kernel.org/r/c4ebe0503623066896d7046def4d6b1e06e0eb2e.1563972056.git.leonard.crestez@nxp.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 961a713b1134edffbb3d9e41a90c72c23bd92e47
Author: Zhenzhong Duan <zhenzhong.duan@oracle.com>
Date:   Thu Jul 25 10:39:26 2019 +0800

    perf/x86: Apply more accurate check on hypervisor platform
    
    [ Upstream commit 5ea3f6fb37b79da33ac9211df336fd2b9f47c39f ]
    
    check_msr is used to fix a bug report in guest where KVM doesn't support
    LBR MSR and cause #GP.
    
    The msr check is bypassed on real HW to workaround a false failure,
    see commit d0e1a507bdc7 ("perf/x86/intel: Disable check_msr for real HW")
    
    When running a guest with CONFIG_HYPERVISOR_GUEST not set or "nopv"
    enabled, current check isn't enough and #GP could trigger.
    
    Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lkml.kernel.org/r/1564022366-18293-1-git-send-email-zhenzhong.duan@oracle.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c55cb6c28ebc414ceb9c3367e4a4c50d425e4447
Author: Yunying Sun <yunying.sun@intel.com>
Date:   Wed Jul 24 16:29:32 2019 +0800

    perf/x86/intel: Fix invalid Bit 13 for Icelake MSR_OFFCORE_RSP_x register
    
    [ Upstream commit 3b238a64c3009fed36eaea1af629d9377759d87d ]
    
    The Intel SDM states that bit 13 of Icelake's MSR_OFFCORE_RSP_x
    register is valid, and used for counting hardware generated prefetches
    of L3 cache. Update the bitmask to allow bit 13.
    
    Before:
    $ perf stat -e cpu/event=0xb7,umask=0x1,config1=0x1bfff/u sleep 3
     Performance counter stats for 'sleep 3':
       <not supported>      cpu/event=0xb7,umask=0x1,config1=0x1bfff/u
    
    After:
    $ perf stat -e cpu/event=0xb7,umask=0x1,config1=0x1bfff/u sleep 3
     Performance counter stats for 'sleep 3':
                 9,293      cpu/event=0xb7,umask=0x1,config1=0x1bfff/u
    
    Signed-off-by: Yunying Sun <yunying.sun@intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: acme@kernel.org
    Cc: alexander.shishkin@linux.intel.com
    Cc: bp@alien8.de
    Cc: hpa@zytor.com
    Cc: jolsa@redhat.com
    Cc: namhyung@kernel.org
    Link: https://lkml.kernel.org/r/20190724082932.12833-1-yunying.sun@intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 26d7295cc2532a07b5cfb05f479b3133468ee0ee
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Tue Jul 23 13:04:29 2019 -0700

    perf/x86/intel: Fix SLOTS PEBS event constraint
    
    [ Upstream commit 3d0c3953601d250175c7684ec0d9df612061dae5 ]
    
    Sampling SLOTS event and ref-cycles event in a group on Icelake gives
    EINVAL.
    
    SLOTS event is the event stands for the fixed counter 3, not fixed
    counter 2. Wrong mask was set to SLOTS event in
    intel_icl_pebs_event_constraints[].
    
    Reported-by: Andi Kleen <ak@linux.intel.com>
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: 6017608936c1 ("perf/x86/intel: Add Icelake support")
    Link: https://lkml.kernel.org/r/20190723200429.8180-1-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ccba851730d7d3e912d61b23b485e3bb58b1c260
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Thu Jul 18 15:03:15 2019 +0200

    tty/ldsem, locking/rwsem: Add missing ACQUIRE to read_failed sleep loop
    
    [ Upstream commit 952041a8639a7a3a73a2b6573cb8aa8518bc39f8 ]
    
    While reviewing rwsem down_slowpath, Will noticed ldsem had a copy of
    a bug we just found for rwsem.
    
      X = 0;
    
      CPU0                  CPU1
    
      rwsem_down_read()
        for (;;) {
          set_current_state(TASK_UNINTERRUPTIBLE);
    
                            X = 1;
                            rwsem_up_write();
                              rwsem_mark_wake()
                                atomic_long_add(adjustment, &sem->count);
                                smp_store_release(&waiter->task, NULL);
    
          if (!waiter.task)
            break;
    
          ...
        }
    
      r = X;
    
    Allows 'r == 0'.
    
    Reported-by: Will Deacon <will@kernel.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: Will Deacon <will@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Hurley <peter@hurleysoftware.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: 4898e640caf0 ("tty: Add timed, writer-prioritized rw semaphore")
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit adae7772d1cf15cdf0aef72f7ab1502054bca1ee
Author: Wenwen Wang <wenwen@cs.uga.edu>
Date:   Sun Jul 14 01:11:35 2019 -0500

    test_firmware: fix a memory leak bug
    
    [ Upstream commit d4fddac5a51c378c5d3e68658816c37132611e1f ]
    
    In test_firmware_init(), the buffer pointed to by the global pointer
    'test_fw_config' is allocated through kzalloc(). Then, the buffer is
    initialized in __test_firmware_config_init(). In the case that the
    initialization fails, the following execution in test_firmware_init() needs
    to be terminated with an error code returned to indicate this failure.
    However, the allocated buffer is not freed on this execution path, leading
    to a memory leak bug.
    
    To fix the above issue, free the allocated buffer before returning from
    test_firmware_init().
    
    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Link: https://lore.kernel.org/r/1563084696-6865-1-git-send-email-wang6495@umn.edu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38a7704c088ffba79f9121a3d079bfea58614eab
Author: Hannes Reinecke <hare@suse.de>
Date:   Fri Jul 12 08:53:47 2019 +0200

    scsi: scsi_dh_alua: always use a 2 second delay before retrying RTPG
    
    [ Upstream commit 20122994e38aef0ae50555884d287adde6641c94 ]
    
    Retrying immediately after we've received a 'transitioning' sense code is
    pretty much pointless, we should always use a delay before retrying.  So
    ensure the default delay is applied before retrying.
    
    Signed-off-by: Hannes Reinecke <hare@suse.com>
    Tested-by: Zhangguanghui <zhang.guanghui@h3c.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d8bd4253dedfcd4a5b1682856b6c1dafa23ce865
Author: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Date:   Wed Jul 17 14:48:27 2019 -0500

    scsi: ibmvfc: fix WARN_ON during event pool release
    
    [ Upstream commit 5578257ca0e21056821e6481bd534ba267b84e58 ]
    
    While removing an ibmvfc client adapter a WARN_ON like the following
    WARN_ON is seen in the kernel log:
    
    WARNING: CPU: 6 PID: 5421 at ./include/linux/dma-mapping.h:541
    ibmvfc_free_event_pool+0x12c/0x1f0 [ibmvfc]
    CPU: 6 PID: 5421 Comm: rmmod Tainted: G            E     4.17.0-rc1-next-20180419-autotest #1
    NIP:  d00000000290328c LR: d00000000290325c CTR: c00000000036ee20
    REGS: c000000288d1b7e0 TRAP: 0700   Tainted: G            E      (4.17.0-rc1-next-20180419-autotest)
    MSR:  800000010282b033 <SF,VEC,VSX,EE,FP,ME,IR,DR,RI,LE,TM[E]>  CR: 44008828  XER: 20000000
    CFAR: c00000000036e408 SOFTE: 1
    GPR00: d00000000290325c c000000288d1ba60 d000000002917900 c000000289d75448
    GPR04: 0000000000000071 c0000000ff870000 0000000018040000 0000000000000001
    GPR08: 0000000000000000 c00000000156e838 0000000000000001 d00000000290c640
    GPR12: c00000000036ee20 c00000001ec4dc00 0000000000000000 0000000000000000
    GPR16: 0000000000000000 0000000000000000 00000100276901e0 0000000010020598
    GPR20: 0000000010020550 0000000010020538 0000000010020578 00000000100205b0
    GPR24: 0000000000000000 0000000000000000 0000000010020590 5deadbeef0000100
    GPR28: 5deadbeef0000200 d000000002910b00 0000000000000071 c0000002822f87d8
    NIP [d00000000290328c] ibmvfc_free_event_pool+0x12c/0x1f0 [ibmvfc]
    LR [d00000000290325c] ibmvfc_free_event_pool+0xfc/0x1f0 [ibmvfc]
    Call Trace:
    [c000000288d1ba60] [d00000000290325c] ibmvfc_free_event_pool+0xfc/0x1f0 [ibmvfc] (unreliable)
    [c000000288d1baf0] [d000000002909390] ibmvfc_abort_task_set+0x7b0/0x8b0 [ibmvfc]
    [c000000288d1bb70] [c0000000000d8c68] vio_bus_remove+0x68/0x100
    [c000000288d1bbb0] [c0000000007da7c4] device_release_driver_internal+0x1f4/0x2d0
    [c000000288d1bc00] [c0000000007da95c] driver_detach+0x7c/0x100
    [c000000288d1bc40] [c0000000007d8af4] bus_remove_driver+0x84/0x140
    [c000000288d1bcb0] [c0000000007db6ac] driver_unregister+0x4c/0xa0
    [c000000288d1bd20] [c0000000000d6e7c] vio_unregister_driver+0x2c/0x50
    [c000000288d1bd50] [d00000000290ba0c] cleanup_module+0x24/0x15e0 [ibmvfc]
    [c000000288d1bd70] [c0000000001dadb0] sys_delete_module+0x220/0x2d0
    [c000000288d1be30] [c00000000000b284] system_call+0x58/0x6c
    Instruction dump:
    e8410018 e87f0068 809f0078 e8bf0080 e8df0088 2fa30000 419e008c e9230200
    2fa90000 419e0080 894d098a 794a07e0 <0b0a0000> e9290008 2fa90000 419e0028
    
    This is tripped as a result of irqs being disabled during the call to
    dma_free_coherent() by ibmvfc_free_event_pool(). At this point in the code path
    we have quiesced the adapter and its overly paranoid anyways to be holding the
    host lock.
    
    Reported-by: Abdul Haleem <abdhalee@linux.vnet.ibm.com>
    Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9fa07913bb96ae5e474fef1d4ec7047db1456b8e
Author: Junxiao Bi <junxiao.bi@oracle.com>
Date:   Mon Jul 22 09:15:24 2019 -0700

    scsi: megaraid_sas: fix panic on loading firmware crashdump
    
    [ Upstream commit 3b5f307ef3cb5022bfe3c8ca5b8f2114d5bf6c29 ]
    
    While loading fw crashdump in function fw_crash_buffer_show(), left bytes
    in one dma chunk was not checked, if copying size over it, overflow access
    will cause kernel panic.
    
    Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
    Acked-by: Sumit Saxena <sumit.saxena@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 684f28fae3760717ea40e989e7130db0632c7241
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Jul 22 16:55:52 2019 +0200

    ARM: dts: bcm: bcm47094: add missing #cells for mdio-bus-mux
    
    [ Upstream commit 3a9d2569e45cb02769cda26fee4a02126867c934 ]
    
    The mdio-bus-mux has no #address-cells/#size-cells property,
    which causes a few dtc warnings:
    
    arch/arm/boot/dts/bcm47094-linksys-panamera.dts:129.4-18: Warning (reg_format): /mdio-bus-mux/mdio@200:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
    arch/arm/boot/dts/bcm47094-linksys-panamera.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
    arch/arm/boot/dts/bcm47094-linksys-panamera.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
    arch/arm/boot/dts/bcm47094-linksys-panamera.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
    arch/arm/boot/dts/bcm47094-linksys-panamera.dts:128.22-132.5: Warning (avoid_default_addr_size): /mdio-bus-mux/mdio@200: Relying on default #address-cells value
    arch/arm/boot/dts/bcm47094-linksys-panamera.dts:128.22-132.5: Warning (avoid_default_addr_size): /mdio-bus-mux/mdio@200: Relying on default #size-cells value
    
    Add the normal cell numbers.
    
    Link: https://lore.kernel.org/r/20190722145618.1155492-1-arnd@arndb.de
    Fixes: 2bebdfcdcd0f ("ARM: dts: BCM5301X: Add support for Linksys EA9500")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit db3e42d4a55164ac1cc472011d45d07655a6c00d
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Jul 22 16:51:50 2019 +0200

    ARM: davinci: fix sleep.S build error on ARMv4
    
    [ Upstream commit d64b212ea960db4276a1d8372bd98cb861dfcbb0 ]
    
    When building a multiplatform kernel that includes armv4 support,
    the default target CPU does not support the blx instruction,
    which leads to a build failure:
    
    arch/arm/mach-davinci/sleep.S: Assembler messages:
    arch/arm/mach-davinci/sleep.S:56: Error: selected processor does not support `blx ip' in ARM mode
    
    Add a .arch statement in the sources to make this file build.
    
    Link: https://lore.kernel.org/r/20190722145211.1154785-1-arnd@arndb.de
    Acked-by: Sekhar Nori <nsekhar@ti.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f20e1e83bc32a75c48df3a382d3ab6b3429467bb
Author: Logan Gunthorpe <logang@deltatee.com>
Date:   Thu Jul 18 17:53:50 2019 -0600

    nvme: fix memory leak caused by incorrect subsystem free
    
    [ Upstream commit e654dfd38c1ecf58d8d019f3c053189413484a5b ]
    
    When freeing the subsystem after finding another match with
    __nvme_find_get_subsystem(), use put_device() instead of
    __nvme_release_subsystem() which calls kfree() directly.
    
    Per the documentation, put_device() should always be used
    after device_initialization() is called. Otherwise, leaks
    like the one below which was detected by kmemleak may occur.
    
    Once the call of __nvme_release_subsystem() is removed it no
    longer makes sense to keep the helper, so fold it back
    into nvme_release_subsystem().
    
    unreferenced object 0xffff8883d12bfbc0 (size 16):
      comm "nvme", pid 2635, jiffies 4294933602 (age 739.952s)
      hex dump (first 16 bytes):
        6e 76 6d 65 2d 73 75 62 73 79 73 32 00 88 ff ff  nvme-subsys2....
      backtrace:
        [<000000007d8fc208>] __kmalloc_track_caller+0x16d/0x2a0
        [<0000000081169e5f>] kvasprintf+0xad/0x130
        [<0000000025626f25>] kvasprintf_const+0x47/0x120
        [<00000000fa66ad36>] kobject_set_name_vargs+0x44/0x120
        [<000000004881f8b3>] dev_set_name+0x98/0xc0
        [<000000007124dae3>] nvme_init_identify+0x1995/0x38e0
        [<000000009315020a>] nvme_loop_configure_admin_queue+0x4fa/0x5e0
        [<000000001a63e766>] nvme_loop_create_ctrl+0x489/0xf80
        [<00000000a46ecc23>] nvmf_dev_write+0x1a12/0x2220
        [<000000002259b3d5>] __vfs_write+0x66/0x120
        [<000000002f6df81e>] vfs_write+0x154/0x490
        [<000000007e8cfc19>] ksys_write+0x10a/0x240
        [<00000000ff5c7b85>] __x64_sys_write+0x73/0xb0
        [<00000000fee6d692>] do_syscall_64+0xaa/0x470
        [<00000000997e1ede>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Fixes: ab9e00cc72fa ("nvme: track subsystems")
    Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 31ea2274d8336b2f877c254cb11c617306e7d8ed
Author: Misha Nasledov <misha@nasledov.com>
Date:   Mon Jul 15 00:11:49 2019 -0700

    nvme: ignore subnqn for ADATA SX6000LNP
    
    [ Upstream commit 08b903b5fd0c49e5f224a9bf085b6329ec3c55c0 ]
    
    The ADATA SX6000LNP NVMe SSDs have the same subnqn and, due to this, a
    system with more than one of these SSDs will only have one usable.
    
    [ 0.942706] nvme nvme1: ignoring ctrl due to duplicate subnqn (nqn.2018-05.com.example:nvme:nvm-subsystem-OUI00E04C).
    [ 0.943017] nvme nvme1: Removing after probe failure status: -22
    
    02:00.0 Non-Volatile memory controller [0108]: Realtek Semiconductor Co., Ltd. Device [10ec:5762] (rev 01)
    71:00.0 Non-Volatile memory controller [0108]: Realtek Semiconductor Co., Ltd. Device [10ec:5762] (rev 01)
    
    There are no firmware updates available from the vendor, unfortunately.
    Applying the NVME_QUIRK_IGNORE_DEV_SUBNQN quirk for these SSDs resolves
    the issue, and they all work after this patch:
    
    /dev/nvme0n1     2J1120050420         ADATA SX6000LNP [...]
    /dev/nvme1n1     2J1120050540         ADATA SX6000LNP [...]
    
    Signed-off-by: Misha Nasledov <misha@nasledov.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d247aa6e2ac4b0621d09ace760c9224fed2a6d14
Author: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Date:   Mon Jul 22 17:25:48 2019 +0100

    ACPI/IORT: Fix off-by-one check in iort_dev_find_its_id()
    
    [ Upstream commit 5a46d3f71d5e5a9f82eabc682f996f1281705ac7 ]
    
    Static analysis identified that index comparison against ITS entries in
    iort_dev_find_its_id() is off by one.
    
    Update the comparison condition and clarify the resulting error
    message.
    
    Fixes: 4bf2efd26d76 ("ACPI: Add new IORT functions to support MSI domain handling")
    Link: https://lore.kernel.org/linux-arm-kernel/20190613065410.GB16334@mwanda/
    Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Cc: Sudeep Holla <sudeep.holla@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a0e5469c7fb4d29c91791b3f317c0f71db8a5e28
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Jul 22 14:26:34 2019 +0200

    drbd: dynamically allocate shash descriptor
    
    [ Upstream commit 77ce56e2bfaa64127ae5e23ef136c0168b818777 ]
    
    Building with clang and KASAN, we get a warning about an overly large
    stack frame on 32-bit architectures:
    
    drivers/block/drbd/drbd_receiver.c:921:31: error: stack frame size of 1280 bytes in function 'conn_connect'
          [-Werror,-Wframe-larger-than=]
    
    We already allocate other data dynamically in this function, so
    just do the same for the shash descriptor, which makes up most of
    this memory.
    
    Link: https://lore.kernel.org/lkml/20190617132440.2721536-1-arnd@arndb.de/
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Roland Kammerer <roland.kammerer@linbit.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e52a3c17bac6e60c8783ed66ac99497aac826e2b
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Thu Jul 18 11:28:37 2019 -0300

    perf probe: Avoid calling freeing routine multiple times for same pointer
    
    [ Upstream commit d95daf5accf4a72005daa13fbb1d1bd8709f2861 ]
    
    When perf_add_probe_events() we call cleanup_perf_probe_events() for the
    pev pointer it receives, then, as part of handling this failure the main
    'perf probe' goes on and calls cleanup_params() and that will again call
    cleanup_perf_probe_events()for the same pointer, so just set nevents to
    zero when handling the failure of perf_add_probe_events() to avoid the
    double free.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lkml.kernel.org/n/tip-x8qgma4g813z96dvtw9w219q@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 742fa6d07fe9bd80c513800518573ba3fff01799
Author: Alexey Budankov <alexey.budankov@linux.intel.com>
Date:   Tue Jul 9 17:48:14 2019 +0300

    perf session: Fix loading of compressed data split across adjacent records
    
    [ Upstream commit 872c8ee8f0f47222f7b10da96eea84d0486540a3 ]
    
    Fix decompression failure found during the loading of compressed trace
    collected on larger scale systems (>48 cores).
    
    The error happened due to lack of decompression space for a mmaped
    buffer data chunk split across adjacent PERF_RECORD_COMPRESSED records.
    
      $ perf report -i bt.16384.data --stats
      failed to decompress (B): 63869 -> 0 : Destination buffer is too small
      user stack dump failure
      Can't parse sample, err = -14
      0x2637e436 [0x4080]: failed to process type: 9
      Error:
      failed to process sample
    
      $ perf test 71
      71: Zstd perf.data compression/decompression              : Ok
    
    Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/4d839e1b-9c48-89c4-9702-a12217420611@linux.intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1342d61acd12eb2796c40718700cdecfd6b88f81
Author: Jiri Olsa <jolsa@redhat.com>
Date:   Mon Jul 15 16:21:21 2019 +0200

    perf stat: Fix segfault for event group in repeat mode
    
    [ Upstream commit 08ef3af1579d0446db1c1bd08e2c42565addf10f ]
    
    Numfor Mbiziwo-Tiapo reported segfault on stat of event group in repeat
    mode:
    
      # perf stat -e '{cycles,instructions}' -r 10 ls
    
    It's caused by memory corruption due to not cleaned evsel's id array and
    index, which needs to be rebuilt in every stat iteration. Currently the
    ids index grows, while the array (which is also not freed) has the same
    size.
    
    Fixing this by releasing id array and zeroing ids index in
    perf_evsel__close function.
    
    We also need to keep the evsel_list alive for stat record (which is
    disabled in repeat mode).
    
    Reported-by: Numfor Mbiziwo-Tiapo <nums@google.com>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Mark Drayton <mbd@fb.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Song Liu <songliubraving@fb.com>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/r/20190715142121.GC6032@krava
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b55b050d9bff898cb6da42383e1e2ae3569ee756
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Mon Jul 15 16:04:26 2019 +0200

    perf tools: Fix proper buffer size for feature processing
    
    [ Upstream commit 79b2fe5e756163897175a8f57d66b26cd9befd59 ]
    
    After Song Liu's segfault fix for pipe mode, Arnaldo reported following
    error:
    
      # perf record -o - | perf script
      0x514 [0x1ac]: failed to process type: 80
    
    It's caused by wrong buffer size setup in feature processing, which
    makes cpu topology feature fail, because it's using buffer size to
    recognize its header version.
    
    Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: David Carrillo-Cisneros <davidcc@google.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Song Liu <songliubraving@fb.com>
    Fixes: e9def1b2e74e ("perf tools: Add feature header record to pipe-mode")
    Link: http://lkml.kernel.org/r/20190715140426.32509-1-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 62abdd2ba83c39dae6e716b015c125316dde323a
Author: Andi Kleen <ak@linux.intel.com>
Date:   Thu Jul 11 11:19:21 2019 -0700

    perf script: Fix off by one in brstackinsn IPC computation
    
    [ Upstream commit dde4e732a5b02fa5599c2c0e6c48a0c11789afc4 ]
    
    When we hit the end of a program block, need to count the last
    instruction too for the IPC computation. This caused large errors for
    small blocks.
    
      % perf script -b ls / > /dev/null
    
    Before:
    
      % perf script -F +brstackinsn --xed
      ...
            00007f94c9ac70d8                        jz 0x7f94c9ac70e3                       # PRED 3 cycles [36] 4.33 IPC
            00007f94c9ac70e3                        testb  $0x20, 0x31d(%rbx)
            00007f94c9ac70ea                        jnz 0x7f94c9ac70b0
            00007f94c9ac70ec                        testb  $0x8, 0x205ad(%rip)
            00007f94c9ac70f3                        jz 0x7f94c9ac6ff0               # PRED 1 cycles [37] 3.00 IPC
    
    After:
    
      % perf script -F +brstackinsn --xed
      ...
            00007f94c9ac70d8                        jz 0x7f94c9ac70e3                       # PRED 3 cycles [15] 4.67 IPC
            00007f94c9ac70e3                        testb  $0x20, 0x31d(%rbx)
            00007f94c9ac70ea                        jnz 0x7f94c9ac70b0
            00007f94c9ac70ec                        testb  $0x8, 0x205ad(%rip)
            00007f94c9ac70f3                        jz 0x7f94c9ac6ff0               # PRED 1 cycles [16] 4.00 IPC
    
    Suggested-by: Denis Bakhvalov <denis.bakhvalov@intel.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Link: http://lkml.kernel.org/r/20190711181922.18765-2-andi@firstfloor.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ee2704531362af65ad296c78e59eeef61c78b0b
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Mon Jul 22 10:24:36 2019 +0100

    ALSA: compress: Be more restrictive about when a drain is allowed
    
    [ Upstream commit 3b8179944cb0dd53e5223996966746cdc8a60657 ]
    
    Draining makes little sense in the situation of hardware overrun, as the
    hardware will have consumed all its available samples. Additionally,
    draining whilst the stream is paused would presumably get stuck as no
    data is being consumed on the DSP side.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Acked-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 069e0e4653d0f9a482380b8b418aacad54bb2a1d
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Mon Jul 22 10:24:35 2019 +0100

    ALSA: compress: Don't allow paritial drain operations on capture streams
    
    [ Upstream commit a70ab8a8645083f3700814e757f2940a88b7ef88 ]
    
    Partial drain and next track are intended for gapless playback and
    don't really have an obvious interpretation for a capture stream, so
    makes sense to not allow those operations on capture streams.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Acked-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aed61fce3a2b9e2a3a16f81a34aa55e47350ce9e
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Mon Jul 22 10:24:34 2019 +0100

    ALSA: compress: Prevent bypasses of set_params
    
    [ Upstream commit 26c3f1542f5064310ad26794c09321780d00c57d ]
    
    Currently, whilst in SNDRV_PCM_STATE_OPEN it is possible to call
    snd_compr_stop, snd_compr_drain and snd_compr_partial_drain, which
    allow a transition to SNDRV_PCM_STATE_SETUP. The stream should
    only be able to move to the setup state once it has received a
    SNDRV_COMPRESS_SET_PARAMS ioctl. Fix this issue by not allowing
    those ioctls whilst in the open state.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Acked-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7989879611415f429bbb2b144bfe33a8daad0e64
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Mon Jul 22 10:24:33 2019 +0100

    ALSA: compress: Fix regression on compressed capture streams
    
    [ Upstream commit 4475f8c4ab7b248991a60d9c02808dbb813d6be8 ]
    
    A previous fix to the stop handling on compressed capture streams causes
    some knock on issues. The previous fix updated snd_compr_drain_notify to
    set the state back to PREPARED for capture streams. This causes some
    issues however as the handling for snd_compr_poll differs between the
    two states and some user-space applications were relying on the poll
    failing after the stream had been stopped.
    
    To correct this regression whilst still fixing the original problem the
    patch was addressing, update the capture handling to skip the PREPARED
    state rather than skipping the SETUP state as it has done until now.
    
    Fixes: 4f2ab5e1d13d ("ALSA: compress: Fix stop handling on compressed capture streams")
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Acked-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 860798838b6562f899bed2b862bdf68e045ed961
Author: Julian Wiedmann <jwi@linux.ibm.com>
Date:   Thu Jul 11 18:17:36 2019 +0200

    s390/qdio: add sanity checks to the fast-requeue path
    
    [ Upstream commit a6ec414a4dd529eeac5c3ea51c661daba3397108 ]
    
    If the device driver were to send out a full queue's worth of SBALs,
    current code would end up discovering the last of those SBALs as PRIMED
    and erroneously skip the SIGA-w. This immediately stalls the queue.
    
    Add a check to not attempt fast-requeue in this case. While at it also
    make sure that the state of the previous SBAL was successfully extracted
    before inspecting it.
    
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Reviewed-by: Jens Remus <jremus@linux.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a786f755373c419fbf859eafa5b404338bdb1229
Author: Wen Yang <wen.yang99@zte.com.cn>
Date:   Wed Jul 17 11:55:04 2019 +0800

    cpufreq/pasemi: fix use-after-free in pas_cpufreq_cpu_init()
    
    [ Upstream commit e0a12445d1cb186d875410d093a00d215bec6a89 ]
    
    The cpu variable is still being used in the of_get_property() call
    after the of_node_put() call, which may result in use-after-free.
    
    Fixes: a9acc26b75f6 ("cpufreq/pasemi: fix possible object reference leak")
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 61146106b7388147abd5320dbc75b7fb3ea21ad6
Author: Lucas Stach <l.stach@pengutronix.de>
Date:   Wed Jul 17 11:54:36 2019 +0200

    arm64: dts: imx8mq: fix SAI compatible
    
    [ Upstream commit 8d0148473dece51675d11dd59b8db5fe4b5d2e7e ]
    
    The i.MX8M SAI block is not compatible with the i.MX6SX one, as the
    register layout has changed due to two version registers being added
    at the beginning of the address map. Remove the bogus compatible.
    
    Fixes: 8c61538dc945 ("arm64: dts: imx8mq: Add SAI2 node")
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c577fb2c7b37c6230d9acf6195b352b5b2932ed9
Author: Anson Huang <Anson.Huang@nxp.com>
Date:   Tue Jul 16 11:09:33 2019 +0800

    arm64: dts: imx8mm: Correct SAI3 RXC/TXFS pin's mux option #1
    
    [ Upstream commit 52d09014bb104a9157c0f5530700291052d2955c ]
    
    According to i.MX8MM reference manual Rev.1, 03/2019:
    
    SAI3_RXC pin's mux option #1 should be GPT1_CLK, NOT GPT1_CAPTURE2;
    SAI3_TXFS pin's mux option #1 should be GPT1_CAPTURE2, NOT GPT1_CLK.
    
    Fixes: c1c9d41319c3 ("dt-bindings: imx: Add pinctrl binding doc for imx8mm")
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cfeb15314261c54657bdfe7cc11d4c31a3546fb1
Author: Qian Cai <cai@lca.pw>
Date:   Mon Jul 22 15:14:46 2019 -0400

    drm: silence variable 'conn' set but not used
    
    [ Upstream commit bbb6fc43f131f77fcb7ae8081f6d7c51396a2120 ]
    
    The "struct drm_connector" iteration cursor from
    "for_each_new_connector_in_state" is never used in atomic_remove_fb()
    which generates a compilation warning,
    
    drivers/gpu/drm/drm_framebuffer.c: In function 'atomic_remove_fb':
    drivers/gpu/drm/drm_framebuffer.c:838:24: warning: variable 'conn' set
    but not used [-Wunused-but-set-variable]
    
    Silence it by marking "conn" __maybe_unused.
    
    Signed-off-by: Qian Cai <cai@lca.pw>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/1563822886-13570-1-git-send-email-cai@lca.pw
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit afe2d8b1532d753cfb141491541d9d0ca29247df
Author: Shubhashree Dhar <dhar@codeaurora.org>
Date:   Mon Jun 24 11:57:12 2019 +0530

    drm/msm/dpu: Correct dpu encoder spinlock initialization
    
    [ Upstream commit 2e7b801eadbf327bf61041c943e5c44a5de4b0e5 ]
    
    dpu encoder spinlock should be initialized during dpu encoder
    init instead of dpu encoder setup which is part of modeset init.
    
    Signed-off-by: Shubhashree Dhar <dhar@codeaurora.org>
    [seanpaul resolved conflict in old init removal and revised the commit message]
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/1561357632-15361-1-git-send-email-dhar@codeaurora.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 69dd8b5ebe8edd0330691922b04d098f55a15a7f
Author: Dmitry Safonov <dima@arista.com>
Date:   Tue Jul 16 22:38:06 2019 +0100

    iommu/vt-d: Check if domain->pgd was allocated
    
    [ Upstream commit 3ee9eca760e7d0b68c55813243de66bbb499dc3b ]
    
    There is a couple of places where on domain_init() failure domain_exit()
    is called. While currently domain_init() can fail only if
    alloc_pgtable_page() has failed.
    
    Make domain_exit() check if domain->pgd present, before calling
    domain_unmap(), as it theoretically should crash on clearing pte entries
    in dma_pte_clear_level().
    
    Cc: David Woodhouse <dwmw2@infradead.org>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Lu Baolu <baolu.lu@linux.intel.com>
    Cc: iommu@lists.linux-foundation.org
    Signed-off-by: Dmitry Safonov <dima@arista.com>
    Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eb6e7431ad4fb45825d9cfb1ddb61048405e3835
Author: James Morse <james.morse@arm.com>
Date:   Mon Jul 22 16:11:48 2019 +0100

    arm64: entry: SP Alignment Fault doesn't write to FAR_EL1
    
    [ Upstream commit 40ca0ce56d4bb889dc43b455c55398468115569a ]
    
    Comparing the arm-arm's  pseudocode for AArch64.PCAlignmentFault() with
    AArch64.SPAlignmentFault() shows that SP faults don't copy the faulty-SP
    to FAR_EL1, but this is where we read from, and the address we provide
    to user-space with the BUS_ADRALN signal.
    
    For user-space this value will be UNKNOWN due to the previous ERET to
    user-space. If the last value is preserved, on systems with KASLR or KPTI
    this will be the user-space link-register left in FAR_EL1 by tramp_exit().
    Fix this to retrieve the original sp_el0 value, and pass this to
    do_sp_pc_fault().
    
    SP alignment faults from EL1 will cause us to take the fault again when
    trying to store the pt_regs. This eventually takes us to the overflow
    stack. Remove the ESR_ELx_EC_SP_ALIGN check as we will never make it
    this far.
    
    Fixes: 60ffc30d5652 ("arm64: Exception handling")
    Signed-off-by: James Morse <james.morse@arm.com>
    [will: change label name and fleshed out comment]
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e74611aceb4a67b93edf319b1f1240be51333115
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Mon Jul 22 14:53:09 2019 +0100

    arm64: Force SSBS on context switch
    
    [ Upstream commit cbdf8a189a66001c36007bf0f5c975d0376c5c3a ]
    
    On a CPU that doesn't support SSBS, PSTATE[12] is RES0.  In a system
    where only some of the CPUs implement SSBS, we end-up losing track of
    the SSBS bit across task migration.
    
    To address this issue, let's force the SSBS bit on context switch.
    
    Fixes: 8f04e8e6e29c ("arm64: ssbd: Add support for PSTATE.SSBS rather than trapping to EL3")
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    [will: inverted logic and added comments]
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8a6709ad4ceff3a4aba8f09a45505e9afbfdb04c
Author: Vaibhav Jain <vaibhav@linux.ibm.com>
Date:   Sat Jun 29 21:36:10 2019 +0530

    powerpc/papr_scm: Force a scm-unbind if initial scm-bind fails
    
    [ Upstream commit 3a855b7ac7d5021674aa3e1cc9d3bfd6b604e9c0 ]
    
    In some cases initial bind of scm memory for an lpar can fail if
    previously it wasn't released using a scm-unbind hcall. This situation
    can arise due to panic of the previous kernel or forced lpar
    fadump. In such cases the H_SCM_BIND_MEM return a H_OVERLAP error.
    
    To mitigate such cases the patch updates papr_scm_probe() to force a
    call to drc_pmem_unbind() in case the initial bind of scm memory fails
    with EBUSY error. In case scm-bind operation again fails after the
    forced scm-unbind then we follow the existing error path. We also
    update drc_pmem_bind() to handle the H_OVERLAP error returned by phyp
    and indicate it as a EBUSY error back to the caller.
    
    Suggested-by: "Oliver O'Halloran" <oohall@gmail.com>
    Signed-off-by: Vaibhav Jain <vaibhav@linux.ibm.com>
    Reviewed-by: Oliver O'Halloran <oohall@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190629160610.23402-4-vaibhav@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2d99de942024d8546baa3dfc1d72cca9597f6e90
Author: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
Date:   Thu Jul 4 13:00:53 2019 +0200

    ARM: dts: imx6ul: fix clock frequency property name of I2C buses
    
    [ Upstream commit 2ca99396333999b9b5c5b91b36cbccacfe571aaf ]
    
    A few boards set clock frequency of their I2C buses with
    "clock_frequency" property. The right property is "clock-frequency".
    
    Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 65a4d0ec868c9563ea64ff9dc138c4ff99642902
Author: Björn Gerhart <gerhart@posteo.de>
Date:   Mon Jul 15 18:33:55 2019 +0200

    hwmon: (nct6775) Fix register address and added missed tolerance for nct6106
    
    [ Upstream commit f3d43e2e45fd9d44ba52d20debd12cd4ee9c89bf ]
    
    Fixed address of third NCT6106_REG_WEIGHT_DUTY_STEP, and
    added missed NCT6106_REG_TOLERANCE_H.
    
    Fixes: 6c009501ff200 ("hwmon: (nct6775) Add support for NCT6102D/6106D")
    Signed-off-by: Bjoern Gerhart <gerhart@posteo.de>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f674df02255bb7c4aa0190a945f0868b61ff31d
Author: Lei YU <mine260309@gmail.com>
Date:   Thu Jul 11 10:44:48 2019 +0800

    hwmon: (occ) Fix division by zero issue
    
    [ Upstream commit 211186cae14de09573b062e478eb9fe215aed8d9 ]
    
    The code in occ_get_powr_avg() invokes div64_u64() without checking the
    divisor. In case the divisor is zero, kernel gets an "Division by zero
    in kernel" error.
    
    Check the divisor and make it return 0 if the divisor is 0.
    
    Fixes: c10e753d43eb ("hwmon (occ): Add sensor types and versions")
    Signed-off-by: Lei YU <mine260309@gmail.com>
    Reviewed-by: Eddie James <eajames@linux.ibm.com>
    Link: https://lore.kernel.org/r/1562813088-23708-1-git-send-email-mine260309@gmail.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b95697c8e29f34331ef28aa2404bf6d86674bcd7
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Sun Jul 21 01:37:31 2019 -0500

    allocate_flower_entry: should check for null deref
    
    [ Upstream commit bb1320834b8a80c6ac2697ab418d066981ea08ba ]
    
    allocate_flower_entry does not check for allocation success, but tries
    to deref the result. I only moved the spin_lock under null check, because
     the caller is checking allocation's status at line 652.
    
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 971c59455b5da587828c400f18c5f4ae6495b766
Author: Brian Norris <briannorris@chromium.org>
Date:   Wed Jul 17 18:57:12 2019 -0700

    mac80211: don't warn about CW params when not using them
    
    [ Upstream commit d2b3fe42bc629c2d4002f652b3abdfb2e72991c7 ]
    
    ieee80211_set_wmm_default() normally sets up the initial CW min/max for
    each queue, except that it skips doing this if the driver doesn't
    support ->conf_tx. We still end up calling drv_conf_tx() in some cases
    (e.g., ieee80211_reconfig()), which also still won't do anything
    useful...except it complains here about the invalid CW parameters.
    
    Let's just skip the WARN if we weren't going to do anything useful with
    the parameters.
    
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Link: https://lore.kernel.org/r/20190718015712.197499-1-briannorris@chromium.org
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4b89b96b6f1c385e3ad72c7b8e210e4266316e2a
Author: Lorenzo Bianconi <lorenzo@kernel.org>
Date:   Wed Jul 3 00:29:47 2019 +0200

    mac80211: fix possible memory leak in ieee80211_assign_beacon
    
    [ Upstream commit bcc27fab8cc673ddc95452674373cce618ccb3a3 ]
    
    Free new beacon_data in ieee80211_assign_beacon whenever
    ieee80211_assign_beacon fails
    
    Fixes: 8860020e0be1 ("cfg80211: restructure AP/GO mode API")
    Fixes: bc847970f432 ("mac80211: support FTM responder configuration/statistic")
    Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
    Link: https://lore.kernel.org/r/770285772543c9fca33777bb4ad4760239e56256.1562105631.git.lorenzo@kernel.org
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c60ab146fa9e99c52f2a5bbc2193241d4272e67c
Author: John Crispin <john@phrozen.org>
Date:   Thu Jun 27 11:58:32 2019 +0200

    nl80211: fix NL80211_HE_MAX_CAPABILITY_LEN
    
    [ Upstream commit 5edaac063bbf1267260ad2a5b9bb803399343e58 ]
    
    NL80211_HE_MAX_CAPABILITY_LEN has changed between D2.0 and D4.0. It is now
    MAC (6) + PHY (11) + MCS (12) + PPE (25) = 54.
    
    Signed-off-by: John Crispin <john@phrozen.org>
    Link: https://lore.kernel.org/r/20190627095832.19445-1-john@phrozen.org
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7744a5521d24bbed1c737bbf711c331fd3a2242c
Author: Thomas Tai <thomas.tai@oracle.com>
Date:   Thu Jul 18 18:37:34 2019 +0000

    iscsi_ibft: make ISCSI_IBFT dependson ACPI instead of ISCSI_IBFT_FIND
    
    [ Upstream commit 94bccc34071094c165c79b515d21b63c78f7e968 ]
    
    iscsi_ibft can use ACPI to find the iBFT entry during bootup,
    currently, ISCSI_IBFT depends on ISCSI_IBFT_FIND which is
    a X86 legacy way to find the iBFT by searching through the
    low memory. This patch changes the dependency so that other
    arch like ARM64 can use ISCSI_IBFT as long as the arch supports
    ACPI.
    
    ibft_init() needs to use the global variable ibft_addr declared
    in iscsi_ibft_find.c. A #ifndef CONFIG_ISCSI_IBFT_FIND is needed
    to declare the variable if CONFIG_ISCSI_IBFT_FIND is not selected.
    Moving ibft_addr into the iscsi_ibft.c does not work because if
    ISCSI_IBFT is selected as a module, the arch/x86/kernel/setup.c won't
    be able to find the variable at compile time.
    
    Signed-off-by: Thomas Tai <thomas.tai@oracle.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 72d4d51a2d600a2da6ac54f59d86b798eb4cd5bb
Author: Tai Man <taiman.wong@amd.com>
Date:   Fri Jun 28 11:40:38 2019 -0400

    drm/amd/display: Increase size of audios array
    
    [ Upstream commit 7352193a33dfc9b69ba3bf6a8caea925b96243b1 ]
    
    [Why]
    The audios array defined in "struct resource_pool" is only 6 (MAX_PIPES)
    but the max number of audio devices (num_audio) is 7. In some projects,
    it will run out of audios array.
    
    [How]
    Incraese the audios array size to 7.
    
    Signed-off-by: Tai Man <taiman.wong@amd.com>
    Reviewed-by: Joshua Aberback <Joshua.Aberback@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 456d33270ae03b37397baa73fc458e2b7feda1aa
Author: Alvin Lee <alvin.lee2@amd.com>
Date:   Thu Jul 4 15:17:42 2019 -0400

    drm/amd/display: Only enable audio if speaker allocation exists
    
    [ Upstream commit 6ac25e6d5b2fbf251e9fa2f4131d42c815b43867 ]
    
    [Why]
    
    In dm_helpers_parse_edid_caps, there is a corner case where no speakers
    can be allocated even though the audio mode count is greater than 0.
    Enabling audio when no speaker allocations exists can cause issues in
    the video stream.
    
    [How]
    
    Add a check to not enable audio unless one or more speaker allocations
    exist (since doing this can cause issues in the video stream).
    
    Signed-off-by: Alvin Lee <alvin.lee2@amd.com>
    Reviewed-by: Jun Lei <Jun.Lei@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94e0d52ab718f7926450cbab0f50d620da31e29a
Author: Julian Parkin <julian.parkin@amd.com>
Date:   Tue Jun 25 14:55:53 2019 -0400

    drm/amd/display: Fix dc_create failure handling and 666 color depths
    
    [ Upstream commit 0905f32977268149f06e3ce6ea4bd6d374dd891f ]
    
    [Why]
    It is possible (but very unlikely) that constructing dc fails
    before current_state is created.
    
    We support 666 color depth in some scenarios, but this
    isn't handled in get_norm_pix_clk. It uses exactly the
    same pixel clock as the 888 case.
    
    [How]
    Check for non null current_state before destructing.
    
    Add case for 666 color depth to get_norm_pix_clk to
    avoid assertion.
    
    Signed-off-by: Julian Parkin <julian.parkin@amd.com>
    Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2961a5916cb43938690aa56393ca1a6f1069b318
Author: Derek Lai <Derek.Lai@amd.com>
Date:   Tue Jul 2 17:50:41 2019 +0800

    drm/amd/display: allocate 4 ddc engines for RV2
    
    [ Upstream commit 67fd6c0d2de8e51e84ff3fa6e68bbd524f823e49 ]
    
    [Why]
    Driver will create 0, 1, and 2 ddc engines for RV2,
    but some platforms used 0, 1, and 3.
    
    [How]
    Still allocate 4 ddc engines for RV2.
    
    Signed-off-by: Derek Lai <Derek.Lai@amd.com>
    Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5b4fb99c395076fd88bc038caa2dc91718b7292c
Author: Eric Yang <Eric.Yang2@amd.com>
Date:   Mon Jun 24 18:18:58 2019 -0400

    drm/amd/display: put back front end initialization sequence
    
    [ Upstream commit feb7eb522e0a7a22c1e60d386bd3c3bfa1d5e4f7 ]
    
    [Why]
    Seamless boot optimization removed proper front end power off sequence.
    In driver disable enable case, this causes driver to power gate hubp
    and dpp while there is still memory fetching going on, this can cause
    invalid memory requests to be generated which will hang data fabric.
    
    [How]
    Put back proper front end power off sequence
    
    Signed-off-by: Eric Yang <Eric.Yang2@amd.com>
    Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Acked-by: Tony Cheng <Tony.Cheng@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 74c3128d6d99338a6a860f2372dd70bd2ec610d8
Author: Tai Man <taiman.wong@amd.com>
Date:   Fri Jun 7 17:32:27 2019 -0400

    drm/amd/display: use encoder's engine id to find matched free audio device
    
    [ Upstream commit 74eda776d7a4e69ec7aa1ce30a87636f14220fbb ]
    
    [Why]
    On some platforms, the encoder id 3 is not populated. So the encoders
    are not stored in right order as index (id: 0, 1, 2, 4, 5) at pool. This
    would cause encoders id 4 & id 5 to fail when finding corresponding
    audio device, defaulting to the first available audio device. As result,
    we cannot stream audio into two DP ports with encoders id 4 & id 5.
    
    [How]
    It need to create enough audio device objects (0 - 5) to perform matching.
    Then use encoder engine id to find matched audio device.
    
    Signed-off-by: Tai Man <taiman.wong@amd.com>
    Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8f17b4dcd46b54c5f6f38e85d87d7527310ff075
Author: Zi Yu Liao <ziyu.liao@amd.com>
Date:   Thu Jun 20 10:55:26 2019 -0400

    drm/amd/display: fix DMCU hang when going into Modern Standby
    
    [ Upstream commit 1ca068ed34d6b39d336c1b0d618ed73ba8f04548 ]
    
    [why]
    When the system is going into suspend, set_backlight gets called
    after the eDP got blanked. Since smooth brightness is enabled,
    the driver will make a call into the DMCU to ramp the brightness.
    The DMCU would try to enable ABM to do so. But since the display is
    blanked, this ends up causing ABM1_ACE_DBUF_REG_UPDATE_PENDING to
    get stuck at 1, which results in a dead lock in the DMCU firmware.
    
    [how]
    Disable brightness ramping when the eDP display is blanked.
    
    Signed-off-by: Zi Yu Liao <ziyu.liao@amd.com>
    Reviewed-by: Eric Yang <eric.yang2@amd.com>
    Acked-by: Anthony Koo <Anthony.Koo@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 26341f1139404362785132fe9ce7f3dc86a85992
Author: SivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com>
Date:   Fri Jun 14 15:04:00 2019 -0400

    drm/amd/display: Wait for backlight programming completion in set backlight level
    
    [ Upstream commit c7990daebe71d11a9e360b5c3b0ecd1846a3a4bb ]
    
    [WHY]
    Currently we don't wait for blacklight programming completion in DMCU
    when setting backlight level. Some sequences such as PSR static screen
    event trigger reprogramming requires it to be complete.
    
    [How]
    Add generic wait for dmcu command completion in set backlight level.
    
    Signed-off-by: SivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com>
    Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 98d0152c2da000d48d78458874abf259a80d0c4c
Author: Murton Liu <murton.liu@amd.com>
Date:   Mon Jun 10 17:55:28 2019 -0400

    drm/amd/display: Clock does not lower in Updateplanes
    
    [ Upstream commit 492d9ec244923420af96db6b69ad7d575859aa92 ]
    
    [why]
    We reset the optimized_required in atomic_plane_disable
    flag immediately after it is set in atomic_plane_disconnect, causing us to
    never have flag set during next flip in UpdatePlanes.
    
    [how]
    Optimize directly after each time plane is removed.
    
    Signed-off-by: Murton Liu <murton.liu@amd.com>
    Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 840e427020ace71b13ca862591a41f47fef29d68
Author: Harmanprit Tatla <harmanprit.tatla@amd.com>
Date:   Tue Jun 4 14:12:21 2019 -0400

    drm/amd/display: No audio endpoint for Dell MST display
    
    [ Upstream commit 5b25e5f1a97284020abee7348427f89abdb674e8 ]
    
    [Why]
    There are certain MST displays (i.e. Dell P2715Q)
    that although have the MST feature set to off may still
    report it is a branch device and a non-zero
    value for downstream port present.
    This can lead to us incorrectly classifying a
    dp dongle connection as being active and
    disabling the audio endpoint for the display.
    
    [How]
    Modified the placement and
    condition used to assign
    the is_branch_dev bit.
    
    Signed-off-by: Harmanprit Tatla <harmanprit.tatla@amd.com>
    Reviewed-by: Aric Cyr <aric.cyr@amd.com>
    Acked-by: Anthony Koo <Anthony.Koo@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6fdbbf4d31b746cc3528d2c9c0d92d9c72642f43
Author: Phil Sutter <phil@nwl.cc>
Date:   Wed Jul 17 21:38:19 2019 +0200

    netfilter: nf_tables: Support auto-loading for inet nat
    
    [ Upstream commit b4f1483cbfa5fafca4874e90063f75603edbc210 ]
    
    Trying to create an inet family nat chain would not cause
    nft_chain_nat.ko module to auto-load due to missing module alias. Add a
    proper one with hard-coded family value 1 for the pseudo-family
    NFPROTO_INET.
    
    Fixes: d164385ec572 ("netfilter: nat: add inet family nat support")
    Signed-off-by: Phil Sutter <phil@nwl.cc>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ae3afb0ab0b6650644f7d0487d01d62322e4ac58
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Tue Jul 16 16:19:29 2019 -0400

    rq-qos: use a mb for got_token
    
    [ Upstream commit ac38297f7038cd5b80d66f8809c7bbf5b70031f3 ]
    
    Oleg noticed that our checking of data.got_token is unsafe in the
    cleanup case, and should really use a memory barrier.  Use a wmb on the
    write side, and a rmb() on the read side.  We don't need one in the main
    loop since we're saved by set_current_state().
    
    Reviewed-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 32d1d7051c67ecd8f070c45785efab0322380db3
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Tue Jul 16 16:19:28 2019 -0400

    rq-qos: set ourself TASK_UNINTERRUPTIBLE after we schedule
    
    [ Upstream commit d14a9b389a86a5154b704bc88ce8dd37c701456a ]
    
    In case we get a spurious wakeup we need to make sure to re-set
    ourselves to TASK_UNINTERRUPTIBLE so we don't busy wait.
    
    Reviewed-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2b6c7c7c9cfa054a3f77d78a836003c12780d514
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Tue Jul 16 16:19:27 2019 -0400

    rq-qos: don't reset has_sleepers on spurious wakeups
    
    [ Upstream commit 64e7ea875ef63b2801be7954cf7257d1bfccc266 ]
    
    If we raced with somebody else getting an inflight counter we could fail
    to get an inflight counter with no sleepers on the list, and thus need
    to go to sleep.  In this case has_sleepers should be true because we are
    now relying on the waker to get our inflight counter for us.  And in the
    case of spurious wakeups we'd still want this to be the case.  So set
    has_sleepers to true if we went to sleep to make sure we're woken up the
    proper way.
    
    Reviewed-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a27b56e3233c4ff38ce9f45abd38f659c244a7e8
Author: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date:   Sat Jul 13 08:19:44 2019 -0300

    scripts/sphinx-pre-install: fix latexmk dependencies
    
    [ Upstream commit 353290a9eb5362a80bc8e52fcd7eb77a30f48afc ]
    
    The name of the package with carries latexmk is different
    on two distros:
    
    - On OpenSUSE, latexmk is packaged as "texlive-latexmk-bin"
    - On Mageia, latexmk is packaged at "texlive-collection-basic"
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8d529b3a7b88f4c046c9eeab70f8f261ce9de167
Author: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date:   Sat Jul 13 09:37:16 2019 -0300

    scripts/sphinx-pre-install: don't use LaTeX with CentOS 7
    
    [ Upstream commit 56e5a633923793b31515795ad30156a307572c1e ]
    
    There aren't enough texlive packages for LaTeX-based builds
    to work on CentOS/RHEL <= 7.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ad0cf7e48f069273f984d781cd09726f5e289cb0
Author: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date:   Sat Jul 13 08:50:24 2019 -0300

    scripts/sphinx-pre-install: fix script for RHEL/CentOS
    
    [ Upstream commit b308467c916aa7acc5069802ab76a9f657434701 ]
    
    There's a missing parenthesis at the script, with causes it to
    fail to detect non-Fedora releases (e. g. RHEL/CentOS).
    
    Tested with Centos 7.6.1810.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4b3caa47345c29686f0a48940476d8a2435778c0
Author: Laura Garcia Liebana <nevola@gmail.com>
Date:   Mon Jul 15 13:23:37 2019 +0200

    netfilter: nft_hash: fix symhash with modulus one
    
    [ Upstream commit 28b1d6ef53e3303b90ca8924bb78f31fa527cafb ]
    
    The rule below doesn't work as the kernel raises -ERANGE.
    
    nft add rule netdev nftlb lb01 ip daddr set \
            symhash mod 1 map { 0 : 192.168.0.10 } fwd to "eth0"
    
    This patch allows to use the symhash modulus with one
    element, in the same way that the other types of hashes and
    algorithms that uses the modulus parameter.
    
    Signed-off-by: Laura Garcia Liebana <nevola@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit adc31faeb35004d1c6b51bc61345f5801feb1b56
Author: Florian Westphal <fw@strlen.de>
Date:   Fri Jul 12 00:29:05 2019 +0200

    netfilter: conntrack: always store window size un-scaled
    
    [ Upstream commit 959b69ef57db00cb33e9c4777400ae7183ebddd3 ]
    
    Jakub Jankowski reported following oddity:
    
    After 3 way handshake completes, timeout of new connection is set to
    max_retrans (300s) instead of established (5 days).
    
    shortened excerpt from pcap provided:
    25.070622 IP (flags [DF], proto TCP (6), length 52)
    10.8.5.4.1025 > 10.8.1.2.80: Flags [S], seq 11, win 64240, [wscale 8]
    26.070462 IP (flags [DF], proto TCP (6), length 48)
    10.8.1.2.80 > 10.8.5.4.1025: Flags [S.], seq 82, ack 12, win 65535, [wscale 3]
    27.070449 IP (flags [DF], proto TCP (6), length 40)
    10.8.5.4.1025 > 10.8.1.2.80: Flags [.], ack 83, win 512, length 0
    
    Turns out the last_win is of u16 type, but we store the scaled value:
    512 << 8 (== 0x20000) becomes 0 window.
    
    The Fixes tag is not correct, as the bug has existed forever, but
    without that change all that this causes might cause is to mistake a
    window update (to-nonzero-from-zero) for a retransmit.
    
    Fixes: fbcd253d2448b8 ("netfilter: conntrack: lower timeout to RETRANS seconds if window is 0")
    Reported-by: Jakub Jankowski <shasta@toxcorp.com>
    Tested-by: Jakub Jankowski <shasta@toxcorp.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Acked-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a2dea736271e6225f7a3931e1e10712707943e1
Author: Christian Hesse <mail@eworm.de>
Date:   Thu Jul 11 01:31:12 2019 +0200

    netfilter: nf_tables: fix module autoload for redir
    
    [ Upstream commit f41828ee10b36644bb2b2bfa9dd1d02f55aa0516 ]
    
    Fix expression for autoloading.
    
    Fixes: 5142967ab524 ("netfilter: nf_tables: fix module autoload with inet family")
    Signed-off-by: Christian Hesse <mail@eworm.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0e6098a4f18524db0748deadbff0103614a2513f
Author: Miaohe Lin <linmiaohe@huawei.com>
Date:   Tue Jul 2 03:59:36 2019 +0000

    netfilter: Fix rpfilter dropping vrf packets by mistake
    
    [ Upstream commit b575b24b8eee37f10484e951b62ce2a31c579775 ]
    
    When firewalld is enabled with ipv4/ipv6 rpfilter, vrf
    ipv4/ipv6 packets will be dropped. Vrf device will pass
    through netfilter hook twice. One with enslaved device
    and another one with l3 master device. So in device may
    dismatch witch out device because out device is always
    enslaved device.So failed with the check of the rpfilter
    and drop the packets by mistake.
    
    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8717d351b3010f567bc0bf44801ed7503deaf356
Author: Farhan Ali <alifm@linux.ibm.com>
Date:   Thu Jul 11 10:28:54 2019 -0400

    vfio-ccw: Don't call cp_free if we are processing a channel program
    
    [ Upstream commit f4c9939433bd396d0b08e803b2b880a9d02682b9 ]
    
    There is a small window where it's possible that we could be working
    on an interrupt (queued in the workqueue) and setting up a channel
    program (i.e allocating memory, pinning pages, translating address).
    This can lead to allocating and freeing the channel program at the
    same time and can cause memory corruption.
    
    Let's not call cp_free if we are currently processing a channel program.
    The only way we know for sure that we don't have a thread setting
    up a channel program is when the state is set to VFIO_CCW_STATE_CP_PENDING.
    
    Fixes: d5afd5d135c8 ("vfio-ccw: add handling for async channel instructions")
    Signed-off-by: Farhan Ali <alifm@linux.ibm.com>
    Reviewed-by: Cornelia Huck <cohuck@redhat.com>
    Message-Id: <62e87bf67b38dc8d5760586e7c96d400db854ebe.1562854091.git.alifm@linux.ibm.com>
    Reviewed-by: Eric Farman <farman@linux.ibm.com>
    Signed-off-by: Cornelia Huck <cohuck@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b7cfb522da949a6768c3d71f53020830d48582b
Author: Farhan Ali <alifm@linux.ibm.com>
Date:   Thu Jul 11 10:28:53 2019 -0400

    vfio-ccw: Set pa_nr to 0 if memory allocation fails for pa_iova_pfn
    
    [ Upstream commit c1ab69268d124ebdbb3864580808188ccd3ea355 ]
    
    So we don't call try to call vfio_unpin_pages() incorrectly.
    
    Fixes: 0a19e61e6d4c ("vfio: ccw: introduce channel program interfaces")
    Signed-off-by: Farhan Ali <alifm@linux.ibm.com>
    Reviewed-by: Eric Farman <farman@linux.ibm.com>
    Reviewed-by: Cornelia Huck <cohuck@redhat.com>
    Message-Id: <33a89467ad6369196ae6edf820cbcb1e2d8d050c.1562854091.git.alifm@linux.ibm.com>
    Signed-off-by: Cornelia Huck <cohuck@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4401d1a67e8de49ed655c0f1f45b5a475d9f1070
Author: Florian Westphal <fw@strlen.de>
Date:   Tue Jul 2 21:41:40 2019 +0200

    netfilter: nfnetlink: avoid deadlock due to synchronous request_module
    
    [ Upstream commit 1b0890cd60829bd51455dc5ad689ed58c4408227 ]
    
    Thomas and Juliana report a deadlock when running:
    
    (rmmod nf_conntrack_netlink/xfrm_user)
    
      conntrack -e NEW -E &
      modprobe -v xfrm_user
    
    They provided following analysis:
    
    conntrack -e NEW -E
        netlink_bind()
            netlink_lock_table() -> increases "nl_table_users"
                nfnetlink_bind()
                # does not unlock the table as it's locked by netlink_bind()
                    __request_module()
                        call_usermodehelper_exec()
    
    This triggers "modprobe nf_conntrack_netlink" from kernel, netlink_bind()
    won't return until modprobe process is done.
    
    "modprobe xfrm_user":
        xfrm_user_init()
            register_pernet_subsys()
                -> grab pernet_ops_rwsem
                    ..
                    netlink_table_grab()
                        calls schedule() as "nl_table_users" is non-zero
    
    so modprobe is blocked because netlink_bind() increased
    nl_table_users while also holding pernet_ops_rwsem.
    
    "modprobe nf_conntrack_netlink" runs and inits nf_conntrack_netlink:
        ctnetlink_init()
            register_pernet_subsys()
                -> blocks on "pernet_ops_rwsem" thanks to xfrm_user module
    
    both modprobe processes wait on one another -- neither can make
    progress.
    
    Switch netlink_bind() to "nowait" modprobe -- this releases the netlink
    table lock, which then allows both modprobe instances to complete.
    
    Reported-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
    Reported-by: Juliana Rodrigueiro <juliana.rodrigueiro@intra2net.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 02511a3fb5cfa6259b394eb84ba85b182b9a77f4
Author: Andrea Arcangeli <aarcange@redhat.com>
Date:   Tue Jun 25 10:17:27 2019 -0400

    powerpc: fix off by one in max_zone_pfn initialization for ZONE_DMA
    
    [ Upstream commit 03800e0526ee25ed7c843ca1e57b69ac2a5af642 ]
    
    25078dc1f74be16b858e914f52cc8f4d03c2271a first introduced an off by
    one error in the ZONE_DMA initialization of PPC_BOOK3E_64=y and since
    9739ab7eda459f0669ec9807e0d9be5020bab88c the off by one applies to
    PPC32=y too. This simply corrects the off by one and should resolve
    crashes like below:
    
    [   65.179101] page 0x7fff outside node 0 zone DMA [ 0x0 - 0x7fff ]
    
    Unfortunately in various MM places "max" means a non inclusive end of
    range. free_area_init_nodes max_zone_pfn parameter is one case and
    MAX_ORDER is another one (unrelated) that comes by memory.
    
    Reported-by: Zorro Lang <zlang@redhat.com>
    Fixes: 25078dc1f74b ("powerpc: use mm zones more sensibly")
    Fixes: 9739ab7eda45 ("powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac")
    Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190625141727.2883-1-aarcange@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 44879f85b39bda2b7eac419702db5cc38aa1b784
Author: Stephane Grosjean <s.grosjean@peak-system.com>
Date:   Fri Jul 5 15:32:16 2019 +0200

    can: peak_usb: fix potential double kfree_skb()
    
    commit fee6a8923ae0d318a7f7950c6c6c28a96cea099b upstream.
    
    When closing the CAN device while tx skbs are inflight, echo skb could
    be released twice. By calling close_candev() before unlinking all
    pending tx urbs, then the internal echo_skb[] array is fully and
    correctly cleared before the USB write callback and, therefore,
    can_get_echo_skb() are called, for each aborted URB.
    
    Fixes: bb4785551f64 ("can: usb: PEAK-System Technik USB adapters driver core")
    Signed-off-by: Stephane Grosjean <s.grosjean@peak-system.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 a4b88383cc79564853360c2cd6ba87420d2f3e3a
Author: Wen Yang <wen.yang99@zte.com.cn>
Date:   Sat Jul 6 11:37:20 2019 +0800

    can: flexcan: fix an use-after-free in flexcan_setup_stop_mode()
    
    commit e9f2a856e102fa27715b94bcc2240f686536d29b upstream.
    
    The gpr_np variable is still being used in dev_dbg() after the
    of_node_put() call, which may result in use-after-free.
    
    Fixes: de3578c198c6 ("can: flexcan: add self wakeup support")
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    Cc: linux-stable <stable@vger.kernel.org> # >= v5.0
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea6e2744bc8f8d43194c1ef185189d0aecdf9b67
Author: Joakim Zhang <qiangqing.zhang@nxp.com>
Date:   Tue Jul 2 01:45:41 2019 +0000

    can: flexcan: fix stop mode acknowledgment
    
    commit 5f186c257fa4808bb7f14e643b9fba3e11f08a30 upstream.
    
    To enter stop mode, the CPU should manually assert a global Stop Mode
    request and check the acknowledgment asserted by FlexCAN. The CPU must
    only consider the FlexCAN in stop mode when both request and
    acknowledgment conditions are satisfied.
    
    Fixes: de3578c198c6 ("can: flexcan: add self wakeup support")
    Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Cc: linux-stable <stable@vger.kernel.org> # >= v5.0
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 702de767147b8acf896fda41662975a68c3402a0
Author: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
Date:   Wed Jun 26 16:08:48 2019 +0300

    can: rcar_canfd: fix possible IRQ storm on high load
    
    commit d4b890aec4bea7334ca2ca56fd3b12fb48a00cd1 upstream.
    
    We have observed rcar_canfd driver entering IRQ storm under high load,
    with following scenario:
    - rcar_canfd_global_interrupt() in entered due to Rx available,
    - napi_schedule_prep() is called, and sets NAPIF_STATE_SCHED in state
    - Rx fifo interrupts are masked,
    - rcar_canfd_global_interrupt() is entered again, this time due to
      error interrupt (e.g. due to overflow),
    - since scheduled napi poller has not yet executed, condition for calling
      napi_schedule_prep() from rcar_canfd_global_interrupt() remains true,
      thus napi_schedule_prep() gets called and sets NAPIF_STATE_MISSED flag
      in state,
    - later, napi poller function rcar_canfd_rx_poll() gets executed, and
      calls napi_complete_done(),
    - due to NAPIF_STATE_MISSED flag in state, this call does not clear
      NAPIF_STATE_SCHED flag from state,
    - on return from napi_complete_done(), rcar_canfd_rx_poll() unmasks Rx
      interrutps,
    - Rx interrupt happens, rcar_canfd_global_interrupt() gets called
      and calls napi_schedule_prep(),
    - since NAPIF_STATE_SCHED is set in state at this time, this call
      returns false,
    - due to that false return, rcar_canfd_global_interrupt() returns
      without masking Rx interrupt
    - and this results into IRQ storm: unmasked Rx interrupt happens again
      and again is misprocessed in the same way.
    
    This patch fixes that scenario by unmasking Rx interrupts only when
    napi_complete_done() returns true, which means it has cleared
    NAPIF_STATE_SCHED in state.
    
    Fixes: dd3bd23eb438 ("can: rcar_canfd: Add Renesas R-Car CAN FD driver")
    Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.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 82bd5bfb0029cff7f0a0bb4e435f8114232d6e1e
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Fri Aug 2 09:03:42 2019 -0700

    usb: typec: tcpm: Ignore unsupported/unknown alternate mode requests
    
    commit 88d02c9ba2e83fc22d37ccb1f11c62ea6fc9ae50 upstream.
    
    TCPM may receive PD messages associated with unknown or unsupported
    alternate modes. If that happens, calls to typec_match_altmode()
    will return NULL. The tcpm code does not currently take this into
    account. This results in crashes.
    
    Unable to handle kernel NULL pointer dereference at virtual address 000001f0
    pgd = 41dad9a1
    [000001f0] *pgd=00000000
    Internal error: Oops: 5 [#1] THUMB2
    Modules linked in: tcpci tcpm
    CPU: 0 PID: 2338 Comm: kworker/u2:0 Not tainted 5.1.18-sama5-armv7-r2 #6
    Hardware name: Atmel SAMA5
    Workqueue: 2-0050 tcpm_pd_rx_handler [tcpm]
    PC is at typec_altmode_attention+0x0/0x14
    LR is at tcpm_pd_rx_handler+0xa3b/0xda0 [tcpm]
    ...
    [<c03fbee8>] (typec_altmode_attention) from [<bf8030fb>]
                                    (tcpm_pd_rx_handler+0xa3b/0xda0 [tcpm])
    [<bf8030fb>] (tcpm_pd_rx_handler [tcpm]) from [<c012082b>]
                                    (process_one_work+0x123/0x2a8)
    [<c012082b>] (process_one_work) from [<c0120a6d>]
                                    (worker_thread+0xbd/0x3b0)
    [<c0120a6d>] (worker_thread) from [<c012431f>] (kthread+0xcf/0xf4)
    [<c012431f>] (kthread) from [<c01010f9>] (ret_from_fork+0x11/0x38)
    
    Ignore PD messages if the associated alternate mode is not supported.
    
    Fixes: e9576fe8e605c ("usb: typec: tcpm: Support for Alternate Modes")
    Cc: stable <stable@vger.kernel.org>
    Reported-by: Douglas Gilbert <dgilbert@interlog.com>
    Cc: Douglas Gilbert <dgilbert@interlog.com>
    Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Tested-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/1564761822-13984-1-git-send-email-linux@roeck-us.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7312585859d05e3d4c3c5799c355387e7a61e0e
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Wed Jul 24 07:38:32 2019 -0700

    usb: typec: tcpm: Add NULL check before dereferencing config
    
    commit 1957de95d425d1c06560069dc7277a73a8b28683 upstream.
    
    When instantiating tcpm on an NXP OM 13588 board with NXP PTN5110,
    the following crash is seen when writing into the 'preferred_role'
    sysfs attribute.
    
    Unable to handle kernel NULL pointer dereference at virtual address 00000028
    pgd = f69149ad
    [00000028] *pgd=00000000
    Internal error: Oops: 5 [#1] THUMB2
    Modules linked in: tcpci tcpm
    CPU: 0 PID: 1882 Comm: bash Not tainted 5.1.18-sama5-armv7-r2 #4
    Hardware name: Atmel SAMA5
    PC is at tcpm_try_role+0x3a/0x4c [tcpm]
    LR is at tcpm_try_role+0x15/0x4c [tcpm]
    pc : [<bf8000e2>]    lr : [<bf8000bd>]    psr: 60030033
    sp : dc1a1e88  ip : c03fb47d  fp : 00000000
    r10: dc216190  r9 : dc1a1f78  r8 : 00000001
    r7 : df4ae044  r6 : dd032e90  r5 : dd1ce340  r4 : df4ae054
    r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 : df4ae044
    Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb  Segment none
    Control: 50c53c7d  Table: 3efec059  DAC: 00000051
    Process bash (pid: 1882, stack limit = 0x6a6d4aa5)
    Stack: (0xdc1a1e88 to 0xdc1a2000)
    1e80:                   dd05d808 dd1ce340 00000001 00000007 dd1ce340 c03fb4a7
    1ea0: 00000007 00000007 dc216180 00000000 00000000 c01e1e03 00000000 00000000
    1ec0: c0907008 dee98b40 c01e1d5d c06106c4 00000000 00000000 00000007 c0194e8b
    1ee0: 0000000a 00000400 00000000 c01a97db dc22bf00 ffffe000 df4b6a00 df745900
    1f00: 00000001 00000001 000000dd c01a9c2f 7aeab3be c0907008 00000000 dc22bf00
    1f20: c0907008 00000000 00000000 00000000 00000000 7aeab3be 00000007 dee98b40
    1f40: 005dc318 dc1a1f78 00000000 00000000 00000007 c01969f7 0000000a c01a20cb
    1f60: dee98b40 c0907008 dee98b40 005dc318 00000000 c0196b9b 00000000 00000000
    1f80: dee98b40 7aeab3be 00000074 005dc318 b6f3bdb0 00000004 c0101224 dc1a0000
    1fa0: 00000004 c0101001 00000074 005dc318 00000001 005dc318 00000007 00000000
    1fc0: 00000074 005dc318 b6f3bdb0 00000004 00000007 00000007 00000000 00000000
    1fe0: 00000004 be800880 b6ed35b3 b6e5c746 60030030 00000001 00000000 00000000
    [<bf8000e2>] (tcpm_try_role [tcpm]) from [<c03fb4a7>] (preferred_role_store+0x2b/0x5c)
    [<c03fb4a7>] (preferred_role_store) from [<c01e1e03>] (kernfs_fop_write+0xa7/0x150)
    [<c01e1e03>] (kernfs_fop_write) from [<c0194e8b>] (__vfs_write+0x1f/0x104)
    [<c0194e8b>] (__vfs_write) from [<c01969f7>] (vfs_write+0x6b/0x104)
    [<c01969f7>] (vfs_write) from [<c0196b9b>] (ksys_write+0x43/0x94)
    [<c0196b9b>] (ksys_write) from [<c0101001>] (ret_fast_syscall+0x1/0x62)
    
    Since commit 96232cbc6c994 ("usb: typec: tcpm: support get typec and pd
    config from device properties"), the 'config' pointer in struct tcpc_dev
    is optional when registering a Type-C port. Since it is optional, we have
    to check if it is NULL before dereferencing it.
    
    Reported-by: Douglas Gilbert <dgilbert@interlog.com>
    Cc: Douglas Gilbert <dgilbert@interlog.com>
    Fixes: 96232cbc6c994 ("usb: typec: tcpm: support get typec and pd config from device properties")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Jun Li <jun.li@nxp.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Link: https://lore.kernel.org/r/1563979112-22483-1-git-send-email-linux@roeck-us.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f5f21cfe59a8401bfb6e18e03a6a112b431e282
Author: Li Jun <jun.li@nxp.com>
Date:   Wed Jul 17 16:06:46 2019 +0800

    usb: typec: tcpm: remove tcpm dir if no children
    
    commit 12ca7297b8855c0af1848503d37196159b24e6b9 upstream.
    
    If config tcpm as module, module unload will not remove tcpm dir,
    then the next module load will have problem: the rootdir is NULL
    but tcpm dir is still there, so tcpm_debugfs_init() will create
    tcpm dir again with failure, fix it by remove the tcpm dir if no
    children.
    
    Cc: stable@vger.kernel.org # v4.15+
    Fixes: 4b4e02c83167 ("typec: tcpm: Move out of staging")
    Signed-off-by: Li Jun <jun.li@nxp.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20190717080646.30421-2-jun.li@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba2bf3bad73b3e54a1ec07c7bea159e11f61c6fa
Author: Li Jun <jun.li@nxp.com>
Date:   Wed Jul 17 16:06:45 2019 +0800

    usb: typec: tcpm: free log buf memory when remove debug file
    
    commit fd5da3e2cc61b4a7c877172fdc9348c82cf6ccfc upstream.
    
    The logbuffer memory should be freed when remove debug file.
    
    Cc: stable@vger.kernel.org # v4.15+
    Fixes: 4b4e02c83167 ("typec: tcpm: Move out of staging")
    Signed-off-by: Li Jun <jun.li@nxp.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20190717080646.30421-1-jun.li@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad9b592910d79c4623b00f5befb0e2d8e9d0cd57
Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date:   Thu Aug 1 10:55:12 2019 +0300

    usb: typec: ucsi: ccg: Fix uninitilized symbol error
    
    commit a29d56c2ed24ad33062bfdafdec9e34149715320 upstream.
    
    Fix smatch error:
    drivers/usb/typec/ucsi/ucsi_ccg.c:975 ccg_fw_update() error: uninitialized symbol 'err'.
    
    Fixes: 5c9ae5a87573 ("usb: typec: ucsi: ccg: add firmware flashing support")
    Cc: stable@vger.kernel.org
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Link: https://lore.kernel.org/r/20190801075512.24354-1-heikki.krogerus@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 571c9b72a9d72168f635abe8f800f861f884a1b6
Author: Suzuki K Poulose <suzuki.poulose@arm.com>
Date:   Mon Aug 5 12:15:28 2019 +0100

    usb: yurex: Fix use-after-free in yurex_delete
    
    commit fc05481b2fcabaaeccf63e32ac1baab54e5b6963 upstream.
    
    syzbot reported the following crash [0]:
    
    BUG: KASAN: use-after-free in usb_free_coherent+0x79/0x80
    drivers/usb/core/usb.c:928
    Read of size 8 at addr ffff8881b18599c8 by task syz-executor.4/16007
    
    CPU: 0 PID: 16007 Comm: syz-executor.4 Not tainted 5.3.0-rc2+ #23
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
    Google 01/01/2011
    Call Trace:
      __dump_stack lib/dump_stack.c:77 [inline]
      dump_stack+0xca/0x13e lib/dump_stack.c:113
      print_address_description+0x6a/0x32c mm/kasan/report.c:351
      __kasan_report.cold+0x1a/0x33 mm/kasan/report.c:482
      kasan_report+0xe/0x12 mm/kasan/common.c:612
      usb_free_coherent+0x79/0x80 drivers/usb/core/usb.c:928
      yurex_delete+0x138/0x330 drivers/usb/misc/yurex.c:100
      kref_put include/linux/kref.h:65 [inline]
      yurex_release+0x66/0x90 drivers/usb/misc/yurex.c:392
      __fput+0x2d7/0x840 fs/file_table.c:280
      task_work_run+0x13f/0x1c0 kernel/task_work.c:113
      tracehook_notify_resume include/linux/tracehook.h:188 [inline]
      exit_to_usermode_loop+0x1d2/0x200 arch/x86/entry/common.c:163
      prepare_exit_to_usermode arch/x86/entry/common.c:194 [inline]
      syscall_return_slowpath arch/x86/entry/common.c:274 [inline]
      do_syscall_64+0x45f/0x580 arch/x86/entry/common.c:299
      entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x413511
    Code: 75 14 b8 03 00 00 00 0f 05 48 3d 01 f0 ff ff 0f 83 04 1b 00 00 c3 48
    83 ec 08 e8 0a fc ff ff 48 89 04 24 b8 03 00 00 00 0f 05 <48> 8b 3c 24 48
    89 c2 e8 53 fc ff ff 48 89 d0 48 83 c4 08 48 3d 01
    RSP: 002b:00007ffc424ea2e0 EFLAGS: 00000293 ORIG_RAX: 0000000000000003
    RAX: 0000000000000000 RBX: 0000000000000007 RCX: 0000000000413511
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000006
    RBP: 0000000000000001 R08: 0000000029a2fc22 R09: 0000000029a2fc26
    R10: 00007ffc424ea3c0 R11: 0000000000000293 R12: 000000000075c9a0
    R13: 000000000075c9a0 R14: 0000000000761938 R15: ffffffffffffffff
    
    Allocated by task 2776:
      save_stack+0x1b/0x80 mm/kasan/common.c:69
      set_track mm/kasan/common.c:77 [inline]
      __kasan_kmalloc mm/kasan/common.c:487 [inline]
      __kasan_kmalloc.constprop.0+0xbf/0xd0 mm/kasan/common.c:460
      kmalloc include/linux/slab.h:552 [inline]
      kzalloc include/linux/slab.h:748 [inline]
      usb_alloc_dev+0x51/0xf95 drivers/usb/core/usb.c:583
      hub_port_connect drivers/usb/core/hub.c:5004 [inline]
      hub_port_connect_change drivers/usb/core/hub.c:5213 [inline]
      port_event drivers/usb/core/hub.c:5359 [inline]
      hub_event+0x15c0/0x3640 drivers/usb/core/hub.c:5441
      process_one_work+0x92b/0x1530 kernel/workqueue.c:2269
      worker_thread+0x96/0xe20 kernel/workqueue.c:2415
      kthread+0x318/0x420 kernel/kthread.c:255
      ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
    
    Freed by task 16007:
      save_stack+0x1b/0x80 mm/kasan/common.c:69
      set_track mm/kasan/common.c:77 [inline]
      __kasan_slab_free+0x130/0x180 mm/kasan/common.c:449
      slab_free_hook mm/slub.c:1423 [inline]
      slab_free_freelist_hook mm/slub.c:1470 [inline]
      slab_free mm/slub.c:3012 [inline]
      kfree+0xe4/0x2f0 mm/slub.c:3953
      device_release+0x71/0x200 drivers/base/core.c:1064
      kobject_cleanup lib/kobject.c:693 [inline]
      kobject_release lib/kobject.c:722 [inline]
      kref_put include/linux/kref.h:65 [inline]
      kobject_put+0x171/0x280 lib/kobject.c:739
      put_device+0x1b/0x30 drivers/base/core.c:2213
      usb_put_dev+0x1f/0x30 drivers/usb/core/usb.c:725
      yurex_delete+0x40/0x330 drivers/usb/misc/yurex.c:95
      kref_put include/linux/kref.h:65 [inline]
      yurex_release+0x66/0x90 drivers/usb/misc/yurex.c:392
      __fput+0x2d7/0x840 fs/file_table.c:280
      task_work_run+0x13f/0x1c0 kernel/task_work.c:113
      tracehook_notify_resume include/linux/tracehook.h:188 [inline]
      exit_to_usermode_loop+0x1d2/0x200 arch/x86/entry/common.c:163
      prepare_exit_to_usermode arch/x86/entry/common.c:194 [inline]
      syscall_return_slowpath arch/x86/entry/common.c:274 [inline]
      do_syscall_64+0x45f/0x580 arch/x86/entry/common.c:299
      entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    The buggy address belongs to the object at ffff8881b1859980
      which belongs to the cache kmalloc-2k of size 2048
    The buggy address is located 72 bytes inside of
      2048-byte region [ffff8881b1859980, ffff8881b185a180)
    The buggy address belongs to the page:
    page:ffffea0006c61600 refcount:1 mapcount:0 mapping:ffff8881da00c000
    index:0x0 compound_mapcount: 0
    flags: 0x200000000010200(slab|head)
    raw: 0200000000010200 0000000000000000 0000000100000001 ffff8881da00c000
    raw: 0000000000000000 00000000000f000f 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
      ffff8881b1859880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      ffff8881b1859900: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    > ffff8881b1859980: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                                   ^
      ffff8881b1859a00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      ffff8881b1859a80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    ==================================================================
    
    A quick look at the yurex_delete() shows that we drop the reference
    to the usb_device before releasing any buffers associated with the
    device. Delay the reference drop until we have finished the cleanup.
    
    [0] https://lore.kernel.org/lkml/0000000000003f86d8058f0bd671@google.com/
    
    Fixes: 6bc235a2e24a5e ("USB: add driver for Meywa-Denki & Kayac YUREX")
    Cc: Jiri Kosina <jkosina@suse.cz>
    Cc: Tomoki Sekiyama <tomoki.sekiyama@gmail.com>
    Cc: Oliver Neukum <oneukum@suse.com>
    Cc: andreyknvl@google.com
    Cc: gregkh@linuxfoundation.org
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Cc: syzkaller-bugs@googlegroups.com
    Cc: dtor@chromium.org
    Reported-by: syzbot+d1fedb1c1fdb07fca507@syzkaller.appspotmail.com
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20190805111528.6758-1-suzuki.poulose@arm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 391af9e57575e96cc80300645de5fb47e66a5db8
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Fri Aug 2 17:33:35 2019 +0900

    usb: host: xhci-rcar: Fix timeout in xhci_suspend()
    
    commit 783bda5e41acc71f98336e1a402c180f9748e5dc upstream.
    
    When a USB device is connected to the host controller and
    the system enters suspend, the following error happens
    in xhci_suspend():
    
            xhci-hcd ee000000.usb: WARN: xHC CMD_RUN timeout
    
    Since the firmware/internal CPU control the USBSTS.STS_HALT
    and the process speed is down when the roothub port enters U3,
    long delay for the handshake of STS_HALT is neeed in xhci_suspend().
    So, this patch adds to set the XHCI_SLOW_SUSPEND.
    
    Fixes: 435cc1138ec9 ("usb: host: xhci-plat: set resume_quirk() for R-Car controllers")
    Cc: <stable@vger.kernel.org> # v4.12+
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Link: https://lore.kernel.org/r/1564734815-17964-1-git-send-email-yoshihiro.shimoda.uh@renesas.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86bc3da5ee7251b1c3640dbcdb0c5f1a2dda290b
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Mon Aug 5 12:22:03 2019 +0100

    gfs2: gfs2_walk_metadata fix
    
    commit a27a0c9b6a208722016c8ec5ad31ec96082b91ec upstream.
    
    It turns out that the current version of gfs2_metadata_walker suffers
    from multiple problems that can cause gfs2_hole_size to report an
    incorrect size.  This will confuse fiemap as well as lseek with the
    SEEK_DATA flag.
    
    Fix that by changing gfs2_hole_walker to compute the metapath to the
    first data block after the hole (if any), and compute the hole size
    based on that.
    
    Fixes xfstest generic/490.
    
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Reviewed-by: Bob Peterson <rpeterso@redhat.com>
    Cc: stable@vger.kernel.org # v4.18+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb3db40acb4cb29e9c2389581edf73a52d9e8973
Author: Ming Lei <ming.lei@redhat.com>
Date:   Mon Aug 5 09:19:06 2019 +0800

    genirq/affinity: Create affinity mask for single vector
    
    commit 491beed3b102b6e6c0e7734200661242226e3933 upstream.
    
    Since commit c66d4bd110a1f8 ("genirq/affinity: Add new callback for
    (re)calculating interrupt sets"), irq_create_affinity_masks() returns
    NULL in case of single vector. This change has caused regression on some
    drivers, such as lpfc.
    
    The problem is that single vector requests can happen in some generic cases:
    
      1) kdump kernel
    
      2) irq vectors resource is close to exhaustion.
    
    If in that situation the affinity mask for a single vector is not created,
    every caller has to handle the special case.
    
    There is no reason why the mask cannot be created, so remove the check for
    a single vector and create the mask.
    
    Fixes: c66d4bd110a1f8 ("genirq/affinity: Add new callback for (re)calculating interrupt sets")
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190805011906.5020-1-ming.lei@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42fc595675ec5c8e9e7db197bdd6c661bdc4fa05
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Wed Aug 7 15:15:33 2019 -0700

    x86/purgatory: Use CFLAGS_REMOVE rather than reset KBUILD_CFLAGS
    
    commit b059f801a937d164e03b33c1848bb3dca67c0b04 upstream.
    
    KBUILD_CFLAGS is very carefully built up in the top level Makefile,
    particularly when cross compiling or using different build tools.
    Resetting KBUILD_CFLAGS via := assignment is an antipattern.
    
    The comment above the reset mentions that -pg is problematic.  Other
    Makefiles use `CFLAGS_REMOVE_file.o = $(CC_FLAGS_FTRACE)` when
    CONFIG_FUNCTION_TRACER is set. Prefer that pattern to wiping out all of
    the important KBUILD_CFLAGS then manually having to re-add them. Seems
    also that __stack_chk_fail references are generated when using
    CONFIG_STACKPROTECTOR or CONFIG_STACKPROTECTOR_STRONG.
    
    Fixes: 8fc5b4d4121c ("purgatory: core purgatory functionality")
    Reported-by: Vaibhav Rustagi <vaibhavrustagi@google.com>
    Suggested-by: Peter Zijlstra <peterz@infradead.org>
    Suggested-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Vaibhav Rustagi <vaibhavrustagi@google.com>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190807221539.94583-2-ndesaulniers@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6bb1fd9444bb9cb3b2dc70531fdbd5bb2cb05edb
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Wed Aug 7 15:15:32 2019 -0700

    x86/purgatory: Do not use __builtin_memcpy and __builtin_memset
    
    commit 4ce97317f41d38584fb93578e922fcd19e535f5b upstream.
    
    Implementing memcpy and memset in terms of __builtin_memcpy and
    __builtin_memset is problematic.
    
    GCC at -O2 will replace calls to the builtins with calls to memcpy and
    memset (but will generate an inline implementation at -Os).  Clang will
    replace the builtins with these calls regardless of optimization level.
    $ llvm-objdump -dr arch/x86/purgatory/string.o | tail
    
    0000000000000339 memcpy:
         339: 48 b8 00 00 00 00 00 00 00 00 movabsq $0, %rax
                    000000000000033b:  R_X86_64_64  memcpy
         343: ff e0                         jmpq    *%rax
    
    0000000000000345 memset:
         345: 48 b8 00 00 00 00 00 00 00 00 movabsq $0, %rax
                    0000000000000347:  R_X86_64_64  memset
         34f: ff e0
    
    Such code results in infinite recursion at runtime. This is observed
    when doing kexec.
    
    Instead, reuse an implementation from arch/x86/boot/compressed/string.c.
    This requires to implement a stub function for warn(). Also, Clang may
    lower memcmp's that compare against 0 to bcmp's, so add a small definition,
    too. See also: commit 5f074f3e192f ("lib/string.c: implement a basic bcmp")
    
    Fixes: 8fc5b4d4121c ("purgatory: core purgatory functionality")
    Reported-by: Vaibhav Rustagi <vaibhavrustagi@google.com>
    Debugged-by: Vaibhav Rustagi <vaibhavrustagi@google.com>
    Debugged-by: Manoj Gupta <manojgupta@google.com>
    Suggested-by: Alistair Delva <adelva@google.com>
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Vaibhav Rustagi <vaibhavrustagi@google.com>
    Cc: stable@vger.kernel.org
    Link: https://bugs.chromium.org/p/chromium/issues/detail?id=984056
    Link: https://lkml.kernel.org/r/20190807221539.94583-1-ndesaulniers@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d94b30f55709b6dca93896db0789f719ec005a1
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Wed Jul 24 14:27:02 2019 +0200

    perf record: Fix module size on s390
    
    commit 12a6d2940b5f02b4b9f71ce098e3bb02bc24a9ea upstream.
    
    On s390 the modules loaded in memory have the text segment located after
    the GOT and Relocation table. This can be seen with this output:
    
      [root@m35lp76 perf]# fgrep qeth /proc/modules
      qeth 151552 1 qeth_l2, Live 0x000003ff800b2000
      ...
      [root@m35lp76 perf]# cat /sys/module/qeth/sections/.text
      0x000003ff800b3990
      [root@m35lp76 perf]#
    
    There is an offset of 0x1990 bytes. The size of the qeth module is
    151552 bytes (0x25000 in hex).
    
    The location of the GOT/relocation table at the beginning of a module is
    unique to s390.
    
    commit 203d8a4aa6ed ("perf s390: Fix 'start' address of module's map")
    adjusts the start address of a module in the map structures, but does
    not adjust the size of the modules. This leads to overlapping of module
    maps as this example shows:
    
    [root@m35lp76 perf] # ./perf report -D
         0 0 0xfb0 [0xa0]: PERF_RECORD_MMAP -1/0: [0x3ff800b3990(0x25000)
              @ 0]:  x /lib/modules/.../qeth.ko.xz
         0 0 0x1050 [0xb0]: PERF_RECORD_MMAP -1/0: [0x3ff800d85a0(0x8000)
              @ 0]:  x /lib/modules/.../ip6_tables.ko.xz
    
    The module qeth.ko has an adjusted start address modified to b3990, but
    its size is unchanged and the module ends at 0x3ff800d8990.  This end
    address overlaps with the next modules start address of 0x3ff800d85a0.
    
    When the size of the leading GOT/Relocation table stored in the
    beginning of the text segment (0x1990 bytes) is subtracted from module
    qeth end address, there are no overlaps anymore:
    
       0x3ff800d8990 - 0x1990 = 0x0x3ff800d7000
    
    which is the same as
    
       0x3ff800b2000 + 0x25000 = 0x0x3ff800d7000.
    
    To fix this issue, also adjust the modules size in function
    arch__fix_module_text_start(). Add another function parameter named size
    and reduce the size of the module when the text segment start address is
    changed.
    
    Output after:
         0 0 0xfb0 [0xa0]: PERF_RECORD_MMAP -1/0: [0x3ff800b3990(0x23670)
              @ 0]:  x /lib/modules/.../qeth.ko.xz
         0 0 0x1050 [0xb0]: PERF_RECORD_MMAP -1/0: [0x3ff800d85a0(0x7a60)
              @ 0]:  x /lib/modules/.../ip6_tables.ko.xz
    
    Reported-by: Stefan Liebler <stli@linux.ibm.com>
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Hendrik Brueckner <brueckner@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: stable@vger.kernel.org
    Fixes: 203d8a4aa6ed ("perf s390: Fix 'start' address of module's map")
    Link: http://lkml.kernel.org/r/20190724122703.3996-1-tmricht@linux.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77e24c177ea6abfaee9c5528861707fbd79d656a
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Thu Aug 8 09:48:23 2019 +0300

    perf db-export: Fix thread__exec_comm()
    
    commit 3de7ae0b2a1d86dbb23d0cb135150534fdb2e836 upstream.
    
    Threads synthesized from /proc have comms with a start time of zero, and
    not marked as "exec". Currently, there can be 2 such comms. The first is
    created by processing a synthesized fork event and is set to the
    parent's comm string, and the second by processing a synthesized comm
    event set to the thread's current comm string.
    
    In the absence of an "exec" comm, thread__exec_comm() picks the last
    (oldest) comm, which, in the case above, is the parent's comm string.
    For a main thread, that is very probably wrong. Use the second-to-last
    in that case.
    
    This affects only db-export because it is the only user of
    thread__exec_comm().
    
    Example:
    
      $ sudo perf record -a -o pt-a-sleep-1 -e intel_pt//u -- sleep 1
      $ sudo chown ahunter pt-a-sleep-1
    
    Before:
    
      $ perf script -i pt-a-sleep-1 --itrace=bep -s tools/perf/scripts/python/export-to-sqlite.py pt-a-sleep-1.db branches calls
      $ sqlite3 -header -column pt-a-sleep-1.db 'select * from comm_threads_view'
      comm_id     command     thread_id   pid         tid
      ----------  ----------  ----------  ----------  ----------
      1           swapper     1           0           0
      2           rcu_sched   2           10          10
      3           kthreadd    3           78          78
      5           sudo        4           15180       15180
      5           sudo        5           15180       15182
      7           kworker/4:  6           10335       10335
      8           kthreadd    7           55          55
      10          systemd     8           865         865
      10          systemd     9           865         875
      13          perf        10          15181       15181
      15          sleep       10          15181       15181
      16          kworker/3:  11          14179       14179
      17          kthreadd    12          29376       29376
      19          systemd     13          746         746
      21          systemd     14          401         401
      23          systemd     15          879         879
      23          systemd     16          879         945
      25          kthreadd    17          556         556
      27          kworker/u1  18          14136       14136
      28          kworker/u1  19          15021       15021
      29          kthreadd    20          509         509
      31          systemd     21          836         836
      31          systemd     22          836         967
      33          systemd     23          1148        1148
      33          systemd     24          1148        1163
      35          kworker/2:  25          17988       17988
      36          kworker/0:  26          13478       13478
    
    After:
    
      $ perf script -i pt-a-sleep-1 --itrace=bep -s tools/perf/scripts/python/export-to-sqlite.py pt-a-sleep-1b.db branches calls
      $ sqlite3 -header -column pt-a-sleep-1b.db 'select * from comm_threads_view'
      comm_id     command     thread_id   pid         tid
      ----------  ----------  ----------  ----------  ----------
      1           swapper     1           0           0
      2           rcu_sched   2           10          10
      3           kswapd0     3           78          78
      4           perf        4           15180       15180
      4           perf        5           15180       15182
      6           kworker/4:  6           10335       10335
      7           kcompactd0  7           55          55
      8           accounts-d  8           865         865
      8           accounts-d  9           865         875
      10          perf        10          15181       15181
      12          sleep       10          15181       15181
      13          kworker/3:  11          14179       14179
      14          kworker/1:  12          29376       29376
      15          haveged     13          746         746
      16          systemd-jo  14          401         401
      17          NetworkMan  15          879         879
      17          NetworkMan  16          879         945
      19          irq/131-iw  17          556         556
      20          kworker/u1  18          14136       14136
      21          kworker/u1  19          15021       15021
      22          kworker/u1  20          509         509
      23          thermald    21          836         836
      23          thermald    22          836         967
      25          unity-sett  23          1148        1148
      25          unity-sett  24          1148        1163
      27          kworker/2:  25          17988       17988
      28          kworker/0:  26          13478       13478
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: stable@vger.kernel.org
    Fixes: 65de51f93ebf ("perf tools: Identify which comms are from exec")
    Link: http://lkml.kernel.org/r/20190808064823.14846-1-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 966883d007adb501bdf51fc79b664bd7deb9fa8a
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Wed Jul 24 14:27:03 2019 +0200

    perf annotate: Fix s390 gap between kernel end and module start
    
    commit b9c0a64901d5bdec6eafd38d1dc8fa0e2974fccb upstream.
    
    During execution of command 'perf top' the error message:
    
       Not enough memory for annotating '__irf_end' symbol!)
    
    is emitted from this call sequence:
      __cmd_top
        perf_top__mmap_read
          perf_top__mmap_read_idx
            perf_event__process_sample
              hist_entry_iter__add
                hist_iter__top_callback
                  perf_top__record_precise_ip
                    hist_entry__inc_addr_samples
                      symbol__inc_addr_samples
                        symbol__get_annotation
                          symbol__alloc_hist
    
    In this function the size of symbol __irf_end is calculated. The size of
    a symbol is the difference between its start and end address.
    
    When the symbol was read the first time, its start and end was set to:
    
       symbol__new: __irf_end 0xe954d0-0xe954d0
    
    which is correct and maps with /proc/kallsyms:
    
       root@s8360046:~/linux-4.15.0/tools/perf# fgrep _irf_end /proc/kallsyms
       0000000000e954d0 t __irf_end
       root@s8360046:~/linux-4.15.0/tools/perf#
    
    In function symbol__alloc_hist() the end of symbol __irf_end is
    
      symbol__alloc_hist sym:__irf_end start:0xe954d0 end:0x3ff80045a8
    
    which is identical with the first module entry in /proc/kallsyms
    
    This results in a symbol size of __irf_req for histogram analyses of
    70334140059072 bytes and a malloc() for this requested size fails.
    
    The root cause of this is function
      __dso__load_kallsyms()
      +-> symbols__fixup_end()
    
    Function symbols__fixup_end() enlarges the last symbol in the kallsyms
    map:
    
       # fgrep __irf_end /proc/kallsyms
       0000000000e954d0 t __irf_end
       #
    
    to the start address of the first module:
       # cat /proc/kallsyms | sort  | egrep ' [tT] '
       ....
       0000000000e952d0 T __security_initcall_end
       0000000000e954d0 T __initramfs_size
       0000000000e954d0 t __irf_end
       000003ff800045a8 T fc_get_event_number       [scsi_transport_fc]
       000003ff800045d0 t store_fc_vport_disable    [scsi_transport_fc]
       000003ff800046a8 T scsi_is_fc_rport  [scsi_transport_fc]
       000003ff800046d0 t fc_target_setup   [scsi_transport_fc]
    
    On s390 the kernel is located around memory address 0x200, 0x10000 or
    0x100000, depending on linux version. Modules however start some- where
    around 0x3ff xxxx xxxx.
    
    This is different than x86 and produces a large gap for which histogram
    allocation fails.
    
    Fix this by detecting the kernel's last symbol and do no adjustment for
    it. Introduce a weak function and handle s390 specifics.
    
    Reported-by: Klaus Theurich <klaus.theurich@de.ibm.com>
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Hendrik Brueckner <brueckner@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/20190724122703.3996-2-tmricht@linux.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit abdc06b76dac8d69488106971981e736cbf7e674
Author: Suzuki K Poulose <suzuki.poulose@arm.com>
Date:   Thu Aug 1 11:23:23 2019 -0600

    coresight: Fix DEBUG_LOCKS_WARN_ON for uninitialized attribute
    
    commit 5511c0c309db4c526a6e9f8b2b8a1483771574bc upstream.
    
    While running the linux-next with CONFIG_DEBUG_LOCKS_ALLOC enabled,
    I get the following splat.
    
     BUG: key ffffcb5636929298 has not been registered!
     ------------[ cut here ]------------
     DEBUG_LOCKS_WARN_ON(1)
     WARNING: CPU: 1 PID: 53 at kernel/locking/lockdep.c:3669 lockdep_init_map+0x164/0x1f0
     CPU: 1 PID: 53 Comm: kworker/1:1 Tainted: G        W         5.2.0-next-20190712-00015-g00ad4634222e-dirty #603
     Workqueue: events amba_deferred_retry_func
     pstate: 60c00005 (nZCv daif +PAN +UAO)
     pc : lockdep_init_map+0x164/0x1f0
     lr : lockdep_init_map+0x164/0x1f0
    
     [ trimmed ]
    
     Call trace:
      lockdep_init_map+0x164/0x1f0
      __kernfs_create_file+0x9c/0x158
      sysfs_add_file_mode_ns+0xa8/0x1d0
      sysfs_add_file_to_group+0x88/0xd8
      etm_perf_add_symlink_sink+0xcc/0x138
      coresight_register+0x110/0x280
      tmc_probe+0x160/0x420
    
     [ trimmed ]
    
     ---[ end trace ab4cc669615ba1b0 ]---
    
    Fix this by initialising the dynamically allocated attribute properly.
    
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Fixes: bb8e370bdc14 ("coresight: perf: Add "sinks" group to PMU directory")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    [Fixed a typograhic error in the changelog]
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Link: https://lore.kernel.org/r/20190801172323.18359-2-mathieu.poirier@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 095a0372834cb23388e6cb7690fba36d60dc52f9
Author: Joerg Roedel <jroedel@suse.de>
Date:   Fri Jul 19 20:46:52 2019 +0200

    mm/vmalloc: Sync unmappings in __purge_vmap_area_lazy()
    
    commit 3f8fd02b1bf1d7ba964485a56f2f4b53ae88c167 upstream.
    
    On x86-32 with PTI enabled, parts of the kernel page-tables are not shared
    between processes. This can cause mappings in the vmalloc/ioremap area to
    persist in some page-tables after the region is unmapped and released.
    
    When the region is re-used the processes with the old mappings do not fault
    in the new mappings but still access the old ones.
    
    This causes undefined behavior, in reality often data corruption, kernel
    oopses and panics and even spontaneous reboots.
    
    Fix this problem by activly syncing unmaps in the vmalloc/ioremap area to
    all page-tables in the system before the regions can be re-used.
    
    References: https://bugzilla.suse.com/show_bug.cgi?id=1118689
    Fixes: 5d72b4fba40ef ('x86, mm: support huge I/O mapping capability I/F')
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Dave Hansen <dave.hansen@linux.intel.com>
    Link: https://lkml.kernel.org/r/20190719184652.11391-4-joro@8bytes.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 169a61ee364f9f33f53dfa611c6b6fced80ac44a
Author: Joerg Roedel <jroedel@suse.de>
Date:   Fri Jul 19 20:46:51 2019 +0200

    x86/mm: Sync also unmappings in vmalloc_sync_all()
    
    commit 8e998fc24de47c55b47a887f6c95ab91acd4a720 upstream.
    
    With huge-page ioremap areas the unmappings also need to be synced between
    all page-tables. Otherwise it can cause data corruption when a region is
    unmapped and later re-used.
    
    Make the vmalloc_sync_one() function ready to sync unmappings and make sure
    vmalloc_sync_all() iterates over all page-tables even when an unmapped PMD
    is found.
    
    Fixes: 5d72b4fba40ef ('x86, mm: support huge I/O mapping capability I/F')
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Dave Hansen <dave.hansen@linux.intel.com>
    Link: https://lkml.kernel.org/r/20190719184652.11391-3-joro@8bytes.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd7d6544f7596b2f8d993f42c0a190e70e8c63c3
Author: Joerg Roedel <jroedel@suse.de>
Date:   Fri Jul 19 20:46:50 2019 +0200

    x86/mm: Check for pfn instead of page in vmalloc_sync_one()
    
    commit 51b75b5b563a2637f9d8dc5bd02a31b2ff9e5ea0 upstream.
    
    Do not require a struct page for the mapped memory location because it
    might not exist. This can happen when an ioremapped region is mapped with
    2MB pages.
    
    Fixes: 5d72b4fba40ef ('x86, mm: support huge I/O mapping capability I/F')
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Dave Hansen <dave.hansen@linux.intel.com>
    Link: https://lkml.kernel.org/r/20190719184652.11391-2-joro@8bytes.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93c009d61e81a8fe1169f90cb7c0eeddac7735d9
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Fri Jul 12 11:37:17 2019 -0700

    Input: synaptics - enable RMI mode for HP Spectre X360
    
    commit 25f8c834e2a6871920cc1ca113f02fb301d007c3 upstream.
    
    The 2016 kabylake HP Spectre X360 (model number 13-w013dx) works much better
    with psmouse.synaptics_intertouch=1 kernel parameter, so let's enable RMI4
    mode automatically.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204115
    Reported-by: Nate Graham <pointedstick@zoho.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 60956b018bfe23b879405a7d88103d0a8f06a5e3
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Mon Jul 22 10:56:55 2019 +0300

    Input: elantech - enable SMBus on new (2018+) systems
    
    commit 883a2a80f79ca5c0c105605fafabd1f3df99b34c upstream.
    
    There are some new HP laptops with Elantech touchpad that don't support
    multitouch.
    
    Currently we use ETP_NEW_IC_SMBUS_HOST_NOTIFY() to check if SMBus is supported,
    but in addition to firmware version, the bus type also informs us whether the IC
    can support SMBus. To avoid breaking old ICs, we will only enable SMbus support
    based the bus type on systems manufactured after 2018.
    
    Lastly, let's consolidate all checks into elantech_use_host_notify() and use it
    to determine whether to use PS/2 or SMBus.
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Acked-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 c7a87aff3ed1e6741adb6d0217e448c08a13f1e6
Author: Oliver Neukum <oneukum@suse.com>
Date:   Thu Aug 1 09:40:26 2019 -0700

    Input: usbtouchscreen - initialize PM mutex before using it
    
    commit b55d996f057bf2e7ba9422a80b5e17e99860cb0b upstream.
    
    Mutexes shall be initialized before they are used.
    
    Fixes: 12e510dbc57b2 ("Input: usbtouchscreen - fix deadlock in autosuspend")
    Reported-by: syzbot+199ea16c7f26418b4365@syzkaller.appspotmail.com
    Signed-off-by: Oliver Neukum <oneukum@suse.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 e056b2f09bdf52cbae915f19544dd9335a0cbcbe
Author: Jan Kara <jack@suse.cz>
Date:   Wed Aug 7 11:36:47 2019 +0200

    bdev: Fixup error handling in blkdev_get()
    
    commit e91455bad5cff40a8c232f2204a5104127e3fec2 upstream.
    
    Commit 89e524c04fa9 ("loop: Fix mount(2) failure due to race with
    LOOP_SET_FD") converted blkdev_get() to use the new helpers for
    finishing claiming of a block device. However the conversion botched the
    error handling in blkdev_get() and thus the bdev has been marked as held
    even in case __blkdev_get() returned error. This led to occasional
    warnings with block/001 test from blktests like:
    
    kernel: WARNING: CPU: 5 PID: 907 at fs/block_dev.c:1899 __blkdev_put+0x396/0x3a0
    
    Correct the error handling.
    
    CC: stable@vger.kernel.org
    Fixes: 89e524c04fa9 ("loop: Fix mount(2) failure due to race with LOOP_SET_FD")
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75e21425609678e0b78c64ff4fb90576fabb6100
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Thu Aug 8 11:17:01 2019 -0400

    loop: set PF_MEMALLOC_NOIO for the worker thread
    
    commit d0a255e795ab976481565f6ac178314b34fbf891 upstream.
    
    A deadlock with this stacktrace was observed.
    
    The loop thread does a GFP_KERNEL allocation, it calls into dm-bufio
    shrinker and the shrinker depends on I/O completion in the dm-bufio
    subsystem.
    
    In order to fix the deadlock (and other similar ones), we set the flag
    PF_MEMALLOC_NOIO at loop thread entry.
    
    PID: 474    TASK: ffff8813e11f4600  CPU: 10  COMMAND: "kswapd0"
       #0 [ffff8813dedfb938] __schedule at ffffffff8173f405
       #1 [ffff8813dedfb990] schedule at ffffffff8173fa27
       #2 [ffff8813dedfb9b0] schedule_timeout at ffffffff81742fec
       #3 [ffff8813dedfba60] io_schedule_timeout at ffffffff8173f186
       #4 [ffff8813dedfbaa0] bit_wait_io at ffffffff8174034f
       #5 [ffff8813dedfbac0] __wait_on_bit at ffffffff8173fec8
       #6 [ffff8813dedfbb10] out_of_line_wait_on_bit at ffffffff8173ff81
       #7 [ffff8813dedfbb90] __make_buffer_clean at ffffffffa038736f [dm_bufio]
       #8 [ffff8813dedfbbb0] __try_evict_buffer at ffffffffa0387bb8 [dm_bufio]
       #9 [ffff8813dedfbbd0] dm_bufio_shrink_scan at ffffffffa0387cc3 [dm_bufio]
      #10 [ffff8813dedfbc40] shrink_slab at ffffffff811a87ce
      #11 [ffff8813dedfbd30] shrink_zone at ffffffff811ad778
      #12 [ffff8813dedfbdc0] kswapd at ffffffff811ae92f
      #13 [ffff8813dedfbec0] kthread at ffffffff810a8428
      #14 [ffff8813dedfbf50] ret_from_fork at ffffffff81745242
    
      PID: 14127  TASK: ffff881455749c00  CPU: 11  COMMAND: "loop1"
       #0 [ffff88272f5af228] __schedule at ffffffff8173f405
       #1 [ffff88272f5af280] schedule at ffffffff8173fa27
       #2 [ffff88272f5af2a0] schedule_preempt_disabled at ffffffff8173fd5e
       #3 [ffff88272f5af2b0] __mutex_lock_slowpath at ffffffff81741fb5
       #4 [ffff88272f5af330] mutex_lock at ffffffff81742133
       #5 [ffff88272f5af350] dm_bufio_shrink_count at ffffffffa03865f9 [dm_bufio]
       #6 [ffff88272f5af380] shrink_slab at ffffffff811a86bd
       #7 [ffff88272f5af470] shrink_zone at ffffffff811ad778
       #8 [ffff88272f5af500] do_try_to_free_pages at ffffffff811adb34
       #9 [ffff88272f5af590] try_to_free_pages at ffffffff811adef8
      #10 [ffff88272f5af610] __alloc_pages_nodemask at ffffffff811a09c3
      #11 [ffff88272f5af710] alloc_pages_current at ffffffff811e8b71
      #12 [ffff88272f5af760] new_slab at ffffffff811f4523
      #13 [ffff88272f5af7b0] __slab_alloc at ffffffff8173a1b5
      #14 [ffff88272f5af880] kmem_cache_alloc at ffffffff811f484b
      #15 [ffff88272f5af8d0] do_blockdev_direct_IO at ffffffff812535b3
      #16 [ffff88272f5afb00] __blockdev_direct_IO at ffffffff81255dc3
      #17 [ffff88272f5afb30] xfs_vm_direct_IO at ffffffffa01fe3fc [xfs]
      #18 [ffff88272f5afb90] generic_file_read_iter at ffffffff81198994
      #19 [ffff88272f5afc50] __dta_xfs_file_read_iter_2398 at ffffffffa020c970 [xfs]
      #20 [ffff88272f5afcc0] lo_rw_aio at ffffffffa0377042 [loop]
      #21 [ffff88272f5afd70] loop_queue_work at ffffffffa0377c3b [loop]
      #22 [ffff88272f5afe60] kthread_worker_fn at ffffffff810a8a0c
      #23 [ffff88272f5afec0] kthread at ffffffff810a8428
      #24 [ffff88272f5aff50] ret_from_fork at ffffffff81745242
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit baa8533d499e3f0c2948d47b52b98f0ed101bc63
Author: Kevin Hao <haokexin@gmail.com>
Date:   Fri Jul 26 10:30:49 2019 +0800

    mmc: cavium: Add the missing dma unmap when the dma has finished.
    
    commit b803974a86039913d5280add083d730b2b9ed8ec upstream.
    
    This fixes the below calltrace when the CONFIG_DMA_API_DEBUG is enabled.
      DMA-API: thunderx_mmc 0000:01:01.4: cpu touching an active dma mapped cacheline [cln=0x000000002fdf9800]
      WARNING: CPU: 21 PID: 1 at kernel/dma/debug.c:596 debug_dma_assert_idle+0x1f8/0x270
      Modules linked in:
      CPU: 21 PID: 1 Comm: init Not tainted 5.3.0-rc1-next-20190725-yocto-standard+ #64
      Hardware name: Marvell OcteonTX CN96XX board (DT)
      pstate: 80400009 (Nzcv daif +PAN -UAO)
      pc : debug_dma_assert_idle+0x1f8/0x270
      lr : debug_dma_assert_idle+0x1f8/0x270
      sp : ffff0000113cfc10
      x29: ffff0000113cfc10 x28: 0000ffff8c880000
      x27: ffff800bc72a0000 x26: ffff000010ff8000
      x25: ffff000010ff8940 x24: ffff000010ff8968
      x23: 0000000000000000 x22: ffff000010e83700
      x21: ffff000010ea2000 x20: ffff000010e835c8
      x19: ffff800bc2c73300 x18: ffffffffffffffff
      x17: 0000000000000000 x16: 0000000000000000
      x15: ffff000010e835c8 x14: 6d20616d64206576
      x13: 69746361206e6120 x12: 676e696863756f74
      x11: 20757063203a342e x10: 31303a31303a3030
      x9 : 303020636d6d5f78 x8 : 3230303030303030
      x7 : 00000000000002fd x6 : ffff000010fd57d0
      x5 : 0000000000000000 x4 : ffff0000106c5210
      x3 : 00000000ffffffff x2 : 0000800bee9c0000
      x1 : 57d5843f4aa62800 x0 : 0000000000000000
      Call trace:
       debug_dma_assert_idle+0x1f8/0x270
       wp_page_copy+0xb0/0x688
       do_wp_page+0xa8/0x5b8
       __handle_mm_fault+0x600/0xd00
       handle_mm_fault+0x118/0x1e8
       do_page_fault+0x200/0x500
       do_mem_abort+0x50/0xb0
       el0_da+0x20/0x24
      ---[ end trace a005534bd23e109f ]---
      DMA-API: Mapped at:
       debug_dma_map_sg+0x94/0x350
       cvm_mmc_request+0x3c4/0x988
       __mmc_start_request+0x9c/0x1f8
       mmc_start_request+0x7c/0xb0
       mmc_blk_mq_issue_rq+0x5c4/0x7b8
    
    Signed-off-by: Kevin Hao <haokexin@gmail.com>
    Fixes: ba3869ff32e4 ("mmc: cavium: Add core MMC driver for Cavium SOCs")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c42b5ef41993e73f77c8c14e82dc88651007c93a
Author: Kevin Hao <haokexin@gmail.com>
Date:   Fri Jul 26 10:30:48 2019 +0800

    mmc: cavium: Set the correct dma max segment size for mmc_host
    
    commit fa25eba6993b3750f417baabba169afaba076178 upstream.
    
    We have set the mmc_host.max_seg_size to 8M, but the dma max segment
    size of PCI device is set to 64K by default in function pci_device_add().
    The mmc_host.max_seg_size is used to set the max segment size of
    the blk queue. Then this mismatch will trigger a calltrace like below
    when a bigger than 64K segment request arrives at mmc dev. So we should
    consider the limitation of the cvm_mmc_host when setting the
    mmc_host.max_seg_size.
      DMA-API: thunderx_mmc 0000:01:01.4: mapping sg segment longer than device claims to support [len=131072] [max=65536]
      WARNING: CPU: 6 PID: 238 at kernel/dma/debug.c:1221 debug_dma_map_sg+0x2b8/0x350
      Modules linked in:
      CPU: 6 PID: 238 Comm: kworker/6:1H Not tainted 5.3.0-rc1-next-20190724-yocto-standard+ #62
      Hardware name: Marvell OcteonTX CN96XX board (DT)
      Workqueue: kblockd blk_mq_run_work_fn
      pstate: 80c00009 (Nzcv daif +PAN +UAO)
      pc : debug_dma_map_sg+0x2b8/0x350
      lr : debug_dma_map_sg+0x2b8/0x350
      sp : ffff00001770f9e0
      x29: ffff00001770f9e0 x28: ffffffff00000000
      x27: 00000000ffffffff x26: ffff800bc2c73180
      x25: ffff000010e83700 x24: 0000000000000002
      x23: 0000000000000001 x22: 0000000000000001
      x21: 0000000000000000 x20: ffff800bc48ba0b0
      x19: ffff800bc97e8c00 x18: ffffffffffffffff
      x17: 0000000000000000 x16: 0000000000000000
      x15: ffff000010e835c8 x14: 6874207265676e6f
      x13: 6c20746e656d6765 x12: 7320677320676e69
      x11: 7070616d203a342e x10: 31303a31303a3030
      x9 : 303020636d6d5f78 x8 : 35363d78616d5b20
      x7 : 00000000000002fd x6 : ffff000010fd57dc
      x5 : 0000000000000000 x4 : ffff0000106c61f0
      x3 : 00000000ffffffff x2 : 0000800bee060000
      x1 : 7010678df3041a00 x0 : 0000000000000000
      Call trace:
       debug_dma_map_sg+0x2b8/0x350
       cvm_mmc_request+0x3c4/0x988
       __mmc_start_request+0x9c/0x1f8
       mmc_start_request+0x7c/0xb0
       mmc_blk_mq_issue_rq+0x5c4/0x7b8
       mmc_mq_queue_rq+0x11c/0x278
       blk_mq_dispatch_rq_list+0xb0/0x568
       blk_mq_do_dispatch_sched+0x6c/0x108
       blk_mq_sched_dispatch_requests+0x110/0x1b8
       __blk_mq_run_hw_queue+0xb0/0x118
       blk_mq_run_work_fn+0x28/0x38
       process_one_work+0x210/0x490
       worker_thread+0x48/0x458
       kthread+0x130/0x138
       ret_from_fork+0x10/0x1c
    
    Signed-off-by: Kevin Hao <haokexin@gmail.com>
    Fixes: ba3869ff32e4 ("mmc: cavium: Add core MMC driver for Cavium SOCs")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2259cccb8181cb158d640ba1f4a180da3f11097e
Author: Wenwen Wang <wenwen@cs.uga.edu>
Date:   Thu Aug 8 00:15:21 2019 -0500

    sound: fix a memory leak bug
    
    commit c7cd7c748a3250ca33509f9235efab9c803aca09 upstream.
    
    In sound_insert_unit(), the controlling structure 's' is allocated through
    kmalloc(). Then it is added to the sound driver list by invoking
    __sound_insert_unit(). Later on, if __register_chrdev() fails, 's' is
    removed from the list through __sound_remove_unit(). If 'index' is not less
    than 0, -EBUSY is returned to indicate the error. However, 's' is not
    deallocated on this execution path, leading to a memory leak bug.
    
    To fix the above issue, free 's' before -EBUSY is returned.
    
    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93fa57578257d07c16f122a31e32eb86fa56a95a
Author: Oliver Neukum <oneukum@suse.com>
Date:   Thu Aug 8 11:27:28 2019 +0200

    usb: iowarrior: fix deadlock on disconnect
    
    commit c468a8aa790e0dfe0a7f8a39db282d39c2c00b46 upstream.
    
    We have to drop the mutex before we close() upon disconnect()
    as close() needs the lock. This is safe to do by dropping the
    mutex as intfdata is already set to NULL, so open() will fail.
    
    Fixes: 03f36e885fc26 ("USB: open disconnect race in iowarrior")
    Reported-by: syzbot+a64a382964bf6c71a9c0@syzkaller.appspotmail.com
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Link: https://lore.kernel.org/r/20190808092728.23417-1-oneukum@suse.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eea49b85a66f9c5f03728da6bd5823ed6c4edefe
Author: Oliver Neukum <oneukum@suse.com>
Date:   Thu Aug 8 11:28:54 2019 +0200

    Revert "USB: rio500: simplify locking"
    
    commit 2ca359f4f8b954b3a9d15a89f22a8b7283e7669f upstream.
    
    This reverts commit d710734b06770814de2bfa2819420fb5df7f3a81.
    This simplification causes a deadlock.
    
    Reported-by: syzbot+7bbcbe9c9ff0cd49592a@syzkaller.appspotmail.com
    Fixes: d710734b0677 ("USB: rio500: simplify locking")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Link: https://lore.kernel.org/r/20190808092854.23519-1-oneukum@suse.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d4ad18cefd203e719a9a2607aced437b14a41b7
Author: Gavin Li <git@thegavinli.com>
Date:   Sun Aug 4 16:50:44 2019 -0700

    usb: usbfs: fix double-free of usb memory upon submiturb error
    
    commit c43f28dfdc4654e738aa6d3fd08a105b2bee758d upstream.
    
    Upon an error within proc_do_submiturb(), dec_usb_memory_use_count()
    gets called once by the error handling tail and again by free_async().
    Remove the first call.
    
    Signed-off-by: Gavin Li <git@thegavinli.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20190804235044.22327-1-gavinli@thegavinli.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a87f712aa9572fe0c44ac392541919caaeb7c265
Author: Brian Norris <briannorris@chromium.org>
Date:   Mon Jul 29 13:49:54 2019 -0700

    driver core: platform: return -ENXIO for missing GpioInt
    
    commit 46c42d844211ef5902e32aa507beac0817c585e9 upstream.
    
    Commit daaef255dc96 ("driver: platform: Support parsing GpioInt 0 in
    platform_get_irq()") broke the Embedded Controller driver on most LPC
    Chromebooks (i.e., most x86 Chromebooks), because cros_ec_lpc expects
    platform_get_irq() to return -ENXIO for non-existent IRQs.
    Unfortunately, acpi_dev_gpio_irq_get() doesn't follow this convention
    and returns -ENOENT instead. So we get this error from cros_ec_lpc:
    
       couldn't retrieve IRQ number (-2)
    
    I see a variety of drivers that treat -ENXIO specially, so rather than
    fix all of them, let's fix up the API to restore its previous behavior.
    
    I reported this on v2 of this patch:
    
    https://lore.kernel.org/lkml/20190220180538.GA42642@google.com/
    
    but apparently the patch had already been merged before v3 got sent out:
    
    https://lore.kernel.org/lkml/20190221193429.161300-1-egranata@chromium.org/
    
    and the result is that the bug landed and remains unfixed.
    
    I differ from the v3 patch by:
     * allowing for ret==0, even though acpi_dev_gpio_irq_get() specifically
       documents (and enforces) that 0 is not a valid return value (noted on
       the v3 review)
     * adding a small comment
    
    Reported-by: Brian Norris <briannorris@chromium.org>
    Reported-by: Salvatore Bellizzi <salvatore.bellizzi@linux.seppia.net>
    Cc: Enrico Granata <egranata@chromium.org>
    Cc: <stable@vger.kernel.org>
    Fixes: daaef255dc96 ("driver: platform: Support parsing GpioInt 0 in platform_get_irq()")
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Enrico Granata <egranata@google.com>
    Link: https://lore.kernel.org/r/20190729204954.25510-1-briannorris@chromium.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dbf56732c4249c0e5e53f2adb24d15542683d6d1
Author: Gary R Hook <gary.hook@amd.com>
Date:   Tue Jul 30 16:05:26 2019 +0000

    crypto: ccp - Ignore tag length when decrypting GCM ciphertext
    
    commit e2664ecbb2f26225ac6646876f2899558ffb2604 upstream.
    
    AES GCM input buffers for decryption contain AAD+CTEXT+TAG. Only
    decrypt the ciphertext, and use the tag for comparison.
    
    Fixes: 36cf515b9bbe2 ("crypto: ccp - Enable support for AES GCM on v5 CCPs")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Gary R Hook <gary.hook@amd.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9552214366b55878d9b0958f00eea7fc61ca50a2
Author: Gary R Hook <gary.hook@amd.com>
Date:   Tue Jul 30 16:05:24 2019 +0000

    crypto: ccp - Add support for valid authsize values less than 16
    
    commit 9f00baf74e4b6f79a3a3dfab44fb7bb2e797b551 upstream.
    
    AES GCM encryption allows for authsize values of 4, 8, and 12-16 bytes.
    Validate the requested authsize, and retain it to save in the request
    context.
    
    Fixes: 36cf515b9bbe2 ("crypto: ccp - Enable support for AES GCM on v5 CCPs")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Gary R Hook <gary.hook@amd.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14c9a32ed2c6450fc2cf7c4147c4c4923de4aff4
Author: Gary R Hook <gary.hook@amd.com>
Date:   Tue Jul 30 16:05:22 2019 +0000

    crypto: ccp - Fix oops by properly managing allocated structures
    
    commit 25e44338321af545ab34243a6081c3f0fc6107d0 upstream.
    
    A plaintext or ciphertext length of 0 is allowed in AES, in which case
    no encryption occurs. Ensure that we don't clean up data structures
    that were never allocated.
    
    Fixes: 36cf515b9bbe2 ("crypto: ccp - Enable support for AES GCM on v5 CCPs")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Gary R Hook <gary.hook@amd.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1dd12a5a8d3875ab6ac96afd89d21fe750a614a4
Author: Phil Reid <preid@electromag.com.au>
Date:   Tue Jul 16 08:24:37 2019 +0800

    Staging: fbtft: Fix reset assertion when using gpio descriptor
    
    commit b918d1c2706619cb0712a61cc8c05148b68b24b2 upstream.
    
    Typically gpiod_set_value calls would assert the reset line and
    then release it using the symantics of:
            gpiod_set_value(par->gpio.reset, 0);
            ... delay
            gpiod_set_value(par->gpio.reset, 1);
    And the gpio binding would specify the polarity.
    
    Prior to conversion to gpiod calls the polarity in the DT
    was ignored and assumed to be active low. Fix it so that
    DT polarity is respected.
    
    Fixes: c440eee1a7a1 ("Staging: fbtft: Switch to the gpio descriptor interface")
    Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Tested-by: Jan Sebastian Götte <linux@jaseg.net>
    Signed-off-by: Phil Reid <preid@electromag.com.au>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/1563236677-5045-3-git-send-email-preid@electromag.com.au
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3558601e5bf93c153065fd8616d89d807600b566
Author: Phil Reid <preid@electromag.com.au>
Date:   Tue Jul 16 08:24:36 2019 +0800

    Staging: fbtft: Fix probing of gpio descriptor
    
    commit dbc4f989c878fe101fb7920e9609e8ec44e097cd upstream.
    
    Conversion to use gpio descriptors broke all gpio lookups as
    devm_gpiod_get_index was converted to use dev->driver->name for
    the gpio name lookup. Fix this by using the name param. In
    addition gpiod_get post-fixes the -gpios to the name so that
    shouldn't be included in the call. However this then breaks the
    of_find_property call to see if the gpio entry exists as all
    fbtft treats all gpios as optional. So use devm_gpiod_get_index_optional
    instead which achieves the same thing and is simpler.
    
    Nishad confirmed the changes where only ever compile tested.
    
    Fixes: c440eee1a7a1 ("Staging: fbtft: Switch to the gpio descriptor interface")
    Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Tested-by: Jan Sebastian Götte <linux@jaseg.net>
    Signed-off-by: Phil Reid <preid@electromag.com.au>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/1563236677-5045-2-git-send-email-preid@electromag.com.au
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35921421fb25805dd7fb9adb702d1ff7e5653632
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Mon Jul 1 19:55:19 2019 +0900

    staging: android: ion: Bail out upon SIGKILL when allocating memory.
    
    commit 8f9e86ee795971eabbf372e6d804d6b8578287a7 upstream.
    
    syzbot found that a thread can stall for minutes inside
    ion_system_heap_allocate() after that thread was killed by SIGKILL [1].
    Let's check for SIGKILL before doing memory allocation.
    
    [1] https://syzkaller.appspot.com/bug?id=a0e3436829698d5824231251fad9d8e998f94f5e
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: stable <stable@vger.kernel.org>
    Reported-by: syzbot <syzbot+8ab2d0f39fb79fe6ca40@syzkaller.appspotmail.com>
    Acked-by: Laura Abbott <labbott@redhat.com>
    Acked-by: Sumit Semwal <sumit.semwal@linaro.org>
    Link: https://lore.kernel.org/r/d088f188-5f32-d8fc-b9a0-0b404f7501cc@I-love.SAKURA.ne.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96fe98d27b5b92434f9099818f599e9cae863040
Author: Adham Abozaeid <adham.abozaeid@microchip.com>
Date:   Mon Jul 22 21:38:44 2019 +0000

    staging: wilc1000: flush the workqueue before deinit the host
    
    commit fb2b055b7e6e44efda737c7c92f46c0868bb04e5 upstream.
    
    Before deinitializing the host interface, the workqueue should be flushed
    to handle any pending deferred work
    
    Signed-off-by: Adham Abozaeid <adham.abozaeid@microchip.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20190722213837.21952-1-adham.abozaeid@microchip.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b4b7ce2c6f48f153cfbcf6448136e0c19b7d0c5
Author: Ivan Bornyakov <brnkv.i1@gmail.com>
Date:   Wed Jul 10 23:45:18 2019 +0300

    staging: gasket: apex: fix copy-paste typo
    
    commit 66665bb9979246729562a09fcdbb101c83127989 upstream.
    
    In sysfs_show() case-branches ATTR_KERNEL_HIB_PAGE_TABLE_SIZE and
    ATTR_KERNEL_HIB_SIMPLE_PAGE_TABLE_SIZE do the same. It looks like
    copy-paste mistake.
    
    Signed-off-by: Ivan Bornyakov <brnkv.i1@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20190710204518.16814-1-brnkv.i1@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 70f40c1bb4b2d60c84bb54fed9d2c618a4e71062
Author: Joe Perches <joe@perches.com>
Date:   Tue Jul 9 22:04:17 2019 -0700

    iio: adc: max9611: Fix misuse of GENMASK macro
    
    commit ae8cc91a7d85e018c0c267f580820b2bb558cd48 upstream.
    
    Arguments are supposed to be ordered high then low.
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Fixes: 69780a3bbc0b ("iio: adc: Add Maxim max9611 ADC driver")
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6eafa28bf8c6d52fa62d5d251c70558d3cb40b79
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Jul 18 15:57:49 2019 +0200

    iio: adc: gyroadc: fix uninitialized return code
    
    commit 90c6260c1905a68fb596844087f2223bd4657fee upstream.
    
    gcc-9 complains about a blatant uninitialized variable use that
    all earlier compiler versions missed:
    
    drivers/iio/adc/rcar-gyroadc.c:510:5: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
    
    Return -EINVAL instead here and a few lines above it where
    we accidentally return 0 on failure.
    
    Cc: stable@vger.kernel.org
    Fixes: 059c53b32329 ("iio: adc: Add Renesas GyroADC driver")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab7278aafbbef72f43eb5775fe13a855eff1df38
Author: Jean-Baptiste Maneyrol <JManeyrol@invensense.com>
Date:   Thu Jun 27 13:19:53 2019 +0000

    iio: imu: mpu6050: add missing available scan masks
    
    commit 1244a720572fd1680ac8d6b8a4235f2e8557b810 upstream.
    
    Driver only supports 3-axis gyro and/or 3-axis accel.
    For icm20602, temp data is mandatory for all configurations.
    
    Fix all single and double axis configurations (almost never used) and more
    importantly fix 3-axis gyro and 6-axis accel+gyro buffer on icm20602 when
    temp data is not enabled.
    
    Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
    Fixes: 1615fe41a195 ("iio: imu: mpu6050: Fix FIFO layout for ICM20602")
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d55f9a40c226462bf89833f39b890993f635be66
Author: Gwendal Grignou <gwendal@chromium.org>
Date:   Fri Jun 28 12:17:09 2019 -0700

    iio: cros_ec_accel_legacy: Fix incorrect channel setting
    
    commit 6cdff99c9f7d7d28b87cf05dd464f7c7736332ae upstream.
    
    INFO_SCALE is set both for each channel and all channels.
    iio is using all channel setting, so the error was not user visible.
    
    Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d0e5cf780ec274d3061f2fdc1994e8b890049cb
Author: Maarten ter Huurne <maarten@treewalker.org>
Date:   Thu Jul 4 19:36:56 2019 +0200

    IIO: Ingenic JZ47xx: Set clock divider on probe
    
    commit 5a304e1a4ea000177cf25f5ecf26e786dda25b98 upstream.
    
    The SADC component can run at up to 8 MHz on JZ4725B, but is fed
    a 12 MHz input clock (EXT). Divide it by two to get 6 MHz, then
    set up another divider to match, to produce a 10us clock.
    
    If the clock dividers are left on their power-on defaults (a divider
    of 1), the SADC mostly works, but will occasionally produce erroneous
    readings. This led to button presses being detected out of nowhere on
    the RS90 every few minutes. With this change, no ghost button presses
    were logged in almost a day worth of testing.
    
    The ADCLK register for configuring clock dividers doesn't exist on
    JZ4740, so avoid writing it there.
    
    A function has been introduced rather than a flag because there is a lot
    of variation between the ADCLK registers on JZ47xx SoCs, both in
    the internal layout of the register and in the frequency range
    supported by the SADC. So this solution should make it easier
    to add support for other JZ47xx SoCs later.
    
    Fixes: 1a78daea107d ("iio: adc: probe should set clock divider")
    Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
    Signed-off-by: Artur Rojek <contact@artur-rojek.eu>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22d659728c5adbf5ba17282526b6f00fe3af9ec1
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Wed Aug 7 13:57:18 2019 +0300

    Revert "PCI: Add missing link delays required by the PCIe spec"
    
    commit 0617bdede5114a0002298b12cd0ca2b0cfd0395d upstream.
    
    Commit c2bf1fc212f7 ("PCI: Add missing link delays required by the PCIe
    spec") turned out causing issues with some systems either by making them
    unresponsive or slowing down runtime and system wide resume of PCIe
    devices. While root cause for the unresponsiveness is still under
    investigation given the amount of issues reported better to revert it
    for now.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204413
    Link: https://lore.kernel.org/linux-pci/SL2P216MB01878BBCD75F21D882AEEA2880C60@SL2P216MB0187.KORP216.PROD.OUTLOOK.COM/
    Link: https://lore.kernel.org/linux-pci/2857501d-c167-547d-c57d-d5d24ea1f1dc@molgen.mpg.de/
    Reported-by: Matthias Andree <matthias.andree@gmx.de>
    Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Reported-by: Nicholas Johnson <nicholas.johnson-opensource@outlook.com.au>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
