mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 16:44:10 +08:00
[IPV4] udp: trim forgets about CHECKSUM_HW
A UDP packet may contain extra data that needs to be trimmed off. But when doing so, UDP forgets to fixup the skb checksum if CHECKSUM_HW is being used. I think this explains the case of a NFS receive using skge driver causing 'udp hw checksum failures' when interacting with a crufty settop box. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0e4e4220f1
commit
e308e25c97
@ -1141,7 +1141,7 @@ int udp_rcv(struct sk_buff *skb)
|
||||
if (ulen > len || ulen < sizeof(*uh))
|
||||
goto short_packet;
|
||||
|
||||
if (pskb_trim(skb, ulen))
|
||||
if (pskb_trim_rcsum(skb, ulen))
|
||||
goto short_packet;
|
||||
|
||||
if (udp_checksum_init(skb, uh, ulen, saddr, daddr) < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user