summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhaiWenTan <khai.wen.tan@linux.intel.com>2024-09-18 14:14:22 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-10-10 12:01:03 +0200
commite297a2bf56d12fd7f91a0c209eb6ea84361f3368 (patch)
treed859fd2beddb5312fd73c8b03295b910ad436749
parente9cf96d3d036e5eeadd8163d6cd0be5fef85b718 (diff)
downloadlinux-stable-e297a2bf56d12fd7f91a0c209eb6ea84361f3368.tar.gz
linux-stable-e297a2bf56d12fd7f91a0c209eb6ea84361f3368.tar.bz2
linux-stable-e297a2bf56d12fd7f91a0c209eb6ea84361f3368.zip
net: stmmac: Fix zero-division error when disabling tc cbs
commit 675faf5a14c14a2be0b870db30a70764df81e2df upstream. The commit b8c43360f6e4 ("net: stmmac: No need to calculate speed divider when offload is disabled") allows the "port_transmit_rate_kbps" to be set to a value of 0, which is then passed to the "div_s64" function when tc-cbs is disabled. This leads to a zero-division error. When tc-cbs is disabled, the idleslope, sendslope, and credit values the credit values are not required to be configured. Therefore, adding a return statement after setting the txQ mode to DCB when tc-cbs is disabled would prevent a zero-division error. Fixes: b8c43360f6e4 ("net: stmmac: No need to calculate speed divider when offload is disabled") Cc: <stable@vger.kernel.org> Co-developed-by: Choong Yong Liang <yong.liang.choong@linux.intel.com> Signed-off-by: Choong Yong Liang <yong.liang.choong@linux.intel.com> Signed-off-by: KhaiWenTan <khai.wen.tan@linux.intel.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20240918061422.1589662-1-khai.wen.tan@linux.intel.com Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
index 996f2bcd07a2..308ef4241768 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
@@ -396,6 +396,7 @@ static int tc_setup_cbs(struct stmmac_priv *priv,
return ret;
priv->plat->tx_queues_cfg[queue].mode_to_use = MTL_QUEUE_DCB;
+ return 0;
}
/* Final adjustments for HW */