#endif /* !HAVE_SKB_COPY_FROM_LINEAR_DATA_OFFSET */
+#ifndef HAVE_SKB_RESET_TAIL_POINTER
+static inline void skb_reset_tail_pointer(struct sk_buff *skb)
+{
+ skb->tail = skb->data;
+}
+#endif
/*
* The networking layer reserves some headroom in skb data (via
* dev_alloc_skb). This is used to avoid having to reallocate skb data when
#define consume_skb kfree_skb
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
+static inline struct page *skb_frag_page(const skb_frag_t *frag)
+{
+ return frag->page;
+}
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40)
+static inline void skb_reset_mac_len(struct sk_buff *skb)
+{
+ skb->mac_len = skb->network_header - skb->mac_header;
+}
+#endif
#endif