Skip to content

Commit b8c4336

Browse files
xiaoleiwang123456kuba-moo
authored andcommitted
net: stmmac: No need to calculate speed divider when offload is disabled
commit be27b89 ("net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters") introduced a problem. When deleting, it prompts "Invalid portTransmitRate 0 (idleSlope - sendSlope)" and exits. Add judgment on cbs.enable. Only when offload is enabled, speed divider needs to be calculated. Fixes: be27b89 ("net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters") Signed-off-by: Xiaolei Wang <[email protected]> Reviewed-by: Simon Horman <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 40a64cc commit b8c4336

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -358,24 +358,28 @@ static int tc_setup_cbs(struct stmmac_priv *priv,
358358

359359
port_transmit_rate_kbps = qopt->idleslope - qopt->sendslope;
360360

361-
/* Port Transmit Rate and Speed Divider */
362-
switch (div_s64(port_transmit_rate_kbps, 1000)) {
363-
case SPEED_10000:
364-
case SPEED_5000:
365-
ptr = 32;
366-
break;
367-
case SPEED_2500:
368-
case SPEED_1000:
369-
ptr = 8;
370-
break;
371-
case SPEED_100:
372-
ptr = 4;
373-
break;
374-
default:
375-
netdev_err(priv->dev,
376-
"Invalid portTransmitRate %lld (idleSlope - sendSlope)\n",
377-
port_transmit_rate_kbps);
378-
return -EINVAL;
361+
if (qopt->enable) {
362+
/* Port Transmit Rate and Speed Divider */
363+
switch (div_s64(port_transmit_rate_kbps, 1000)) {
364+
case SPEED_10000:
365+
case SPEED_5000:
366+
ptr = 32;
367+
break;
368+
case SPEED_2500:
369+
case SPEED_1000:
370+
ptr = 8;
371+
break;
372+
case SPEED_100:
373+
ptr = 4;
374+
break;
375+
default:
376+
netdev_err(priv->dev,
377+
"Invalid portTransmitRate %lld (idleSlope - sendSlope)\n",
378+
port_transmit_rate_kbps);
379+
return -EINVAL;
380+
}
381+
} else {
382+
ptr = 0;
379383
}
380384

381385
mode_to_use = priv->plat->tx_queues_cfg[queue].mode_to_use;

0 commit comments

Comments
 (0)