diff options
author | Nimrod Andy <B38611@freescale.com> | 2015-03-10 14:09:41 +0300 |
---|---|---|
committer | Sasha Levin <sasha.levin@oracle.com> | 2015-03-24 15:22:17 +0300 |
commit | 563d9192f9af5e02bfac34676e84b9c3909ef732 (patch) | |
tree | b7c3613446add141c82bae24076315df3c978846 /drivers/net/ethernet/freescale | |
parent | 06e0dd736849f9e34828fa9771298ecef0e49511 (diff) | |
download | linux-563d9192f9af5e02bfac34676e84b9c3909ef732.tar.xz |
net: fec: fix receive VLAN CTAG HW acceleration issue
[ Upstream commit af5cbc9822f6bbe399925760a4d5ee82c21f258c ]
The current driver support receive VLAN CTAG HW acceleration feature
(NETIF_F_HW_VLAN_CTAG_RX) through software simulation. There calls the
api .skb_copy_to_linear_data_offset() to skip the VLAN tag, but there
have overlap between the two memory data point range. The patch just fix
the issue.
V2:
Michael Grzeschik suggest to use memmove() instead of skb_copy_to_linear_data_offset().
Reported-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Fixes: 1b7bde6d659d ("net: fec: implement rx_copybreak to improve rx performance")
Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'drivers/net/ethernet/freescale')
-rw-r--r-- | drivers/net/ethernet/freescale/fec_main.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 3dca494797bd..96ba23e90111 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -1464,8 +1464,7 @@ 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)); + memmove(skb->data + VLAN_HLEN, data, ETH_ALEN * 2); skb_pull(skb, VLAN_HLEN); } |