diff options
-rw-r--r-- | drivers/net/ethernet/freescale/fec_main.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 791d6f519256..ab10480718a8 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -977,7 +977,6 @@ fec_enet_rx(struct net_device *ndev, int budget) ushort pkt_len; __u8 *data; int pkt_received = 0; - u16 vlan_tag; unsigned int index = fep->rx_next; #ifdef CONFIG_M532x @@ -1084,9 +1083,12 @@ fec_enet_rx(struct net_device *ndev, int budget) /* If this is a VLAN packet remove the VLAN Tag */ if (cbd_esc & BD_ENET_RX_VLAN) { /* Push and remove the vlan tag */ - struct vlan_hdr *vlan_header = + struct vlan_hdr *vlan = (struct vlan_hdr *) (data + ETH_HLEN); - vlan_tag = ntohs(vlan_header->h_vlan_TCI); + + __vlan_hwaccel_put_tag(skb, + htons(ETH_P_8021Q), + ntohs(vlan->h_vlan_TCI)); } { @@ -1118,12 +1120,6 @@ fec_enet_rx(struct net_device *ndev, int budget) } } - /* Handle received VLAN packets */ - if (cbd_esc & BD_ENET_RX_VLAN) - __vlan_hwaccel_put_tag(skb, - htons(ETH_P_8021Q), - vlan_tag); - napi_gro_receive(&fep->napi, skb); } |