--- /dev/null
+From fe523d7c9a8332855376ad5eb1aa301091129ba4 Mon Sep 17 00:00:00 2001
+From: Stefan Assmann <sassmann@kpanic.de>
+Date: Wed, 1 Dec 2021 09:14:34 +0100
+Subject: iavf: do not override the adapter state in the watchdog task (again)
+
+From: Stefan Assmann <sassmann@kpanic.de>
+
+commit fe523d7c9a8332855376ad5eb1aa301091129ba4 upstream.
+
+The watchdog task incorrectly changes the state to __IAVF_RESETTING,
+instead of letting the reset task take care of that. This was already
+resolved by commit 22c8fd71d3a5 ("iavf: do not override the adapter
+state in the watchdog task") but the problem was reintroduced by the
+recent code refactoring in commit 45eebd62999d ("iavf: Refactor iavf
+state machine tracking").
+
+Fixes: 45eebd62999d ("iavf: Refactor iavf state machine tracking")
+Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
+Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
+Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/intel/iavf/iavf_main.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/net/ethernet/intel/iavf/iavf_main.c
++++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
+@@ -2110,7 +2110,6 @@ static void iavf_watchdog_task(struct wo
+ /* check for hw reset */
+ reg_val = rd32(hw, IAVF_VF_ARQLEN1) & IAVF_VF_ARQLEN1_ARQENABLE_MASK;
+ if (!reg_val) {
+- iavf_change_state(adapter, __IAVF_RESETTING);
+ adapter->flags |= IAVF_FLAG_RESET_PENDING;
+ adapter->aq_required = 0;
+ adapter->current_op = VIRTCHNL_OP_UNKNOWN;
--- /dev/null
+From bc2f39a6252ee40d9bfc2743d4437d420aec5f6e Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Wed, 10 Nov 2021 11:13:50 +0300
+Subject: iavf: missing unlocks in iavf_watchdog_task()
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit bc2f39a6252ee40d9bfc2743d4437d420aec5f6e upstream.
+
+This code was re-organized and there some unlocks missing now.
+
+Fixes: 898ef1cb1cb2 ("iavf: Combine init and watchdog state machines")
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
+Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/intel/iavf/iavf_main.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/intel/iavf/iavf_main.c
++++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
+@@ -2071,6 +2071,7 @@ static void iavf_watchdog_task(struct wo
+ }
+ adapter->aq_required = 0;
+ adapter->current_op = VIRTCHNL_OP_UNKNOWN;
++ mutex_unlock(&adapter->crit_lock);
+ queue_delayed_work(iavf_wq,
+ &adapter->watchdog_task,
+ msecs_to_jiffies(10));
+@@ -2101,9 +2102,8 @@ static void iavf_watchdog_task(struct wo
+ iavf_detect_recover_hung(&adapter->vsi);
+ break;
+ case __IAVF_REMOVE:
+- mutex_unlock(&adapter->crit_lock);
+- return;
+ default:
++ mutex_unlock(&adapter->crit_lock);
+ return;
+ }
+
--- /dev/null
+From 61da6ac715700bcfeef50d187e15c6cc7c9d079b Mon Sep 17 00:00:00 2001
+From: Ong Boon Leong <boon.leong.ong@intel.com>
+Date: Wed, 24 Nov 2021 19:40:19 +0800
+Subject: net: stmmac: perserve TX and RX coalesce value during XDP setup
+
+From: Ong Boon Leong <boon.leong.ong@intel.com>
+
+commit 61da6ac715700bcfeef50d187e15c6cc7c9d079b upstream.
+
+When XDP program is loaded, it is desirable that the previous TX and RX
+coalesce values are not re-inited to its default value. This prevents
+unnecessary re-configurig the coalesce values that were working fine
+before.
+
+Fixes: ac746c8520d9 ("net: stmmac: enhance XDP ZC driver level switching performance")
+Signed-off-by: Ong Boon Leong <boon.leong.ong@intel.com>
+Tested-by: Kurt Kanzenbach <kurt@linutronix.de>
+Link: https://lore.kernel.org/r/20211124114019.3949125-1-boon.leong.ong@intel.com
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+@@ -6579,6 +6579,9 @@ int stmmac_xdp_open(struct net_device *d
+ tx_q->tx_tail_addr = tx_q->dma_tx_phy;
+ stmmac_set_tx_tail_ptr(priv, priv->ioaddr,
+ tx_q->tx_tail_addr, chan);
++
++ hrtimer_init(&tx_q->txtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ tx_q->txtimer.function = stmmac_tx_timer;
+ }
+
+ /* Enable the MAC Rx/Tx */
+@@ -6587,8 +6590,6 @@ int stmmac_xdp_open(struct net_device *d
+ /* Start Rx & Tx DMA Channels */
+ stmmac_start_all_dma(priv);
+
+- stmmac_init_coalesce(priv);
+-
+ ret = stmmac_request_irq(dev);
+ if (ret)
+ goto irq_error;
drm-amdgpu-fix-suspend-resume-hang-regression.patch
net-dcb-disable-softirqs-in-dcbnl_flush_dev.patch
selftests-mlxsw-resource_scale-fix-return-value.patch
+net-stmmac-perserve-tx-and-rx-coalesce-value-during-xdp-setup.patch
+iavf-do-not-override-the-adapter-state-in-the-watchdog-task-again.patch
+iavf-missing-unlocks-in-iavf_watchdog_task.patch