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) |
