netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: fec: fix rxvlan feature
@ 2015-03-09 16:55 Michael Grzeschik
  2015-03-09 18:21 ` Michael Grzeschik
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Michael Grzeschik @ 2015-03-09 16:55 UTC (permalink / raw)
  To: B38611; +Cc: davem, Frank.Li, netdev, kernel

The patch 1b7bde6d659d30f171259cc2dfba8e5dab34e735
"net: fec: implement rx_copybreak to improve rx performance"
changed the code path for the vlan check in fec_enet_rx_queue:

 @@ -1417,62 +1486,48 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id)
 		/* If this is a VLAN packet remove the VLAN Tag */
 		vlan_packet_rcvd = false;
 		if ((ndev->features & NETIF_F_HW_VLAN_CTAG_RX) &&
 			fep->bufdesc_ex && (ebdp->cbd_esc & BD_ENET_RX_VLAN)) {
 			/* Push and remove the vlan tag */
                         struct vlan_hdr *vlan_header =
                                         (struct vlan_hdr *) (data + ETH_HLEN);
                         vlan_tag = ntohs(vlan_header->h_vlan_TCI);
 -                       pkt_len -= VLAN_HLEN;

                         vlan_packet_rcvd = true;
 +
 +                       skb_copy_to_linear_data_offset(skb, VLAN_HLEN,
 +                                                      data, (2 * ETH_ALEN));
 +                       skb_pull(skb, VLAN_HLEN);
                 }

With the call of skb_copy_to_linear_data_offset the code here is doing more
than previously and is breaking the rxvlan feature. This patch removes this
call to fix it.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
---
 drivers/net/ethernet/freescale/fec_main.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 9bb6220..77dd539 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -1479,8 +1479,6 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id)
 
 			vlan_packet_rcvd = true;
 
-			skb_copy_to_linear_data_offset(skb, VLAN_HLEN,
-						       data, (2 * ETH_ALEN));
 			skb_pull(skb, VLAN_HLEN);
 		}
 
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-03-10 10:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-09 16:55 [PATCH] net: fec: fix rxvlan feature Michael Grzeschik
2015-03-09 18:21 ` Michael Grzeschik
2015-03-10  2:21 ` fugang.duan
2015-03-10  2:42 ` David Miller
2015-03-10  3:29   ` fugang.duan
2015-03-10  9:39     ` Michael Grzeschik
2015-03-10 10:02       ` fugang.duan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).