From: Greg Kroah-Hartman Date: Sat, 5 Mar 2022 22:53:30 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v4.9.305~40 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=636ab5b6939e4ff6c698c599583467740b2b91fa;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: iavf-do-not-override-the-adapter-state-in-the-watchdog-task-again.patch iavf-missing-unlocks-in-iavf_watchdog_task.patch net-stmmac-perserve-tx-and-rx-coalesce-value-during-xdp-setup.patch --- diff --git a/queue-5.15/iavf-do-not-override-the-adapter-state-in-the-watchdog-task-again.patch b/queue-5.15/iavf-do-not-override-the-adapter-state-in-the-watchdog-task-again.patch new file mode 100644 index 00000000000..d42767f39ac --- /dev/null +++ b/queue-5.15/iavf-do-not-override-the-adapter-state-in-the-watchdog-task-again.patch @@ -0,0 +1,35 @@ +From fe523d7c9a8332855376ad5eb1aa301091129ba4 Mon Sep 17 00:00:00 2001 +From: Stefan Assmann +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 + +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 +Tested-by: Konrad Jankowski +Signed-off-by: Tony Nguyen +Signed-off-by: Greg Kroah-Hartman +--- + 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; diff --git a/queue-5.15/iavf-missing-unlocks-in-iavf_watchdog_task.patch b/queue-5.15/iavf-missing-unlocks-in-iavf_watchdog_task.patch new file mode 100644 index 00000000000..5f744b85f66 --- /dev/null +++ b/queue-5.15/iavf-missing-unlocks-in-iavf_watchdog_task.patch @@ -0,0 +1,41 @@ +From bc2f39a6252ee40d9bfc2743d4437d420aec5f6e Mon Sep 17 00:00:00 2001 +From: Dan Carpenter +Date: Wed, 10 Nov 2021 11:13:50 +0300 +Subject: iavf: missing unlocks in iavf_watchdog_task() + +From: Dan Carpenter + +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 +Tested-by: Konrad Jankowski +Signed-off-by: Tony Nguyen +Signed-off-by: Greg Kroah-Hartman +--- + 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; + } + diff --git a/queue-5.15/net-stmmac-perserve-tx-and-rx-coalesce-value-during-xdp-setup.patch b/queue-5.15/net-stmmac-perserve-tx-and-rx-coalesce-value-during-xdp-setup.patch new file mode 100644 index 00000000000..8d99ca14b32 --- /dev/null +++ b/queue-5.15/net-stmmac-perserve-tx-and-rx-coalesce-value-during-xdp-setup.patch @@ -0,0 +1,45 @@ +From 61da6ac715700bcfeef50d187e15c6cc7c9d079b Mon Sep 17 00:00:00 2001 +From: Ong Boon Leong +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 + +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 +Tested-by: Kurt Kanzenbach +Link: https://lore.kernel.org/r/20211124114019.3949125-1-boon.leong.ong@intel.com +Signed-off-by: Jakub Kicinski +Signed-off-by: Greg Kroah-Hartman +--- + 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; diff --git a/queue-5.15/series b/queue-5.15/series index dd1a6f94a9c..36176eae5b3 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -240,3 +240,6 @@ nl80211-handle-nla_memdup-failures-in-handle_nan_fil.patch 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