mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 22:52:19 +02:00
net: libwx: fix Tx L4 checksum
The hardware only supports L4 checksum offload for TCP/UDP/SCTP protocol.
There was a bug to set Tx checksum flag for the other protocol that results
in Tx ring hang. Fix to compute software checksum for these packets.
Fixes: 3403960cdf ("net: wangxun: libwx add tx offload functions")
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
Link: https://patch.msgid.link/20250324103235.823096-2-jiawenwu@trustnetic.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
a44940d094
commit
c7d82913d5
|
|
@ -1337,6 +1337,7 @@ static void wx_tx_csum(struct wx_ring *tx_ring, struct wx_tx_buffer *first,
|
|||
u8 tun_prot = 0;
|
||||
|
||||
if (skb->ip_summed != CHECKSUM_PARTIAL) {
|
||||
csum_failed:
|
||||
if (!(first->tx_flags & WX_TX_FLAGS_HW_VLAN) &&
|
||||
!(first->tx_flags & WX_TX_FLAGS_CC))
|
||||
return;
|
||||
|
|
@ -1441,7 +1442,8 @@ static void wx_tx_csum(struct wx_ring *tx_ring, struct wx_tx_buffer *first,
|
|||
WX_TXD_L4LEN_SHIFT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
skb_checksum_help(skb);
|
||||
goto csum_failed;
|
||||
}
|
||||
|
||||
/* update TX checksum flag */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user