net: add skb frag size accessors
[pandora-kernel.git] / include / linux / skbuff.h
index 64f8695..6fcbbbd 100644 (file)
@@ -150,6 +150,26 @@ struct skb_frag_struct {
 #endif
 };
 
+static inline unsigned int skb_frag_size(const skb_frag_t *frag)
+{
+       return frag->size;
+}
+
+static inline void skb_frag_size_set(skb_frag_t *frag, unsigned int size)
+{
+       frag->size = size;
+}
+
+static inline void skb_frag_size_add(skb_frag_t *frag, int delta)
+{
+       frag->size += delta;
+}
+
+static inline void skb_frag_size_sub(skb_frag_t *frag, int delta)
+{
+       frag->size -= delta;
+}
+
 #define HAVE_HW_TIME_STAMP
 
 /**
@@ -1132,7 +1152,7 @@ static inline int skb_pagelen(const struct sk_buff *skb)
        int i, len = 0;
 
        for (i = (int)skb_shinfo(skb)->nr_frags - 1; i >= 0; i--)
-               len += skb_shinfo(skb)->frags[i].size;
+               len += skb_frag_size(&skb_shinfo(skb)->frags[i]);
        return len + skb_headlen(skb);
 }
 
@@ -1156,7 +1176,7 @@ static inline void __skb_fill_page_desc(struct sk_buff *skb, int i,
 
        frag->page                = page;
        frag->page_offset         = off;
-       frag->size                = size;
+       skb_frag_size_set(frag, size);
 }
 
 /**
@@ -1907,10 +1927,10 @@ static inline int skb_can_coalesce(struct sk_buff *skb, int i,
                                   const struct page *page, int off)
 {
        if (i) {
-               struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i - 1];
+               const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i - 1];
 
                return page == skb_frag_page(frag) &&
-                      off == frag->page_offset + frag->size;
+                      off == frag->page_offset + skb_frag_size(frag);
        }
        return 0;
 }