sk_buff: why field 'head' contains skb_shared_info?

2014-02-22 Thread Кулешов Алексей
Subj. Look at this core function: net/core/skbuff.c: __alloc_skb ... size = SKB_DATA_ALIGN(size); size += SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); data = kmalloc_reserve(size, gfp_mask, node, ); ... shinfo = skb_shinfo(skb); memset(shinfo, 0,

sk_buff: why field 'head' contains skb_shared_info?

2014-02-22 Thread Кулешов Алексей
Subj. Look at this core function: net/core/skbuff.c: __alloc_skb ... size = SKB_DATA_ALIGN(size); size += SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); data = kmalloc_reserve(size, gfp_mask, node, pfmemalloc); ... shinfo = skb_shinfo(skb); memset(shinfo,