page_pool: split types and declarations from page_pool.h
[platform/kernel/linux-rpi.git] / include / linux / skbuff.h
index 91ed669..888e3d7 100644 (file)
@@ -32,7 +32,7 @@
 #include <linux/if_packet.h>
 #include <linux/llist.h>
 #include <net/flow.h>
-#include <net/page_pool.h>
+#include <net/page_pool/types.h>
 #if IS_ENABLED(CONFIG_NF_CONNTRACK)
 #include <linux/netfilter/nf_conntrack_common.h>
 #endif
@@ -441,8 +441,6 @@ static inline bool skb_frag_must_loop(struct page *p)
             copied += p_len, p++, p_off = 0,                           \
             p_len = min_t(u32, f_len - copied, PAGE_SIZE))             \
 
-#define HAVE_HW_TIME_STAMP
-
 /**
  * struct skb_shared_hwtstamps - hardware time stamps
  * @hwtstamp:          hardware time stamp transformed into duration
@@ -944,7 +942,7 @@ struct sk_buff {
        __u8                    __mono_tc_offset[0];
        /* public: */
        __u8                    mono_delivery_time:1;   /* See SKB_MONO_DELIVERY_TIME_MASK */
-#ifdef CONFIG_NET_CLS_ACT
+#ifdef CONFIG_NET_XGRESS
        __u8                    tc_at_ingress:1;        /* See TC_AT_INGRESS_MASK */
        __u8                    tc_skip_classify:1;
 #endif
@@ -993,7 +991,7 @@ struct sk_buff {
        __u8                    csum_not_inet:1;
 #endif
 
-#ifdef CONFIG_NET_SCHED
+#if defined(CONFIG_NET_SCHED) || defined(CONFIG_NET_XGRESS)
        __u16                   tc_index;       /* traffic control index */
 #endif
 
@@ -4023,7 +4021,7 @@ __skb_header_pointer(const struct sk_buff *skb, int offset, int len,
        if (likely(hlen - offset >= len))
                return (void *)data + offset;
 
-       if (!skb || !buffer || unlikely(skb_copy_bits(skb, offset, buffer, len) < 0))
+       if (!skb || unlikely(skb_copy_bits(skb, offset, buffer, len) < 0))
                return NULL;
 
        return buffer;
@@ -4036,6 +4034,14 @@ skb_header_pointer(const struct sk_buff *skb, int offset, int len, void *buffer)
                                    skb_headlen(skb), buffer);
 }
 
+static inline void * __must_check
+skb_pointer_if_linear(const struct sk_buff *skb, int offset, int len)
+{
+       if (likely(skb_headlen(skb) - offset >= len))
+               return skb->data + offset;
+       return NULL;
+}
+
 /**
  *     skb_needs_linearize - check if we need to linearize a given skb
  *                           depending on the given device features.