On Tue, 2013-08-06 at 23:45 +0200, Johannes Berg wrote: > I think skb->protocol is probably getting set up wrong, and just putting > back the last two lines > > skb->protocol = proto; > skb->dev = dev; > > is probably sufficient to fix wifi. If skb->protocol isn't set to > ETH_P_PAE, then we'd drop the packet in the wifi stack - might be worth > printing out what it's set to at the point where the skb->protocol > assignment above was removed. > > I'm trying to wrap my head around all this right now but I don't yet see > how the code after the patch would not get skb->protocol correct. Actually, I think that's not it, but the code now behaves totally differently? Say this is the frame data with two points marked: (1) (2) | dst | src | ethtype | ... | As I understand it (in my admittedly rather tired state), previously we had skb_network_header() == (1) skb_mac_header() == (1) skb->data == (1) After calling eth_type_trans(), we get skb_network_header() == (1) skb_mac_header() == (1) skb->data == (2) I think? Maybe I'm totally confused though. 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