af_packet: when sending ethernet frames, parse header for skb->protocol
authorPhil Sutter <phil@nwl.cc>
Fri, 2 Aug 2013 09:37:39 +0000 (11:37 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Aug 2013 21:58:32 +0000 (14:58 -0700)
commit0f75b09c798ed00c30d7d5551b896be883bc2aeb
tree9fc3da6d33d9ce15c1566e30f7bf13bfcefbc58c
parentd27fc78208b53ccdfd6a57d4ac44a459ca66806f
af_packet: when sending ethernet frames, parse header for skb->protocol

This may be necessary when the SKB is passed to other layers on the go,
which check the protocol field on their own. An example is a VLAN packet
sent out using AF_PACKET on a bridge interface. The bridging code checks
the SKB size, accounting for any VLAN header only if the protocol field
is set accordingly.

Note that eth_type_trans() sets skb->dev to the passed argument, so this
can be skipped in packet_snd() for ethernet frames, as well.

Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/packet/af_packet.c