浏览代码

net: skb_frag_t can be smaller on small arches

On 32bit arches, if PAGE_SIZE is smaller than 65536, we can use 16bit
offset and size fields. This patch saves 72 bytes per skb on i386, or
128 bytes after rounding.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Eric Dumazet 14 年之前
父节点
当前提交
cb4dfe562c
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      include/linux/skbuff.h

+ 5 - 0
include/linux/skbuff.h

@@ -129,8 +129,13 @@ typedef struct skb_frag_struct skb_frag_t;
 
 
 struct skb_frag_struct {
 struct skb_frag_struct {
 	struct page *page;
 	struct page *page;
+#if (BITS_PER_LONG > 32) || (PAGE_SIZE >= 65536)
 	__u32 page_offset;
 	__u32 page_offset;
 	__u32 size;
 	__u32 size;
+#else
+	__u16 page_offset;
+	__u16 size;
+#endif
 };
 };
 
 
 #define HAVE_HW_TIME_STAMP
 #define HAVE_HW_TIME_STAMP