[PATCH net-next] net: bgmac: stop advertising TX checksum offload
From: Rosen Penev
Date: Mon Nov 02 2026 - 16:58:24 EST
The driver advertises NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM, but
bgmac_dma_tx_add() calls skb_checksum_help() on every CHECKSUM_PARTIAL
skb, so the checksum is always computed in software anyway. The return
value is ignored too, so if skb_checksum_help() fails the frame is sent
with a bad checksum.
Remove the feature flags and the fallback. The stack then computes the
checksum before handing the skb to the driver.
Tested on an ASUS RT-N16.
Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
---
drivers/net/ethernet/broadcom/bgmac.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c
index 2dff43f540d3..822903a3ac6e 100644
--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
@@ -145,9 +145,6 @@ static netdev_tx_t bgmac_dma_tx_add(struct bgmac *bgmac,
goto err_drop;
}
- if (skb->ip_summed == CHECKSUM_PARTIAL)
- skb_checksum_help(skb);
-
nr_frags = skb_shinfo(skb)->nr_frags;
/* ring->end - ring->start will return the number of valid slots,
@@ -1574,7 +1571,7 @@ int bgmac_enet_probe(struct bgmac *bgmac)
goto err_dma_free;
}
- net_dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
+ net_dev->features = NETIF_F_SG;
net_dev->hw_features = net_dev->features;
net_dev->vlan_features = net_dev->features;
--
2.56.0