From 9eebaf51ae1f5547e1cbeef77aacf8fe890a2eee Mon Sep 17 00:00:00 2001 From: Thomas Chou Date: Sun, 4 Oct 2009 23:33:19 +0000 Subject: [PATCH] --- yaml --- r: 167003 b: refs/heads/master c: 050f91dcd9a45a14449dded5180f633692b588d2 h: refs/heads/master i: 167001: c1d6b2f79756f60a17395033615b68e0cbc3222e 166999: fde2f60bcc40ca461a3268a7472a5d79e63059c0 v: v3 --- [refs] | 2 +- trunk/drivers/net/ethoc.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 0a818750ed28..08d9430f7c52 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3ee19a85bb428b8363699dff9e1c4041c107d46a +refs/heads/master: 050f91dcd9a45a14449dded5180f633692b588d2 diff --git a/trunk/drivers/net/ethoc.c b/trunk/drivers/net/ethoc.c index f92747fc5f8b..0c6c7f47ace4 100644 --- a/trunk/drivers/net/ethoc.c +++ b/trunk/drivers/net/ethoc.c @@ -399,6 +399,10 @@ static int ethoc_rx(struct net_device *dev, int limit) if (ethoc_update_rx_stats(priv, &bd) == 0) { int size = bd.stat >> 16; struct sk_buff *skb = netdev_alloc_skb(dev, size); + + size -= 4; /* strip the CRC */ + skb_reserve(skb, 2); /* align TCP/IP header */ + if (likely(skb)) { void *src = phys_to_virt(bd.addr); memcpy_fromio(skb_put(skb, size), src, size);