| From 675faf5a14c14a2be0b870db30a70764df81e2df Mon Sep 17 00:00:00 2001 |
| From: KhaiWenTan <khai.wen.tan@linux.intel.com> |
| Date: Wed, 18 Sep 2024 14:14:22 +0800 |
| Subject: net: stmmac: Fix zero-division error when disabling tc cbs |
| |
| From: KhaiWenTan <khai.wen.tan@linux.intel.com> |
| |
| 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> |
| --- |
| drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- 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_pr |
| return ret; |
| |
| priv->plat->tx_queues_cfg[queue].mode_to_use = MTL_QUEUE_DCB; |
| + return 0; |
| } |
| |
| /* Final adjustments for HW */ |