From c622970f83e756f8e914c945d2b1044a2b21c158 Mon Sep 17 00:00:00 2001 From: Pravin B Shelar Date: Sat, 2 Mar 2013 23:53:52 -0800 Subject: [PATCH 1/1] datapath: Backport skb_frag_ functions Define accessors skb_frag_* functions whch were introduced in 3.2 Signed-off-by: Pravin B Shelar --- datapath/linux/compat/include/linux/skbuff.h | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/datapath/linux/compat/include/linux/skbuff.h b/datapath/linux/compat/include/linux/skbuff.h index a5f87020b..be134d724 100644 --- a/datapath/linux/compat/include/linux/skbuff.h +++ b/datapath/linux/compat/include/linux/skbuff.h @@ -194,6 +194,34 @@ static inline struct page *skb_frag_page(const skb_frag_t *frag) { return frag->page; } + +static inline void __skb_frag_set_page(skb_frag_t *frag, struct page *page) +{ + frag->page = page; +} +static inline void skb_frag_size_set(skb_frag_t *frag, unsigned int size) +{ + frag->size = size; +} +static inline void __skb_frag_ref(skb_frag_t *frag) +{ + get_page(skb_frag_page(frag)); +} +static inline void __skb_frag_unref(skb_frag_t *frag) +{ + put_page(skb_frag_page(frag)); +} + +static inline void skb_frag_ref(struct sk_buff *skb, int f) +{ + __skb_frag_ref(&skb_shinfo(skb)->frags[f]); +} + +static inline void skb_frag_unref(struct sk_buff *skb, int f) +{ + __skb_frag_unref(&skb_shinfo(skb)->frags[f]); +} + #endif #ifndef HAVE_SKB_RESET_MAC_LEN -- 2.43.0