On Thu, 2012-09-20 at 14:47 +0200, Johannes Berg wrote: > > if (skb) { > > /* deliver to local stack */ > > - skb->protocol = eth_type_trans(skb, dev); > > - memset(skb->cb, 0, sizeof(skb->cb)); > > - netif_receive_skb(skb); > > + if (pskb_may_pull(skb, sizeof(struct ethhdr))) { > > + skb->protocol = eth_type_trans(skb, dev); > > + memset(skb->cb, 0, sizeof(skb->cb)); > > + netif_receive_skb(skb); > > + } else { > > + kfree_skb(skb); > > + } > > } > > } > > Yeah I was looking at the same code just now. However, we had actually > inserted the skb_linearize() *after* eth_type_trans(), so I'm confused. Ok actually, by the time we get here the ethernet header must be in the skb head because we construct it from the 802.11 and llc/snap header. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html