mirror of https://gitee.com/openkylin/linux.git
udp: call __skb_checksum_complete when doing full checksum
In __udp_lib_checksum_complete check if checksum is being done over all the data (len is equal to skb->len) and if it is call __skb_checksum_complete instead of __skb_checksum_complete_head. This allows checksum to be saved in checksum complete. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
46fb51eb96
commit
bbdff225ed
|
@ -111,7 +111,9 @@ struct sk_buff;
|
|||
*/
|
||||
static inline __sum16 __udp_lib_checksum_complete(struct sk_buff *skb)
|
||||
{
|
||||
return __skb_checksum_complete_head(skb, UDP_SKB_CB(skb)->cscov);
|
||||
return (UDP_SKB_CB(skb)->cscov == skb->len ?
|
||||
__skb_checksum_complete(skb) :
|
||||
__skb_checksum_complete_head(skb, UDP_SKB_CB(skb)->cscov));
|
||||
}
|
||||
|
||||
static inline int udp_lib_checksum_complete(struct sk_buff *skb)
|
||||
|
|
Loading…
Reference in New Issue