diff options
-rw-r--r-- | include/net/udp.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/net/udp.h b/include/net/udp.h index 2ecfc6e15609..68a1fefe3dfe 100644 --- a/include/net/udp.h +++ b/include/net/udp.h | |||
@@ -111,7 +111,9 @@ struct sk_buff; | |||
111 | */ | 111 | */ |
112 | static inline __sum16 __udp_lib_checksum_complete(struct sk_buff *skb) | 112 | static inline __sum16 __udp_lib_checksum_complete(struct sk_buff *skb) |
113 | { | 113 | { |
114 | return __skb_checksum_complete_head(skb, UDP_SKB_CB(skb)->cscov); | 114 | return (UDP_SKB_CB(skb)->cscov == skb->len ? |
115 | __skb_checksum_complete(skb) : | ||
116 | __skb_checksum_complete_head(skb, UDP_SKB_CB(skb)->cscov)); | ||
115 | } | 117 | } |
116 | 118 | ||
117 | static inline int udp_lib_checksum_complete(struct sk_buff *skb) | 119 | static inline int udp_lib_checksum_complete(struct sk_buff *skb) |