diff options
| author | Paul Barker <paul.barker.ct@bp.renesas.com> | 2024-04-16 13:02:53 +0100 | 
|---|---|---|
| committer | Paolo Abeni <pabeni@redhat.com> | 2024-04-18 11:34:28 +0200 | 
| commit | c7c449502b51c5b5de79f97a42be750b28f6ecee (patch) | |
| tree | e9c105b9d3280c242468db6cfb7e30f76f05f18d /drivers | |
| parent | a892493a343494bd6bab9d098593932077ff3c43 (diff) | |
net: ravb: Fix GbEth jumbo packet RX checksum handling
Sending a 7kB ping packet to the RZ/G2L in v6.9-rc2 causes the following
backtrace:
	WARNING: CPU: 0 PID: 0 at include/linux/skbuff.h:3127 skb_trim+0x30/0x38
	Hardware name: Renesas SMARC EVK based on r9a07g044l2 (DT)
	pc : skb_trim+0x30/0x38
	lr : ravb_rx_csum_gbeth+0x40/0x90
	Call trace:
	 skb_trim+0x30/0x38
	 ravb_rx_gbeth+0x56c/0x5cc
	 ravb_poll+0xa0/0x204
	 __napi_poll+0x38/0x17c
This is caused by ravb_rx_gbeth() calling ravb_rx_csum_gbeth() with the
wrong skb for a packet which spans multiple descriptors. To fix this,
use the correct skb.
Fixes: c2da9408579d ("ravb: Add Rx checksum offload support for GbEth")
Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/ethernet/renesas/ravb_main.c | 2 | 
1 files changed, 1 insertions, 1 deletions
| diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 3b870926af14..6969cdeeb67a 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -843,7 +843,7 @@ static bool ravb_rx_gbeth(struct net_device *ndev, int *quota, int q)  				priv->rx_1st_skb->protocol =  					eth_type_trans(priv->rx_1st_skb, ndev);  				if (ndev->features & NETIF_F_RXCSUM) -					ravb_rx_csum_gbeth(skb); +					ravb_rx_csum_gbeth(priv->rx_1st_skb);  				napi_gro_receive(&priv->napi[q],  						 priv->rx_1st_skb);  				rx_packets++; | 
