commit 09fd4bcb610a34127afdb97a5df73364c3d7b01c
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Jul 29 10:20:01 2020 +0200

    Linux 5.7.11
    
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dcb80ffe3825fb551a293491424695198b2e397d
Author: Mark O'Donovan <shiftee@posteo.net>
Date:   Sat Jul 11 05:33:24 2020 +0100

    ath9k: Fix regression with Atheros 9271
    
    commit 92f53e2fda8bb9a559ad61d57bfb397ce67ed0ab upstream.
    
    This fix allows ath9k_htc modules to connect to WLAN once again.
    
    Fixes: 2bbcaaee1fcb ("ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=208251
    Signed-off-by: Mark O'Donovan <shiftee@posteo.net>
    Reported-by: Roman Mamedov <rm@romanrm.net>
    Tested-by: Viktor Jägersküpper <viktor_jaegerskuepper@freenet.de>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200711043324.8079-1-shiftee@posteo.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b43063ff55858f73cbd44fc4496b3489c8bdfba4
Author: Qiujun Huang <hqjagain@gmail.com>
Date:   Sat Apr 4 12:18:38 2020 +0800

    ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
    
    commit 2bbcaaee1fcbd83272e29f31e2bb7e70d8c49e05 upstream.
    
    In ath9k_hif_usb_rx_cb interface number is assumed to be 0.
    usb_ifnum_to_if(urb->dev, 0)
    But it isn't always true.
    
    The case reported by syzbot:
    https://lore.kernel.org/linux-usb/000000000000666c9c05a1c05d12@google.com
    usb 2-1: new high-speed USB device number 2 using dummy_hcd
    usb 2-1: config 1 has an invalid interface number: 2 but max is 0
    usb 2-1: config 1 has no interface number 0
    usb 2-1: New USB device found, idVendor=0cf3, idProduct=9271, bcdDevice=
    1.08
    usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    general protection fault, probably for non-canonical address
    0xdffffc0000000015: 0000 [#1] SMP KASAN
    KASAN: null-ptr-deref in range [0x00000000000000a8-0x00000000000000af]
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.6.0-rc5-syzkaller #0
    
    Call Trace
    __usb_hcd_giveback_urb+0x29a/0x550 drivers/usb/core/hcd.c:1650
    usb_hcd_giveback_urb+0x368/0x420 drivers/usb/core/hcd.c:1716
    dummy_timer+0x1258/0x32ae drivers/usb/gadget/udc/dummy_hcd.c:1966
    call_timer_fn+0x195/0x6f0 kernel/time/timer.c:1404
    expire_timers kernel/time/timer.c:1449 [inline]
    __run_timers kernel/time/timer.c:1773 [inline]
    __run_timers kernel/time/timer.c:1740 [inline]
    run_timer_softirq+0x5f9/0x1500 kernel/time/timer.c:1786
    __do_softirq+0x21e/0x950 kernel/softirq.c:292
    invoke_softirq kernel/softirq.c:373 [inline]
    irq_exit+0x178/0x1a0 kernel/softirq.c:413
    exiting_irq arch/x86/include/asm/apic.h:546 [inline]
    smp_apic_timer_interrupt+0x141/0x540 arch/x86/kernel/apic/apic.c:1146
    apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:829
    
    Reported-and-tested-by: syzbot+40d5d2e8a4680952f042@syzkaller.appspotmail.com
    Signed-off-by: Qiujun Huang <hqjagain@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200404041838.10426-6-hqjagain@gmail.com
    Cc: Viktor Jägersküpper <viktor_jaegerskuepper@freenet.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3ec4725ddedf2ffacfee233c90ad0c34dfce27c
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Thu Jul 23 10:42:09 2020 -0400

    dm integrity: fix integrity recalculation that is improperly skipped
    
    commit 5df96f2b9f58a5d2dc1f30fe7de75e197f2c25f2 upstream.
    
    Commit adc0daad366b62ca1bce3e2958a40b0b71a8b8b3 ("dm: report suspended
    device during destroy") broke integrity recalculation.
    
    The problem is dm_suspended() returns true not only during suspend,
    but also during resume. So this race condition could occur:
    1. dm_integrity_resume calls queue_work(ic->recalc_wq, &ic->recalc_work)
    2. integrity_recalc (&ic->recalc_work) preempts the current thread
    3. integrity_recalc calls if (unlikely(dm_suspended(ic->ti))) goto unlock_ret;
    4. integrity_recalc exits and no recalculating is done.
    
    To fix this race condition, add a function dm_post_suspending that is
    only true during the postsuspend phase and use it instead of
    dm_suspended().
    
    Signed-off-by: Mikulas Patocka <mpatocka redhat com>
    Fixes: adc0daad366b ("dm: report suspended device during destroy")
    Cc: stable vger kernel org # v4.18+
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa34e471f5a6d26f98f63389ddf61d6bc45b66f7
Author: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date:   Tue Jul 7 16:04:38 2020 -0500

    ASoC: Intel: bdw-rt5677: fix non BE conversion
    
    commit fffebe8a8339c7e56db4126653a3bc0c0c5592cf upstream.
    
    When SOF is used, the normal links are converted into DPCM ones. This
    generates an error
    
    [ 58.276668] bdw-rt5677 bdw-rt5677: CPU DAI spi-RT5677AA:00 for rtd
    Wake on Voice does not support playback
    [ 58.276676] bdw-rt5677 bdw-rt5677: ASoC: can't create pcm Wake on
    Voice :-22
    
    Fix by forcing the capture direction.
    
    Fixes: b73287f0b0745 ('ASoC: soc-pcm: dpcm: fix playback/capture checks')
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    Reviewed-by: Curtis Malainey <curtis@malainey.com>
    Link: https://lore.kernel.org/r/20200707210439.115300-3-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0cf76c63968edcbed932500801b5c2dc1bd136a6
Author: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date:   Tue Jul 7 15:37:46 2020 -0500

    ASoC: topology: fix tlvs in error handling for widget_dmixer
    
    commit 8edac489e7c3fce44208373bb3e7b5835a672c66 upstream.
    
    we need to free all allocated tlvs, not just the one allocated in
    the loop before releasing kcontrols - other the tlvs references will
    leak.
    
    Fixes: 9f90af3a995298 ('ASoC: topology: Consolidate and fix asoc_tplg_dapm_widget_*_create flow')
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20200707203749.113883-3-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3ad39ba80c50280d5a43327a782371adda7f927
Author: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date:   Tue Jul 7 15:37:45 2020 -0500

    ASoC: topology: fix kernel oops on route addition error
    
    commit 6f0307df83f2aa6bdf656c2219c89ce96502d20e upstream.
    
    When errors happens while loading graph components, the kernel oopses
    while trying to remove all topology components. This can be
    root-caused to a list pointing to memory that was already freed on
    error.
    
    remove_route() is already called on errors and will perform the
    required cleanups so there's no need to free the route memory in
    soc_tplg_dapm_graph_elems_load() if the route was added to the
    list. We do however want to free the routes allocated but not added to
    the list.
    
    Fixes: 7df04ea7a31ea ('ASoC: topology: modify dapm route loading routine and add dapm route unloading')
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20200707203749.113883-2-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9972321613e8213e76506abe1e53c69c250f89b1
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Mon Jun 29 14:24:43 2020 +0200

    ASoC: qcom: Drop HAS_DMA dependency to fix link failure
    
    commit b6aa06de7757667bac88997a8807b143b8436035 upstream.
    
    When building on allyesconfig kernel for a NO_DMA=y platform (e.g.
    Sun-3), CONFIG_SND_SOC_QCOM_COMMON=y, but CONFIG_SND_SOC_QDSP6_AFE=n,
    leading to a link failure:
    
        sound/soc/qcom/common.o: In function `qcom_snd_parse_of':
        common.c:(.text+0x2e2): undefined reference to `q6afe_is_rx_port'
    
    While SND_SOC_QDSP6 depends on HAS_DMA, SND_SOC_MSM8996 and SND_SOC_SDM845
    don't, so the following warning is seen:
    
        WARNING: unmet direct dependencies detected for SND_SOC_QDSP6
          Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && QCOM_APR [=y] && HAS_DMA [=n]
          Selected by [y]:
          - SND_SOC_MSM8996 [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && QCOM_APR [=y]
          - SND_SOC_SDM845 [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && QCOM_APR [=y] && CROS_EC [=y] && I2C [=y] && SOUNDWIRE [=y]
    
    Until recently, this warning was harmless (from a compile-testing
    point-of-view), but the new user of q6afe_is_rx_port() turned this into
    a hard failure.
    
    As the QDSP6 driver itself builds fine if NO_DMA=y, and it depends on
    QCOM_APR (which in turns depends on ARCH_QCOM || COMPILE_TEST), it is
    safe to increase compile testing coverage.  Hence fix the link failure
    by dropping the HAS_DMA dependency of SND_SOC_QDSP6.
    
    Fixes: a2120089251f1fe2 ("ASoC: qcom: common: set correct directions for dailinks")
    Fixes: 6b1687bf76ef84cb ("ASoC: qcom: add sdm845 sound card support")
    Fixes: a6f933f63f2ffdb2 ("ASoC: qcom: apq8096: Add db820c machine driver")
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Link: https://lore.kernel.org/r/20200629122443.21736-1-geert@linux-m68k.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9aa893aa80d5ebca1accb413a0bcd9d2d71fee7
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sun Jun 28 17:52:28 2020 +0200

    ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on the Lenovo Miix 2 10
    
    commit 85ca6b17e2bb96b19caac3b02c003d670b66de96 upstream.
    
    The Lenovo Miix 2 10 has a keyboard dock with extra speakers in the dock.
    Rather then the ACL5672's GPIO1 pin being used as IRQ to the CPU, it is
    actually used to enable the amplifier for these speakers
    (the IRQ to the CPU comes directly from the jack-detect switch).
    
    Add a quirk for having an ext speaker-amplifier enable pin on GPIO1
    and replace the Lenovo Miix 2 10's dmi_system_id table entry's wrong
    GPIO_DEV quirk (which needs to be renamed to GPIO1_IS_IRQ) with the
    new RT5670_GPIO1_IS_EXT_SPK_EN quirk, so that we enable the external
    speaker-amplifier as necessary.
    
    Also update the ident field for the dmi_system_id table entry, the
    Miix models are not Thinkpads.
    
    Fixes: 67e03ff3f32f ("ASoC: codecs: rt5670: add Thinkpad Tablet 10 quirk")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1786723
    Link: https://lore.kernel.org/r/20200628155231.71089-4-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6b6da0f4279a7fa37cdb2eefdc19c42330b81da
Author: Joerg Roedel <jroedel@suse.de>
Date:   Tue Jul 21 11:34:48 2020 +0200

    x86, vmlinux.lds: Page-align end of ..page_aligned sections
    
    commit de2b41be8fcccb2f5b6c480d35df590476344201 upstream.
    
    On x86-32 the idt_table with 256 entries needs only 2048 bytes. It is
    page-aligned, but the end of the .bss..page_aligned section is not
    guaranteed to be page-aligned.
    
    As a result, objects from other .bss sections may end up on the same 4k
    page as the idt_table, and will accidentially get mapped read-only during
    boot, causing unexpected page-faults when the kernel writes to them.
    
    This could be worked around by making the objects in the page aligned
    sections page sized, but that's wrong.
    
    Explicit sections which store only page aligned objects have an implicit
    guarantee that the object is alone in the page in which it is placed. That
    works for all objects except the last one. That's inconsistent.
    
    Enforcing page sized objects for these sections would wreckage memory
    sanitizers, because the object becomes artificially larger than it should
    be and out of bound access becomes legit.
    
    Align the end of the .bss..page_aligned and .data..page_aligned section on
    page-size so all objects places in these sections are guaranteed to have
    their own page.
    
    [ tglx: Amended changelog ]
    
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20200721093448.10417-1-joro@8bytes.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c40f079e5e1f3190c8dfb8aa5d078d33f2d7ee2a
Author: John David Anglin <dave.anglin@bell.net>
Date:   Tue Jul 21 07:36:59 2020 -0400

    parisc: Add atomic64_set_release() define to avoid CPU soft lockups
    
    commit be6577af0cef934ccb036445314072e8cb9217b9 upstream.
    
    Stalls are quite frequent with recent kernels. I enabled
    CONFIG_SOFTLOCKUP_DETECTOR and I caught the following stall:
    
    watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [cc1:22803]
    CPU: 0 PID: 22803 Comm: cc1 Not tainted 5.6.17+ #3
    Hardware name: 9000/800/rp3440
     IAOQ[0]: d_alloc_parallel+0x384/0x688
     IAOQ[1]: d_alloc_parallel+0x388/0x688
     RP(r2): d_alloc_parallel+0x134/0x688
    Backtrace:
     [<000000004036974c>] __lookup_slow+0xa4/0x200
     [<0000000040369fc8>] walk_component+0x288/0x458
     [<000000004036a9a0>] path_lookupat+0x88/0x198
     [<000000004036e748>] filename_lookup+0xa0/0x168
     [<000000004036e95c>] user_path_at_empty+0x64/0x80
     [<000000004035d93c>] vfs_statx+0x104/0x158
     [<000000004035dfcc>] __do_sys_lstat64+0x44/0x80
     [<000000004035e5a0>] sys_lstat64+0x20/0x38
     [<0000000040180054>] syscall_exit+0x0/0x14
    
    The code was stuck in this loop in d_alloc_parallel:
    
        4037d414:   0e 00 10 dc     ldd 0(r16),ret0
        4037d418:   c7 fc 5f ed     bb,< ret0,1f,4037d414 <d_alloc_parallel+0x384>
        4037d41c:   08 00 02 40     nop
    
    This is the inner loop of bit_spin_lock which is called by hlist_bl_unlock in
    d_alloc_parallel:
    
    static inline void bit_spin_lock(int bitnum, unsigned long *addr)
    {
            /*
             * Assuming the lock is uncontended, this never enters
             * the body of the outer loop. If it is contended, then
             * within the inner loop a non-atomic test is used to
             * busywait with less bus contention for a good time to
             * attempt to acquire the lock bit.
             */
            preempt_disable();
    #if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
            while (unlikely(test_and_set_bit_lock(bitnum, addr))) {
                    preempt_enable();
                    do {
                            cpu_relax();
                    } while (test_bit(bitnum, addr));
                    preempt_disable();
            }
    #endif
            __acquire(bitlock);
    }
    
    After consideration, I realized that we must be losing bit unlocks.
    Then, I noticed that we missed defining atomic64_set_release().
    Adding this define fixes the stalls in bit operations.
    
    Signed-off-by: Dave Anglin <dave.anglin@bell.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0515349fee17bb0002e10b32904172a274dbd34e
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Wed Jul 22 21:15:10 2020 -0700

    arm64: vdso32: Fix '--prefix=' value for newer versions of clang
    
    commit 7b7891c7bdfd61fc9ed6747a0a05efe2394dddc6 upstream.
    
    Newer versions of clang only look for $(COMPAT_GCC_TOOLCHAIN_DIR)as [1],
    rather than $(COMPAT_GCC_TOOLCHAIN_DIR)$(CROSS_COMPILE_COMPAT)as,
    resulting in the following build error:
    
    $ make -skj"$(nproc)" ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \
    CROSS_COMPILE_COMPAT=arm-linux-gnueabi- LLVM=1 O=out/aarch64 distclean \
    defconfig arch/arm64/kernel/vdso32/
    ...
    /home/nathan/cbl/toolchains/llvm-binutils/bin/as: unrecognized option '-EL'
    clang-12: error: assembler command failed with exit code 1 (use -v to see invocation)
    make[3]: *** [arch/arm64/kernel/vdso32/Makefile:181: arch/arm64/kernel/vdso32/note.o] Error 1
    ...
    
    Adding the value of CROSS_COMPILE_COMPAT (adding notdir to account for a
    full path for CROSS_COMPILE_COMPAT) fixes this issue, which matches the
    solution done for the main Makefile [2].
    
    [1]: https://github.com/llvm/llvm-project/commit/3452a0d8c17f7166f479706b293caf6ac76ffd90
    [2]: https://lore.kernel.org/lkml/20200721173125.1273884-1-maskray@google.com/
    
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Cc: stable@vger.kernel.org
    Link: https://github.com/ClangBuiltLinux/linux/issues/1099
    Link: https://lore.kernel.org/r/20200723041509.400450-1-natechancellor@gmail.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b00f624573229df95e68308162da6c419ef0b2b2
Author: Qiu Wenbo <qiuwenbo@phytium.com.cn>
Date:   Fri Jul 17 15:09:57 2020 +0800

    drm/amd/powerplay: fix a crash when overclocking Vega M
    
    commit 88bb16ad998a0395fe4b346b7d3f621aaa0a2324 upstream.
    
    Avoid kernel crash when vddci_control is SMU7_VOLTAGE_CONTROL_NONE and
    vddci_voltage_table is empty. It has been tested on Intel Hades Canyon
    (i7-8809G).
    
    Bug: https://bugzilla.kernel.org/show_bug.cgi?id=208489
    Fixes: ac7822b0026f ("drm/amd/powerplay: add smumgr support for VEGAM (v2)")
    Reviewed-by: Evan Quan <evan.quan@amd.com>
    Signed-off-by: Qiu Wenbo <qiuwenbo@phytium.com.cn>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f69137b000ffcfc726e8f3d567e0b69b34a49649
Author: Paweł Gronowski <me@woland.xyz>
Date:   Sun Jul 19 17:54:53 2020 +0200

    drm/amdgpu: Fix NULL dereference in dpm sysfs handlers
    
    commit 38e0c89a19fd13f28d2b4721035160a3e66e270b upstream.
    
    NULL dereference occurs when string that is not ended with space or
    newline is written to some dpm sysfs interface (for example pp_dpm_sclk).
    This happens because strsep replaces the tmp with NULL if the delimiter
    is not present in string, which is then dereferenced by tmp[0].
    
    Reproduction example:
    sudo sh -c 'echo -n 1 > /sys/class/drm/card0/device/pp_dpm_sclk'
    
    Signed-off-by: Paweł Gronowski <me@woland.xyz>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04e469ed6c5ed4f2f8d0aa7e1fcb91360a33c907
Author: Eddie James <eajames@linux.ibm.com>
Date:   Thu Jul 9 14:57:06 2020 -0500

    mmc: sdhci-of-aspeed: Fix clock divider calculation
    
    commit ebd4050c6144b38098d8eed34df461e5e3fa82a9 upstream.
    
    When calculating the clock divider, start dividing at 2 instead of 1.
    The divider is divided by two at the end of the calculation, so starting
    at 1 may result in a divider of 0, which shouldn't happen.
    
    Signed-off-by: Eddie James <eajames@linux.ibm.com>
    Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
    Acked-by: Joel Stanley <joel@jms.id.au>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Link: https://lore.kernel.org/r/20200709195706.12741-3-eajames@linux.ibm.com
    Cc: stable@vger.kernel.org # v5.4+
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03902f9efb20bfb7b0c775467d59a9d938a8fc85
Author: Michael J. Ruhl <michael.j.ruhl@intel.com>
Date:   Thu Jul 23 21:15:46 2020 -0700

    io-mapping: indicate mapping failure
    
    commit e0b3e0b1a04367fc15c07f44e78361545b55357c upstream.
    
    The !ATOMIC_IOMAP version of io_maping_init_wc will always return
    success, even when the ioremap fails.
    
    Since the ATOMIC_IOMAP version returns NULL when the init fails, and
    callers check for a NULL return on error this is unexpected.
    
    During a device probe, where the ioremap failed, a crash can look like
    this:
    
        BUG: unable to handle page fault for address: 0000000000210000
         #PF: supervisor write access in kernel mode
         #PF: error_code(0x0002) - not-present page
         Oops: 0002 [#1] PREEMPT SMP
         CPU: 0 PID: 177 Comm:
         RIP: 0010:fill_page_dma [i915]
           gen8_ppgtt_create [i915]
           i915_ppgtt_create [i915]
           intel_gt_init [i915]
           i915_gem_init [i915]
           i915_driver_probe [i915]
           pci_device_probe
           really_probe
           driver_probe_device
    
    The remap failure occurred much earlier in the probe.  If it had been
    propagated, the driver would have exited with an error.
    
    Return NULL on ioremap failure.
    
    [akpm@linux-foundation.org: detect ioremap_wc() errors earlier]
    
    Fixes: cafaf14a5d8f ("io-mapping: Always create a struct to hold metadata about the io-mapping")
    Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Mike Rapoport <rppt@linux.ibm.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: <stable@vger.kernel.org>
    Link: http://lkml.kernel.org/r/20200721171936.81563-1-michael.j.ruhl@intel.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e3e2be457e4ef1d076f53656711683c68b07123
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Thu Jul 23 21:15:34 2020 -0700

    khugepaged: fix null-pointer dereference due to race
    
    commit 594cced14ad3903166c8b091ff96adac7552f0b3 upstream.
    
    khugepaged has to drop mmap lock several times while collapsing a page.
    The situation can change while the lock is dropped and we need to
    re-validate that the VMA is still in place and the PMD is still subject
    for collapse.
    
    But we miss one corner case: while collapsing an anonymous pages the VMA
    could be replaced with file VMA.  If the file VMA doesn't have any
    private pages we get NULL pointer dereference:
    
            general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
            KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
            anon_vma_lock_write include/linux/rmap.h:120 [inline]
            collapse_huge_page mm/khugepaged.c:1110 [inline]
            khugepaged_scan_pmd mm/khugepaged.c:1349 [inline]
            khugepaged_scan_mm_slot mm/khugepaged.c:2110 [inline]
            khugepaged_do_scan mm/khugepaged.c:2193 [inline]
            khugepaged+0x3bba/0x5a10 mm/khugepaged.c:2238
    
    The fix is to make sure that the VMA is anonymous in
    hugepage_vma_revalidate().  The helper is only used for collapsing
    anonymous pages.
    
    Fixes: 99cb0dbd47a1 ("mm,thp: add read-only THP support for (non-shmem) FS")
    Reported-by: syzbot+ed318e8b790ca72c5ad0@syzkaller.appspotmail.com
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Acked-by: Yang Shi <yang.shi@linux.alibaba.com>
    Cc: <stable@vger.kernel.org>
    Link: http://lkml.kernel.org/r/20200722121439.44328-1-kirill.shutemov@linux.intel.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 931b5890c78e00417d6cae44bac77ef9a86c676e
Author: Barry Song <song.bao.hua@hisilicon.com>
Date:   Thu Jul 23 21:15:30 2020 -0700

    mm/hugetlb: avoid hardcoding while checking if cma is enabled
    
    commit dbda8feadfa46b3d8dd7a2304f84ccbc036effe9 upstream.
    
    hugetlb_cma[0] can be NULL due to various reasons, for example, node0
    has no memory.  so NULL hugetlb_cma[0] doesn't necessarily mean cma is
    not enabled.  gigantic pages might have been reserved on other nodes.
    This patch fixes possible double reservation and CMA leak.
    
    [akpm@linux-foundation.org: fix CONFIG_CMA=n warning]
    [sfr@canb.auug.org.au: better checks before using hugetlb_cma]
      Link: http://lkml.kernel.org/r/20200721205716.6dbaa56b@canb.auug.org.au
    
    Fixes: cf11e85fc08c ("mm: hugetlb: optionally allocate gigantic hugepages using cma")
    Signed-off-by: Barry Song <song.bao.hua@hisilicon.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
    Acked-by: Roman Gushchin <guro@fb.com>
    Cc: Jonathan Cameron <jonathan.cameron@huawei.com>
    Cc: <stable@vger.kernel.org>
    Link: http://lkml.kernel.org/r/20200710005726.36068-1-song.bao.hua@hisilicon.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02f0803f5b81f6a9d27b3e64cd8a09874c8eabda
Author: Muchun Song <songmuchun@bytedance.com>
Date:   Thu Jul 23 21:15:27 2020 -0700

    mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
    
    commit d38a2b7a9c939e6d7329ab92b96559ccebf7b135 upstream.
    
    If the kmem_cache refcount is greater than one, we should not mark the
    root kmem_cache as dying.  If we mark the root kmem_cache dying
    incorrectly, the non-root kmem_cache can never be destroyed.  It
    resulted in memory leak when memcg was destroyed.  We can use the
    following steps to reproduce.
    
      1) Use kmem_cache_create() to create a new kmem_cache named A.
      2) Coincidentally, the kmem_cache A is an alias for kmem_cache B,
         so the refcount of B is just increased.
      3) Use kmem_cache_destroy() to destroy the kmem_cache A, just
         decrease the B's refcount but mark the B as dying.
      4) Create a new memory cgroup and alloc memory from the kmem_cache
         B. It leads to create a non-root kmem_cache for allocating memory.
      5) When destroy the memory cgroup created in the step 4), the
         non-root kmem_cache can never be destroyed.
    
    If we repeat steps 4) and 5), this will cause a lot of memory leak.  So
    only when refcount reach zero, we mark the root kmem_cache as dying.
    
    Fixes: 92ee383f6daa ("mm: fix race between kmem_cache destroy, create and deactivate")
    Signed-off-by: Muchun Song <songmuchun@bytedance.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Shakeel Butt <shakeelb@google.com>
    Acked-by: Roman Gushchin <guro@fb.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: <stable@vger.kernel.org>
    Link: http://lkml.kernel.org/r/20200716165103.83462-1-songmuchun@bytedance.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd79bb5247bad92dcc48f7809d094ef632ee19b7
Author: Hugh Dickins <hughd@google.com>
Date:   Thu Jul 23 21:15:24 2020 -0700

    mm/memcg: fix refcount error while moving and swapping
    
    commit 8d22a9351035ef2ff12ef163a1091b8b8cf1e49c upstream.
    
    It was hard to keep a test running, moving tasks between memcgs with
    move_charge_at_immigrate, while swapping: mem_cgroup_id_get_many()'s
    refcount is discovered to be 0 (supposedly impossible), so it is then
    forced to REFCOUNT_SATURATED, and after thousands of warnings in quick
    succession, the test is at last put out of misery by being OOM killed.
    
    This is because of the way moved_swap accounting was saved up until the
    task move gets completed in __mem_cgroup_clear_mc(), deferred from when
    mem_cgroup_move_swap_account() actually exchanged old and new ids.
    Concurrent activity can free up swap quicker than the task is scanned,
    bringing id refcount down 0 (which should only be possible when
    offlining).
    
    Just skip that optimization: do that part of the accounting immediately.
    
    Fixes: 615d66c37c75 ("mm: memcontrol: fix memcg id ref counter on swap charge move")
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: <stable@vger.kernel.org>
    Link: http://lkml.kernel.org/r/alpine.LSU.2.11.2007071431050.4726@eggly.anvils
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1aa90dc86ac84137af53303fa6165e2f205b113
Author: Chengguang Xu <cgxu519@mykernel.net>
Date:   Thu Jul 23 21:15:14 2020 -0700

    vfs/xattr: mm/shmem: kernfs: release simple xattr entry in a right way
    
    commit 3bef735ad7b7d987069181e7b58588043cbd1509 upstream.
    
    After commit fdc85222d58e ("kernfs: kvmalloc xattr value instead of
    kmalloc"), simple xattr entry is allocated with kvmalloc() instead of
    kmalloc(), so we should release it with kvfree() instead of kfree().
    
    Fixes: fdc85222d58e ("kernfs: kvmalloc xattr value instead of kmalloc")
    Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Acked-by: Hugh Dickins <hughd@google.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Cc: Daniel Xu <dxu@dxuuu.xyz>
    Cc: Chris Down <chris@chrisdown.name>
    Cc: Andreas Dilger <adilger@dilger.ca>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: <stable@vger.kernel.org>    [5.7]
    Link: http://lkml.kernel.org/r/20200704051608.15043-1-cgxu519@mykernel.net
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6afd2a9f2839a60a6cd6a0cac740019f90c35eb
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Thu Jul 23 21:15:11 2020 -0700

    mm/mmap.c: close race between munmap() and expand_upwards()/downwards()
    
    commit 246c320a8cfe0b11d81a4af38fa9985ef0cc9a4c upstream.
    
    VMA with VM_GROWSDOWN or VM_GROWSUP flag set can change their size under
    mmap_read_lock().  It can lead to race with __do_munmap():
    
            Thread A                        Thread B
    __do_munmap()
      detach_vmas_to_be_unmapped()
      mmap_write_downgrade()
                                    expand_downwards()
                                      vma->vm_start = address;
                                      // The VMA now overlaps with
                                      // VMAs detached by the Thread A
                                    // page fault populates expanded part
                                    // of the VMA
      unmap_region()
        // Zaps pagetables partly
        // populated by Thread B
    
    Similar race exists for expand_upwards().
    
    The fix is to avoid downgrading mmap_lock in __do_munmap() if detached
    VMAs are next to VM_GROWSDOWN or VM_GROWSUP VMA.
    
    [akpm@linux-foundation.org: s/mmap_sem/mmap_lock/ in comment]
    
    Fixes: dd2283f2605e ("mm: mmap: zap pages with read mmap_sem in munmap")
    Reported-by: Jann Horn <jannh@google.com>
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Yang Shi <yang.shi@linux.alibaba.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: <stable@vger.kernel.org>    [4.20+]
    Link: http://lkml.kernel.org/r/20200709105309.42495-1-kirill.shutemov@linux.intel.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4055a0a9dc137856c9b99be72d56edae6c8564ea
Author: Fangrui Song <maskray@google.com>
Date:   Tue Jul 21 10:31:23 2020 -0700

    Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation
    
    commit ca9b31f6bb9c6aa9b4e5f0792f39a97bbffb8c51 upstream.
    
    When CROSS_COMPILE is set (e.g. aarch64-linux-gnu-), if
    $(CROSS_COMPILE)elfedit is found at /usr/bin/aarch64-linux-gnu-elfedit,
    GCC_TOOLCHAIN_DIR will be set to /usr/bin/.  --prefix= will be set to
    /usr/bin/ and Clang as of 11 will search for both
    $(prefix)aarch64-linux-gnu-$needle and $(prefix)$needle.
    
    GCC searchs for $(prefix)aarch64-linux-gnu/$version/$needle,
    $(prefix)aarch64-linux-gnu/$needle and $(prefix)$needle. In practice,
    $(prefix)aarch64-linux-gnu/$needle rarely contains executables.
    
    To better model how GCC's -B/--prefix takes in effect in practice, newer
    Clang (since
    https://github.com/llvm/llvm-project/commit/3452a0d8c17f7166f479706b293caf6ac76ffd90)
    only searches for $(prefix)$needle. Currently it will find /usr/bin/as
    instead of /usr/bin/aarch64-linux-gnu-as.
    
    Set --prefix= to $(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
    (/usr/bin/aarch64-linux-gnu-) so that newer Clang can find the
    appropriate cross compiling GNU as (when -no-integrated-as is in
    effect).
    
    Cc: stable@vger.kernel.org
    Reported-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Fangrui Song <maskray@google.com>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Tested-by: Nathan Chancellor <natechancellor@gmail.com>
    Tested-by: Nick Desaulniers <ndesaulniers@google.com>
    Link: https://github.com/ClangBuiltLinux/linux/issues/1099
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02abdb610a09f8bac8251fff5f9cd5d39eb35b12
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sun Jul 12 20:10:12 2020 +0900

    vt: Reject zero-sized screen buffer size.
    
    commit ce684552a266cb1c7cc2f7e623f38567adec6653 upstream.
    
    syzbot is reporting general protection fault in do_con_write() [1] caused
    by vc->vc_screenbuf == ZERO_SIZE_PTR caused by vc->vc_screenbuf_size == 0
    caused by vc->vc_cols == vc->vc_rows == vc->vc_size_row == 0 caused by
    fb_set_var() from ioctl(FBIOPUT_VSCREENINFO) on /dev/fb0 , for
    gotoxy(vc, 0, 0) from reset_terminal() from vc_init() from vc_allocate()
     from con_install() from tty_init_dev() from tty_open() on such console
    causes vc->vc_pos == 0x10000000e due to
    ((unsigned long) ZERO_SIZE_PTR) + -1U * 0 + (-1U << 1).
    
    I don't think that a console with 0 column or 0 row makes sense. And it
    seems that vc_do_resize() does not intend to allow resizing a console to
    0 column or 0 row due to
    
      new_cols = (cols ? cols : vc->vc_cols);
      new_rows = (lines ? lines : vc->vc_rows);
    
    exception.
    
    Theoretically, cols and rows can be any range as long as
    0 < cols * rows * 2 <= KMALLOC_MAX_SIZE is satisfied (e.g.
    cols == 1048576 && rows == 2 is possible) because of
    
      vc->vc_size_row = vc->vc_cols << 1;
      vc->vc_screenbuf_size = vc->vc_rows * vc->vc_size_row;
    
    in visual_init() and kzalloc(vc->vc_screenbuf_size) in vc_allocate().
    
    Since we can detect cols == 0 or rows == 0 via screenbuf_size = 0 in
    visual_init(), we can reject kzalloc(0). Then, vc_allocate() will return
    an error, and con_write() will not be called on a console with 0 column
    or 0 row.
    
    We need to make sure that integer overflow in visual_init() won't happen.
    Since vc_do_resize() restricts cols <= 32767 and rows <= 32767, applying
    1 <= cols <= 32767 and 1 <= rows <= 32767 restrictions to vc_allocate()
    will be practically fine.
    
    This patch does not touch con_init(), for returning -EINVAL there
    does not help when we are not returning -ENOMEM.
    
    [1] https://syzkaller.appspot.com/bug?extid=017265e8553724e514e8
    
    Reported-and-tested-by: syzbot <syzbot+017265e8553724e514e8@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200712111013.11881-1-penguin-kernel@I-love.SAKURA.ne.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 339a89bbc77a429f0832f23a62ac19880aaf7eb6
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Wed Jul 15 10:51:02 2020 +0900

    fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
    
    commit 033724d6864245a11f8e04c066002e6ad22b3fd0 upstream.
    
    syzbot is reporting general protection fault in bitfill_aligned() [1]
    caused by integer underflow in bit_clear_margins(). The cause of this
    problem is when and how do_vc_resize() updates vc->vc_{cols,rows}.
    
    If vc_do_resize() fails (e.g. kzalloc() fails) when var.xres or var.yres
    is going to shrink, vc->vc_{cols,rows} will not be updated. This allows
    bit_clear_margins() to see info->var.xres < (vc->vc_cols * cw) or
    info->var.yres < (vc->vc_rows * ch). Unexpectedly large rw or bh will
    try to overrun the __iomem region and causes general protection fault.
    
    Also, vc_resize(vc, 0, 0) does not set vc->vc_{cols,rows} = 0 due to
    
      new_cols = (cols ? cols : vc->vc_cols);
      new_rows = (lines ? lines : vc->vc_rows);
    
    exception. Since cols and lines are calculated as
    
      cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres);
      rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
      cols /= vc->vc_font.width;
      rows /= vc->vc_font.height;
      vc_resize(vc, cols, rows);
    
    in fbcon_modechanged(), var.xres < vc->vc_font.width makes cols = 0
    and var.yres < vc->vc_font.height makes rows = 0. This means that
    
      const int fd = open("/dev/fb0", O_ACCMODE);
      struct fb_var_screeninfo var = { };
      ioctl(fd, FBIOGET_VSCREENINFO, &var);
      var.xres = var.yres = 1;
      ioctl(fd, FBIOPUT_VSCREENINFO, &var);
    
    easily reproduces integer underflow bug explained above.
    
    Of course, callers of vc_resize() are not handling vc_do_resize() failure
    is bad. But we can't avoid vc_resize(vc, 0, 0) which returns 0. Therefore,
    as a band-aid workaround, this patch checks integer underflow in
    "struct fbcon_ops"->clear_margins call, assuming that
    vc->vc_cols * vc->vc_font.width and vc->vc_rows * vc->vc_font.heigh do not
    cause integer overflow.
    
    [1] https://syzkaller.appspot.com/bug?id=a565882df74fa76f10d3a6fec4be31098dbb37c6
    
    Reported-and-tested-by: syzbot <syzbot+e5fd3e65515b48c02a30@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200715015102.3814-1-penguin-kernel@I-love.SAKURA.ne.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0747aa3b93946d18a145101015a1662cc4b7f403
Author: Eric Biggers <ebiggers@google.com>
Date:   Wed Jul 15 23:05:53 2020 -0700

    /dev/mem: Add missing memory barriers for devmem_inode
    
    commit b34e7e298d7a5ed76b3aa327c240c29f1ef6dd22 upstream.
    
    WRITE_ONCE() isn't the correct way to publish a pointer to a data
    structure, since it doesn't include a write memory barrier.  Therefore
    other tasks may see that the pointer has been set but not see that the
    pointed-to memory has finished being initialized yet.  Instead a
    primitive with "release" semantics is needed.
    
    Use smp_store_release() for this.
    
    The use of READ_ONCE() on the read side is still potentially correct if
    there's no control dependency, i.e. if all memory being "published" is
    transitively reachable via the pointer itself.  But this pairing is
    somewhat confusing and error-prone.  So just upgrade the read side to
    smp_load_acquire() so that it clearly pairs with smp_store_release().
    
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Fixes: 3234ac664a87 ("/dev/mem: Revoke mappings when a driver claims the region")
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Cc: stable <stable@vger.kernel.org>
    Acked-by: Dan Williams <dan.j.williams@intel.com>
    Link: https://lore.kernel.org/r/20200716060553.24618-1-ebiggers@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 093ed127e2d92c95023f2bdfd22fa0e510929315
Author: Georgi Djakov <georgi.djakov@linaro.org>
Date:   Thu Jul 23 11:37:35 2020 +0300

    interconnect: msm8916: Fix buswidth of pcnoc_s nodes
    
    commit 92d232d176041db5b033dd7b7f7f2cf343f82237 upstream.
    
    The buswidth of the pcnoc_s_* nodes is actually not 8, but
    4 bytes. Let's fix it.
    
    Reported-by: Jun Nie <jun.nie@linaro.org>
    Reviewed-by: Mike Tipton <mdtipton@codeaurora.org>
    Fixes: 30c8fa3ec61a ("interconnect: qcom: Add MSM8916 interconnect provider driver")
    Link: https://lore.kernel.org/r/20200709130004.12462-1-georgi.djakov@linaro.org
    Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200723083735.5616-3-georgi.djakov@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 53d34574b575d8eb02d60ae92c149e3930bcd1e9
Author: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Date:   Tue Jul 14 15:41:12 2020 +0300

    serial: 8250_mtk: Fix high-speed baud rates clamping
    
    commit 551e553f0d4ab623e2a6f424ab5834f9c7b5229c upstream.
    
    Commit 7b668c064ec3 ("serial: 8250: Fix max baud limit in generic 8250
    port") fixed limits of a baud rate setting for a generic 8250 port.
    In other words since that commit the baud rate has been permitted to be
    within [uartclk / 16 / UART_DIV_MAX; uartclk / 16], which is absolutely
    normal for a standard 8250 UART port. But there are custom 8250 ports,
    which provide extended baud rate limits. In particular the Mediatek 8250
    port can work with baud rates up to "uartclk" speed.
    
    Normally that and any other peculiarity is supposed to be handled in a
    custom set_termios() callback implemented in the vendor-specific
    8250-port glue-driver. Currently that is how it's done for the most of
    the vendor-specific 8250 ports, but for some reason for Mediatek a
    solution has been spread out to both the glue-driver and to the generic
    8250-port code. Due to that a bug has been introduced, which permitted the
    extended baud rate limit for all even for standard 8250-ports. The bug
    has been fixed by the commit 7b668c064ec3 ("serial: 8250: Fix max baud
    limit in generic 8250 port") by narrowing the baud rates limit back down to
    the normal bounds. Unfortunately by doing so we also broke the
    Mediatek-specific extended bauds feature.
    
    A fix of the problem described above is twofold. First since we can't get
    back the extended baud rate limits feature to the generic set_termios()
    function and that method supports only a standard baud rates range, the
    requested baud rate must be locally stored before calling it and then
    restored back to the new termios structure after the generic set_termios()
    finished its magic business. By doing so we still use the
    serial8250_do_set_termios() method to set the LCR/MCR/FCR/etc. registers,
    while the extended baud rate setting procedure will be performed later in
    the custom Mediatek-specific set_termios() callback. Second since a true
    baud rate is now fully calculated in the custom set_termios() method we
    need to locally update the port timeout by calling the
    uart_update_timeout() function. After the fixes described above are
    implemented in the 8250_mtk.c driver, the Mediatek 8250-port should
    get back to normally working with extended baud rates.
    
    Link: https://lore.kernel.org/linux-serial/20200701211337.3027448-1-danielwinkler@google.com
    
    Fixes: 7b668c064ec3 ("serial: 8250: Fix max baud limit in generic 8250 port")
    Reported-by: Daniel Winkler <danielwinkler@google.com>
    Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
    Cc: stable <stable@vger.kernel.org>
    Tested-by: Claire Chang <tientzu@chromium.org>
    Link: https://lore.kernel.org/r/20200714124113.20918-1-Sergey.Semin@baikalelectronics.ru
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb710a1ac0b2c5d46917563b78ebef429b0e8738
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Tue Jul 21 14:38:52 2020 +0000

    serial: 8250: fix null-ptr-deref in serial8250_start_tx()
    
    commit f4c23a140d80ef5e6d3d1f8f57007649014b60fa upstream.
    
    I got null-ptr-deref in serial8250_start_tx():
    
    [   78.114630] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
    [   78.123778] Mem abort info:
    [   78.126560]   ESR = 0x86000007
    [   78.129603]   EC = 0x21: IABT (current EL), IL = 32 bits
    [   78.134891]   SET = 0, FnV = 0
    [   78.137933]   EA = 0, S1PTW = 0
    [   78.141064] user pgtable: 64k pages, 48-bit VAs, pgdp=00000027d41a8600
    [   78.147562] [0000000000000000] pgd=00000027893f0003, p4d=00000027893f0003, pud=00000027893f0003, pmd=00000027c9a20003, pte=0000000000000000
    [   78.160029] Internal error: Oops: 86000007 [#1] SMP
    [   78.164886] Modules linked in: sunrpc vfat fat aes_ce_blk crypto_simd cryptd aes_ce_cipher crct10dif_ce ghash_ce sha2_ce sha256_arm64 sha1_ce ses enclosure sg sbsa_gwdt ipmi_ssif spi_dw_mmio sch_fq_codel vhost_net tun vhost vhost_iotlb tap ip_tables ext4 mbcache jbd2 ahci hisi_sas_v3_hw libahci hisi_sas_main libsas hns3 scsi_transport_sas hclge libata megaraid_sas ipmi_si hnae3 ipmi_devintf ipmi_msghandler br_netfilter bridge stp llc nvme nvme_core xt_sctp sctp libcrc32c dm_mod nbd
    [   78.207383] CPU: 11 PID: 23258 Comm: null-ptr Not tainted 5.8.0-rc6+ #48
    [   78.214056] Hardware name: Huawei TaiShan 2280 V2/BC82AMDC, BIOS 2280-V2 CS V3.B210.01 03/12/2020
    [   78.222888] pstate: 80400089 (Nzcv daIf +PAN -UAO BTYPE=--)
    [   78.228435] pc : 0x0
    [   78.230618] lr : serial8250_start_tx+0x160/0x260
    [   78.235215] sp : ffff800062eefb80
    [   78.238517] x29: ffff800062eefb80 x28: 0000000000000fff
    [   78.243807] x27: ffff800062eefd80 x26: ffff202fd83b3000
    [   78.249098] x25: ffff800062eefd80 x24: ffff202fd83b3000
    [   78.254388] x23: ffff002fc5e50be8 x22: 0000000000000002
    [   78.259679] x21: 0000000000000001 x20: 0000000000000000
    [   78.264969] x19: ffffa688827eecc8 x18: 0000000000000000
    [   78.270259] x17: 0000000000000000 x16: 0000000000000000
    [   78.275550] x15: ffffa68881bc67a8 x14: 00000000000002e6
    [   78.280841] x13: ffffa68881bc67a8 x12: 000000000000c539
    [   78.286131] x11: d37a6f4de9bd37a7 x10: ffffa68881cccff0
    [   78.291421] x9 : ffffa68881bc6000 x8 : ffffa688819daa88
    [   78.296711] x7 : ffffa688822a0f20 x6 : ffffa688819e0000
    [   78.302002] x5 : ffff800062eef9d0 x4 : ffffa68881e707a8
    [   78.307292] x3 : 0000000000000000 x2 : 0000000000000002
    [   78.312582] x1 : 0000000000000001 x0 : ffffa688827eecc8
    [   78.317873] Call trace:
    [   78.320312]  0x0
    [   78.322147]  __uart_start.isra.9+0x64/0x78
    [   78.326229]  uart_start+0xb8/0x1c8
    [   78.329620]  uart_flush_chars+0x24/0x30
    [   78.333442]  n_tty_receive_buf_common+0x7b0/0xc30
    [   78.338128]  n_tty_receive_buf+0x44/0x2c8
    [   78.342122]  tty_ioctl+0x348/0x11f8
    [   78.345599]  ksys_ioctl+0xd8/0xf8
    [   78.348903]  __arm64_sys_ioctl+0x2c/0xc8
    [   78.352812]  el0_svc_common.constprop.2+0x88/0x1b0
    [   78.357583]  do_el0_svc+0x44/0xd0
    [   78.360887]  el0_sync_handler+0x14c/0x1d0
    [   78.364880]  el0_sync+0x140/0x180
    [   78.368185] Code: bad PC value
    
    SERIAL_PORT_DFNS is not defined on each arch, if it's not defined,
    serial8250_set_defaults() won't be called in serial8250_isa_init_ports(),
    so the p->serial_in pointer won't be initialized, and it leads a null-ptr-deref.
    Fix this problem by calling serial8250_set_defaults() after init uart port.
    
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200721143852.4058352-1-yangyingliang@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6727b8f25f4ee03fd33257e4ff6b64017685ab9
Author: Johan Hovold <johan@kernel.org>
Date:   Fri Jul 10 15:59:46 2020 +0200

    serial: tegra: fix CREAD handling for PIO
    
    commit b374c562ee7ab3f3a1daf959c01868bae761571c upstream.
    
    Commit 33ae787b74fc ("serial: tegra: add support to ignore read") added
    support for dropping input in case CREAD isn't set, but for PIO the
    ignore_status_mask wasn't checked until after the character had been
    put in the receive buffer.
    
    Note that the NULL tty-port test is bogus and will be removed by a
    follow-on patch.
    
    Fixes: 33ae787b74fc ("serial: tegra: add support to ignore read")
    Cc: stable <stable@vger.kernel.org>     # 5.4
    Cc: Shardar Shariff Md <smohammed@nvidia.com>
    Cc: Krishna Yarlagadda <kyarlagadda@nvidia.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Acked-by: Thierry Reding <treding@nvidia.com>
    Link: https://lore.kernel.org/r/20200710135947.2737-2-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fed64b9dbfbe54ccc7d8b7c72dcc06362439cd62
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Fri Jul 17 15:52:56 2020 +0100

    staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift
    
    commit 926234f1b8434c4409aa4c53637aa3362ca07cea upstream.
    
    The `INSN_CONFIG` comedi instruction with sub-instruction code
    `INSN_CONFIG_DIGITAL_TRIG` includes a base channel in `data[3]`. This is
    used as a right shift amount for other bitmask values without being
    checked.  Shift amounts greater than or equal to 32 will result in
    undefined behavior.  Add code to deal with this.
    
    Fixes: 1e15687ea472 ("staging: comedi: addi_apci_1564: add Change-of-State interrupt subdevice and required functions")
    Cc: <stable@vger.kernel.org> #3.17+
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Link: https://lore.kernel.org/r/20200717145257.112660-4-abbotti@mev.co.uk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 723c69047d3675c273c34f5358a343685dc229da
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Fri Jul 17 15:52:57 2020 +0100

    staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
    
    commit fc846e9db67c7e808d77bf9e2ef3d49e3820ce5d upstream.
    
    The `INSN_CONFIG` comedi instruction with sub-instruction code
    `INSN_CONFIG_DIGITAL_TRIG` includes a base channel in `data[3]`. This is
    used as a right shift amount for other bitmask values without being
    checked.  Shift amounts greater than or equal to 32 will result in
    undefined behavior.  Add code to deal with this, adjusting the checks
    for invalid channels so that enabled channel bits that would have been
    lost by shifting are also checked for validity.  Only channels 0 to 15
    are valid.
    
    Fixes: a8c66b684efaf ("staging: comedi: addi_apci_1500: rewrite the subdevice support functions")
    Cc: <stable@vger.kernel.org> #4.0+: ef75e14a6c93: staging: comedi: verify array index is correct before using it
    Cc: <stable@vger.kernel.org> #4.0+
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Link: https://lore.kernel.org/r/20200717145257.112660-5-abbotti@mev.co.uk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9aed007a56296eedf53c61c0083cad10c74fd7db
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Fri Jul 17 15:52:54 2020 +0100

    staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support
    
    commit f07804ec77d77f8a9dcf570a24154e17747bc82f upstream.
    
    `ni6527_intr_insn_config()` processes `INSN_CONFIG` comedi instructions
    for the "interrupt" subdevice.  When `data[0]` is
    `INSN_CONFIG_DIGITAL_TRIG` it is configuring the digital trigger.  When
    `data[2]` is `COMEDI_DIGITAL_TRIG_ENABLE_EDGES` it is configuring rising
    and falling edge detection for the digital trigger, using a base channel
    number (or shift amount) in `data[3]`, a rising edge bitmask in
    `data[4]` and falling edge bitmask in `data[5]`.
    
    If the base channel number (shift amount) is greater than or equal to
    the number of channels (24) of the digital input subdevice, there are no
    changes to the rising and falling edges, so the mask of channels to be
    changed can be set to 0, otherwise the mask of channels to be changed,
    and the rising and falling edge bitmasks are shifted by the base channel
    number before calling `ni6527_set_edge_detection()` to change the
    appropriate registers.  Unfortunately, the code is comparing the base
    channel (shift amount) to the interrupt subdevice's number of channels
    (1) instead of the digital input subdevice's number of channels (24).
    Fix it by comparing to 32 because all shift amounts for an `unsigned
    int` must be less than that and everything from bit 24 upwards is
    ignored by `ni6527_set_edge_detection()` anyway.
    
    Fixes: 110f9e687c1a8 ("staging: comedi: ni_6527: support INSN_CONFIG_DIGITAL_TRIG")
    Cc: <stable@vger.kernel.org> # 3.17+
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Link: https://lore.kernel.org/r/20200717145257.112660-2-abbotti@mev.co.uk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06e6dcc27e99c1bbbc2341786a6c001fb602967d
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Fri Jul 17 15:52:55 2020 +0100

    staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift
    
    commit 0bd0db42a030b75c20028c7ba6e327b9cb554116 upstream.
    
    The `INSN_CONFIG` comedi instruction with sub-instruction code
    `INSN_CONFIG_DIGITAL_TRIG` includes a base channel in `data[3]`. This is
    used as a right shift amount for other bitmask values without being
    checked.  Shift amounts greater than or equal to 32 will result in
    undefined behavior.  Add code to deal with this.
    
    Fixes: 33cdce6293dcc ("staging: comedi: addi_apci_1032: conform to new INSN_CONFIG_DIGITAL_TRIG")
    Cc: <stable@vger.kernel.org> #3.8+
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Link: https://lore.kernel.org/r/20200717145257.112660-3-abbotti@mev.co.uk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d56f193849a13d9a3b68eb93fb3205b8b3b28d8
Author: Rustam Kovhaev <rkovhaev@gmail.com>
Date:   Wed Jul 22 09:10:52 2020 -0700

    staging: wlan-ng: properly check endpoint types
    
    commit faaff9765664009c1c7c65551d32e9ed3b1dda8f upstream.
    
    As syzkaller detected, wlan-ng driver does not do sanity check of
    endpoints in prism2sta_probe_usb(), add check for xfer direction and type
    
    Reported-and-tested-by: syzbot+c2a1fa67c02faa0de723@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=c2a1fa67c02faa0de723
    Signed-off-by: Rustam Kovhaev <rkovhaev@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200722161052.999754-1-rkovhaev@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13bf066306abc966c4f4242ea533593f7f2dd3fa
Author: Helmut Grohne <helmut.grohne@intenta.de>
Date:   Mon Jul 13 09:32:28 2020 +0200

    tty: xilinx_uartps: Really fix id assignment
    
    commit 22a82fa7d6c3e16d56a036b1fa697a39b954adf0 upstream.
    
    The problems started with the revert (18cc7ac8a28e28). The
    cdns_uart_console.index is statically assigned -1. When the port is
    registered, Linux assigns consecutive numbers to it. It turned out that
    when using ttyPS1 as console, the index is not updated as we are reusing
    the same cdns_uart_console instance for multiple ports. When registering
    ttyPS0, it gets updated from -1 to 0, but when registering ttyPS1, it
    already is 0 and not updated.
    
    That led to 2ae11c46d5fdc4. It assigns the index prior to registering
    the uart_driver once. Unfortunately, that ended up breaking the
    situation where the probe order does not match the id order. When using
    the same device tree for both uboot and linux, it is important that the
    serial0 alias points to the console. So some boards reverse those
    aliases. This was reported by Jan Kiszka. The proposed fix was reverting
    the index assignment and going back to the previous iteration.
    
    However such a reversed assignement (serial0 -> uart1, serial1 -> uart0)
    was already partially broken by the revert (18cc7ac8a28e28). While the
    ttyPS device works, the kmsg connection is already broken and kernel
    messages go missing. Reverting the id assignment does not fix this.
    
    >From the xilinx_uartps driver pov (after reverting the refactoring
    commits), there can be only one console. This manifests in static
    variables console_pprt and cdns_uart_console. These variables are not
    properly linked and can go out of sync. The cdns_uart_console.index is
    important for uart_add_one_port. We call that function for each port -
    one of which hopefully is the console. If it isn't, the CON_ENABLED flag
    is not set and console_port is cleared. The next cdns_uart_probe call
    then tries to register the next port using that same cdns_uart_console.
    
    It is important that console_port and cdns_uart_console (and its index
    in particular) stay in sync. The index assignment implemented by
    Shubhrajyoti Datta is correct in principle. It just may have to happen a
    second time if the first cdns_uart_probe call didn't encounter the
    console device. And we shouldn't change the index once the console uart
    is registered.
    
    Reported-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
    Reported-by: Jan Kiszka <jan.kiszka@web.de>
    Link: https://lore.kernel.org/linux-serial/f4092727-d8f5-5f91-2c9f-76643aace993@siemens.com/
    Fixes: 18cc7ac8a28e28 ("Revert "serial: uartps: Register own uart console and driver structures"")
    Fixes: 2ae11c46d5fdc4 ("tty: xilinx_uartps: Fix missing id assignment to the console")
    Fixes: 76ed2e10579671 ("Revert "tty: xilinx_uartps: Fix missing id assignment to the console"")
    Signed-off-by: Helmut Grohne <helmut.grohne@intenta.de>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200713073227.GA3805@laureti-dev
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86062f8d444304d4fa3f7c3a83fd57f056f70d52
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Apr 3 11:29:55 2020 +0300

    iwlwifi: mvm: don't call iwl_mvm_free_inactive_queue() under RCU
    
    commit fbb1461ad1d6eacca9beb69a2f3ce1b5398d399b upstream.
    
    iwl_mvm_free_inactive_queue() will sleep in synchronize_net() under
    some circumstances, so don't call it under RCU. There doesn't appear
    to be a need for RCU protection around this particular call.
    
    Cc: stable@vger.kernel.org # v5.4+
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/iwlwifi.20200403112332.0f49448c133d.I17fd308bc4a9491859c9b112f4eb5d2c3fc18d7d@changeid
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0df6a4d27c50465476c1f6ebbe18a82ce11311e2
Author: Steve French <stfrench@microsoft.com>
Date:   Thu Jul 23 14:41:29 2020 -0500

    Revert "cifs: Fix the target file was deleted when rename failed."
    
    commit 0e6705182d4e1b77248a93470d6d7b3013d59b30 upstream.
    
    This reverts commit 9ffad9263b467efd8f8dc7ae1941a0a655a2bab2.
    
    Upon additional testing with older servers, it was found that
    the original commit introduced a regression when using the old SMB1
    dialect and rsyncing over an existing file.
    
    The patch will need to be respun to address this, likely including
    a larger refactoring of the SMB1 and SMB3 rename code paths to make
    it less confusing and also to address some additional rename error
    cases that SMB3 may be able to workaround.
    
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reported-by: Patrick Fernie <patrick.fernie@gmail.com>
    CC: Stable <stable@vger.kernel.org>
    Acked-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Acked-by: Pavel Shilovsky <pshilov@microsoft.com>
    Acked-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 24ab19eeb6ecaf5cd3c9263a85aa4d34e1f9513a
Author: Forest Crossman <cyrozap@gmail.com>
Date:   Fri Jul 17 06:27:34 2020 -0500

    usb: xhci: Fix ASM2142/ASM3142 DMA addressing
    
    commit dbb0897e805f2ab1b8bc358f6c3d878a376b8897 upstream.
    
    The ASM2142/ASM3142 (same PCI IDs) does not support full 64-bit DMA
    addresses, which can cause silent memory corruption or IOMMU errors on
    platforms that use the upper bits. Add the XHCI_NO_64BIT_SUPPORT quirk
    to fix this issue.
    
    Signed-off-by: Forest Crossman <cyrozap@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200717112734.328432-1-cyrozap@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f54c504970a4e793b82a056268f81388bc01fa3
Author: Jon Hunter <jonathanh@nvidia.com>
Date:   Wed Jul 15 12:38:42 2020 +0100

    usb: tegra: Fix allocation for the FPCI context
    
    commit 0b987032f8b58ef51cc8a042f46cc0cf1f277172 upstream.
    
    Commit 5c4e8d3781bc ("usb: host: xhci-tegra: Add support for XUSB
    context save/restore") is using the IPFS 'num_offsets' value when
    allocating memory for FPCI context instead of the FPCI 'num_offsets'.
    
    After commit cad064f1bd52 ("devres: handle zero size in devm_kmalloc()")
    was added system suspend started failing on Tegra186. The kernel log
    showed that the Tegra XHCI driver was crashing on entry to suspend when
    attempting the save the USB context. On Tegra186, the IPFS context has a
    zero length but the FPCI content has a non-zero length, and because of
    the bug in the Tegra XHCI driver we are incorrectly allocating a zero
    length array for the FPCI context. The crash seen on entering suspend
    when we attempt to save the FPCI context and following commit
    cad064f1bd52 ("devres: handle zero size in devm_kmalloc()") this now
    causes a NULL pointer deference when we access the memory. Fix this by
    correcting the amount of memory we are allocating for FPCI contexts.
    
    Cc: stable@vger.kernel.org
    
    Fixes: 5c4e8d3781bc ("usb: host: xhci-tegra: Add support for XUSB context save/restore")
    
    Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
    Acked-by: Thierry Reding <treding@nvidia.com>
    Link: https://lore.kernel.org/r/20200715113842.30680-1-jonathanh@nvidia.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 89cbdfbcce70d2f292a96f0d093d27ba1206a301
Author: Chunfeng Yun <chunfeng.yun@mediatek.com>
Date:   Fri Jul 10 13:57:52 2020 +0800

    usb: xhci-mtk: fix the failure of bandwidth allocation
    
    commit 5ce1a24dd98c00a57a8fa13660648abf7e08e3ef upstream.
    
    The wMaxPacketSize field of endpoint descriptor may be zero
    as default value in alternate interface, and they are not
    actually selected when start stream, so skip them when try to
    allocate bandwidth.
    
    Cc: stable <stable@vger.kernel.org>
    Fixes: 0cbd4b34cda9 ("xhci: mediatek: support MTK xHCI host controller")
    Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
    Link: https://lore.kernel.org/r/1594360672-2076-1-git-send-email-chunfeng.yun@mediatek.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98e96c7c749f48b88324049d16f926604240b867
Author: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Date:   Fri Jul 17 00:12:15 2020 +0900

    binder: Don't use mmput() from shrinker function.
    
    commit f867c771f98891841c217fa8459244ed0dd28921 upstream.
    
    syzbot is reporting that mmput() from shrinker function has a risk of
    deadlock [1], for delayed_uprobe_add() from update_ref_ctr() calls
    kzalloc(GFP_KERNEL) with delayed_uprobe_lock held, and
    uprobe_clear_state() from __mmput() also holds delayed_uprobe_lock.
    
    Commit a1b2289cef92ef0e ("android: binder: drop lru lock in isolate
    callback") replaced mmput() with mmput_async() in order to avoid sleeping
    with spinlock held. But this patch replaces mmput() with mmput_async() in
    order not to start __mmput() from shrinker context.
    
    [1] https://syzkaller.appspot.com/bug?id=bc9e7303f537c41b2b0cc2dfcea3fc42964c2d45
    
    Reported-by: syzbot <syzbot+1068f09c44d151250c33@syzkaller.appspotmail.com>
    Reported-by: syzbot <syzbot+e5344baa319c9a96edec@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Reviewed-by: Michal Hocko <mhocko@suse.com>
    Acked-by: Todd Kjos <tkjos@google.com>
    Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/4ba9adb2-43f5-2de0-22de-f6075c1fab50@i-love.sakura.ne.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79818ce5142185a2fe7c7f871082a69d9513ff4c
Author: Arvind Sankar <nivedita@alum.mit.edu>
Date:   Tue Jul 14 23:26:31 2020 -0400

    x86/boot: Don't add the EFI stub to targets
    
    [ Upstream commit da05b143a308bd6a7a444401f9732678ae63fc70 ]
    
    vmlinux-objs-y is added to targets, which currently means that the EFI
    stub gets added to the targets as well. It shouldn't be added since it
    is built elsewhere.
    
    This confuses Makefile.build which interprets the EFI stub as a target
            $(obj)/$(objtree)/drivers/firmware/efi/libstub/lib.a
    and will create drivers/firmware/efi/libstub/ underneath
    arch/x86/boot/compressed, to hold this supposed target, if building
    out-of-tree. [0]
    
    Fix this by pulling the stub out of vmlinux-objs-y into efi-obj-y.
    
    [0] See scripts/Makefile.build near the end:
        # Create directories for object files if they do not exist
    
    Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Masahiro Yamada <masahiroy@kernel.org>
    Acked-by: Ard Biesheuvel <ardb@kernel.org>
    Link: https://lkml.kernel.org/r/20200715032631.1562882-1-nivedita@alum.mit.edu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fcf756c2d796ebd29f7f180a2f5e4b272e38890f
Author: Palmer Dabbelt <palmerdabbelt@google.com>
Date:   Thu Jul 16 11:57:26 2020 -0700

    RISC-V: Upgrade smp_mb__after_spinlock() to iorw,iorw
    
    [ Upstream commit 38b7c2a3ffb1fce8358ddc6006cfe5c038ff9963 ]
    
    While digging through the recent mmiowb preemption issue it came up that
    we aren't actually preventing IO from crossing a scheduling boundary.
    While it's a bit ugly to overload smp_mb__after_spinlock() with this
    behavior, it's what PowerPC is doing so there's some precedent.
    
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b25f9539a646dbae22960dbb39226370ad477262
Author: Qi Liu <liuqi115@huawei.com>
Date:   Fri Jul 17 16:49:23 2020 +0800

    drivers/perf: Prevent forced unbinding of PMU drivers
    
    [ Upstream commit f32ed8eb0e3f0d0ef4ddb854554d60ca5863a9f9 ]
    
    Forcefully unbinding PMU drivers during perf sampling will lead to
    a kernel panic, because the perf upper-layer framework call a NULL
    pointer in this situation.
    
    To solve this issue, "suppress_bind_attrs" should be set to true, so
    that bind/unbind can be disabled via sysfs and prevent unbinding PMU
    drivers during perf sampling.
    
    Signed-off-by: Qi Liu <liuqi115@huawei.com>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Link: https://lore.kernel.org/r/1594975763-32966-1-git-send-email-liuqi115@huawei.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 92e543a61b7da22491cf6c1540ab1eeaef387bf7
Author: Will Deacon <will@kernel.org>
Date:   Thu Jul 16 12:28:16 2020 +0100

    asm-generic/mmiowb: Allow mmiowb_set_pending() when preemptible()
    
    [ Upstream commit bd024e82e4cd95c7f1a475a55f99871936c2b2db ]
    
    Although mmiowb() is concerned only with serialising MMIO writes occuring
    in contexts where a spinlock is held, the call to mmiowb_set_pending()
    from the MMIO write accessors can occur in preemptible contexts, such
    as during driver probe() functions where ordering between CPUs is not
    usually a concern, assuming that the task migration path provides the
    necessary ordering guarantees.
    
    Unfortunately, the default implementation of mmiowb_set_pending() is not
    preempt-safe, as it makes use of a a per-cpu variable to track its
    internal state. This has been reported to generate the following splat
    on riscv:
    
     | BUG: using smp_processor_id() in preemptible [00000000] code: swapper/0/1
     | caller is regmap_mmio_write32le+0x1c/0x46
     | CPU: 3 PID: 1 Comm: swapper/0 Not tainted 5.8.0-rc3-hfu+ #1
     | Call Trace:
     |  walk_stackframe+0x0/0x7a
     |  dump_stack+0x6e/0x88
     |  regmap_mmio_write32le+0x18/0x46
     |  check_preemption_disabled+0xa4/0xaa
     |  regmap_mmio_write32le+0x18/0x46
     |  regmap_mmio_write+0x26/0x44
     |  regmap_write+0x28/0x48
     |  sifive_gpio_probe+0xc0/0x1da
    
    Although it's possible to fix the driver in this case, other splats have
    been seen from other drivers, including the infamous 8250 UART, and so
    it's better to address this problem in the mmiowb core itself.
    
    Fix mmiowb_set_pending() by using the raw_cpu_ptr() to get at the mmiowb
    state and then only updating the 'mmiowb_pending' field if we are not
    preemptible (i.e. we have a non-zero nesting count).
    
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Guo Ren <guoren@kernel.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Reported-by: Palmer Dabbelt <palmer@dabbelt.com>
    Reported-by: Emil Renner Berthing <kernel@esmil.dk>
    Tested-by: Emil Renner Berthing <kernel@esmil.dk>
    Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Acked-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Link: https://lore.kernel.org/r/20200716112816.7356-1-will@kernel.org
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b964243e8ec302e046ce87460806d303cb077ac
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed May 27 15:53:46 2020 +0200

    x86: math-emu: Fix up 'cmp' insn for clang ias
    
    [ Upstream commit 81e96851ea32deb2c921c870eecabf335f598aeb ]
    
    The clang integrated assembler requires the 'cmp' instruction to
    have a length prefix here:
    
    arch/x86/math-emu/wm_sqrt.S:212:2: error: ambiguous instructions require an explicit suffix (could be 'cmpb', 'cmpw', or 'cmpl')
     cmp $0xffffffff,-24(%ebp)
     ^
    
    Make this a 32-bit comparison, which it was clearly meant to be.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Link: https://lkml.kernel.org/r/20200527135352.1198078-1-arnd@arndb.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd31dfd9d9827cef9aaee2d50fbbd7f2056edb65
Author: Will Deacon <will@kernel.org>
Date:   Thu Feb 13 12:12:26 2020 +0000

    arm64: Use test_tsk_thread_flag() for checking TIF_SINGLESTEP
    
    [ Upstream commit 5afc78551bf5d53279036e0bf63314e35631d79f ]
    
    Rather than open-code test_tsk_thread_flag() at each callsite, simply
    replace the couple of offenders with calls to test_tsk_thread_flag()
    directly.
    
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c4c6588275d24c14d2481dca59e6915e980a9707
Author: Qi Liu <liuqi115@huawei.com>
Date:   Thu Jul 16 17:19:25 2020 +0800

    drivers/perf: Fix kernel panic when rmmod PMU modules during perf sampling
    
    [ Upstream commit bdc5c744c7b6457d18a95c26769dad0e7f480a08 ]
    
    When users try to remove PMU modules during perf sampling, kernel panic
    will happen because the pmu->read() is a NULL pointer here.
    
    INFO on HiSilicon hip08 platform as follow:
    pc : hisi_uncore_pmu_event_update+0x30/0xa4 [hisi_uncore_pmu]
    lr : hisi_uncore_pmu_read+0x20/0x2c [hisi_uncore_pmu]
    sp : ffff800010103e90
    x29: ffff800010103e90 x28: ffff0027db0c0e40
    x27: ffffa29a76f129d8 x26: ffffa29a77ceb000
    x25: ffffa29a773a5000 x24: ffffa29a77392000
    x23: ffffddffe5943f08 x22: ffff002784285960
    x21: ffff002784285800 x20: ffff0027d2e76c80
    x19: ffff0027842859e0 x18: ffff80003498bcc8
    x17: ffffa29a76afe910 x16: ffffa29a7583f530
    x15: 16151a1512061a1e x14: 0000000000000000
    x13: ffffa29a76f1e238 x12: 0000000000000001
    x11: 0000000000000400 x10: 00000000000009f0
    x9 : ffff8000107b3e70 x8 : ffff0027db0c1890
    x7 : ffffa29a773a7000 x6 : 00000007f5131013
    x5 : 00000007f5131013 x4 : 09f257d417c00000
    x3 : 00000002187bd7ce x2 : ffffa29a38f0f0d8
    x1 : ffffa29a38eae268 x0 : ffff0027d2e76c80
    Call trace:
    hisi_uncore_pmu_event_update+0x30/0xa4 [hisi_uncore_pmu]
    hisi_uncore_pmu_read+0x20/0x2c [hisi_uncore_pmu]
    __perf_event_read+0x1a0/0x1f8
    flush_smp_call_function_queue+0xa0/0x160
    generic_smp_call_function_single_interrupt+0x18/0x20
    handle_IPI+0x31c/0x4dc
    gic_handle_irq+0x2c8/0x310
    el1_irq+0xcc/0x180
    arch_cpu_idle+0x4c/0x20c
    default_idle_call+0x20/0x30
    do_idle+0x1b4/0x270
    cpu_startup_entry+0x28/0x30
    secondary_start_kernel+0x1a4/0x1fc
    
    To solve the above issue, current module should be registered to kernel,
    so that try_module_get() can be invoked when perf sampling starts. This
    adds the reference counting of module and could prevent users from removing
    modules during sampling.
    
    Reported-by: Haifeng Wang <wang.wanghaifeng@huawei.com>
    Signed-off-by: Qi Liu <liuqi115@huawei.com>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Link: https://lore.kernel.org/r/1594891165-8228-1-git-send-email-liuqi115@huawei.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5907648396f482d0ef76203df8d9f694ebcbffba
Author: PeiSen Hou <pshou@realtek.com.tw>
Date:   Thu Jul 16 11:01:34 2020 +0200

    ALSA: hda/realtek - fixup for yet another Intel reference board
    
    [ Upstream commit 5734e509d5d515c187f642937ef2de1e58d7715d ]
    
    Add headset_jack for the intel reference board support with
    10ec:1230.
    
    Signed-off-by: PeiSen Hou <pshou@realtek.com.tw>
    Link: https://lore.kernel.org/r/20200716090134.9811-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b6914cfbdc02f8e7a423c1be350833573e13c667
Author: Cristian Marussi <cristian.marussi@arm.com>
Date:   Wed Jul 15 13:13:38 2020 +0100

    hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe()
    
    [ Upstream commit 3ce17cd2b94907f6d91b81b32848044b84c97606 ]
    
    SMATCH detected a potential buffer overflow in the manipulation of
    hwmon_attributes array inside the scmi_hwmon_probe function:
    
    drivers/hwmon/scmi-hwmon.c:226
     scmi_hwmon_probe() error: buffer overflow 'hwmon_attributes' 6 <= 9
    
    Fix it by statically declaring the size of the array as the maximum
    possible as defined by hwmon_max define.
    
    Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
    Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
    Link: https://lore.kernel.org/r/20200715121338.GA18761@e119603-lin.cambridge.arm.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 69187e3bca413d772780bb5f696cd508597d2cd3
Author: Vasiliy Kupriakov <rublag-ns@yandex.ru>
Date:   Tue Jun 30 20:56:01 2020 +0300

    platform/x86: asus-wmi: allow BAT1 battery name
    
    [ Upstream commit 9a33e375d98ece5ea40c576eabd3257acb90c509 ]
    
    The battery on my laptop ASUS TUF Gaming FX706II is named BAT1.
    This patch allows battery extension to load.
    
    Signed-off-by: Vasiliy Kupriakov <rublag-ns@yandex.ru>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 171c6cad2a48590c2aa9179a924b75121a59b03d
Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Date:   Wed Jun 24 10:51:38 2020 -0700

    platform/x86: ISST: Add new PCI device ids
    
    [ Upstream commit e1eea3f839f41368d7cb4eb2d872d5b288677e94 ]
    
    Added new PCI device ids for supporting mailbox and MMIO interface for
    Sapphire Rapids.
    
    Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 603b876a55dcefd49949cb2192ebc7ceb52275dd
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Tue Jul 14 14:31:11 2020 -0700

    hwmon: (nct6775) Accept PECI Calibration as temperature source for NCT6798D
    
    [ Upstream commit 8a03746c8baf82e1616f05a1a716d34378dcf780 ]
    
    Stefan Dietrich reports invalid temperature source messages on Asus Formula
    XII Z490.
    
    nct6775 nct6775.656: Invalid temperature source 28 at index 0,
                    source register 0x100, temp register 0x73
    
    Debugging suggests that temperature source 28 reports the CPU temperature.
    Let's assume that temperature sources 28 and 29 reflect "PECI Agent {0,1}
    Calibration", similar to other chips of the series.
    
    Reported-by: Stefan Dietrich <roots@gmx.de>
    Cc: Stefan Dietrich <roots@gmx.de>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 21869ebb9b74685d0668d42e55e628a29c969e62
Author: Jack Xiao <Jack.Xiao@amd.com>
Date:   Fri Jul 10 12:34:52 2020 +0800

    drm/amdgpu: fix preemption unit test
    
    [ Upstream commit d845a2051b6b673fab4229b920ea04c7c4352b51 ]
    
    Remove signaled jobs from job list and ensure the
    job was indeed preempted.
    
    Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d2b27b4f5b04bdce08df1b4e421b34fb2572ba97
Author: Jack Xiao <Jack.Xiao@amd.com>
Date:   Fri Jul 10 12:18:22 2020 +0800

    drm/amdgpu/gfx10: fix race condition for kiq
    
    [ Upstream commit 7d65a577bb58d4f27a3398a4c0cb0b00ab7d0511 ]
    
    During preemption test for gfx10, it uses kiq to trigger
    gfx preemption, which would result in race condition
    with flushing TLB for kiq.
    
    Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Acked-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f5aaa22dea25728c3102e91d8246337c90b02fcf
Author: Chu Lin <linchuyuan@google.com>
Date:   Thu Jul 9 04:06:12 2020 +0000

    hwmon: (adm1275) Make sure we are reading enough data for different chips
    
    [ Upstream commit 6d1d41c075a1a54ba03370e268171fec20e06563 ]
    
    Issue:
    When PEC is enabled, binding adm1272 to the adm1275 would
    fail due to PEC error. See below:
    adm1275: probe of xxxx failed with error -74
    
    Diagnosis:
    Per the datasheet of adm1272, adm1278, adm1293 and amd1294,
    PMON_CONFIG (0xd4) is 16bits wide. On the other hand,
    PMON_CONFIG (0xd4) for adm1275 is 8bits wide. The driver should not
    assume everything is 8bits wide and read only 8bits from it.
    
    Solution:
    If it is adm1272, adm1278, adm1293 and adm1294, use i2c_read_word.
    Else, use i2c_read_byte
    
    Testing:
    Binding adm1272 to the driver.
    The change is only tested on adm1272.
    
    Signed-off-by: Chu Lin <linchuyuan@google.com>
    Link: https://lore.kernel.org/r/20200709040612.3977094-1-linchuyuan@google.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d711b5e304f524cc19c3a3f4242021780e9346ce
Author: Peter Chen <peter.chen@nxp.com>
Date:   Wed Jun 3 14:53:55 2020 +0800

    usb: cdns3: trace: fix some endian issues
    
    [ Upstream commit 65b7cf48c211ece5e2560a334eb9608e48775a8f ]
    
    It is found by sparse.
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 709068b17f364f9ae7771d291dadb3ecf6480005
Author: Peter Chen <peter.chen@nxp.com>
Date:   Wed Jun 3 14:53:54 2020 +0800

    usb: cdns3: ep0: fix some endian issues
    
    [ Upstream commit 9f81d45c79271def8a9b90447b04b9c6323291f9 ]
    
    It is found by sparse.
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0b15c8cc14bd1b92e027c9354bf0ab359ffe8e93
Author: Evgeny Novikov <novikov@ispras.ru>
Date:   Fri Jun 26 16:17:47 2020 +0300

    usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
    
    [ Upstream commit c8f8529e2c4141afa2ebb487ad48e8a6ec3e8c99 ]
    
    gr_ep_init() does not assign the allocated request anywhere if allocation
    of memory for the buffer fails. This is a memory leak fixed by the given
    patch.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Evgeny Novikov <novikov@ispras.ru>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 27d6819fc25ed2c77c04867ad3435fecda11e3be
Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date:   Tue Jun 30 15:24:59 2020 +0300

    usb: dwc3: pci: add support for the Intel Jasper Lake
    
    [ Upstream commit e25d1e8532c3d84f075deca1580a7d61e0f43ce6 ]
    
    This patch adds the necessary PCI ID for Intel Jasper Lake
    devices.
    
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 198a6d15f639a499bea45b7ff2d5b6aadc6cf055
Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date:   Thu Jun 25 10:34:32 2020 +0300

    usb: dwc3: pci: add support for the Intel Tiger Lake PCH -H variant
    
    [ Upstream commit c3f595a8119207cc0f82b3dc6ec5bbf6f3e6b135 ]
    
    This patch adds the necessary PCI ID for TGP-H devices.
    
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 278c4d5e30b9cbc597cebc358b6c8c567235c782
Author: Derek Basehore <dbasehore@chromium.org>
Date:   Mon Jul 6 17:39:41 2020 -0700

    Input: elan_i2c - only increment wakeup count on touch
    
    [ Upstream commit 966334dfc472bdfa67bed864842943b19755d192 ]
    
    This moves the wakeup increment for elan devices to the touch report.
    This prevents the drivers from incorrectly reporting a wakeup when the
    resume callback resets then device, which causes an interrupt to
    occur.
    
    Signed-off-by: Derek Basehore <dbasehore@chromium.org>
    Link: https://lore.kernel.org/r/20200706235046.1984283-1-dbasehore@chromium.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 142abcd792b796e4777134af30911567817317d8
Author: Ilya Katsnelson <me@0upti.me>
Date:   Mon Jul 6 15:27:43 2020 -0700

    Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
    
    [ Upstream commit dcb00fc799dc03fd320e123e4c81b3278c763ea5 ]
    
    Tested on my own laptop, touchpad feels slightly more responsive with
    this on, though it might just be placebo.
    
    Signed-off-by: Ilya Katsnelson <me@0upti.me>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    Link: https://lore.kernel.org/r/20200703143457.132373-1-me@0upti.me
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c3b88d2b750a8392f3c2cddeff80e7ae14b8cadb
Author: Leonid Ravich <Leonid.Ravich@emc.com>
Date:   Wed Jul 1 21:48:12 2020 +0300

    dmaengine: ioat setting ioat timeout as module parameter
    
    [ Upstream commit 87730ccbddcb48478b1b88e88b14e73424130764 ]
    
    DMA transaction time to completion is a function of PCI bandwidth,
    transaction size and a queue depth.  So hard coded value for timeouts
    might be wrong for some scenarios.
    
    Signed-off-by: Leonid Ravich <Leonid.Ravich@emc.com>
    Reviewed-by: Dave Jiang <dave.jiang@intel.com>
    Link: https://lore.kernel.org/r/20200701184816.29138-1-leonid.ravich@dell.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7ee49b3743183b11a42e811bc8b27485c85bc408
Author: Angelo Dureghello <angelo.dureghello@timesys.com>
Date:   Thu Jul 2 00:52:05 2020 +0200

    dmaengine: fsl-edma: fix wrong tcd endianness for big-endian cpu
    
    [ Upstream commit 8678c71c17721e0f771f135967ef0cce8f69ce9a ]
    
    Due to recent fixes in m68k arch-specific I/O accessor macros, this
    driver is not working anymore for ColdFire. Fix wrong tcd endianness
    removing additional swaps, since edma_writex() functions should already
    take care of any eventual swap if needed.
    
    Note, i could only test the change in ColdFire mcf54415 and Vybrid
    vf50 / Colibri where i don't see any issue. So, every feedback and
    test for all other SoCs involved is really appreciated.
    
    Signed-off-by: Angelo Dureghello <angelo.dureghello@timesys.com>
    Reported-by: kbuild test robot <lkp@intel.com>
    Link: https://lore.kernel.org/r/20200701225205.1674463-1-angelo.dureghello@timesys.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cc44aa06e0fed419486ad30965cbafffa0c93e8c
Author: Evgeny Novikov <novikov@ispras.ru>
Date:   Fri Jul 3 14:15:18 2020 +0300

    hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow
    
    [ Upstream commit bc4071aafcf4d0535ee423b69167696d6c03207d ]
    
    aspeed_create_fan() reads a pwm_port value using of_property_read_u32().
    If pwm_port will be more than ARRAY_SIZE(pwm_port_params), there will be
    a buffer overflow in
    aspeed_create_pwm_port()->aspeed_set_pwm_port_enable(). The patch fixes
    the potential buffer overflow.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Evgeny Novikov <novikov@ispras.ru>
    Link: https://lore.kernel.org/r/20200703111518.9644-1-novikov@ispras.ru
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2da0320bfcbd5a05231549239a53aca4f84301eb
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Fri Jul 3 12:33:15 2020 +0200

    regmap: dev_get_regmap_match(): fix string comparison
    
    [ Upstream commit e84861fec32dee8a2e62bbaa52cded6b05a2a456 ]
    
    This function is used by dev_get_regmap() to retrieve a regmap for the
    specified device. If the device has more than one regmap, the name parameter
    can be used to specify one.
    
    The code here uses a pointer comparison to check for equal strings. This
    however will probably always fail, as the regmap->name is allocated via
    kstrdup_const() from the regmap's config->name.
    
    Fix this by using strcmp() instead.
    
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Link: https://lore.kernel.org/r/20200703103315.267996-1-mkl@pengutronix.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6bfef2983be3cdfe7612ad239f85764ad457a3ea
Author: leilk.liu <leilk.liu@mediatek.com>
Date:   Wed Jul 1 17:00:20 2020 +0800

    spi: mediatek: use correct SPI_CFG2_REG MACRO
    
    [ Upstream commit 44b37eb79e16a56cb30ba55b2da452396b941e7a ]
    
    this patch use correct SPI_CFG2_REG offset.
    
    Signed-off-by: leilk.liu <leilk.liu@mediatek.com>
    Link: https://lore.kernel.org/r/20200701090020.7935-1-leilk.liu@mediatek.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit da01c36dad868bf9c62e1c39e52b0ae1a848bded
Author: Merlijn Wajer <merlijn@wizzup.org>
Date:   Tue Jun 30 11:47:40 2020 -0700

    ARM: dts: n900: remove mmc1 card detect gpio
    
    [ Upstream commit ed3e98e919aaaa47e9d9f8a40c3f6f4a22577842 ]
    
    Instead, expose the key via the input framework, as SW_MACHINE_COVER
    
    The chip-detect GPIO is actually detecting if the cover is closed.
    Technically it's possible to use the SD card with open cover. The
    only downside is risk of battery falling out and user being able
    to physically remove the card.
    
    The behaviour of SD card not being available when the device is
    open is unexpected and creates more problems than it solves. There
    is a high chance, that more people accidentally break their rootfs
    by opening the case without physically removing the card.
    
    Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Merlijn Wajer <merlijn@wizzup.org>
    Link: https://lore.kernel.org/r/20200612125402.18393-3-merlijn@wizzup.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7a485f9a4eb1c19cdc4abd38adb674e410495577
Author: Merlijn Wajer <merlijn@wizzup.org>
Date:   Tue Jun 30 11:47:04 2020 -0700

    Input: add `SW_MACHINE_COVER`
    
    [ Upstream commit c463bb2a8f8d7d97aa414bf7714fc77e9d3b10df ]
    
    This event code represents the state of a removable cover of a device.
    Value 0 means that the cover is open or removed, value 1 means that the
    cover is closed.
    
    Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Merlijn Wajer <merlijn@wizzup.org>
    Link: https://lore.kernel.org/r/20200612125402.18393-2-merlijn@wizzup.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e54e55c982789c638cff896ffce3a9ee5363a6c5
Author: Christian Hewitt <christianshewitt@gmail.com>
Date:   Tue Jun 9 08:13:18 2020 +0000

    soc: amlogic: meson-gx-socinfo: Fix S905X3 and S905D3 ID's
    
    [ Upstream commit d16d0481e6bab5a916450e4ef0e1c958b550880c ]
    
    Correct the SoC revision and package bits/mask values for S905D3/X3 to detect
    a wider range of observed SoC IDs, and tweak sort order for A311D/S922X.
    
    S905X3 05 0000 0101  (SEI610 initial devices)
    S905X3 10 0001 0000  (ODROID-C4 and recent Android boxes)
    S905X3 50 0101 0000  (SEI610 later revisions)
    S905D3 04 0000 0100  (VIM3L devices in kernelci)
    S905D3 b0 1011 0000  (VIM3L initial production)
    
    Fixes commit c9cc9bec36d0 ("soc: amlogic: meson-gx-socinfo: Add SM1 and S905X3 IDs")
    
    Suggested-by: Neil Armstrong <narmstrong@baylibre.com>
    Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Acked-by: Neil Armstrong <narmstrong@baylibre.com>
    Link: https://lore.kernel.org/r/20200609081318.28023-1-christianshewitt@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bea49f0cdb4099c56d5558f706cecef05b88aa51
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Wed Jun 24 14:46:26 2020 +0800

    dmaengine: tegra210-adma: Fix runtime PM imbalance on error
    
    [ Upstream commit 5b78fac4b1ba731cf4177fdbc1e3a4661521bcd0 ]
    
    pm_runtime_get_sync() increments the runtime PM usage counter even
    when it returns an error code. Thus a pairing decrement is needed on
    the error handling path to keep the counter balanced.
    
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
    Link: https://lore.kernel.org/r/20200624064626.19855-1-dinghao.liu@zju.edu.cn
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d17be8443730e6b2b39a8c40ab43f9c76667c431
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Jun 20 14:32:29 2020 +0200

    HID: apple: Disable Fn-key key-re-mapping on clone keyboards
    
    [ Upstream commit a5d81646fa294eed57786a9310b06ca48902adf8 ]
    
    The Maxxter KB-BT-001 Bluetooth keyboard, which looks somewhat like the
    Apple Wireless Keyboard, is using the vendor and product IDs (05AC:0239)
    of the Apple Wireless Keyboard (2009 ANSI version) <sigh>.
    
    But its F1 - F10 keys are marked as sending F1 - F10, not the special
    functions hid-apple.c maps them too; and since its descriptors do not
    contain the HID_UP_CUSTOM | 0x0003 usage apple-hid looks for for the
    Fn-key, apple_setup_input() never gets called, so F1 - F6 are mapped
    to key-codes which have not been set in the keybit array causing them
    to not send any events at all.
    
    The lack of a usage code matching the Fn key in the clone is actually
    useful as this allows solving this problem in a generic way.
    
    This commits adds a fn_found flag and it adds a input_configured
    callback which checks if this flag is set once all usages have been
    mapped. If it is not set, then assume this is a clone and clear the
    quirks bitmap so that the hid-apple code does not add any special
    handling to this keyboard.
    
    This fixes F1 - F6 not sending anything at all and F7 - F12 sending
    the wrong codes on the Maxxter KB-BT-001 Bluetooth keyboard and on
    similar clones.
    
    Cc: Joao Moreno <mail@joaomoreno.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b7633cac7488082661818bc082d4ea510ef736c
Author: Dave Jiang <dave.jiang@intel.com>
Date:   Wed Jun 3 10:27:48 2020 -0700

    dmaengine: idxd: fix hw descriptor fields for delta record
    
    [ Upstream commit 0b8975bdc0cc5310d48d9bdd871cefebe1f94c99 ]
    
    Fix the hw descriptor fields for delta record in user exported idxd.h
    header. Missing the "expected result mask" field.
    
    Reported-by: Mona Hossain <mona.hossain@intel.com>
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Link: https://lore.kernel.org/r/159120526866.65385.536565786678052944.stgit@djiang5-desk3.ch.intel.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1a2ce8b723de6e769b5d9e5848b3fa2a2864d51e
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Thu Jun 18 21:01:10 2020 +0800

    dmaengine: ti: k3-udma: add missing put_device() call in of_xudma_dev_get()
    
    [ Upstream commit 1438cde8fe9cb709b569f5829c4c892c0f3f15b3 ]
    
    if of_find_device_by_node() succeed and platform_get_drvdata() failed,
    of_xudma_dev_get() will return without put_device(), which will leak
    the memory.
    
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Link: https://lore.kernel.org/r/20200618130110.582543-1-yukuai3@huawei.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 62928cce6e76e91e8fd8c82c52db0b04b12ece61
Author: Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
Date:   Tue Jun 16 18:44:18 2020 +0200

    HID: steam: fixes race in handling device list.
    
    [ Upstream commit 2d3f53a80e4eed078669853a178ed96d88f74143 ]
    
    Using uhid and KASAN this driver crashed because it was getting
    several connection events where it only expected one. Then the
    device was added several times to the static device list and it got
    corrupted.
    
    This patch checks if the device is already in the list before adding
    it.
    
    Signed-off-by: Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
    Tested-by: Siarhei Vishniakou <svv@google.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1e21d43f1c3be8cc0a8b149ee843441536e5f3d3
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Wed May 27 10:06:12 2020 +0300

    dmaengine: ti: k3-udma: Fix the running channel handling in alloc_chan_resources
    
    [ Upstream commit b5b0180c2f767e90b4a6a885a0a2abaab6e3d48d ]
    
    In the unlikely case when the channel is running (RT enabled) during
    alloc_chan_resources then we should use udma_reset_chan() and not
    udma_stop() as the later is trying to initiate a teardown on the channel,
    which is not valid at this point.
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Link: https://lore.kernel.org/r/20200527070612.636-3-peter.ujfalusi@ti.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e3601dc0ac7f598df5e15643a82e88b769301510
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Wed May 27 10:06:11 2020 +0300

    dmaengine: ti: k3-udma: Fix cleanup code for alloc_chan_resources
    
    [ Upstream commit 5a9377cc7421b59b13c9b90b8dc0aca332a1c958 ]
    
    Some of the earlier errors should be sent to the error cleanup path to
    make sure that the uchan struct is reset, the dma_pool (if allocated) is
    released and memcpy channel pairs are released in a correct way.
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Link: https://lore.kernel.org/r/20200527070612.636-2-peter.ujfalusi@ti.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 92a0e90abfb58d101639d152b98061ce76a3713f
Author: Caiyuan Xie <caiyuan.xie@cn.alps.com>
Date:   Fri May 22 05:06:10 2020 -0400

    HID: alps: support devices with report id 2
    
    [ Upstream commit aa3c439c144f0a465ed1f28f11c772886fb02b35 ]
    
    Add support for devices which that have reports with id == 2
    
    Signed-off-by: Caiyuan Xie <caiyuan.xie@cn.alps.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 53f73852b087da027bd99f88c1117ba6802a7436
Author: Federico Ricchiuto <fed.ricchiuto@gmail.com>
Date:   Mon Jun 15 22:49:11 2020 +0200

    HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override
    
    [ Upstream commit 43e666acb79f3d355dd89bf20f4d25d3b15da13e ]
    
    The Mediacom FlexBook edge13 uses the SIPODEV SP1064 touchpad, which does not
    supply descriptors, so it has to be added to the override list.
    
    Signed-off-by: Federico Ricchiuto <fed.ricchiuto@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a802637ad4253a90f3452227158f6361c1ccda3
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Wed Jul 8 01:35:08 2020 +0900

    kbuild: fix single target builds for external modules
    
    [ Upstream commit 20b1be59528295e5c2a8812059b8560753dd8e68 ]
    
    Commit f566e1fbadb6 ("kbuild: make multiple directory targets work")
    broke single target builds for external modules. Fix this.
    
    Fixes: f566e1fbadb6 ("kbuild: make multiple directory targets work")
    Reported-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Tested-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3205cda2501c3d505221cbed9f314095ad7925ca
Author: Atish Patra <atish.patra@wdc.com>
Date:   Wed Jul 15 16:30:08 2020 -0700

    RISC-V: Do not rely on initrd_start/end computed during early dt parsing
    
    [ Upstream commit 4400231c8acc7e513204c8470c6d796ba47dc169 ]
    
    Currently, initrd_start/end are computed during early_init_dt_scan
    but used during arch_setup. We will get the following panic if initrd is used
    and CONFIG_DEBUG_VIRTUAL is turned on.
    
    [    0.000000] ------------[ cut here ]------------
    [    0.000000] kernel BUG at arch/riscv/mm/physaddr.c:33!
    [    0.000000] Kernel BUG [#1]
    [    0.000000] Modules linked in:
    [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.8.0-rc4-00015-ged0b226fed02 #886
    [    0.000000] epc: ffffffe0002058d2 ra : ffffffe0000053f0 sp : ffffffe001001f40
    [    0.000000]  gp : ffffffe00106e250 tp : ffffffe001009d40 t0 : ffffffe00107ee28
    [    0.000000]  t1 : 0000000000000000 t2 : ffffffe000a2e880 s0 : ffffffe001001f50
    [    0.000000]  s1 : ffffffe0001383e8 a0 : ffffffe00c087e00 a1 : 0000000080200000
    [    0.000000]  a2 : 00000000010bf000 a3 : ffffffe00106f3c8 a4 : ffffffe0010bf000
    [    0.000000]  a5 : ffffffe000000000 a6 : 0000000000000006 a7 : 0000000000000001
    [    0.000000]  s2 : ffffffe00106f068 s3 : ffffffe00106f070 s4 : 0000000080200000
    [    0.000000]  s5 : 0000000082200000 s6 : 0000000000000000 s7 : 0000000000000000
    [    0.000000]  s8 : 0000000080011010 s9 : 0000000080012700 s10: 0000000000000000
    [    0.000000]  s11: 0000000000000000 t3 : 000000000001fe30 t4 : 000000000001fe30
    [    0.000000]  t5 : 0000000000000000 t6 : ffffffe00107c471
    [    0.000000] status: 0000000000000100 badaddr: 0000000000000000 cause: 0000000000000003
    [    0.000000] random: get_random_bytes called from print_oops_end_marker+0x22/0x46 with crng_init=0
    
    To avoid the error, initrd_start/end can be computed from phys_initrd_start/size
    in setup itself. It also improves the initrd placement by aligning the start
    and size with the page size.
    
    Fixes: 76d2a0493a17 ("RISC-V: Init and Halt Code")
    Signed-off-by: Atish Patra <atish.patra@wdc.com>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bc4681a3b2d593cf22392d05592156206eaa7dfb
Author: Stefano Garzarella <sgarzare@redhat.com>
Date:   Thu Jul 23 21:15:52 2020 -0700

    scripts/gdb: fix lx-symbols 'gdb.error' while loading modules
    
    [ Upstream commit 7359608a271ce81803de148befefd309baf88c76 ]
    
    Commit ed66f991bb19 ("module: Refactor section attr into bin attribute")
    removed the 'name' field from 'struct module_sect_attr' triggering the
    following error when invoking lx-symbols:
    
      (gdb) lx-symbols
      loading vmlinux
      scanning for modules in linux/build
      loading @0xffffffffc014f000: linux/build/drivers/net/tun.ko
      Python Exception <class 'gdb.error'> There is no member named name.:
      Error occurred in Python: There is no member named name.
    
    This patch fixes the issue taking the module name from the 'struct
    attribute'.
    
    Fixes: ed66f991bb19 ("module: Refactor section attr into bin attribute")
    Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
    Reviewed-by: Kieran Bingham <kbingham@kernel.org>
    Link: http://lkml.kernel.org/r/20200722102239.313231-1-sgarzare@redhat.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 177306082971f5ac6eddb7b7e2efb6e77562bb89
Author: Pi-Hsun Shih <pihsun@chromium.org>
Date:   Thu Jul 23 21:15:43 2020 -0700

    scripts/decode_stacktrace: strip basepath from all paths
    
    [ Upstream commit d178770d8d21489abf5bafefcbb6d5243b482e9a ]
    
    Currently the basepath is removed only from the beginning of the string.
    When the symbol is inlined and there's multiple line outputs of
    addr2line, only the first line would have basepath removed.
    
    Change to remove the basepath prefix from all lines.
    
    Fixes: 31013836a71e ("scripts/decode_stacktrace: match basepath using shell prefix operator, not regex")
    Co-developed-by: Shik Chen <shik@chromium.org>
    Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org>
    Signed-off-by: Shik Chen <shik@chromium.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Nicolas Boichat <drinkcat@chromium.org>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Link: http://lkml.kernel.org/r/20200720082709.252805-1-pihsun@chromium.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 16155138e82bebf86d8b0ed82df33ba8ef463f49
Author: Matthew Howell <matthew.howell@sealevel.com>
Date:   Wed Jul 22 16:11:24 2020 -0400

    serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X
    
    [ Upstream commit 5fdbe136ae19ab751daaa4d08d9a42f3e30d17f9 ]
    
    Sealevel XR17V35X based devices are inoperable on kernel versions
    4.11 and above due to a change in the GPIO preconfiguration introduced in
    commit
    7dea8165f1d. This patch fixes this by preconfiguring the GPIO on Sealevel
    cards to the value (0x00) used prior to commit 7dea8165f1d
    
    With GPIOs preconfigured as per commit 7dea8165f1d all ports on
    Sealevel XR17V35X based devices become stuck in high impedance
    mode, regardless of dip-switch or software configuration. This
    causes the device to become effectively unusable. This patch (in
    various forms) has been distributed to our customers and no issues
    related to it have been reported.
    
    Fixes: 7dea8165f1d6 ("serial: exar: Preconfigure xr17v35x MPIOs as output")
    Signed-off-by: Matthew Howell <matthew.howell@sealevel.com>
    Link: https://lore.kernel.org/r/alpine.DEB.2.21.2007221605270.13247@tstest-VirtualBox
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bbadf380e8831ba1a07c4b15baeea242f2f3a4c1
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Wed Jul 22 18:56:25 2020 -0700

    geneve: fix an uninitialized value in geneve_changelink()
    
    [ Upstream commit 32818c075c54bb0cae44dd6f7ab00b01c52b8372 ]
    
    geneve_nl2info() sets 'df' conditionally, so we have to
    initialize it by copying the value from existing geneve
    device in geneve_changelink().
    
    Fixes: 56c09de347e4 ("geneve: allow changing DF behavior after creation")
    Reported-by: syzbot+7ebc2e088af5e4c0c9fa@syzkaller.appspotmail.com
    Cc: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 971041895df95302d6c7bcc1a5281a09b8794803
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Wed Jul 22 16:31:54 2020 -0700

    bonding: check return value of register_netdevice() in bond_newlink()
    
    [ Upstream commit c75d1d5248c0c97996051809ad0e9f154ba5d76e ]
    
    Very similar to commit 544f287b8495
    ("bonding: check error value of register_netdevice() immediately"),
    we should immediately check the return value of register_netdevice()
    before doing anything else.
    
    Fixes: 005db31d5f5f ("bonding: set carrier off for devices created through netlink")
    Reported-and-tested-by: syzbot+bbc3a11c4da63c1b74d6@syzkaller.appspotmail.com
    Cc: Beniamino Galvani <bgalvani@redhat.com>
    Cc: Taehee Yoo <ap420073@gmail.com>
    Cc: Jay Vosburgh <j.vosburgh@gmail.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d9630a2fa599c2413d75d456997a1fdf2733b242
Author: Douglas Anderson <dianders@chromium.org>
Date:   Wed Jul 22 15:00:21 2020 -0700

    i2c: i2c-qcom-geni: Fix DMA transfer race
    
    [ Upstream commit 02b9aec59243c6240fc42884acc958602146ddf6 ]
    
    When I have KASAN enabled on my kernel and I start stressing the
    touchscreen my system tends to hang.  The touchscreen is one of the
    only things that does a lot of big i2c transfers and ends up hitting
    the DMA paths in the geni i2c driver.  It appears that KASAN adds
    enough delay in my system to tickle a race condition in the DMA setup
    code.
    
    When the system hangs, I found that it was running the geni_i2c_irq()
    over and over again.  It had these:
    
    m_stat   = 0x04000080
    rx_st    = 0x30000011
    dm_tx_st = 0x00000000
    dm_rx_st = 0x00000000
    dma      = 0x00000001
    
    Notably we're in DMA mode but are getting M_RX_IRQ_EN and
    M_RX_FIFO_WATERMARK_EN over and over again.
    
    Putting some traces in geni_i2c_rx_one_msg() showed that when we
    failed we were getting to the start of geni_i2c_rx_one_msg() but were
    never executing geni_se_rx_dma_prep().
    
    I believe that the problem here is that we are starting the geni
    command before we run geni_se_rx_dma_prep().  If a transfer makes it
    far enough before we do that then we get into the state I have
    observed.  Let's change the order, which seems to work fine.
    
    Although problems were seen on the RX path, code inspection suggests
    that the TX should be changed too.  Change it as well.
    
    Fixes: 37692de5d523 ("i2c: i2c-qcom-geni: Add bus driver for the Qualcomm GENI I2C controller")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Tested-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
    Reviewed-by: Akash Asthana <akashast@codeaurora.org>
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Reviewed-by: Mukesh Kumar Savaliya <msavaliy@codeaurora.org>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 59feaa9f9bccf4681acf9d0322360128cdbfe416
Author: Wolfram Sang <wsa+renesas@sang-engineering.com>
Date:   Sat Jul 4 15:38:29 2020 +0200

    i2c: rcar: always clear ICSAR to avoid side effects
    
    [ Upstream commit eb01597158ffb1853a7a7fc2c57d4c844640f75e ]
    
    On R-Car Gen2, we get a timeout when reading from the address set in
    ICSAR, even though the slave interface is disabled. Clearing it fixes
    this situation. Note that Gen3 is not affected.
    
    To reproduce: bind and undbind an I2C slave on some bus, run
    'i2cdetect' on that bus.
    
    Fixes: de20d1857dd6 ("i2c: rcar: add slave support")
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f0654ffe11889137ff857026e0d0e12e90953c61
Author: Claudiu Manoil <claudiu.manoil@nxp.com>
Date:   Wed Jul 22 17:40:12 2020 +0300

    enetc: Remove the mdio bus on PF probe bailout
    
    [ Upstream commit 26cb7085c8984e5b71d65c374a135134ed8cabb3 ]
    
    For ENETC ports that register an external MDIO bus,
    the bus doesn't get removed on the error bailout path
    of enetc_pf_probe().
    
    This issue became much more visible after recent:
    commit 07095c025ac2 ("net: enetc: Use DT protocol information to set up the ports")
    Before this commit, one could make probing fail on the error
    path only by having register_netdev() fail, which is unlikely.
    But after this commit, because it moved the enetc_of_phy_get()
    call up in the probing sequence, now we can trigger an mdiobus_free()
    bug just by forcing enetc_alloc_msix() to return error, i.e. with the
    'pci=nomsi' kernel bootarg (since ENETC relies on MSI support to work),
    as the calltrace below shows:
    
    kernel BUG at /home/eiz/work/enetc/net/drivers/net/phy/mdio_bus.c:648!
    Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
    [...]
    Hardware name: LS1028A RDB Board (DT)
    pstate: 80000005 (Nzcv daif -PAN -UAO BTYPE=--)
    pc : mdiobus_free+0x50/0x58
    lr : devm_mdiobus_free+0x14/0x20
    [...]
    Call trace:
     mdiobus_free+0x50/0x58
     devm_mdiobus_free+0x14/0x20
     release_nodes+0x138/0x228
     devres_release_all+0x38/0x60
     really_probe+0x1c8/0x368
     driver_probe_device+0x5c/0xc0
     device_driver_attach+0x74/0x80
     __driver_attach+0x8c/0xd8
     bus_for_each_dev+0x7c/0xd8
     driver_attach+0x24/0x30
     bus_add_driver+0x154/0x200
     driver_register+0x64/0x120
     __pci_register_driver+0x44/0x50
     enetc_pf_driver_init+0x24/0x30
     do_one_initcall+0x60/0x1c0
     kernel_init_freeable+0x1fc/0x274
     kernel_init+0x14/0x110
     ret_from_fork+0x10/0x34
    
    Fixes: ebfcb23d62ab ("enetc: Add ENETC PF level external MDIO support")
    Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c177b914ad7787654545e157d63745383a22702
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Wed Jul 15 13:31:36 2020 -0400

    nfsd4: fix NULL dereference in nfsd/clients display code
    
    [ Upstream commit 9affa435817711861d774f5626c393c80f16d044 ]
    
    We hold the cl_lock here, and that's enough to keep stateid's from going
    away, but it's not enough to prevent the files they point to from going
    away.  Take fi_lock and a reference and check for NULL, as we do in
    other code.
    
    Reported-by: NeilBrown <neilb@suse.de>
    Fixes: 78599c42ae3c ("nfsd4: add file to display list of client's opens")
    Reviewed-by: NeilBrown <neilb@suse.de>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0b8a866eba09fceea7bab7732eee7ad1077732e
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Fri Jul 17 17:21:28 2020 -0500

    Revert "PCI/PM: Assume ports without DLL Link Active train links in 100 ms"
    
    [ Upstream commit d08c30d7a0d1826f771f16cde32bd86e48401791 ]
    
    This reverts commit ec411e02b7a2e785a4ed9ed283207cd14f48699d.
    
    Patrick reported that this commit broke hybrid graphics on a ThinkPad X1
    Extreme 2nd with Intel UHD Graphics 630 and NVIDIA GeForce GTX 1650 Mobile:
    
      nouveau 0000:01:00.0: fifo: PBDMA0: 01000000 [] ch 0 [00ff992000 DRM] subc 0 mthd 0008 data 00000000
    
    Karol reported that this commit broke Nouveau firmware loading on a Lenovo
    P1G2 with Intel UHD Graphics 630 and NVIDIA TU117GLM [Quadro T1000 Mobile]:
    
      nouveau 0000:01:00.0: acr: AHESASC binary failed
    
    In both cases, reverting ec411e02b7a2 solved the problem.  Unfortunately,
    this revert will reintroduce the "Thunderbolt bridges take long time to
    resume from D3cold" problem:
    https://bugzilla.kernel.org/show_bug.cgi?id=206837
    
    Link: https://lore.kernel.org/r/CAErSpo5sTeK_my1dEhWp7aHD0xOp87+oHYWkTjbL7ALgDbXo-Q@mail.gmail.com
    Link: https://lore.kernel.org/r/CACO55tsAEa5GXw5oeJPG=mcn+qxNvspXreJYWDJGZBy5v82JDA@mail.gmail.com
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=208597
    Reported-by: Patrick Volkerding <volkerdi@gmail.com>
    Reported-by: Karol Herbst <kherbst@redhat.com>
    Fixes: ec411e02b7a2 ("PCI/PM: Assume ports without DLL Link Active train links in 100 ms")
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 309985246cce3b0c8bf29201386a920d7247d182
Author: Rob Clark <robdclark@chromium.org>
Date:   Mon Jul 20 08:52:17 2020 -0700

    iommu/qcom: Use domain rather than dev as tlb cookie
    
    [ Upstream commit 1014a2f8d76b05e0f228dd097ac1a249c5934232 ]
    
    The device may be torn down, but the domain should still be valid.  Lets
    use that as the tlb flush ops cookie.
    
    Fixes a problem reported in [1]
    
    [1] https://lkml.org/lkml/2020/7/20/104
    
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Tested-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Fixes: 09b5dfff9ad6 ("iommu/qcom: Use accessor functions for iommu private data")
    Link: https://lore.kernel.org/r/20200720155217.274994-1-robdclark@gmail.com
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 99002ddeed7755f1788824a846815281ab11831e
Author: Wang Hai <wanghai38@huawei.com>
Date:   Fri Jul 17 10:50:49 2020 +0800

    net: ethernet: ave: Fix error returns in ave_init
    
    [ Upstream commit 1264d7fa3a64d8bea7aebb77253f917947ffda25 ]
    
    When regmap_update_bits failed in ave_init(), calls of the functions
    reset_control_assert() and clk_disable_unprepare() were missed.
    Add goto out_reset_assert to do this.
    
    Fixes: 57878f2f4697 ("net: ethernet: ave: add support for phy-mode setting of system controller")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Reviewed-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c4a50550f9023af7a7fdfdc045cbf27833865829
Author: guodeqing <geffrey.guo@huawei.com>
Date:   Thu Jul 16 16:12:08 2020 +0800

    ipvs: fix the connection sync failed in some cases
    
    [ Upstream commit 8210e344ccb798c672ab237b1a4f241bda08909b ]
    
    The sync_thread_backup only checks sk_receive_queue is empty or not,
    there is a situation which cannot sync the connection entries when
    sk_receive_queue is empty and sk_rmem_alloc is larger than sk_rcvbuf,
    the sync packets are dropped in __udp_enqueue_schedule_skb, this is
    because the packets in reader_queue is not read, so the rmem is
    not reclaimed.
    
    Here I add the check of whether the reader_queue of the udp sock is
    empty or not to solve this problem.
    
    Fixes: 2276f58ac589 ("udp: use a separate rx queue for packet reception")
    Reported-by: zhouxudong <zhouxudong8@huawei.com>
    Signed-off-by: guodeqing <geffrey.guo@huawei.com>
    Acked-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 03d5aa4017616fd22651f0d9a40eac300ec0e782
Author: Alexander Lobakin <alobakin@marvell.com>
Date:   Tue Jul 21 17:41:43 2020 +0300

    qed: suppress false-positives interrupt error messages on HW init
    
    [ Upstream commit eb61c2d69903e977ffa2b80b1da9d1f758cf228d ]
    
    It was found that qed_pglueb_rbc_attn_handler() can produce a lot of
    false-positive error detections on driver load/reload (especially after
    crashes/recoveries) and spam the kernel log:
    
    [    4.958275] [qed_pglueb_rbc_attn_handler:324()]ICPL error - 00d00ff0
    [ 2079.146764] [qed_pglueb_rbc_attn_handler:324()]ICPL error - 00d80ff0
    [ 2116.374631] [qed_pglueb_rbc_attn_handler:324()]ICPL error - 00d80ff0
    [ 2135.250564] [qed_pglueb_rbc_attn_handler:324()]ICPL error - 00d80ff0
    [...]
    
    Reduce the logging level of two false-positive prone error messages from
    notice to verbose on initialization (only) to not mix it with real error
    attentions while debugging.
    
    Fixes: 666db4862f2d ("qed: Revise load sequence to avoid PCI errors")
    Signed-off-by: Alexander Lobakin <alobakin@marvell.com>
    Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
    Signed-off-by: Michal Kalderon <michal.kalderon@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 86b411838f1ae233ac2d703a54ce1b94bab8209e
Author: Alexander Lobakin <alobakin@marvell.com>
Date:   Tue Jul 21 17:41:42 2020 +0300

    qed: suppress "don't support RoCE & iWARP" flooding on HW init
    
    [ Upstream commit 1ea999039fe7c7953da2fbb7ca7c3ef00064d328 ]
    
    Change the verbosity of the "don't support RoCE & iWARP simultaneously"
    warning to debug level to stop flooding on driver/hardware initialization:
    
    [    4.783230] qede 01:00.00: Storm FW 8.37.7.0, Management FW 8.52.9.0
    [MBI 15.10.6] [eth0]
    [    4.810020] [qed_rdma_set_pf_params:2076()]Current day drivers don't
    support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only
    [    4.861186] qede 01:00.01: Storm FW 8.37.7.0, Management FW 8.52.9.0
    [MBI 15.10.6] [eth1]
    [    4.893311] [qed_rdma_set_pf_params:2076()]Current day drivers don't
    support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only
    [    5.181713] qede a1:00.00: Storm FW 8.37.7.0, Management FW 8.52.9.0
    [MBI 15.10.6] [eth2]
    [    5.224740] [qed_rdma_set_pf_params:2076()]Current day drivers don't
    support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only
    [    5.276449] qede a1:00.01: Storm FW 8.37.7.0, Management FW 8.52.9.0
    [MBI 15.10.6] [eth3]
    [    5.318671] [qed_rdma_set_pf_params:2076()]Current day drivers don't
    support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only
    [    5.369548] qede a1:00.02: Storm FW 8.37.7.0, Management FW 8.52.9.0
    [MBI 15.10.6] [eth4]
    [    5.411645] [qed_rdma_set_pf_params:2076()]Current day drivers don't
    support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only
    
    Fixes: e0a8f9de16fc ("qed: Add iWARP enablement support")
    Signed-off-by: Alexander Lobakin <alobakin@marvell.com>
    Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
    Signed-off-by: Michal Kalderon <michal.kalderon@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 781cfddfb7321e16d57e59c48ac6f8d215ee9e27
Author: Taehee Yoo <ap420073@gmail.com>
Date:   Tue Jul 21 14:51:50 2020 +0000

    netdevsim: fix unbalaced locking in nsim_create()
    
    [ Upstream commit 2c9d8e01f0c6017317eee7638496173d4a64e6bc ]
    
    In the nsim_create(), rtnl_lock() is called before nsim_bpf_init().
    If nsim_bpf_init() is failed, rtnl_unlock() should be called,
    but it isn't called.
    So, unbalanced locking would occur.
    
    Fixes: e05b2d141fef ("netdevsim: move netdev creation/destruction to dev probe")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Reviewed-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7a55ea77f50b3cba7fd829e9d4c8a365ef9c7ed
Author: Helmut Grohne <helmut.grohne@intenta.de>
Date:   Tue Jul 21 13:07:39 2020 +0200

    net: dsa: microchip: call phy_remove_link_mode during probe
    
    [ Upstream commit 3506b2f42dff66ea6814c3dfa1988bafb79e6f88 ]
    
    When doing "ip link set dev ... up" for a ksz9477 backed link,
    ksz9477_phy_setup is called and it calls phy_remove_link_mode to remove
    1000baseT HDX. During phy_remove_link_mode, phy_advertise_supported is
    called. Doing so reverts any previous change to advertised link modes
    e.g. using a udevd .link file.
    
    phy_remove_link_mode is not meant to be used while opening a link and
    should be called during phy probe when the link is not yet available to
    userspace.
    
    Therefore move the phy_remove_link_mode calls into
    ksz9477_switch_register. It indirectly calls dsa_register_switch, which
    creates the relevant struct phy_devices and we update the link modes
    right after that. At that time dev->features is already initialized by
    ksz9477_switch_detect.
    
    Remove phy_setup from ksz_dev_ops as no users remain.
    
    Link: https://lore.kernel.org/netdev/20200715192722.GD1256692@lunn.ch/
    Fixes: 42fc6a4c613019 ("net: dsa: microchip: prepare PHY for proper advertisement")
    Signed-off-by: Helmut Grohne <helmut.grohne@intenta.de>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2e6940ea402c8d8529b9a3be1c0c42e39d8f66c3
Author: Jian Shen <shenjian15@huawei.com>
Date:   Tue Jul 21 19:03:54 2020 +0800

    net: hns3: fix return value error when query MAC link status fail
    
    [ Upstream commit fac24df7b9a6d9363abdff0e351ade041dd16daa ]
    
    Currently, PF queries the MAC link status per second by calling
    function hclge_get_mac_link_status(). It return the error code
    when failed to send cmdq command to firmware. It's incorrect,
    because this return value is used as the MAC link status, which
    0 means link down, and none-zero means link up. So fixes it.
    
    Fixes: 46a3df9f9718 ("net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support")
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Huazhong tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c237fa1a5b4fef7b5fe100d3356f79d13b77b00
Author: Yunsheng Lin <linyunsheng@huawei.com>
Date:   Tue Jul 21 19:03:53 2020 +0800

    net: hns3: fix error handling for desc filling
    
    [ Upstream commit 8ceca59fb3ed48a693171bd571c4fcbd555b7f1f ]
    
    The content of the TX desc is automatically cleared by the HW
    when the HW has sent out the packet to the wire. When desc filling
    fails in hns3_nic_net_xmit(), it will call hns3_clear_desc() to do
    the error handling, which miss zeroing of the TX desc and the
    checking if a unmapping is needed.
    
    So add the zeroing and checking in hns3_clear_desc() to avoid the
    above problem. Also add DESC_TYPE_UNKNOWN to indicate the info in
    desc_cb is not valid, because hns3_nic_reclaim_desc() may treat
    the desc_cb->type of zero as packet and add to the sent pkt
    statistics accordingly.
    
    Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
    Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9d121fc033a18513d4113cc23e835d5bac264a0a
Author: Yunsheng Lin <linyunsheng@huawei.com>
Date:   Tue Jul 21 19:03:52 2020 +0800

    net: hns3: fix for not calculating TX BD send size correctly
    
    [ Upstream commit 48ae74c9d89f827b39b5c07a1f02fc13637a3cd6 ]
    
    With GRO and fraglist support, the SKB can be aggregated to
    a total size of 65535, and when that SKB is forwarded through
    a bridge, the size of the SKB may be pushed to exceed the size
    of 65535 when br_dev_queue_push_xmit() is called.
    
    The max send size of BD supported by the HW is 65535, when a SKB
    with a headlen of over 65535 is sent to the driver, the driver
    needs to use multi BD to send the linear data, and the send size
    of the last BD is calculated incorrectly by the driver who is
    using '&' operation, which causes a TX error.
    
    Use '%' operation to fix this problem.
    
    Fixes: 3fe13ed95dd3 ("net: hns3: avoid mult + div op in critical data path")
    Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38fbcc5e58be512aa172ed3d25e8d50ade457878
Author: Jason Gunthorpe <jgg@nvidia.com>
Date:   Sun Jul 19 09:54:35 2020 +0300

    RDMA/mlx5: Prevent prefetch from racing with implicit destruction
    
    [ Upstream commit a862192e9227ad46e0447fd0a03869ba1b30d16f ]
    
    Prefetch work in mlx5_ib_prefetch_mr_work can be queued and able to run
    concurrently with destruction of the implicit MR. The num_deferred_work
    was intended to serialize this, but there is a race:
    
           CPU0                                          CPU1
    
        mlx5_ib_free_implicit_mr()
          xa_erase(odp_mkeys)
          synchronize_srcu()
          __xa_erase(implicit_children)
                                          mlx5_ib_prefetch_mr_work()
                                            pagefault_mr()
                                             pagefault_implicit_mr()
                                              implicit_get_child_mr()
                                               xa_cmpxchg()
                                            atomic_dec_and_test(num_deferred_mr)
          wait_event(imr->q_deferred_work)
          ib_umem_odp_release(odp_imr)
            kfree(odp_imr)
    
    At this point in mlx5_ib_free_implicit_mr() the implicit_children list is
    supposed to be empty forever so that destroy_unused_implicit_child_mr()
    and related are not and will not be running.
    
    Since it is not empty the destroy_unused_implicit_child_mr() flow ends up
    touching deallocated memory as mlx5_ib_free_implicit_mr() already tore down the
    imr parent.
    
    The solution is to flush out the prefetch wq by driving num_deferred_work
    to zero after creation of new prefetch work is blocked.
    
    Fixes: 5256edcb98a1 ("RDMA/mlx5: Rework implicit ODP destroy")
    Link: https://lore.kernel.org/r/20200719065435.130722-1-leon@kernel.org
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 80016f31549d393aa5d2fd7ceacfcf15af7ca8b5
Author: Huang Guobin <huangguobin4@huawei.com>
Date:   Sun Jul 19 21:46:14 2020 -0400

    net: ag71xx: add missed clk_disable_unprepare in error path of probe
    
    [ Upstream commit befc113c56a76ae7be3986034a0e476d3385e265 ]
    
    The ag71xx_mdio_probe() forgets to call clk_disable_unprepare() when
    of_reset_control_get_exclusive() failed. Add the missed call to fix it.
    
    Fixes: d51b6ce441d3 ("net: ethernet: add ag71xx driver")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Huang Guobin <huangguobin4@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 403db45891494a7ea7842ba34636260ab9bdaa60
Author: Vinay Kumar Yadav <vinay.yadav@chelsio.com>
Date:   Sat Jul 18 00:31:42 2020 +0530

    crypto/chtls: fix tls alert messages corrupted by tls data
    
    [ Upstream commit c271042eb6a031d1333cf57422ec1d20726901ab ]
    
    When tls data skb is pending for Tx and tls alert comes , It
    is wrongly overwrite the record type of tls data to tls alert
    record type. fix the issue correcting it.
    
    v1->v2:
    - Correct submission tree.
    - Add fixes tag.
    
    Fixes: 6919a8264a32 ("Crypto/chtls: add/delete TLS header in driver")
    Signed-off-by: Vinay Kumar Yadav <vinay.yadav@chelsio.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 79a7ab49b1c80939d89c21e3b738642834356118
Author: Shannon Nelson <snelson@pensando.io>
Date:   Mon Jul 20 16:00:17 2020 -0700

    ionic: use mutex to protect queue operations
    
    [ Upstream commit 0925e9db4dc86daf666d9a3d53c7db14ac6d5d00 ]
    
    The ionic_wait_on_bit_lock() was a open-coded mutex knock-off
    used only for protecting the queue reset operations, and there
    was no reason not to use the real thing.  We can use the lock
    more correctly and to better protect the queue stop and start
    operations from cross threading.  We can also remove a useless
    and expensive bit operation from the Rx path.
    
    This fixes a case found where the link_status_check from a link
    flap could run into an MTU change and cause a crash.
    
    Fixes: beead698b173 ("ionic: Add the basic NDO callbacks for netdev support")
    Signed-off-by: Shannon Nelson <snelson@pensando.io>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41ab3bd11cc4d556a98e6244b160a048cdddb5c0
Author: Shannon Nelson <snelson@pensando.io>
Date:   Mon Jul 20 16:00:16 2020 -0700

    ionic: keep rss hash after fw update
    
    [ Upstream commit bdff46665ee655600d0fe2a0e5f62ec7853d3b22 ]
    
    Make sure the RSS hash key is kept across a fw update by not
    de-initing it when an update is happening.
    
    Fixes: c672412f6172 ("ionic: remove lifs on fw reset")
    Signed-off-by: Shannon Nelson <snelson@pensando.io>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0fec273fe0ae3e38bd8b7490470c87d56122f23
Author: Shannon Nelson <snelson@pensando.io>
Date:   Mon Jul 20 16:00:15 2020 -0700

    ionic: update filter id after replay
    
    [ Upstream commit cc4428c4de8c31f12e4690d0409e0432fe05702f ]
    
    When we replay the rx filters after a fw-upgrade we get new
    filter_id values from the FW, which we need to save and update
    in our local filter list.  This allows us to delete the filters
    with the correct filter_id when we're done.
    
    Fixes: 7e4d47596b68 ("ionic: replay filters after fw upgrade")
    Signed-off-by: Shannon Nelson <snelson@pensando.io>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 14f48715a6b4368d30d53598ca0a46f25577ef87
Author: Shannon Nelson <snelson@pensando.io>
Date:   Mon Jul 20 16:00:14 2020 -0700

    ionic: fix up filter locks and debug msgs
    
    [ Upstream commit cbec2153a9a68d011454960ba84887e46e40b37d ]
    
    Add in a couple of forgotten spinlocks and fix up some of
    the debug messages around filter management.
    
    Fixes: c1e329ebec8d ("ionic: Add management of rx filters")
    Signed-off-by: Shannon Nelson <snelson@pensando.io>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41badbb3254f90fa986636781144c8246485f222
Author: Shannon Nelson <snelson@pensando.io>
Date:   Mon Jul 20 16:00:13 2020 -0700

    ionic: use offset for ethtool regs data
    
    [ Upstream commit f85ae16f924f92a370b81b4e77862c1c59882fce ]
    
    Use an offset to write the second half of the regs data into the
    second half of the buffer instead of overwriting the first half.
    
    Fixes: 4d03e00a2140 ("ionic: Add initial ethtool support")
    Signed-off-by: Shannon Nelson <snelson@pensando.io>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30b7a81f4b5cfb161a6fa0baa9218f02df59f798
Author: Liu Jian <liujian56@huawei.com>
Date:   Mon Jul 20 22:31:49 2020 +0800

    mlxsw: destroy workqueue when trap_register in mlxsw_emad_init
    
    [ Upstream commit 5dbaeb87f2b309936be0aeae00cbc9e7f20ab296 ]
    
    When mlxsw_core_trap_register fails in mlxsw_emad_init,
    destroy_workqueue() shouled be called to destroy mlxsw_core->emad_wq.
    
    Fixes: d965465b60ba ("mlxsw: core: Fix possible deadlock")
    Signed-off-by: Liu Jian <liujian56@huawei.com>
    Reviewed-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8331bcb186b2f17cd9cf60a5c859794544ab18e8
Author: Liu Jian <liujian56@huawei.com>
Date:   Mon Jul 20 22:28:29 2020 +0800

    dpaa_eth: Fix one possible memleak in dpaa_eth_probe
    
    [ Upstream commit 6790711f8ac5faabc43237c0d05d93db431a1ecc ]
    
    When dma_coerce_mask_and_coherent() fails, the alloced netdev need to be freed.
    
    Fixes: 060ad66f9795 ("dpaa_eth: change DMA device")
    Signed-off-by: Liu Jian <liujian56@huawei.com>
    Acked-by: Madalin Bucur <madalin.bucur@oss.nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc25cd50e0c0745830ea772a8ebe42d33bc0a4d0
Author: Zhang Changzhong <zhangchangzhong@huawei.com>
Date:   Mon Jul 20 15:18:43 2020 +0800

    net: bcmgenet: fix error returns in bcmgenet_probe()
    
    [ Upstream commit 24a63fe6d45d6527db5ab87bcd1da6921f10e89e ]
    
    The driver forgets to call clk_disable_unprepare() in error path after
    a success calling for clk_prepare_enable().
    
    Fix to goto err_clk_disable if clk_prepare_enable() is successful.
    
    Fixes: 99d55638d4b0 ("net: bcmgenet: enable NETIF_F_HIGHDMA flag")
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Acked-by: Doug Berger <opendmb@gmail.com>
    Acked-by: Florian fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 930449a77680ffa353b7d8ecc061b9f5f7871316
Author: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
Date:   Tue Jul 14 11:19:11 2020 +0200

    iwlwifi: Make some Killer Wireless-AC 1550 cards work again
    
    [ Upstream commit b5ba46b81c2fef00bcf110777fb6d51befa4a23e ]
    
    Fix the regression introduced by commit c8685937d07f ("iwlwifi: move
    pu devices to new table") by adding the ids and the configurations of
    two missing Killer 1550 cards in order to configure and let them work
    correctly again (following the new table convention).
    Resolve bug 208141 ("Wireless ac 9560 not working kernel 5.7.2",
    https://bugzilla.kernel.org/show_bug.cgi?id=208141).
    
    Fixes: c8685937d07f ("iwlwifi: move pu devices to new table")
    Signed-off-by: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200714091911.4442-1-alessio.bonfiglio@mail.polimi.it
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ab33dbe0231dcccef72050232855f7b9ecd1e41d
Author: Taehee Yoo <ap420073@gmail.com>
Date:   Sun Jul 19 12:11:24 2020 +0000

    bonding: check error value of register_netdevice() immediately
    
    [ Upstream commit 544f287b84959203367cd29e16e772717612fab4 ]
    
    If register_netdevice() is failed, net_device should not be used
    because variables are uninitialized or freed.
    So, the routine should be stopped immediately.
    But, bond_create() doesn't check return value of register_netdevice()
    immediately. That will result in a panic because of using uninitialized
    or freed memory.
    
    Test commands:
        modprobe netdev-notifier-error-inject
        echo -22 > /sys/kernel/debug/notifier-error-inject/netdev/\
    actions/NETDEV_REGISTER/error
        modprobe bonding max_bonds=3
    
    Splat looks like:
    [  375.028492][  T193] general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6b6b: 0000 [#1] SMP DEBUG_PAGEALLOC PTI
    [  375.033207][  T193] CPU: 2 PID: 193 Comm: kworker/2:2 Not tainted 5.8.0-rc4+ #645
    [  375.036068][  T193] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    [  375.039673][  T193] Workqueue: events linkwatch_event
    [  375.041557][  T193] RIP: 0010:dev_activate+0x4a/0x340
    [  375.043381][  T193] Code: 40 a8 04 0f 85 db 00 00 00 8b 83 08 04 00 00 85 c0 0f 84 0d 01 00 00 31 d2 89 d0 48 8d 04 40 48 c1 e0 07 48 03 83 00 04 00 00 <48> 8b 48 10 f6 41 10 01 75 08 f0 80 a1 a0 01 00 00 fd 48 89 48 08
    [  375.050267][  T193] RSP: 0018:ffff9f8facfcfdd8 EFLAGS: 00010202
    [  375.052410][  T193] RAX: 6b6b6b6b6b6b6b6b RBX: ffff9f8fae6ea000 RCX: 0000000000000006
    [  375.055178][  T193] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff9f8fae6ea000
    [  375.057762][  T193] RBP: ffff9f8fae6ea000 R08: 0000000000000000 R09: 0000000000000000
    [  375.059810][  T193] R10: 0000000000000001 R11: 0000000000000000 R12: ffff9f8facfcfe08
    [  375.061892][  T193] R13: ffffffff883587e0 R14: 0000000000000000 R15: ffff9f8fae6ea580
    [  375.063931][  T193] FS:  0000000000000000(0000) GS:ffff9f8fbae00000(0000) knlGS:0000000000000000
    [  375.066239][  T193] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  375.067841][  T193] CR2: 00007f2f542167a0 CR3: 000000012cee6002 CR4: 00000000003606e0
    [  375.069657][  T193] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [  375.071471][  T193] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [  375.073269][  T193] Call Trace:
    [  375.074005][  T193]  linkwatch_do_dev+0x4d/0x50
    [  375.075052][  T193]  __linkwatch_run_queue+0x10b/0x200
    [  375.076244][  T193]  linkwatch_event+0x21/0x30
    [  375.077274][  T193]  process_one_work+0x252/0x600
    [  375.078379][  T193]  ? process_one_work+0x600/0x600
    [  375.079518][  T193]  worker_thread+0x3c/0x380
    [  375.080534][  T193]  ? process_one_work+0x600/0x600
    [  375.081668][  T193]  kthread+0x139/0x150
    [  375.082567][  T193]  ? kthread_park+0x90/0x90
    [  375.083567][  T193]  ret_from_fork+0x22/0x30
    
    Fixes: e826eafa65c6 ("bonding: Call netif_carrier_off after register_netdevice")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 59cd8e564740c8142e0af088fd1f080c9f12f059
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Sun Jul 19 12:00:40 2020 +0100

    arm64: dts: clearfog-gt-8k: fix switch link configuration
    
    [ Upstream commit 7c6719a1aaca51ffd7cdf3905e70aa8313f6ef26 ]
    
    The commit below caused a regression for clearfog-gt-8k, where the link
    between the switch and the host does not come up.
    
    Investigation revealed two issues:
    - MV88E6xxx DSA no longer allows an in-band link to come up as the link
      is programmed to be forced down. Commit "net: dsa: mv88e6xxx: fix
      in-band AN link establishment" addresses this.
    
    - The dts configured dissimilar link modes at each end of the host to
      switch link; the host was configured using a fixed link (so has no
      in-band status) and the switch was configured to expect in-band
      status.
    
    With both issues fixed, the regression is resolved.
    
    Fixes: 34b5e6a33c1a ("net: dsa: mv88e6xxx: Configure MAC when using fixed link")
    Reported-by: Martin Rowe <martin.p.rowe@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20dbf6a255a10596fe30a2075b85beb80cd7885b
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Sun Jul 19 12:00:35 2020 +0100

    net: dsa: mv88e6xxx: fix in-band AN link establishment
    
    [ Upstream commit fad58190c0ffd72c394722928cd3e919b6e18357 ]
    
    If in-band negotiation or fixed-link modes are specified for a DSA
    port, the DSA code will force the link down during initialisation. For
    fixed-link mode, this is fine, as phylink will manage the link state.
    However, for in-band mode, phylink expects the PCS to detect link,
    which will not happen if the link is forced down.
    
    There is a related issue that in in-band mode, the link could come up
    while we are making configuration changes, so we should force the link
    down prior to reconfiguring the interface mode.
    
    This patch addresses both issues.
    
    Fixes: 3be98b2d5fbc ("net: dsa: Down cpu/dsa ports phylink will control")
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d3ecfc5c28fd4881a53c3d395768383beffd0edc
Author: Vadim Pasternak <vadimp@mellanox.com>
Date:   Fri Jul 17 22:01:43 2020 +0300

    mlxsw: core: Fix wrong SFP EEPROM reading for upper pages 1-3
    
    [ Upstream commit 9b8737788af6c76ef93e3161ee2cdc4ddcc034ca ]
    
    Fix wrong reading of upper pages for SFP EEPROM. According to "Memory
    Organization" figure in SFF-8472 spec: When reading upper pages 1, 2 and
    3 the offset should be set relative to zero and I2C high address 0x51
    [1010001X (A2h)] is to be used.
    
    Fixes: a45bfb5a5070 ("mlxsw: core: Extend QSFP EEPROM size for ethtool")
    Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
    Reviewed-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d48db65259a7c7af25b9948e09f9017ad0cc0e0a
Author: Wang Hai <wanghai38@huawei.com>
Date:   Thu Jul 16 11:50:38 2020 +0800

    net: smc91x: Fix possible memory leak in smc_drv_probe()
    
    [ Upstream commit bca9749b1aa23d964d3ab930938af66dbf887f15 ]
    
    If try_toggle_control_gpio() failed in smc_drv_probe(), free_netdev(ndev)
    should be called to free the ndev created earlier. Otherwise, a memleak
    will occur.
    
    Fixes: 7d2911c43815 ("net: smc91x: Fix gpios for device tree based booting")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ca9e42f0d9e716dd614c5e990f91b6509fbcdcbc
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Sat Jul 11 09:10:30 2020 +0800

    drm: sun4i: hdmi: Fix inverted HPD result
    
    [ Upstream commit baa1841eb797eadce6c907bdaed7cd6f01815404 ]
    
    When the extra HPD polling in sun4i_hdmi was removed, the result of
    HPD was accidentally inverted.
    
    Fix this by inverting the check.
    
    Fixes: bda8eaa6dee7 ("drm: sun4i: hdmi: Remove extra HPD polling")
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Tested-by: Mans Rullgard <mans@mansr.com>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200711011030.21997-1-wens@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60aae71c7636290c9993d1190802b812616eaff4
Author: Liu Jian <liujian56@huawei.com>
Date:   Fri Jul 17 17:01:21 2020 +0800

    ieee802154: fix one possible memleak in adf7242_probe
    
    [ Upstream commit 66673f96f0f968b991dc38be06102246919c663c ]
    
    When probe fail, we should destroy the workqueue.
    
    Fixes: 2795e8c25161 ("net: ieee802154: fix a potential NULL pointer dereference")
    Signed-off-by: Liu Jian <liujian56@huawei.com>
    Acked-by: Michael Hennerich <michael.hennerich@analog.com>
    Link: https://lore.kernel.org/r/20200717090121.2143-1-liujian56@huawei.com
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e70c101e4f83ec3e0880b54ed52b7c7c064fdfae
Author: Sergey Organov <sorganov@gmail.com>
Date:   Wed Jul 15 19:10:00 2020 +0300

    net: dp83640: fix SIOCSHWTSTAMP to update the struct with actual configuration
    
    [ Upstream commit 473309fb8372365ad211f425bca760af800e10a7 ]
    
    From Documentation/networking/timestamping.txt:
    
      A driver which supports hardware time stamping shall update the
      struct with the actual, possibly more permissive configuration.
    
    Do update the struct passed when we upscale the requested time
    stamping mode.
    
    Fixes: cb646e2b02b2 ("ptp: Added a clock driver for the National Semiconductor PHYTER.")
    Signed-off-by: Sergey Organov <sorganov@gmail.com>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 85a8c0ac9c7e984751044a48562517181fc1bb24
Author: Jing Xiangfeng <jingxiangfeng@huawei.com>
Date:   Tue Jul 14 16:09:18 2020 +0800

    ASoC: Intel: bytcht_es8316: Add missed put_device()
    
    [ Upstream commit b3df80ab6d147d4738be242e1c91e5fdbb6b03ef ]
    
    snd_byt_cht_es8316_mc_probe() misses to call put_device() in an error
    path. Add the missed function call to fix it.
    
    Fixes: ba49cf6f8e4a ("ASoC: Intel: bytcht_es8316: Add quirk for inverted jack detect")
    Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20200714080918.148196-1-jingxiangfeng@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 86553e6301c0ed23a708fc2c552ecf0373d80395
Author: Sergey Organov <sorganov@gmail.com>
Date:   Tue Jul 14 19:28:02 2020 +0300

    net: fec: fix hardware time stamping by external devices
    
    [ Upstream commit 340746398b67e3ce5019698748ebaa7adf048114 ]
    
    Fix support for external PTP-aware devices such as DSA or PTP PHY:
    
    Make sure we never time stamp tx packets when hardware time stamping
    is disabled.
    
    Check for PTP PHY being in use and then pass ioctls related to time
    stamping of Ethernet packets to the PTP PHY rather than handle them
    ourselves. In addition, disable our own hardware time stamping in this
    case.
    
    Fixes: 6605b730c061 ("FEC: Add time stamping code and a PTP hardware clock")
    Signed-off-by: Sergey Organov <sorganov@gmail.com>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Acked-by: Vladimir Oltean <olteanv@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0cfb891ef4ad979b3897956f0ae0130a02a552c1
Author: Maor Gottlieb <maorg@mellanox.com>
Date:   Thu Jul 16 13:55:19 2020 +0300

    RDMA/cm: Protect access to remote_sidr_table
    
    [ Upstream commit 87c4c774cbef5c68b3df96827c2fb07f1aa80152 ]
    
    cm.lock must be held while accessing remote_sidr_table. This fixes the
    below NULL pointer dereference.
    
      BUG: kernel NULL pointer dereference, address: 0000000000000000
      #PF: supervisor write access in kernel mode
      #PF: error_code(0x0002) - not-present page
      PGD 0 P4D 0
      Oops: 0002 [#1] SMP PTI
      CPU: 2 PID: 7288 Comm: udaddy Not tainted 5.7.0_for_upstream_perf_2020_06_09_15_14_20_38 #1
      Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
      RIP: 0010:rb_erase+0x10d/0x360
      Code: 00 00 00 48 89 c1 48 89 d0 48 8b 50 08 48 39 ca 74 48 f6 02 01 75 af 48 8b 7a 10 48 89 c1 48 83 c9 01 48 89 78 08 48 89 42 10 <48> 89 0f 48 8b 08 48 89 0a 48 83 e1 fc 48 89 10 0f 84 b1 00 00 00
      RSP: 0018:ffffc90000f77c30 EFLAGS: 00010086
      RAX: ffff8883df27d458 RBX: ffff8883df27da58 RCX: ffff8883df27d459
      RDX: ffff8883d183fa58 RSI: ffffffffa01e8d00 RDI: 0000000000000000
      RBP: ffff8883d62ac800 R08: 0000000000000000 R09: 00000000000000ce
      R10: 000000000000000a R11: 0000000000000000 R12: ffff8883df27da00
      R13: ffffc90000f77c98 R14: 0000000000000130 R15: 0000000000000000
      FS:  00007f009f877740(0000) GS:ffff8883f1a00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000000000000 CR3: 00000003d467e003 CR4: 0000000000160ee0
      Call Trace:
       cm_send_sidr_rep_locked+0x15a/0x1a0 [ib_cm]
       ib_send_cm_sidr_rep+0x2b/0x50 [ib_cm]
       cma_send_sidr_rep+0x8b/0xe0 [rdma_cm]
       __rdma_accept+0x21d/0x2b0 [rdma_cm]
       ? ucma_get_ctx+0x2b/0xe0 [rdma_ucm]
       ? _copy_from_user+0x30/0x60
       ucma_accept+0x13e/0x1e0 [rdma_ucm]
       ucma_write+0xb4/0x130 [rdma_ucm]
       vfs_write+0xad/0x1a0
       ksys_write+0x9d/0xb0
       do_syscall_64+0x48/0x130
       entry_SYSCALL_64_after_hwframe+0x44/0xa9
      RIP: 0033:0x7f009ef60924
      Code: 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 80 00 00 00 00 8b 05 2a ef 2c 00 48 63 ff 85 c0 75 13 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 f3 c3 66 90 55 53 48 89 d5 48 89 f3 48 83
      RSP: 002b:00007fff843edf38 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      RAX: ffffffffffffffda RBX: 000055743042e1d0 RCX: 00007f009ef60924
      RDX: 0000000000000130 RSI: 00007fff843edf40 RDI: 0000000000000003
      RBP: 00007fff843ee0e0 R08: 0000000000000000 R09: 0000557430433090
      R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000
      R13: 00007fff843edf40 R14: 000000000000038c R15: 00000000ffffff00
      CR2: 0000000000000000
    
    Fixes: 6a8824a74bc9 ("RDMA/cm: Allow ib_send_cm_sidr_rep() to be done under lock")
    Link: https://lore.kernel.org/r/20200716105519.1424266-1-leon@kernel.org
    Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1adb3d7626649134576ddce888426ca50e0d22b9
Author: Leon Romanovsky <leon@kernel.org>
Date:   Thu Jul 16 13:20:59 2020 +0300

    RDMA/core: Fix race in rdma_alloc_commit_uobject()
    
    [ Upstream commit 0d1fd39bb27e479fb1de3dd4b4c247c7c9a1fabf ]
    
    The FD should not be installed until all of the setup is completed as the
    fd_install() transfers ownership of the kref to the FD table. A thread can
    race a close() and trigger concurrent rdma_alloc_commit_uobject() and
    uverbs_uobject_fd_release() which, at least, triggers a safety WARN_ON:
    
      WARNING: CPU: 4 PID: 6913 at drivers/infiniband/core/rdma_core.c:768 uverbs_uobject_fd_release+0x202/0x230
      Kernel panic - not syncing: panic_on_warn set ...
      CPU: 4 PID: 6913 Comm: syz-executor.3 Not tainted 5.7.0-rc2 #22
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
      [..]
      RIP: 0010:uverbs_uobject_fd_release+0x202/0x230
      Code: fe 4c 89 e7 e8 af 23 fe ff e9 2a ff ff ff e8 c5 fa 61 fe be 03 00 00 00 4c 89 e7 e8 68 eb f5 fe e9 13 ff ff ff e8 ae fa 61 fe <0f> 0b eb ac e8 e5 aa 3c fe e8 50 2b 86 fe e9 6a fe ff ff e8 46 2b
      RSP: 0018:ffffc90008117d88 EFLAGS: 00010293
      RAX: ffff88810e146580 RBX: 1ffff92001022fb1 RCX: ffffffff82d5b902
      RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffff88811951b040
      RBP: ffff88811951b000 R08: ffffed10232a3609 R09: ffffed10232a3609
      R10: ffff88811951b043 R11: 0000000000000001 R12: ffff888100a7c600
      R13: ffff888100a7c650 R14: ffffc90008117da8 R15: ffffffff82d5b700
       ? __uverbs_cleanup_ufile+0x270/0x270
       ? uverbs_uobject_fd_release+0x202/0x230
       ? uverbs_uobject_fd_release+0x202/0x230
       ? __uverbs_cleanup_ufile+0x270/0x270
       ? locks_remove_file+0x282/0x3d0
       ? security_file_free+0xaa/0xd0
       __fput+0x2be/0x770
       task_work_run+0x10e/0x1b0
       exit_to_usermode_loop+0x145/0x170
       do_syscall_64+0x2d0/0x390
       ? prepare_exit_to_usermode+0x17a/0x230
       entry_SYSCALL_64_after_hwframe+0x44/0xa9
      RIP: 0033:0x414da7
      Code: 00 00 0f 05 48 3d 00 f0 ff ff 77 3f f3 c3 0f 1f 44 00 00 53 89 fb 48 83 ec 10 e8 f4 fb ff ff 89 df 89 c2 b8 03 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 2b 89 d7 89 44 24 0c e8 36 fc ff ff 8b 44 24
      RSP: 002b:00007fff39d379d0 EFLAGS: 00000293 ORIG_RAX: 0000000000000003
      RAX: 0000000000000000 RBX: 0000000000000003 RCX: 0000000000414da7
      RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000003
      RBP: 00007fff39d37a3c R08: 0000000400000000 R09: 0000000400000000
      R10: 00007fff39d37910 R11: 0000000000000293 R12: 0000000000000001
      R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000003
    
    Reorder so that fd_install() is the last thing done in
    rdma_alloc_commit_uobject().
    
    Fixes: aba94548c9e4 ("IB/uverbs: Move the FD uobj type struct file allocation to alloc_commit")
    Link: https://lore.kernel.org/r/20200716102059.1420681-1-leon@kernel.org
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ba63581340bc749dc6856732f96e729af09da79
Author: Maor Gottlieb <maorg@mellanox.com>
Date:   Sun Jul 12 13:26:41 2020 +0300

    RDMA/mlx5: Use xa_lock_irq when access to SRQ table
    
    [ Upstream commit c3d6057e07a5d15be7c69ea545b3f91877808c96 ]
    
    SRQ table is accessed both from interrupt and process context,
    therefore we must use xa_lock_irq.
    
       inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
       kworker/u17:9/8573   takes:
       ffff8883e3503d30 (&xa->xa_lock#13){?...}-{2:2}, at: mlx5_cmd_get_srq+0x18/0x70 [mlx5_ib]
       {IN-HARDIRQ-W} state was registered at:
         lock_acquire+0xb9/0x3a0
         _raw_spin_lock+0x25/0x30
         srq_event_notifier+0x2b/0xc0 [mlx5_ib]
         notifier_call_chain+0x45/0x70
         __atomic_notifier_call_chain+0x69/0x100
         forward_event+0x36/0xc0 [mlx5_core]
         notifier_call_chain+0x45/0x70
         __atomic_notifier_call_chain+0x69/0x100
         mlx5_eq_async_int+0xc5/0x160 [mlx5_core]
         notifier_call_chain+0x45/0x70
         __atomic_notifier_call_chain+0x69/0x100
         mlx5_irq_int_handler+0x19/0x30 [mlx5_core]
         __handle_irq_event_percpu+0x43/0x2a0
         handle_irq_event_percpu+0x30/0x70
         handle_irq_event+0x34/0x60
         handle_edge_irq+0x7c/0x1b0
         do_IRQ+0x60/0x110
         ret_from_intr+0x0/0x2a
         default_idle+0x34/0x160
         do_idle+0x1ec/0x220
         cpu_startup_entry+0x19/0x20
         start_secondary+0x153/0x1a0
         secondary_startup_64+0xa4/0xb0
       irq event stamp: 20907
       hardirqs last  enabled at (20907):   _raw_spin_unlock_irq+0x24/0x30
       hardirqs last disabled at (20906):   _raw_spin_lock_irq+0xf/0x40
       softirqs last  enabled at (20746):   __do_softirq+0x2c9/0x436
       softirqs last disabled at (20681):   irq_exit+0xb3/0xc0
    
       other info that might help us debug this:
        Possible unsafe locking scenario:
    
              CPU0
              ----
         lock(&xa->xa_lock#13);
         <Interrupt>
           lock(&xa->xa_lock#13);
    
        *** DEADLOCK ***
    
       2 locks held by kworker/u17:9/8573:
        #0: ffff888295218d38 ((wq_completion)mlx5_ib_page_fault){+.+.}-{0:0}, at: process_one_work+0x1f1/0x5f0
        #1: ffff888401647e78 ((work_completion)(&pfault->work)){+.+.}-{0:0}, at: process_one_work+0x1f1/0x5f0
    
       stack backtrace:
       CPU: 0 PID: 8573 Comm: kworker/u17:9 Tainted: GO      5.7.0_for_upstream_min_debug_2020_06_14_11_31_46_41 #1
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
       Workqueue: mlx5_ib_page_fault mlx5_ib_eqe_pf_action [mlx5_ib]
       Call Trace:
        dump_stack+0x71/0x9b
        mark_lock+0x4f2/0x590
        ? print_shortest_lock_dependencies+0x200/0x200
        __lock_acquire+0xa00/0x1eb0
        lock_acquire+0xb9/0x3a0
        ? mlx5_cmd_get_srq+0x18/0x70 [mlx5_ib]
        _raw_spin_lock+0x25/0x30
        ? mlx5_cmd_get_srq+0x18/0x70 [mlx5_ib]
        mlx5_cmd_get_srq+0x18/0x70 [mlx5_ib]
        mlx5_ib_eqe_pf_action+0x257/0xa30 [mlx5_ib]
        ? process_one_work+0x209/0x5f0
        process_one_work+0x27b/0x5f0
        ? __schedule+0x280/0x7e0
        worker_thread+0x2d/0x3c0
        ? process_one_work+0x5f0/0x5f0
        kthread+0x111/0x130
        ? kthread_park+0x90/0x90
        ret_from_fork+0x24/0x30
    
    Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters")
    Link: https://lore.kernel.org/r/20200712102641.15210-1-leon@kernel.org
    Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e44f7bc1cfec80a701627e07ccc59075ddbf2b35
Author: George Kennedy <george.kennedy@oracle.com>
Date:   Wed Jul 15 09:59:31 2020 -0400

    ax88172a: fix ax88172a_unbind() failures
    
    [ Upstream commit c28d9a285668c799eeae2f7f93e929a6028a4d6d ]
    
    If ax88172a_unbind() fails, make sure that the return code is
    less than zero so that cleanup is done properly and avoid UAF.
    
    Fixes: a9a51bd727d1 ("ax88172a: fix information leak on short answers")
    Signed-off-by: George Kennedy <george.kennedy@oracle.com>
    Reported-by: syzbot+4cd84f527bf4a10fc9c1@syzkaller.appspotmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a0524b14222dd7eb446664e503d6e1b0ca9fdb9d
Author: Stefano Garzarella <sgarzare@redhat.com>
Date:   Fri Jul 10 14:12:43 2020 +0200

    vsock/virtio: annotate 'the_virtio_vsock' RCU pointer
    
    [ Upstream commit f961134a612c793d5901a93d85a29337c74af978 ]
    
    Commit 0deab087b16a ("vsock/virtio: use RCU to avoid use-after-free
    on the_virtio_vsock") starts to use RCU to protect 'the_virtio_vsock'
    pointer, but we forgot to annotate it.
    
    This patch adds the annotation to fix the following sparse errors:
    
        net/vmw_vsock/virtio_transport.c:73:17: error: incompatible types in comparison expression (different address spaces):
        net/vmw_vsock/virtio_transport.c:73:17:    struct virtio_vsock [noderef] __rcu *
        net/vmw_vsock/virtio_transport.c:73:17:    struct virtio_vsock *
        net/vmw_vsock/virtio_transport.c:171:17: error: incompatible types in comparison expression (different address spaces):
        net/vmw_vsock/virtio_transport.c:171:17:    struct virtio_vsock [noderef] __rcu *
        net/vmw_vsock/virtio_transport.c:171:17:    struct virtio_vsock *
        net/vmw_vsock/virtio_transport.c:207:17: error: incompatible types in comparison expression (different address spaces):
        net/vmw_vsock/virtio_transport.c:207:17:    struct virtio_vsock [noderef] __rcu *
        net/vmw_vsock/virtio_transport.c:207:17:    struct virtio_vsock *
        net/vmw_vsock/virtio_transport.c:561:13: error: incompatible types in comparison expression (different address spaces):
        net/vmw_vsock/virtio_transport.c:561:13:    struct virtio_vsock [noderef] __rcu *
        net/vmw_vsock/virtio_transport.c:561:13:    struct virtio_vsock *
        net/vmw_vsock/virtio_transport.c:612:9: error: incompatible types in comparison expression (different address spaces):
        net/vmw_vsock/virtio_transport.c:612:9:    struct virtio_vsock [noderef] __rcu *
        net/vmw_vsock/virtio_transport.c:612:9:    struct virtio_vsock *
        net/vmw_vsock/virtio_transport.c:631:9: error: incompatible types in comparison expression (different address spaces):
        net/vmw_vsock/virtio_transport.c:631:9:    struct virtio_vsock [noderef] __rcu *
        net/vmw_vsock/virtio_transport.c:631:9:    struct virtio_vsock *
    
    Fixes: 0deab087b16a ("vsock/virtio: use RCU to avoid use-after-free on the_virtio_vsock")
    Reported-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0db513ac27c9057908695e340b9b264967d17d4e
Author: Ioana Ciornei <ioana.ciornei@nxp.com>
Date:   Tue Jul 14 15:08:16 2020 +0300

    dpaa2-eth: check fsl_mc_get_endpoint for IS_ERR_OR_NULL()
    
    [ Upstream commit 841eb4012cef84820e5906527b31a854f42b0748 ]
    
    The fsl_mc_get_endpoint() function can return an error or directly a
    NULL pointer in case the peer device is not under the root DPRC
    container. Treat this case also, otherwise it would lead to a NULL
    pointer when trying to access the peer fsl_mc_device.
    
    Fixes: 719479230893 ("dpaa2-eth: add MAC/PHY support through phylink")
    Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2af940e08a2d35f3efe14ef620523eb815d9d937
Author: Florian Westphal <fw@strlen.de>
Date:   Tue Jul 14 18:51:39 2020 +0200

    netfilter: nf_tables: fix nat hook table deletion
    
    [ Upstream commit 1e9451cbda456a170518b2bfd643e2cb980880bf ]
    
    sybot came up with following transaction:
     add table ip syz0
     add chain ip syz0 syz2 { type nat hook prerouting priority 0; policy accept; }
     add table ip syz0 { flags dormant; }
     delete chain ip syz0 syz2
     delete table ip syz0
    
    which yields:
    hook not found, pf 2 num 0
    WARNING: CPU: 0 PID: 6775 at net/netfilter/core.c:413 __nf_unregister_net_hook+0x3e6/0x4a0 net/netfilter/core.c:413
    [..]
     nft_unregister_basechain_hooks net/netfilter/nf_tables_api.c:206 [inline]
     nft_table_disable net/netfilter/nf_tables_api.c:835 [inline]
     nf_tables_table_disable net/netfilter/nf_tables_api.c:868 [inline]
     nf_tables_commit+0x32d3/0x4d70 net/netfilter/nf_tables_api.c:7550
     nfnetlink_rcv_batch net/netfilter/nfnetlink.c:486 [inline]
     nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:544 [inline]
     nfnetlink_rcv+0x14a5/0x1e50 net/netfilter/nfnetlink.c:562
     netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
    
    Problem is that when I added ability to override base hook registration
    to make nat basechains register with the nat core instead of netfilter
    core, I forgot to update nft_table_disable() to use that instead of
    the 'raw' hook register interface.
    
    In syzbot transaction, the basechain is of 'nat' type. Its registered
    with the nat core.  The switch to 'dormant mode' attempts to delete from
    netfilter core instead.
    
    After updating nft_table_disable/enable to use the correct helper,
    nft_(un)register_basechain_hooks can be folded into the only remaining
    caller.
    
    Because nft_trans_table_enable() won't do anything when the DORMANT flag
    is set, remove the flag first, then re-add it in case re-enablement
    fails, else this patch breaks sequence:
    
    add table ip x { flags dormant; }
    /* add base chains */
    add table ip x
    
    The last 'add' will remove the dormant flags, but won't have any other
    effect -- base chains are not registered.
    Then, next 'set dormant flag' will create another 'hook not found'
    splat.
    
    Reported-by: syzbot+2570f2c036e3da5db176@syzkaller.appspotmail.com
    Fixes: 4e25ceb80b58 ("netfilter: nf_tables: allow chain type to override hook register")
    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 b469a8d77577f673d3c76565224dc81e8a6f992c
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Tue Jul 14 13:00:27 2020 +0200

    hippi: Fix a size used in a 'pci_free_consistent()' in an error handling path
    
    [ Upstream commit 3195c4706b00106aa82c73acd28340fa8fc2bfc1 ]
    
    The size used when calling 'pci_alloc_consistent()' and
    'pci_free_consistent()' should match.
    
    Fix it and have it consistent with the corresponding call in 'rr_close()'.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e41f117cbbece00d4bb284ac03d3ba31d230389a
Author: Matthew Gerlach <matthew.gerlach@linux.intel.com>
Date:   Mon Jul 13 14:10:03 2020 +0800

    fpga: dfl: fix bug in port reset handshake
    
    [ Upstream commit 8614afd689df59d9ce019439389be20bd788a897 ]
    
    When putting the port in reset, driver must wait for the soft reset
    acknowledgment bit instead of the soft reset bit.
    
    Fixes: 47c1b19c160f (fpga: dfl: afu: add port ops support)
    Signed-off-by: Matthew Gerlach <matthew.gerlach@linux.intel.com>
    Signed-off-by: Xu Yilun <yilun.xu@intel.com>
    Acked-by: Wu Hao <hao.wu@intel.com>
    Reviewed-by: Tom Rix <trix@redhat.com>
    Signed-off-by: Moritz Fischer <mdf@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9e453e14ddef6bb3181670514b391953e9f3bb8
Author: Xu Yilun <yilun.xu@intel.com>
Date:   Mon Jul 13 14:10:02 2020 +0800

    fpga: dfl: pci: reduce the scope of variable 'ret'
    
    [ Upstream commit e19485dc7a0d210b428a249c0595769bd495fb71 ]
    
    This is to fix lkp cppcheck warnings:
    
     drivers/fpga/dfl-pci.c:230:6: warning: The scope of the variable 'ret' can be reduced. [variableScope]
        int ret = 0;
            ^
    
     drivers/fpga/dfl-pci.c:230:10: warning: Variable 'ret' is assigned a value that is never used. [unreadVariable]
        int ret = 0;
                ^
    
    Fixes: 3c2760b78f90 ("fpga: dfl: pci: fix return value of cci_pci_sriov_configure")
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Xu Yilun <yilun.xu@intel.com>
    Acked-by: Wu Hao <hao.wu@intel.com>
    Reviewed-by: Tom Rix <trix@redhat.com>
    Signed-off-by: Moritz Fischer <mdf@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f038397d8220a9f07dff190f13a0ce6ca6139a22
Author: Michael Chan <michael.chan@broadcom.com>
Date:   Sat Jul 11 20:48:25 2020 -0400

    bnxt_en: Fix completion ring sizing with TPA enabled.
    
    [ Upstream commit 27640ce68d21e556b66bc5fa022aacd26e53c947 ]
    
    The current completion ring sizing formula is wrong with TPA enabled.
    The formula assumes that the number of TPA completions are bound by the
    RX ring size, but that's not true.  TPA_START completions are immediately
    recycled so they are not bound by the RX ring size.  We must add
    bp->max_tpa to the worst case maximum RX and TPA completions.
    
    The completion ring can overflow because of this mistake.  This will
    cause hardware to disable the completion ring when this happens,
    leading to RX and TX traffic to stall on that ring.  This issue is
    generally exposed only when the RX ring size is set very small.
    
    Fix the formula by adding bp->max_tpa to the number of RX completions
    if TPA is enabled.
    
    Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.");
    Reviewed-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 48953ccad52873c489faad794ec95ef8a93b28e0
Author: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
Date:   Sat Jul 11 20:48:24 2020 -0400

    bnxt_en: Init ethtool link settings after reading updated PHY configuration.
    
    [ Upstream commit ca0c753815fe4786b79a80abf0412eb5d52090b8 ]
    
    In a shared port PHY configuration, async event is received when any of the
    port modifies the configuration. Ethtool link settings should be
    initialised after updated PHY configuration from firmware.
    
    Fixes: b1613e78e98d ("bnxt_en: Add async. event logic for PHY configuration changes.")
    Signed-off-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aaa5d81918d20a1c821a11163013271fde414c24
Author: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
Date:   Sat Jul 11 20:48:23 2020 -0400

    bnxt_en: Fix race when modifying pause settings.
    
    [ Upstream commit 163e9ef63641a02de4c95cd921577265c52e1ce2 ]
    
    The driver was modified to not rely on rtnl lock to protect link
    settings about 2 years ago.  The pause setting was missed when
    making that change.  Fix it by acquiring link_lock mutex before
    calling bnxt_hwrm_set_pause().
    
    Fixes: e2dc9b6e38fa ("bnxt_en: Don't use rtnl lock to protect link change logic in workqueue.")
    Signed-off-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
    Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 552952e51fad35670459674bcb8a03bd96fe4646
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Wed Jul 8 13:01:57 2020 +0300

    efi/efivars: Expose RT service availability via efivars abstraction
    
    [ Upstream commit f88814cc2578c121e6edef686365036db72af0ed ]
    
    Commit
    
      bf67fad19e493b ("efi: Use more granular check for availability for variable services")
    
    introduced a check into the efivarfs, efi-pstore and other drivers that
    aborts loading of the module if not all three variable runtime services
    (GetVariable, SetVariable and GetNextVariable) are supported. However, this
    results in efivarfs being unavailable entirely if only SetVariable support
    is missing, which is only needed if you want to make any modifications.
    Also, efi-pstore and the sysfs EFI variable interface could be backed by
    another implementation of the 'efivars' abstraction, in which case it is
    completely irrelevant which services are supported by the EFI firmware.
    
    So make the generic 'efivars' abstraction dependent on the availibility of
    the GetVariable and GetNextVariable EFI runtime services, and add a helper
    'efivar_supports_writes()' to find out whether the currently active efivars
    abstraction supports writes (and wire it up to the availability of
    SetVariable for the generic one).
    
    Then, use the efivar_supports_writes() helper to decide whether to permit
    efivarfs to be mounted read-write, and whether to enable efi-pstore or the
    sysfs EFI variable interface altogether.
    
    Fixes: bf67fad19e493b ("efi: Use more granular check for availability for variable services")
    Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
    Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
    Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28376beb1d3a97965940392177383182815d8b13
Author: Felix Fietkau <nbd@nbd.name>
Date:   Sun Feb 16 16:08:58 2020 +0100

    mt76: mt76x02: fix handling MCU timeouts during hw restart
    
    [ Upstream commit fd6c2dfa49b762ffe773a835ba62fa692df4c1b0 ]
    
    If a MCU timeout occurs before a hw restart completes, another hw restart
    is scheduled, and the station state gets corrupted.
    To speed up dealing with that, do not issue any MCU commands after the first
    timeout, and defer handling timeouts until the reset has completed.
    Also ignore errors in MCU commands during start/config to avoid making user
    space fail on this condition. If it happens, another restart is scheduled
    quickly, and that usually recovers the hardware properly.
    
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 70b8d693ddc9d9f7291e7607038d16e80b959acc
Author: Robbie Ko <robbieko@synology.com>
Date:   Mon Jul 20 09:42:09 2020 +0800

    btrfs: fix page leaks after failure to lock page for delalloc
    
    commit 5909ca110b29aa16b23b52b8de8d3bb1035fd738 upstream.
    
    When locking pages for delalloc, we check if it's dirty and mapping still
    matches. If it does not match, we need to return -EAGAIN and release all
    pages. Only the current page was put though, iterate over all the
    remaining pages too.
    
    CC: stable@vger.kernel.org # 4.14+
    Reviewed-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: Nikolay Borisov <nborisov@suse.com>
    Signed-off-by: Robbie Ko <robbieko@synology.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 699e71192e196c6c4a73a0b8afdaab93d60b6fc7
Author: Boris Burkov <boris@bur.io>
Date:   Thu Jul 16 13:29:46 2020 -0700

    btrfs: fix mount failure caused by race with umount
    
    commit 48cfa61b58a1fee0bc49eef04f8ccf31493b7cdd upstream.
    
    It is possible to cause a btrfs mount to fail by racing it with a slow
    umount. The crux of the sequence is generic_shutdown_super not yet
    calling sop->put_super before btrfs_mount_root calls btrfs_open_devices.
    If that occurs, btrfs_open_devices will decide the opened counter is
    non-zero, increment it, and skip resetting fs_devices->total_rw_bytes to
    0. From here, mount will call sget which will result in grab_super
    trying to take the super block umount semaphore. That semaphore will be
    held by the slow umount, so mount will block. Before up-ing the
    semaphore, umount will delete the super block, resulting in mount's sget
    reliably allocating a new one, which causes the mount path to dutifully
    fill it out, and increment total_rw_bytes a second time, which causes
    the mount to fail, as we see double the expected bytes.
    
    Here is the sequence laid out in greater detail:
    
    CPU0                                                    CPU1
    down_write sb->s_umount
    btrfs_kill_super
      kill_anon_super(sb)
        generic_shutdown_super(sb);
          shrink_dcache_for_umount(sb);
          sync_filesystem(sb);
          evict_inodes(sb); // SLOW
    
                                                  btrfs_mount_root
                                                    btrfs_scan_one_device
                                                    fs_devices = device->fs_devices
                                                    fs_info->fs_devices = fs_devices
                                                    // fs_devices-opened makes this a no-op
                                                    btrfs_open_devices(fs_devices, mode, fs_type)
                                                    s = sget(fs_type, test, set, flags, fs_info);
                                                      find sb in s_instances
                                                      grab_super(sb);
                                                        down_write(&s->s_umount); // blocks
    
          sop->put_super(sb)
            // sb->fs_devices->opened == 2; no-op
          spin_lock(&sb_lock);
          hlist_del_init(&sb->s_instances);
          spin_unlock(&sb_lock);
          up_write(&sb->s_umount);
                                                        return 0;
                                                      retry lookup
                                                      don't find sb in s_instances (deleted by CPU0)
                                                      s = alloc_super
                                                      return s;
                                                    btrfs_fill_super(s, fs_devices, data)
                                                      open_ctree // fs_devices total_rw_bytes improperly set!
                                                        btrfs_read_chunk_tree
                                                          read_one_dev // increment total_rw_bytes again!!
                                                          super_total_bytes < fs_devices->total_rw_bytes // ERROR!!!
    
    To fix this, we clear total_rw_bytes from within btrfs_read_chunk_tree
    before the calls to read_one_dev, while holding the sb umount semaphore
    and the uuid mutex.
    
    To reproduce, it is sufficient to dirty a decent number of inodes, then
    quickly umount and mount.
    
      for i in $(seq 0 500)
      do
        dd if=/dev/zero of="/mnt/foo/$i" bs=1M count=1
      done
      umount /mnt/foo&
      mount /mnt/foo
    
    does the trick for me.
    
    CC: stable@vger.kernel.org # 4.4+
    Signed-off-by: Boris Burkov <boris@bur.io>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3e1dc6f434b6409a19261ee3e636b6899c7afbc
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon Jul 13 15:11:56 2020 +0100

    btrfs: fix double free on ulist after backref resolution failure
    
    commit 580c079b5766ac706f56eec5c79aee4bf929fef6 upstream.
    
    At btrfs_find_all_roots_safe() we allocate a ulist and set the **roots
    argument to point to it. However if later we fail due to an error returned
    by find_parent_nodes(), we free that ulist but leave a dangling pointer in
    the **roots argument. Upon receiving the error, a caller of this function
    can attempt to free the same ulist again, resulting in an invalid memory
    access.
    
    One such scenario is during qgroup accounting:
    
    btrfs_qgroup_account_extents()
    
     --> calls btrfs_find_all_roots() passes &new_roots (a stack allocated
         pointer) to btrfs_find_all_roots()
    
       --> btrfs_find_all_roots() just calls btrfs_find_all_roots_safe()
           passing &new_roots to it
    
         --> allocates ulist and assigns its address to **roots (which
             points to new_roots from btrfs_qgroup_account_extents())
    
         --> find_parent_nodes() returns an error, so we free the ulist
             and leave **roots pointing to it after returning
    
     --> btrfs_qgroup_account_extents() sees btrfs_find_all_roots() returned
         an error and jumps to the label 'cleanup', which just tries to
         free again the same ulist
    
    Stack trace example:
    
     ------------[ cut here ]------------
     BTRFS: tree first key check failed
     WARNING: CPU: 1 PID: 1763215 at fs/btrfs/disk-io.c:422 btrfs_verify_level_key+0xe0/0x180 [btrfs]
     Modules linked in: dm_snapshot dm_thin_pool (...)
     CPU: 1 PID: 1763215 Comm: fsstress Tainted: G        W         5.8.0-rc3-btrfs-next-64 #1
     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
     RIP: 0010:btrfs_verify_level_key+0xe0/0x180 [btrfs]
     Code: 28 5b 5d (...)
     RSP: 0018:ffffb89b473779a0 EFLAGS: 00010286
     RAX: 0000000000000000 RBX: ffff90397759bf08 RCX: 0000000000000000
     RDX: 0000000000000001 RSI: 0000000000000027 RDI: 00000000ffffffff
     RBP: ffff9039a419c000 R08: 0000000000000000 R09: 0000000000000000
     R10: 0000000000000000 R11: ffffb89b43301000 R12: 000000000000005e
     R13: ffffb89b47377a2e R14: ffffb89b473779af R15: 0000000000000000
     FS:  00007fc47e1e1000(0000) GS:ffff9039ac200000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 00007fc47e1df000 CR3: 00000003d9e4e001 CR4: 00000000003606e0
     DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
     Call Trace:
      read_block_for_search+0xf6/0x350 [btrfs]
      btrfs_next_old_leaf+0x242/0x650 [btrfs]
      resolve_indirect_refs+0x7cf/0x9e0 [btrfs]
      find_parent_nodes+0x4ea/0x12c0 [btrfs]
      btrfs_find_all_roots_safe+0xbf/0x130 [btrfs]
      btrfs_qgroup_account_extents+0x9d/0x390 [btrfs]
      btrfs_commit_transaction+0x4f7/0xb20 [btrfs]
      btrfs_sync_file+0x3d4/0x4d0 [btrfs]
      do_fsync+0x38/0x70
      __x64_sys_fdatasync+0x13/0x20
      do_syscall_64+0x5c/0xe0
      entry_SYSCALL_64_after_hwframe+0x44/0xa9
     RIP: 0033:0x7fc47e2d72e3
     Code: Bad RIP value.
     RSP: 002b:00007fffa32098c8 EFLAGS: 00000246 ORIG_RAX: 000000000000004b
     RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007fc47e2d72e3
     RDX: 00007fffa3209830 RSI: 00007fffa3209830 RDI: 0000000000000003
     RBP: 000000000000072e R08: 0000000000000001 R09: 0000000000000003
     R10: 0000000000000000 R11: 0000000000000246 R12: 00000000000003e8
     R13: 0000000051eb851f R14: 00007fffa3209970 R15: 00005607c4ac8b50
     irq event stamp: 0
     hardirqs last  enabled at (0): [<0000000000000000>] 0x0
     hardirqs last disabled at (0): [<ffffffffb8eb5e85>] copy_process+0x755/0x1eb0
     softirqs last  enabled at (0): [<ffffffffb8eb5e85>] copy_process+0x755/0x1eb0
     softirqs last disabled at (0): [<0000000000000000>] 0x0
     ---[ end trace 8639237550317b48 ]---
     BTRFS error (device sdc): tree first key mismatch detected, bytenr=62324736 parent_transid=94 key expected=(262,108,1351680) has=(259,108,1921024)
     general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6b6b: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC PTI
     CPU: 2 PID: 1763215 Comm: fsstress Tainted: G        W         5.8.0-rc3-btrfs-next-64 #1
     Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
     RIP: 0010:ulist_release+0x14/0x60 [btrfs]
     Code: c7 07 00 (...)
     RSP: 0018:ffffb89b47377d60 EFLAGS: 00010282
     RAX: 6b6b6b6b6b6b6b6b RBX: ffff903959b56b90 RCX: 0000000000000000
     RDX: 0000000000000001 RSI: 0000000000270024 RDI: ffff9036e2adc840
     RBP: ffff9036e2adc848 R08: 0000000000000000 R09: 0000000000000000
     R10: 0000000000000000 R11: 0000000000000000 R12: ffff9036e2adc840
     R13: 0000000000000015 R14: ffff9039a419ccf8 R15: ffff90395d605840
     FS:  00007fc47e1e1000(0000) GS:ffff9039ac600000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 00007f8c1c0a51c8 CR3: 00000003d9e4e004 CR4: 00000000003606e0
     DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
     Call Trace:
      ulist_free+0x13/0x20 [btrfs]
      btrfs_qgroup_account_extents+0xf3/0x390 [btrfs]
      btrfs_commit_transaction+0x4f7/0xb20 [btrfs]
      btrfs_sync_file+0x3d4/0x4d0 [btrfs]
      do_fsync+0x38/0x70
      __x64_sys_fdatasync+0x13/0x20
      do_syscall_64+0x5c/0xe0
      entry_SYSCALL_64_after_hwframe+0x44/0xa9
     RIP: 0033:0x7fc47e2d72e3
     Code: Bad RIP value.
     RSP: 002b:00007fffa32098c8 EFLAGS: 00000246 ORIG_RAX: 000000000000004b
     RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007fc47e2d72e3
     RDX: 00007fffa3209830 RSI: 00007fffa3209830 RDI: 0000000000000003
     RBP: 000000000000072e R08: 0000000000000001 R09: 0000000000000003
     R10: 0000000000000000 R11: 0000000000000246 R12: 00000000000003e8
     R13: 0000000051eb851f R14: 00007fffa3209970 R15: 00005607c4ac8b50
     Modules linked in: dm_snapshot dm_thin_pool (...)
     ---[ end trace 8639237550317b49 ]---
     RIP: 0010:ulist_release+0x14/0x60 [btrfs]
     Code: c7 07 00 (...)
     RSP: 0018:ffffb89b47377d60 EFLAGS: 00010282
     RAX: 6b6b6b6b6b6b6b6b RBX: ffff903959b56b90 RCX: 0000000000000000
     RDX: 0000000000000001 RSI: 0000000000270024 RDI: ffff9036e2adc840
     RBP: ffff9036e2adc848 R08: 0000000000000000 R09: 0000000000000000
     R10: 0000000000000000 R11: 0000000000000000 R12: ffff9036e2adc840
     R13: 0000000000000015 R14: ffff9039a419ccf8 R15: ffff90395d605840
     FS:  00007fc47e1e1000(0000) GS:ffff9039ad200000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 00007f6a776f7d40 CR3: 00000003d9e4e002 CR4: 00000000003606e0
     DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    
    Fix this by making btrfs_find_all_roots_safe() set *roots to NULL after
    it frees the ulist.
    
    Fixes: 8da6d5815c592b ("Btrfs: added btrfs_find_all_roots()")
    CC: stable@vger.kernel.org # 4.4+
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd41890c879884de40aa8b61e34d609db67a4fef
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Fri Jul 17 11:27:22 2020 +0200

    s390/cpum_cf,perf: change DFLT_CCERROR counter name
    
    commit 3d3af181d370069861a3be94608464e2ff3682e2 upstream.
    
    Change the counter name DLFT_CCERROR to DLFT_CCFINISH on IBM z15.
    This counter counts completed DEFLATE instructions with exit code
    0, 1 or 2. Since exit code 0 means success and exit code 1 or 2
    indicate errors, change the counter name to avoid confusion.
    This counter is incremented each time the DEFLATE instruction
    completed regardless if an error was detected or not.
    
    Fixes: d68d5d51dc89 ("s390/cpum_cf: Add new extended counters for IBM z15")
    Fixes: e7950166e402 ("perf vendor events s390: Add new deflate counters for IBM z15")
    Cc: stable@vger.kernel.org # v5.7
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Reviewed-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 347e9ea2c26b8ff6fb34d29c3f9700ab334bfee6
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sun Jun 28 17:52:26 2020 +0200

    ASoC: Intel: cht_bsw_rt5672: Change bus format to I2S 2 channel
    
    commit 0ceb8a36d023d4bb4ffca3474a452fb1dfaa0ef2 upstream.
    
    The default mode for SSP configuration is TDM 4 slot and so far we were
    using this for the bus format on cht-bsw-rt56732 boards.
    
    One board, the Lenovo Miix 2 10 uses not 1 but 2 codecs connected to SSP2.
    The second piggy-backed, output-only codec is inside the keyboard-dock
    (which has extra speakers). Unlike the main rt5672 codec, we cannot
    configure this codec, it is hard coded to use 2 channel 24 bit I2S.
    
    Using 4 channel TDM leads to the dock speakers codec (which listens in on
    the data send from the SSP to the rt5672 codec) emiting horribly distorted
    sound.
    
    Since we only support 2 channels anyways, there is no need for TDM on any
    cht-bsw-rt5672 designs. So we can simply use I2S 2ch everywhere.
    
    This commit fixes the Lenovo Miix 2 10 dock speakers issue by changing
    the bus format set in cht_codec_fixup() to I2S 2 channel.
    
    This change has been tested on the following devices with a rt5672 codec:
    
    Lenovo Miix 2 10
    Lenovo Thinkpad 8
    Lenovo Thinkpad 10 (gen 1)
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Cc: stable@vger.kernel.org
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1786723
    Link: https://lore.kernel.org/r/20200628155231.71089-2-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59cc30ce431d1b4f913035e395bf76514a307278
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sun Jun 28 17:52:27 2020 +0200

    ASoC: rt5670: Correct RT5670_LDO_SEL_MASK
    
    commit 5cacc6f5764e94fa753b2c1f5f7f1f3f74286e82 upstream.
    
    The RT5670_PWR_ANLG1 register has 3 bits to select the LDO voltage,
    so the correct mask is 0x7 not 0x3.
    
    Because of this wrong mask we were programming the ldo bits
    to a setting of binary 001 (0x05 & 0x03) instead of binary 101
    when moving to SND_SOC_BIAS_PREPARE.
    
    According to the datasheet 001 is a reserved value, so no idea
    what it did, since the driver was working fine before I guess we
    got lucky and it does something which is ok.
    
    Fixes: 5e8351de740d ("ASoC: add RT5670 CODEC driver")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200628155231.71089-3-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 512257c7b29705c6d3eef29325a190dc804dbcdd
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Jul 17 10:40:23 2020 +0200

    ALSA: info: Drop WARN_ON() from buffer NULL sanity check
    
    commit 60379ba08532eca861e933b389526a4dc89e0c42 upstream.
    
    snd_info_get_line() has a sanity check of NULL buffer -- both buffer
    itself being NULL and buffer->buffer being NULL.  Basically both
    checks are valid and necessary, but the problem is that it's with
    snd_BUG_ON() macro that triggers WARN_ON().  The latter condition
    (NULL buffer->buffer) can be met arbitrarily by user since the buffer
    is allocated at the first write, so it means that user can trigger
    WARN_ON() at will.
    
    This patch addresses it by simply moving buffer->buffer NULL check out
    of snd_BUG_ON() so that spurious WARNING is no longer triggered.
    
    Reported-by: syzbot+e42d0746c3c3699b6061@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200717084023.5928-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36f8d7687f7a2565fb3dbecb3d2b52dc64d2c8e8
Author: Joonho Wohn <doomsheart@gmail.com>
Date:   Sat Jul 18 17:23:15 2020 +0900

    ALSA: hda/realtek: Fixed ALC298 sound bug by adding quirk for Samsung Notebook Pen S
    
    commit 568e4e82128aac2c62c2c359ebebb6007fd794f9 upstream.
    
    Fixed no headphone sound bug on laptop Samsung Notebook Pen S
    (950SBE-951SBE), by using existing patch in Linus' tree, commit
    14425f1f521f (ALSA: hda/realtek: Add quirk for Samsung Notebook).
    This laptop uses the same ALC298 but different subsystem id 0x144dc812.
    I added SND_PCI_QUIRK at sound/pci/hda/patch_realtek.c
    
    Signed-off-by: Joonho Wohn <doomsheart@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/CAHcbMh291aWDKiWSZoxXB4-Eru6OYRwGA4AVEdCZeYmVLo5ZxQ@mail.gmail.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 952ab9a65d17b00f5c24bdf60c258fbd6d988f81
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Thu Jul 23 17:44:20 2020 +0200

    uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix GDB regression
    
    commit fe5ed7ab99c656bd2f5b79b49df0e9ebf2cead8a upstream.
    
    If a tracee is uprobed and it hits int3 inserted by debugger, handle_swbp()
    does send_sig(SIGTRAP, current, 0) which means si_code == SI_USER. This used
    to work when this code was written, but then GDB started to validate si_code
    and now it simply can't use breakpoints if the tracee has an active uprobe:
    
            # cat test.c
            void unused_func(void)
            {
            }
            int main(void)
            {
                    return 0;
            }
    
            # gcc -g test.c -o test
            # perf probe -x ./test -a unused_func
            # perf record -e probe_test:unused_func gdb ./test -ex run
            GNU gdb (GDB) 10.0.50.20200714-git
            ...
            Program received signal SIGTRAP, Trace/breakpoint trap.
            0x00007ffff7ddf909 in dl_main () from /lib64/ld-linux-x86-64.so.2
            (gdb)
    
    The tracee hits the internal breakpoint inserted by GDB to monitor shared
    library events but GDB misinterprets this SIGTRAP and reports a signal.
    
    Change handle_swbp() to use force_sig(SIGTRAP), this matches do_int3_user()
    and fixes the problem.
    
    This is the minimal fix for -stable, arch/x86/kernel/uprobes.c is equally
    wrong; it should use send_sigtrap(TRAP_TRACE) instead of send_sig(SIGTRAP),
    but this doesn't confuse GDB and needs another x86-specific patch.
    
    Reported-by: Aaron Merey <amerey@redhat.com>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200723154420.GA32043@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33823378ff2b510fd7b566f25bb18438aeb9b23b
Author: Qu Wenruo <wqu@suse.com>
Date:   Wed May 20 14:58:51 2020 +0800

    btrfs: reloc: clear DEAD_RELOC_TREE bit for orphan roots to prevent runaway balance
    
    commit 1dae7e0e58b484eaa43d530f211098fdeeb0f404 upstream.
    
    [BUG]
    There are several reported runaway balance, that balance is flooding the
    log with "found X extents" where the X never changes.
    
    [CAUSE]
    Commit d2311e698578 ("btrfs: relocation: Delay reloc tree deletion after
    merge_reloc_roots") introduced BTRFS_ROOT_DEAD_RELOC_TREE bit to
    indicate that one subvolume has finished its tree blocks swap with its
    reloc tree.
    
    However if balance is canceled or hits ENOSPC halfway, we didn't clear
    the BTRFS_ROOT_DEAD_RELOC_TREE bit, leaving that bit hanging forever
    until unmount.
    
    Any subvolume root with that bit, would cause backref cache to skip this
    tree block, as it has finished its tree block swap.  This would cause
    all tree blocks of that root be ignored by balance, leading to runaway
    balance.
    
    [FIX]
    Fix the problem by also clearing the BTRFS_ROOT_DEAD_RELOC_TREE bit for
    the original subvolume of orphan reloc root.
    
    Add an umount check for the stale bit still set.
    
    Fixes: d2311e698578 ("btrfs: relocation: Delay reloc tree deletion after merge_reloc_roots")
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9abc91876db79d90e5ee114df9d768903daaafa
Author: Ilya Ponetayev <i.ponetaev@ndmsystems.com>
Date:   Thu Jul 16 17:27:53 2020 +0900

    exfat: fix name_hash computation on big endian systems
    
    commit db415f7aae07cadcabd5d2a659f8ad825c905299 upstream.
    
    On-disk format for name_hash field is LE, so it must be explicitly
    transformed on BE system for proper result.
    
    Fixes: 370e812b3ec1 ("exfat: add nls operations")
    Cc: stable@vger.kernel.org # v5.7
    Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
    Signed-off-by: Ilya Ponetayev <i.ponetaev@ndmsystems.com>
    Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
    Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2fbf81522489897962e500596923b3adf002f40a
Author: Hyeongseok Kim <hyeongseok@gmail.com>
Date:   Wed Jul 8 18:52:33 2020 +0900

    exfat: fix wrong size update of stream entry by typo
    
    commit 41e3928f8c58184fcf0bb22e822af39a436370c7 upstream.
    
    The stream.size field is updated to the value of create timestamp
    of the file entry. Fix this to use correct stream entry pointer.
    
    Fixes: 29bbb14bfc80 ("exfat: fix incorrect update of stream entry in __exfat_truncate()")
    Signed-off-by: Hyeongseok Kim <hyeongseok@gmail.com>
    Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 270e78f57638f30d71accead4082f17b9cfc6128
Author: Namjae Jeon <namjae.jeon@samsung.com>
Date:   Fri Jul 3 11:19:46 2020 +0900

    exfat: fix wrong hint_stat initialization in exfat_find_dir_entry()
    
    commit d2fa0c337d97a5490190b9f3b9c73c8f9f3602a1 upstream.
    
    We found the wrong hint_stat initialization in exfat_find_dir_entry().
    It should be initialized when cluster is EXFAT_EOF_CLUSTER.
    
    Fixes: ca06197382bd ("exfat: add directory operations")
    Cc: stable@vger.kernel.org # v5.7
    Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
    Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6febb000c71a2ca6530bea2fca9197177a83f8e
Author: Namjae Jeon <namjae.jeon@samsung.com>
Date:   Fri Jul 3 11:16:32 2020 +0900

    exfat: fix overflow issue in exfat_cluster_to_sector()
    
    commit 43946b70494beefe40ec1b2ba4744c0f294d7736 upstream.
    
    An overflow issue can occur while calculating sector in
    exfat_cluster_to_sector(). It needs to cast clus's type to sector_t
    before left shifting.
    
    Fixes: 1acf1a564b60 ("exfat: add in-memory and on-disk structures and headers")
    Cc: stable@vger.kernel.org # v5.7
    Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
    Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4cc3f16ea92741a44ffe7f4a8f865c3ba4f32d50
Author: Olga Kornievskaia <kolga@netapp.com>
Date:   Wed Jul 15 13:04:15 2020 -0400

    SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion")
    
    commit 65caafd0d2145d1dd02072c4ced540624daeab40 upstream.
    
    Reverting commit d03727b248d0 "NFSv4 fix CLOSE not waiting for
    direct IO compeletion". This patch made it so that fput() by calling
    inode_dio_done() in nfs_file_release() would wait uninterruptably
    for any outstanding directIO to the file (but that wait on IO should
    be killable).
    
    The problem the patch was also trying to address was REMOVE returning
    ERR_ACCESS because the file is still opened, is supposed to be resolved
    by server returning ERR_FILE_OPEN and not ERR_ACCESS.
    
    Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef176ba6acec80d11f1d8d7f998174b56e3c9620
Author: Aaron Ma <aaron.ma@canonical.com>
Date:   Wed Jul 8 04:16:22 2020 -0400

    drm/amd/display: add dmcub check on RENOIR
    
    [ Upstream commit 3b2e973dff59d88bee1d814ddf8762a24fc02b60 ]
    
    RENOIR loads dmub fw not dmcu, check dmcu only will prevent loading iram,
    it breaks backlight control.
    
    Bug: https://bugzilla.kernel.org/show_bug.cgi?id=208277
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 984fafafde60f91b5bf8a31c3ba8ad7337496cc3
Author: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com>
Date:   Fri Apr 24 14:09:23 2020 -0400

    drm/amd/display: Check DMCU Exists Before Loading
    
    [ Upstream commit 17bdb4a82fe5014c8aa5b2103c80c5729744a096 ]
    
    Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com>
    Reviewed-by: Hersen Wu <hersenxs.wu@amd.com>
    Acked-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af018a3f8d0c45d6cb784dab6243938f540b333c
Author: Ralph Campbell <rcampbell@nvidia.com>
Date:   Fri Jun 26 14:03:37 2020 -0700

    drm/nouveau/nouveau: fix page fault on device private memory
    
    [ Upstream commit ed710a6ed797430026aa5116dd0ab22378798b69 ]
    
    If system memory is migrated to device private memory and no GPU MMU
    page table entry exists, the GPU will fault and call hmm_range_fault()
    to get the PFN for the page. Since the .dev_private_owner pointer in
    struct hmm_range is not set, hmm_range_fault returns an error which
    results in the GPU program stopping with a fatal fault.
    Fix this by setting .dev_private_owner appropriately.
    
    Fixes: 08ddddda667b ("mm/hmm: check the device private page owner in hmm_range_fault()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ralph Campbell <rcampbell@nvidia.com>
    Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b4198ecddb87cd955aa9e024dd656af5ceaf6196
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Jul 9 11:53:06 2020 +0200

    irqdomain/treewide: Keep firmware node unconditionally allocated
    
    [ Upstream commit e3beca48a45b5e0e6e6a4e0124276b8248dcc9bb ]
    
    Quite some non OF/ACPI users of irqdomains allocate firmware nodes of type
    IRQCHIP_FWNODE_NAMED or IRQCHIP_FWNODE_NAMED_ID and free them right after
    creating the irqdomain. The only purpose of these FW nodes is to convey
    name information. When this was introduced the core code did not store the
    pointer to the node in the irqdomain. A recent change stored the firmware
    node pointer in irqdomain for other reasons and missed to notice that the
    usage sites which do the alloc_fwnode/create_domain/free_fwnode sequence
    are broken by this. Storing a dangling pointer is dangerous itself, but in
    case that the domain is destroyed later on this leads to a double free.
    
    Remove the freeing of the firmware node after creating the irqdomain from
    all affected call sites to cure this.
    
    Fixes: 711419e504eb ("irqdomain: Add the missing assignment of domain->fwnode for named fwnode")
    Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Marc Zyngier <maz@kernel.org>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/873661qakd.fsf@nanos.tec.linutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5dd398947f49a16b6e8ac9efaae57fd55604be08
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Tue Jul 21 15:54:59 2020 -0300

    fuse: fix weird page warning
    
    commit a5005c3cda6eeb6b95645e6cc32f58dafeffc976 upstream.
    
    When PageWaiters was added, updating this check was missed.
    
    Reported-by: Nikolaus Rath <Nikolaus@rath.org>
    Reported-by: Hugh Dickins <hughd@google.com>
    Fixes: 62906027091f ("mm: add PageWaiters indicating tasks are waiting for a page bit")
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: André Almeida <andrealmeid@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20df695fc7952ed4e1a848bcb45d3cd541e81d7f
Author: Gavin Shan <gshan@redhat.com>
Date:   Tue Jun 30 17:52:27 2020 +1000

    drivers/firmware/psci: Fix memory leakage in alloc_init_cpu_groups()
    
    [ Upstream commit c377e67c6271954969384f9be1b1b71de13eba30 ]
    
    The CPU mask (@tmp) should be released on failing to allocate
    @cpu_groups or any of its elements. Otherwise, it leads to memory
    leakage because the CPU mask variable is dynamically allocated
    when CONFIG_CPUMASK_OFFSTACK is enabled.
    
    Signed-off-by: Gavin Shan <gshan@redhat.com>
    Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
    Link: https://lore.kernel.org/r/20200630075227.199624-1-gshan@redhat.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ccf4c300bbd3d2b57cb2507f3699060c998575f9
Author: Christoph Hellwig <hch@lst.de>
Date:   Sat Jun 27 09:31:46 2020 +0200

    dm: use bio_uninit instead of bio_disassociate_blkg
    
    [ Upstream commit 382761dc6312965a11f82f2217e16ec421bf17ae ]
    
    bio_uninit is the proper API to clean up a BIO that has been allocated
    on stack or inside a structure that doesn't come from the BIO allocator.
    Switch dm to use that instead of bio_disassociate_blkg, which really is
    an implementation detail.  Note that the bio_uninit calls are also moved
    to the two callers of __send_empty_flush, so that they better pair with
    the bio_init calls used to initialize them.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 020f046a90815b2ce3c9334ccd96911f921fb9ab
Author: Steve Schremmer <steve.schremmer@netapp.com>
Date:   Tue Jul 7 17:07:22 2020 +0000

    scsi: dh: Add Fujitsu device to devinfo and dh lists
    
    [ Upstream commit e094fd346021b820f37188aaa6b502c7490ab5b5 ]
    
    Add FUJITSU ETERNUS_AHB
    
    Link: https://lore.kernel.org/r/DM6PR06MB5276CCA765336BD312C4282E8C660@DM6PR06MB5276.namprd06.prod.outlook.com
    Signed-off-by: Steve Schremmer <steve.schremmer@netapp.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0d048a75ae0a6474e39ea7a9a35fb8dba489d0ad
Author: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Date:   Wed Jul 1 22:14:54 2020 +0900

    scsi: mpt3sas: Fix error returns in BRM_status_show
    
    [ Upstream commit 0fd181456aa0826057adbfb6c79c40f4083cfd75 ]
    
    BRM_status_show() has several error branches, but none of them record the
    error in the error return.
    
    Also while at it remove the manual mutex_unlock() of the pci_access_mutex
    in case of an ongoing pci error recovery or host removal and jump to the
    cleanup label instead.
    
    Note: We can safely jump to out from here as io_unit_pg3 is initialized to
    NULL and if it hasn't been allocated, kfree() skips the NULL pointer.
    
    [mkp: compilation warning]
    
    Link: https://lore.kernel.org/r/20200701131454.5255-1-johannes.thumshirn@wdc.com
    Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
    Acked-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
    Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e783a84f903e9f20dc34a4034f015b3a69d86ad
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Jun 23 16:39:13 2020 +1000

    drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
    
    [ Upstream commit 0156e76d388310a490aeb0f2fbb5b284ded3aecc ]
    
    Tegra TRM says worst-case reply time is 1216us, and this should fix some
    spurious timeouts that have been popping up.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c798c80753d202d5963b3e2f1140332dbb60081c
Author: Tom Rix <trix@redhat.com>
Date:   Fri Jul 3 06:33:59 2020 -0700

    net: sky2: initialize return of gm_phy_read
    
    [ Upstream commit 28b18e4eb515af7c6661c3995c6e3c34412c2874 ]
    
    clang static analysis flags this garbage return
    
    drivers/net/ethernet/marvell/sky2.c:208:2: warning: Undefined or garbage value returned to caller [core.uninitialized.UndefReturn]
            return v;
            ^~~~~~~~
    
    static inline u16 gm_phy_read( ...
    {
            u16 v;
            __gm_phy_read(hw, port, reg, &v);
            return v;
    }
    
    __gm_phy_read can return without setting v.
    
    So handle similar to skge.c's gm_phy_read, initialize v.
    
    Signed-off-by: Tom Rix <trix@redhat.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9771a07202513de69672cf1223f8eee0e423522f
Author: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Date:   Fri Jul 3 18:38:17 2020 +0300

    ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later
    
    [ Upstream commit 56275036d8185f92eceac7479d48b858ee3dab84 ]
    
    When HDMI PCM devices are opened in a specific order, with at least one
    HDMI/DP receiver connected, ALSA PCM open fails to -EBUSY on the
    connected monitor, on recent Intel platforms (ICL/JSL and newer). While
    this is not a typical sequence, at least Pulseaudio does this every time
    when it is started, to discover the available PCMs.
    
    The rootcause is an invalid assumption in hdmi_add_pin(), where the
    total number of converters is assumed to be known at the time the
    function is called. On older Intel platforms this held true, but after
    ICL/JSL, the order how pins and converters are in the subnode list as
    returned by snd_hda_get_sub_nodes(), was changed. As a result,
    information for some converters was not stored to per_pin->mux_nids.
    And this means some pins cannot be connected to all converters, and
    application instead gets -EBUSY instead at open.
    
    The assumption that converters are always before pins in the subnode
    list, is not really a valid one. Fix the problem in hdmi_parse_codec()
    by introducing separate loops for discovering converters and pins.
    
    BugLink: https://github.com/thesofproject/linux/issues/1978
    BugLink: https://github.com/thesofproject/linux/issues/2216
    BugLink: https://github.com/thesofproject/linux/issues/2217
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20200703153818.2808592-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 43d9faee0654da920b9a5267ffca1abf32bfeefa
Author: Xie He <xie.he.0141@gmail.com>
Date:   Sun Jul 5 17:45:21 2020 -0700

    drivers/net/wan/lapbether: Fixed the value of hard_header_len
    
    [ Upstream commit 9dc829a135fb5927f1519de11286e2bbb79f5b66 ]
    
    When this driver transmits data,
      first this driver will remove a pseudo header of 1 byte,
      then the lapb module will prepend the LAPB header of 2 or 3 bytes,
      then this driver will prepend a length field of 2 bytes,
      then the underlying Ethernet device will prepend its own header.
    
    So, the header length required should be:
      -1 + 3 + 2 + "the header length needed by the underlying device".
    
    This patch fixes kernel panic when this driver is used with AF_PACKET
    SOCK_DGRAM sockets.
    
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d0ae53cd963cc343f3656e8fa459edee0d773702
Author: Damien Le Moal <damien.lemoal@wdc.com>
Date:   Wed Jul 1 17:52:54 2020 +0900

    scsi: mpt3sas: Fix unlock imbalance
    
    [ Upstream commit cb551b8dc079d2ef189145782627c99cb68c0255 ]
    
    In BRM_status_show(), if the condition "!ioc->is_warpdrive" tested on entry
    to the function is true, a "goto out" is called. This results in unlocking
    ioc->pci_access_mutex without this mutex lock being taken.  This generates
    the following splat:
    
    [ 1148.539883] mpt3sas_cm2: BRM_status_show: BRM attribute is only for warpdrive
    [ 1148.547184]
    [ 1148.548708] =====================================
    [ 1148.553501] WARNING: bad unlock balance detected!
    [ 1148.558277] 5.8.0-rc3+ #827 Not tainted
    [ 1148.562183] -------------------------------------
    [ 1148.566959] cat/5008 is trying to release lock (&ioc->pci_access_mutex) at:
    [ 1148.574035] [<ffffffffc070b7a3>] BRM_status_show+0xd3/0x100 [mpt3sas]
    [ 1148.580574] but there are no more locks to release!
    [ 1148.585524]
    [ 1148.585524] other info that might help us debug this:
    [ 1148.599624] 3 locks held by cat/5008:
    [ 1148.607085]  #0: ffff92aea3e392c0 (&p->lock){+.+.}-{3:3}, at: seq_read+0x34/0x480
    [ 1148.618509]  #1: ffff922ef14c4888 (&of->mutex){+.+.}-{3:3}, at: kernfs_seq_start+0x2a/0xb0
    [ 1148.630729]  #2: ffff92aedb5d7310 (kn->active#224){.+.+}-{0:0}, at: kernfs_seq_start+0x32/0xb0
    [ 1148.643347]
    [ 1148.643347] stack backtrace:
    [ 1148.655259] CPU: 73 PID: 5008 Comm: cat Not tainted 5.8.0-rc3+ #827
    [ 1148.665309] Hardware name: HGST H4060-S/S2600STB, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019
    [ 1148.678394] Call Trace:
    [ 1148.684750]  dump_stack+0x78/0xa0
    [ 1148.691802]  lock_release.cold+0x45/0x4a
    [ 1148.699451]  __mutex_unlock_slowpath+0x35/0x270
    [ 1148.707675]  BRM_status_show+0xd3/0x100 [mpt3sas]
    [ 1148.716092]  dev_attr_show+0x19/0x40
    [ 1148.723664]  sysfs_kf_seq_show+0x87/0x100
    [ 1148.731193]  seq_read+0xbc/0x480
    [ 1148.737882]  vfs_read+0xa0/0x160
    [ 1148.744514]  ksys_read+0x58/0xd0
    [ 1148.751129]  do_syscall_64+0x4c/0xa0
    [ 1148.757941]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [ 1148.766240] RIP: 0033:0x7f1230566542
    [ 1148.772957] Code: Bad RIP value.
    [ 1148.779206] RSP: 002b:00007ffeac1bcac8 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
    [ 1148.790063] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f1230566542
    [ 1148.800284] RDX: 0000000000020000 RSI: 00007f1223460000 RDI: 0000000000000003
    [ 1148.810474] RBP: 00007f1223460000 R08: 00007f122345f010 R09: 0000000000000000
    [ 1148.820641] R10: 0000000000000022 R11: 0000000000000246 R12: 0000000000000000
    [ 1148.830728] R13: 0000000000000003 R14: 0000000000020000 R15: 0000000000020000
    
    Fix this by returning immediately instead of jumping to the out label.
    
    Link: https://lore.kernel.org/r/20200701085254.51740-1-damien.lemoal@wdc.com
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Acked-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ca0852f88d9619d886da7baad0e84ecfb3ef0c8d
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Thu Jul 2 08:32:25 2020 -0700

    xtensa: update *pos in cpuinfo_op.next
    
    [ Upstream commit 0d5ab144429e8bd80889b856a44d56ab4a5cd59b ]
    
    Increment *pos in the cpuinfo_op.next to fix the following warning
    triggered by cat /proc/cpuinfo:
    
      seq_file: buggy .next function c_next did not update position index
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c652bbd9cdfa6bea590211ac57a27221788129d
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Thu Jun 4 13:37:10 2020 -0700

    xtensa: fix __sync_fetch_and_{and,or}_4 declarations
    
    [ Upstream commit 73f9941306d5ce030f3ffc7db425c7b2a798cf8e ]
    
    Building xtensa kernel with gcc-10 produces the following warnings:
      arch/xtensa/kernel/xtensa_ksyms.c:90:15: warning: conflicting types
        for built-in function ‘__sync_fetch_and_and_4’;
        expected ‘unsigned int(volatile void *, unsigned int)’
        [-Wbuiltin-declaration-mismatch]
      arch/xtensa/kernel/xtensa_ksyms.c:96:15: warning: conflicting types
        for built-in function ‘__sync_fetch_and_or_4’;
        expected ‘unsigned int(volatile void *, unsigned int)’
        [-Wbuiltin-declaration-mismatch]
    
    Fix declarations of these functions to avoid the warning.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e5d422975b2189d40c385f2db82f08d07ed4bb9
Author: Tom Rix <trix@redhat.com>
Date:   Sat Jun 27 06:32:42 2020 -0700

    scsi: scsi_transport_spi: Fix function pointer check
    
    [ Upstream commit 5aee52c44d9170591df65fafa1cd408acc1225ce ]
    
    clang static analysis flags several null function pointer problems.
    
    drivers/scsi/scsi_transport_spi.c:374:1: warning: Called function pointer is null (null dereference) [core.CallAndMessage]
    spi_transport_max_attr(offset, "%d\n");
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Reviewing the store_spi_store_max macro
    
            if (i->f->set_##field)
                    return -EINVAL;
    
    should be
    
            if (!i->f->set_##field)
                    return -EINVAL;
    
    Link: https://lore.kernel.org/r/20200627133242.21618-1-trix@redhat.com
    Reviewed-by: James Bottomley <jejb@linux.ibm.com>
    Signed-off-by: Tom Rix <trix@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1db90794e78252e1f2ac0f9154f30329fcb9b537
Author: Markus Theil <markus.theil@tu-ilmenau.de>
Date:   Thu Jun 25 12:42:14 2020 +0200

    mac80211: allow rx of mesh eapol frames with default rx key
    
    [ Upstream commit 0b467b63870d9c05c81456aa9bfee894ab2db3b6 ]
    
    Without this patch, eapol frames cannot be received in mesh
    mode, when 802.1X should be used. Initially only a MGTK is
    defined, which is found and set as rx->key, when there are
    no other keys set. ieee80211_drop_unencrypted would then
    drop these eapol frames, as they are data frames without
    encryption and there exists some rx->key.
    
    Fix this by differentiating between mesh eapol frames and
    other data frames with existing rx->key. Allow mesh mesh
    eapol frames only if they are for our vif address.
    
    With this patch in-place, ieee80211_rx_h_mesh_fwding continues
    after the ieee80211_drop_unencrypted check and notices, that
    these eapol frames have to be delivered locally, as they should.
    
    Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
    Link: https://lore.kernel.org/r/20200625104214.50319-1-markus.theil@tu-ilmenau.de
    [small code cleanups]
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9064bc611d60edc176be406a00aed6eb702620f3
Author: Yonghong Song <yhs@fb.com>
Date:   Tue Jun 23 17:10:54 2020 -0700

    bpf: Set the number of exception entries properly for subprograms
    
    [ Upstream commit c4c0bdc0d2d084ed847c7066bdf59fe2cd25aa17 ]
    
    Currently, if a bpf program has more than one subprograms, each program will be
    jitted separately. For programs with bpf-to-bpf calls the
    prog->aux->num_exentries is not setup properly. For example, with
    bpf_iter_netlink.c modified to force one function to be not inlined and with
    CONFIG_BPF_JIT_ALWAYS_ON the following error is seen:
       $ ./test_progs -n 3/3
       ...
       libbpf: failed to load program 'iter/netlink'
       libbpf: failed to load object 'bpf_iter_netlink'
       libbpf: failed to load BPF skeleton 'bpf_iter_netlink': -4007
       test_netlink:FAIL:bpf_iter_netlink__open_and_load skeleton open_and_load failed
       #3/3 netlink:FAIL
    The dmesg shows the following errors:
       ex gen bug
    which is triggered by the following code in arch/x86/net/bpf_jit_comp.c:
       if (excnt >= bpf_prog->aux->num_exentries) {
         pr_err("ex gen bug\n");
         return -EFAULT;
       }
    
    This patch fixes the issue by computing proper num_exentries for each
    subprogram before calling JIT.
    
    Signed-off-by: Yonghong Song <yhs@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 81cab381b9098b3a02db5e1c07ab91b4c82d011c
Author: Jacky Hu <hengqing.hu@gmail.com>
Date:   Tue Jun 16 09:50:24 2020 +0800

    pinctrl: amd: fix npins for uart0 in kerncz_groups
    
    [ Upstream commit 69339d083dfb7786b0e0b3fc19eaddcf11fabdfb ]
    
    uart0_pins is defined as:
    static const unsigned uart0_pins[] = {135, 136, 137, 138, 139};
    
    which npins is wronly specified as 9 later
            {
                    .name = "uart0",
                    .pins = uart0_pins,
                    .npins = 9,
            },
    
    npins should be 5 instead of 9 according to the definition.
    
    Signed-off-by: Jacky Hu <hengqing.hu@gmail.com>
    Link: https://lore.kernel.org/r/20200616015024.287683-1-hengqing.hu@gmail.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bcf30d452ff700b58261e5cdf2bf411311c2d9eb
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Thu Jun 4 22:00:52 2020 -0500

    gpio: arizona: put pm_runtime in case of failure
    
    [ Upstream commit 861254d826499944cb4d9b5a15f5a794a6b99a69 ]
    
    Calling pm_runtime_get_sync increments the counter even in case of
    failure, causing incorrect ref count if pm_runtime_put is not called in
    error handling paths. Call pm_runtime_put if pm_runtime_get_sync fails.
    
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20200605030052.78235-1-navid.emamdoost@gmail.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a523fb26dafefb64fd904fef834dfb6c8a805e3c
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Thu Jun 4 21:52:07 2020 -0500

    gpio: arizona: handle pm_runtime_get_sync failure case
    
    [ Upstream commit e6f390a834b56583e6fc0949822644ce92fbb107 ]
    
    Calling pm_runtime_get_sync increments the counter even in case of
    failure, causing incorrect ref count. Call pm_runtime_put if
    pm_runtime_get_sync fails.
    
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20200605025207.65719-1-navid.emamdoost@gmail.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aa5d7aaa5aa95ebecb8ccbf6df914939e00aa712
Author: Douglas Anderson <dianders@chromium.org>
Date:   Fri Apr 17 14:15:47 2020 -0700

    soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner
    
    commit 35bb4b22f606c0cc8eedf567313adc18161b1af4 upstream.
    
    Adding an item into the cache should never be able to make the cache
    cleaner.  Use "|=" rather than "=" to update the dirty flag.
    
    Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
    Reviewed-by: Maulik Shah <mkshah@codeaurora.org> Thanks, Maulik
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Fixes: bb7000677a1b ("soc: qcom: rpmh: Update dirty flag only when data changes")
    Reported-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Link: https://lore.kernel.org/r/20200417141531.1.Ia4b74158497213eabad7c3d474c50bfccb3f342e@changeid
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>