[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090617163716.GA21530@ghostprotocols.net>
Date: Wed, 17 Jun 2009 13:37:16 -0300
From: Arnaldo Carvalho de Melo <acme@...hat.com>
To: Stephen Hemminger <shemminger@...tta.com>
Cc: David Miller <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [RFC] skbuff: skb_mac_header_was_set is always true on >32 bit
Em Wed, Jun 17, 2009 at 08:23:27AM -0700, Stephen Hemminger escreveu:
> 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.
>
> Arnaldo, is this correct?
>
> Signed-off-by: Stephen Hemminger <shemminger@...tta.com>
Yeah, looks right, I forgot to initialize it to the value I changed the
test in skb_mac_header_was_set when doing the offset patch :-\
Thanks!
Acked-by: Arnaldo Carvalho de Melo <acme@...hat.com>
> --- a/net/core/skbuff.c 2009-06-17 08:16:46.235188728 -0700
> +++ b/net/core/skbuff.c 2009-06-17 08:17:25.810314332 -0700
> @@ -201,6 +201,10 @@ struct sk_buff *__alloc_skb(unsigned int
> skb->data = data;
> skb_reset_tail_pointer(skb);
> skb->end = skb->tail + size;
> +#ifdef NET_SKBUFF_DATA_USES_OFFSET
> + skb->mac_header = ~0U;
> +#endif
> +
> /* make sure we initialize shinfo sequentially */
> shinfo = skb_shinfo(skb);
> atomic_set(&shinfo->dataref, 1);
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists