diff options
author | Ian Campbell <Ian.Campbell@citrix.com> | 2011-10-19 19:01:49 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-10-21 02:52:53 -0400 |
commit | a8605c6063f785858c1bc431d0bfe66c41e71cfa (patch) | |
tree | 42ce7ce9a1679f09b54353dd1ea05a6581abe754 /include/linux/skbuff.h | |
parent | 6a39a16a5ac07a156de91cfb9422bde574e59fa6 (diff) |
net: add opaque struct around skb frag page
I've split this bit out of the skb frag destructor patch since it helps enforce
the use of the fragment API.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r-- | include/linux/skbuff.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 3411f22e7d16..94a23ffcc073 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -140,7 +140,9 @@ struct sk_buff; | |||
140 | typedef struct skb_frag_struct skb_frag_t; | 140 | typedef struct skb_frag_struct skb_frag_t; |
141 | 141 | ||
142 | struct skb_frag_struct { | 142 | struct skb_frag_struct { |
143 | struct page *page; | 143 | struct { |
144 | struct page *p; | ||
145 | } page; | ||
144 | #if (BITS_PER_LONG > 32) || (PAGE_SIZE >= 65536) | 146 | #if (BITS_PER_LONG > 32) || (PAGE_SIZE >= 65536) |
145 | __u32 page_offset; | 147 | __u32 page_offset; |
146 | __u32 size; | 148 | __u32 size; |
@@ -1175,7 +1177,7 @@ static inline void __skb_fill_page_desc(struct sk_buff *skb, int i, | |||
1175 | { | 1177 | { |
1176 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; | 1178 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
1177 | 1179 | ||
1178 | frag->page = page; | 1180 | frag->page.p = page; |
1179 | frag->page_offset = off; | 1181 | frag->page_offset = off; |
1180 | skb_frag_size_set(frag, size); | 1182 | skb_frag_size_set(frag, size); |
1181 | } | 1183 | } |
@@ -1699,7 +1701,7 @@ static inline void netdev_free_page(struct net_device *dev, struct page *page) | |||
1699 | */ | 1701 | */ |
1700 | static inline struct page *skb_frag_page(const skb_frag_t *frag) | 1702 | static inline struct page *skb_frag_page(const skb_frag_t *frag) |
1701 | { | 1703 | { |
1702 | return frag->page; | 1704 | return frag->page.p; |
1703 | } | 1705 | } |
1704 | 1706 | ||
1705 | /** | 1707 | /** |
@@ -1785,7 +1787,7 @@ static inline void *skb_frag_address_safe(const skb_frag_t *frag) | |||
1785 | */ | 1787 | */ |
1786 | static inline void __skb_frag_set_page(skb_frag_t *frag, struct page *page) | 1788 | static inline void __skb_frag_set_page(skb_frag_t *frag, struct page *page) |
1787 | { | 1789 | { |
1788 | frag->page = page; | 1790 | frag->page.p = page; |
1789 | } | 1791 | } |
1790 | 1792 | ||
1791 | /** | 1793 | /** |