mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-09-20 19:34:46 +00:00
skbuff: skb_mac_header_was_set is always true on >32 bit
Looking at the crash in log_martians(), one suspect is that the check for mac header being set is not correct. The value of mac_header defaults to 0 on allocation, therefore skb_mac_header_was_set will always be true on platforms using NET_SKBUFF_USES_OFFSET. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c564039fd8
commit
19633e129c
|
@ -201,6 +201,10 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
|
||||||
skb->data = data;
|
skb->data = data;
|
||||||
skb_reset_tail_pointer(skb);
|
skb_reset_tail_pointer(skb);
|
||||||
skb->end = skb->tail + size;
|
skb->end = skb->tail + size;
|
||||||
|
#ifdef NET_SKBUFF_DATA_USES_OFFSET
|
||||||
|
skb->mac_header = ~0U;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* make sure we initialize shinfo sequentially */
|
/* make sure we initialize shinfo sequentially */
|
||||||
shinfo = skb_shinfo(skb);
|
shinfo = skb_shinfo(skb);
|
||||||
atomic_set(&shinfo->dataref, 1);
|
atomic_set(&shinfo->dataref, 1);
|
||||||
|
|
Loading…
Reference in a new issue