aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/skbuff.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r--include/linux/skbuff.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 23710a243439..02529fcad1ac 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2942,6 +2942,26 @@ static inline __wsum null_compute_pseudo(struct sk_buff *skb, int proto)
2942#define skb_checksum_simple_validate(skb) \ 2942#define skb_checksum_simple_validate(skb) \
2943 __skb_checksum_validate(skb, 0, true, false, 0, null_compute_pseudo) 2943 __skb_checksum_validate(skb, 0, true, false, 0, null_compute_pseudo)
2944 2944
2945static inline bool __skb_checksum_convert_check(struct sk_buff *skb)
2946{
2947 return (skb->ip_summed == CHECKSUM_NONE &&
2948 skb->csum_valid && !skb->csum_bad);
2949}
2950
2951static inline void __skb_checksum_convert(struct sk_buff *skb,
2952 __sum16 check, __wsum pseudo)
2953{
2954 skb->csum = ~pseudo;
2955 skb->ip_summed = CHECKSUM_COMPLETE;
2956}
2957
2958#define skb_checksum_try_convert(skb, proto, check, compute_pseudo) \
2959do { \
2960 if (__skb_checksum_convert_check(skb)) \
2961 __skb_checksum_convert(skb, check, \
2962 compute_pseudo(skb, proto)); \
2963} while (0)
2964
2945#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) 2965#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
2946void nf_conntrack_destroy(struct nf_conntrack *nfct); 2966void nf_conntrack_destroy(struct nf_conntrack *nfct);
2947static inline void nf_conntrack_put(struct nf_conntrack *nfct) 2967static inline void nf_conntrack_put(struct nf_conntrack *nfct)