Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df18acca authored by Peter Korsgaard's avatar Peter Korsgaard Committed by David S. Miller
Browse files

smsc95xx: strip ethernet fcs (crc) on receive path



The smsc95xx driver was forwarding the trailing fcs on received frames
up the stack leading to confusion in tcpdump.

Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
Tested-by: default avatarSteve Glendinning <steve.glendinning@smsc.com>
Acked-by: default avatarSteve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 61189c78
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -1134,7 +1134,7 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
			if (skb->len == size) {
			if (skb->len == size) {
				if (pdata->use_rx_csum)
				if (pdata->use_rx_csum)
					smsc95xx_rx_csum_offload(skb);
					smsc95xx_rx_csum_offload(skb);

				skb_trim(skb, skb->len - 4); /* remove fcs */
				skb->truesize = size + sizeof(struct sk_buff);
				skb->truesize = size + sizeof(struct sk_buff);


				return 1;
				return 1;
@@ -1152,7 +1152,7 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb)


			if (pdata->use_rx_csum)
			if (pdata->use_rx_csum)
				smsc95xx_rx_csum_offload(ax_skb);
				smsc95xx_rx_csum_offload(ax_skb);

			skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
			ax_skb->truesize = size + sizeof(struct sk_buff);
			ax_skb->truesize = size + sizeof(struct sk_buff);


			usbnet_skb_return(dev, ax_skb);
			usbnet_skb_return(dev, ax_skb);