commit 5c66974a63046780925e5d99b6dc6631fe2f9a31
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Aug 8 08:54:30 2021 +0200

    Linux 4.19.202
    
    Link: https://lore.kernel.org/r/20210806081111.144943357@linuxfoundation.org
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1706f008380a8421c3c7ee02abf7631fdfa2534d
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Sun Aug 1 20:00:23 2021 -0700

    spi: mediatek: Fix fifo transfer
    
    commit 0d5c3954b35eddff0da0436c31e8d721eceb7dc2 upstream.
    
    Commit 3a70dd2d0503 ("spi: mediatek: fix fifo rx mode") claims that
    fifo RX mode was never handled, and adds the presumably missing code
    to the FIFO transfer function. However, the claim that receive data
    was not handled is incorrect. It was handled as part of interrupt
    handling after the transfer was complete. The code added with the above
    mentioned commit reads data from the receive FIFO before the transfer
    is started, which is wrong. This results in an actual transfer error
    on a Hayato Chromebook.
    
    Remove the code trying to handle receive data before the transfer is
    started to fix the problem.
    
    Fixes: 3a70dd2d0503 ("spi: mediatek: fix fifo rx mode")
    Cc: Peter Hess <peter.hess@ph-home.de>
    Cc: Frank Wunderlich <frank-w@public-files.de>
    Cc: Tzung-Bi Shih <tzungbi@google.com>
    Cc: Hsin-Yi Wang <hsinyi@google.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Hsin-Yi Wang <hsinyi@google.com>
    Tested-by: Tzung-Bi Shih <tzungbi@google.com>
    Link: https://lore.kernel.org/r/20210802030023.1748777-1-linux@roeck-us.net
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93175d935d76f4a7220fe9111ba452bb5c512fa4
Author: Daniel Jordan <daniel.m.jordan@oracle.com>
Date:   Tue Apr 21 12:34:55 2020 -0400

    padata: add separate cpuhp node for CPUHP_PADATA_DEAD
    
    commit 3c2214b6027ff37945799de717c417212e1a8c54 upstream.
    
    Removing the pcrypt module triggers this:
    
      general protection fault, probably for non-canonical
        address 0xdead000000000122
      CPU: 5 PID: 264 Comm: modprobe Not tainted 5.6.0+ #2
      Hardware name: QEMU Standard PC
      RIP: 0010:__cpuhp_state_remove_instance+0xcc/0x120
      Call Trace:
       padata_sysfs_release+0x74/0xce
       kobject_put+0x81/0xd0
       padata_free+0x12/0x20
       pcrypt_exit+0x43/0x8ee [pcrypt]
    
    padata instances wrongly use the same hlist node for the online and dead
    states, so __padata_free()'s second cpuhp remove call chokes on the node
    that the first poisoned.
    
    cpuhp multi-instance callbacks only walk forward in cpuhp_step->list and
    the same node is linked in both the online and dead lists, so the list
    corruption that results from padata_alloc() adding the node to a second
    list without removing it from the first doesn't cause problems as long
    as no instances are freed.
    
    Avoid the issue by giving each state its own node.
    
    Fixes: 894c9ef9780c ("padata: validate cpumask without removed CPU during offline")
    Signed-off-by: Daniel Jordan <daniel.m.jordan@oracle.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Cc: linux-crypto@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org # v5.4+
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b1207801c393a5e9af2fbac2dd8b0377d8ae63a
Author: Daniel Jordan <daniel.m.jordan@oracle.com>
Date:   Tue Dec 3 14:31:10 2019 -0500

    padata: validate cpumask without removed CPU during offline
    
    commit 894c9ef9780c5cf2f143415e867ee39a33ecb75d upstream.
    
    Configuring an instance's parallel mask without any online CPUs...
    
      echo 2 > /sys/kernel/pcrypt/pencrypt/parallel_cpumask
      echo 0 > /sys/devices/system/cpu/cpu1/online
    
    ...makes tcrypt mode=215 crash like this:
    
      divide error: 0000 [#1] SMP PTI
      CPU: 4 PID: 283 Comm: modprobe Not tainted 5.4.0-rc8-padata-doc-v2+ #2
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ?-20191013_105130-anatol 04/01/2014
      RIP: 0010:padata_do_parallel+0x114/0x300
      Call Trace:
       pcrypt_aead_encrypt+0xc0/0xd0 [pcrypt]
       crypto_aead_encrypt+0x1f/0x30
       do_mult_aead_op+0x4e/0xdf [tcrypt]
       test_mb_aead_speed.constprop.0.cold+0x226/0x564 [tcrypt]
       do_test+0x28c2/0x4d49 [tcrypt]
       tcrypt_mod_init+0x55/0x1000 [tcrypt]
       ...
    
    cpumask_weight() in padata_cpu_hash() returns 0 because the mask has no
    CPUs.  The problem is __padata_remove_cpu() checks for valid masks too
    early and so doesn't mark the instance PADATA_INVALID as expected, which
    would have made padata_do_parallel() return error before doing the
    division.
    
    Fix by introducing a second padata CPU hotplug state before
    CPUHP_BRINGUP_CPU so that __padata_remove_cpu() sees the online mask
    without @cpu.  No need for the second argument to padata_replace() since
    @cpu is now already missing from the online mask.
    
    Fixes: 33e54450683c ("padata: Handle empty padata cpumasks")
    Signed-off-by: Daniel Jordan <daniel.m.jordan@oracle.com>
    Cc: Eric Biggers <ebiggers@kernel.org>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-crypto@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cbcb642a6dcaa21842fd1bab089efae3425f37e
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Aug 6 08:28:48 2021 +0200

    Revert "watchdog: iTCO_wdt: Account for rebooting on second timeout"
    
    This reverts commit 5bfbacfeadf864cb23dfe66c610ed036d5e48879 which is
    commit cb011044e34c293e139570ce5c01aed66a34345c upstream.
    
    It is reported to cause problems with systems and probably should not
    have been backported in the first place :(
    
    Link: https://lore.kernel.org/r/20210803165108.4154cd52@endymion
    Reported-by: Jean Delvare <jdelvare@suse.de>
    Cc: Jan Kiszka <jan.kiszka@siemens.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Wim Van Sebroeck <wim@linux-watchdog.org>
    Cc: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 193b1b15a4bd58736258e308ee26de9947649cb3
Author: Sudeep Holla <sudeep.holla@arm.com>
Date:   Thu Jun 24 10:50:59 2021 +0100

    firmware: arm_scmi: Ensure drivers provide a probe function
    
    commit 5e469dac326555d2038d199a6329458cc82a34e5 upstream.
    
    The bus probe callback calls the driver callback without further
    checking. Better be safe than sorry and refuse registration of a driver
    without a probe function to prevent a NULL pointer exception.
    
    Link: https://lore.kernel.org/r/20210624095059.4010157-2-sudeep.holla@arm.com
    Fixes: 933c504424a2 ("firmware: arm_scmi: add scmi protocol bus to enumerate protocol devices")
    Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Tested-by: Cristian Marussi <cristian.marussi@arm.com>
    Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0dcd7a637489394fa0b8a55019da609f6b3c13d5
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Tue Oct 16 15:29:38 2018 +0300

    drm/i915: Ensure intel_engine_init_execlist() builds with Clang
    
    commit 410ed5731a6566498a3aa904420aa2e49ba0ba90 upstream.
    
    Clang build with UBSAN enabled leads to the following build error:
    
    drivers/gpu/drm/i915/intel_engine_cs.o: In function `intel_engine_init_execlist':
    drivers/gpu/drm/i915/intel_engine_cs.c:411: undefined reference to `__compiletime_assert_411'
    
    Again, for this to work the code would first need to be inlined and then
    constant folded, which doesn't work for Clang because semantic analysis
    happens before optimization/inlining.
    
    Use GEM_BUG_ON() instead of BUILD_BUG_ON().
    
    v2: Use is_power_of_2() from log2.h (Chris)
    
    References: http://mid.mail-archive.com/20181015203410.155997-1-swboyd@chromium.org
    Reported-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Stephen Boyd <swboyd@chromium.org>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Tested-by: Nathan Chancellor <natechancellor@gmail.com>
    Tested-by: Stephen Boyd <swboyd@chromium.org>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20181016122938.18757-2-jani.nikula@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 608ba4af66a0b3c0bc15885ee14264abd099ae4e
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Aug 5 20:58:57 2021 +0200

    Revert "Bluetooth: Shutdown controller after workqueues are flushed or cancelled"
    
    This reverts commit 78b03389d2773255ceaf051f2dca134b816d96f2 which is
    commit 0ea9fd001a14ebc294f112b0361a4e601551d508 upstream.
    
    It has been reported to have problems:
            https://lore.kernel.org/linux-bluetooth/8735ryk0o7.fsf@baylibre.com/
    
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Cc: Marcel Holtmann <marcel@holtmann.org>
    Cc: Sasha Levin <sashal@kernel.org>
    Link: https://lore.kernel.org/r/efee3a58-a4d2-af22-0931-e81b877ab539@roeck-us.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6c434ae9d3b5cd1fcb8e3aa28172f3d79d81641
Author: Christoph Hellwig <hch@lst.de>
Date:   Mon May 4 14:47:56 2020 +0200

    bdi: add a ->dev_name field to struct backing_dev_info
    
    [ Upstream commit 6bd87eec23cbc9ed222bed0f5b5b02bf300e9a8d ]
    
    Cache a copy of the name for the life time of the backing_dev_info
    structure so that we can reference it even after unregistering.
    
    Fixes: 68f23b89067f ("memcg: fix a crash in wb_workfn when a device disappears")
    Reported-by: Yufen Yu <yuyufen@huawei.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 19a845e19ded4f81dad2a0941f44fb668ed25564
Author: Yufen Yu <yuyufen@huawei.com>
Date:   Mon May 4 14:47:55 2020 +0200

    bdi: use bdi_dev_name() to get device name
    
    [ Upstream commit d51cfc53ade3189455a1b88ec7a2ff0c24597cf8 ]
    
    Use the common interface bdi_dev_name() to get device name.
    
    Signed-off-by: Yufen Yu <yuyufen@huawei.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    
    Add missing <linux/backing-dev.h> include BFQ
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0129d7637fed08b8aa805362074fe4370a9290ea
Author: Christoph Hellwig <hch@lst.de>
Date:   Mon May 4 14:47:54 2020 +0200

    bdi: move bdi_dev_name out of line
    
    [ Upstream commit eb7ae5e06bb6e6ac6bb86872d27c43ebab92f6b2 ]
    
    bdi_dev_name is not a fast path function, move it out of line.  This
    prepares for using it from modular callers without having to export
    an implementation detail like bdi_unknown_name.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a66fdcda469a0e103fe105dc0c95536fa28dc733
Author: Pravin B Shelar <pshelar@ovn.org>
Date:   Thu Jul 15 16:59:00 2021 -0700

    net: Fix zero-copy head len calculation.
    
    [ Upstream commit a17ad0961706244dce48ec941f7e476a38c0e727 ]
    
    In some cases skb head could be locked and entire header
    data is pulled from skb. When skb_zerocopy() called in such cases,
    following BUG is triggered. This patch fixes it by copying entire
    skb in such cases.
    This could be optimized incase this is performance bottleneck.
    
    ---8<---
    kernel BUG at net/core/skbuff.c:2961!
    invalid opcode: 0000 [#1] SMP PTI
    CPU: 2 PID: 0 Comm: swapper/2 Tainted: G           OE     5.4.0-77-generic #86-Ubuntu
    Hardware name: OpenStack Foundation OpenStack Nova, BIOS 1.13.0-1ubuntu1.1 04/01/2014
    RIP: 0010:skb_zerocopy+0x37a/0x3a0
    RSP: 0018:ffffbcc70013ca38 EFLAGS: 00010246
    Call Trace:
     <IRQ>
     queue_userspace_packet+0x2af/0x5e0 [openvswitch]
     ovs_dp_upcall+0x3d/0x60 [openvswitch]
     ovs_dp_process_packet+0x125/0x150 [openvswitch]
     ovs_vport_receive+0x77/0xd0 [openvswitch]
     netdev_port_receive+0x87/0x130 [openvswitch]
     netdev_frame_hook+0x4b/0x60 [openvswitch]
     __netif_receive_skb_core+0x2b4/0xc90
     __netif_receive_skb_one_core+0x3f/0xa0
     __netif_receive_skb+0x18/0x60
     process_backlog+0xa9/0x160
     net_rx_action+0x142/0x390
     __do_softirq+0xe1/0x2d6
     irq_exit+0xae/0xb0
     do_IRQ+0x5a/0xf0
     common_interrupt+0xf/0xf
    
    Code that triggered BUG:
    int
    skb_zerocopy(struct sk_buff *to, struct sk_buff *from, int len, int hlen)
    {
            int i, j = 0;
            int plen = 0; /* length of skb->head fragment */
            int ret;
            struct page *page;
            unsigned int offset;
    
            BUG_ON(!from->head_frag && !hlen);
    
    Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6a6047bf892cc1ee2abe3a96e59c8fcbecbf9483
Author: Jia He <justin.he@arm.com>
Date:   Thu Jul 15 16:08:21 2021 +0800

    qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()
    
    [ Upstream commit 6206b7981a36476f4695d661ae139f7db36a802d ]
    
    Liajian reported a bug_on hit on a ThunderX2 arm64 server with FastLinQ
    QL41000 ethernet controller:
     BUG: scheduling while atomic: kworker/0:4/531/0x00000200
      [qed_probe:488()]hw prepare failed
      kernel BUG at mm/vmalloc.c:2355!
      Internal error: Oops - BUG: 0 [#1] SMP
      CPU: 0 PID: 531 Comm: kworker/0:4 Tainted: G W 5.4.0-77-generic #86-Ubuntu
      pstate: 00400009 (nzcv daif +PAN -UAO)
     Call trace:
      vunmap+0x4c/0x50
      iounmap+0x48/0x58
      qed_free_pci+0x60/0x80 [qed]
      qed_probe+0x35c/0x688 [qed]
      __qede_probe+0x88/0x5c8 [qede]
      qede_probe+0x60/0xe0 [qede]
      local_pci_probe+0x48/0xa0
      work_for_cpu_fn+0x24/0x38
      process_one_work+0x1d0/0x468
      worker_thread+0x238/0x4e0
      kthread+0xf0/0x118
      ret_from_fork+0x10/0x18
    
    In this case, qed_hw_prepare() returns error due to hw/fw error, but in
    theory work queue should be in process context instead of interrupt.
    
    The root cause might be the unpaired spin_{un}lock_bh() in
    _qed_mcp_cmd_and_union(), which causes botton half is disabled incorrectly.
    
    Reported-by: Lijian Zhang <Lijian.Zhang@arm.com>
    Signed-off-by: Jia He <justin.he@arm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b091d54444c6b6512903ce6758b841b1699c5bf
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Jul 14 19:00:21 2021 +0200

    r8152: Fix potential PM refcount imbalance
    
    [ Upstream commit 9c23aa51477a37f8b56c3c40192248db0663c196 ]
    
    rtl8152_close() takes the refcount via usb_autopm_get_interface() but
    it doesn't release when RTL8152_UNPLUG test hits.  This may lead to
    the imbalance of PM refcount.  This patch addresses it.
    
    Link: https://bugzilla.suse.com/show_bug.cgi?id=1186194
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40071bc72f52fd0ecc9122858e19644ff1fdcdaf
Author: Kyle Russell <bkylerussell@gmail.com>
Date:   Mon Jun 21 21:09:41 2021 -0400

    ASoC: tlv320aic31xx: fix reversed bclk/wclk master bits
    
    [ Upstream commit 9cf76a72af6ab81030dea6481b1d7bdd814fbdaf ]
    
    These are backwards from Table 7-71 of the TLV320AIC3100 spec [1].
    
    This was broken in 12eb4d66ba2e when BCLK_MASTER and WCLK_MASTER
    were converted from 0x08 and 0x04 to BIT(2) and BIT(3), respectively.
    
    -#define AIC31XX_BCLK_MASTER            0x08
    -#define AIC31XX_WCLK_MASTER            0x04
    +#define AIC31XX_BCLK_MASTER            BIT(2)
    +#define AIC31XX_WCLK_MASTER            BIT(3)
    
    Probably just a typo since the defines were not listed in bit order.
    
    [1] https://www.ti.com/lit/gpn/tlv320aic3100
    
    Signed-off-by: Kyle Russell <bkylerussell@gmail.com>
    Link: https://lore.kernel.org/r/20210622010941.241386-1-bkylerussell@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ce35fbada898e50673b4bd9878d1889fa1fd6a79
Author: Axel Lin <axel.lin@ingics.com>
Date:   Sun Jun 27 16:04:18 2021 +0800

    regulator: rt5033: Fix n_voltages settings for BUCK and LDO
    
    [ Upstream commit 6549c46af8551b346bcc0b9043f93848319acd5c ]
    
    For linear regulators, the n_voltages should be (max - min) / step + 1.
    
    Buck voltage from 1v to 3V, per step 100mV, and vout mask is 0x1f.
    If value is from 20 to 31, the voltage will all be fixed to 3V.
    And LDO also, just vout range is different from 1.2v to 3v, step is the
    same. If value is from 18 to 31, the voltage will also be fixed to 3v.
    
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Reviewed-by: ChiYuan Huang <cy_huang@richtek.com>
    Link: https://lore.kernel.org/r/20210627080418.1718127-1-axel.lin@ingics.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ad929b7bfb3f12afeb403d6df5a7cf1dd7dcad66
Author: Goldwyn Rodrigues <rgoldwyn@suse.de>
Date:   Mon Aug 2 09:32:06 2021 -0500

    btrfs: mark compressed range uptodate only if all bio succeed
    
    [ Upstream commit 240246f6b913b0c23733cfd2def1d283f8cc9bbe ]
    
    In compression write endio sequence, the range which the compressed_bio
    writes is marked as uptodate if the last bio of the compressed (sub)bios
    is completed successfully. There could be previous bio which may
    have failed which is recorded in cb->errors.
    
    Set the writeback range as uptodate only if cb->errors is zero, as opposed
    to checking only the last bio's status.
    
    Backporting notes: in all versions up to 4.4 the last argument is always
    replaced by "!cb->errors".
    
    CC: stable@vger.kernel.org # 4.4+
    Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>