From 13348beee529cd1200deeac161e1b2de0705b495 Mon Sep 17 00:00:00 2001 From: Brice Goglin Date: Mon, 11 Dec 2006 11:27:19 +0100 Subject: [PATCH] myri10ge: fix big_bytes in case of vlan frames Fix sizing of big_bytes in the case of vlan frames. The 4 VLAN_HLEN bytes were omitted, leading to sizing the big buffer 4 bytes smaller than it should be. Due to how rx buffers are carved from pages, this was harmless for the common (9000, 1500) byte MTUs, but could lead to data corruption for some MTUs. Signed-off-by: Brice Goglin Signed-off-by: Jeff Garzik --- drivers/net/myri10ge/myri10ge.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/net/myri10ge/myri10ge.c') diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index d38217a7eb11..a0d1dae39fd2 100644 --- a/drivers/net/myri10ge/myri10ge.c +++ b/drivers/net/myri10ge/myri10ge.c @@ -1696,11 +1696,11 @@ static int myri10ge_open(struct net_device *dev) * tell him the buffer is larger, because we only use 1 * buffer/pkt, and the mtu will prevent overruns. */ - big_pow2 = dev->mtu + ETH_HLEN + MXGEFW_PAD; + big_pow2 = dev->mtu + ETH_HLEN + VLAN_HLEN + MXGEFW_PAD; if (big_pow2 < MYRI10GE_ALLOC_SIZE / 2) { while ((big_pow2 & (big_pow2 - 1)) != 0) big_pow2++; - mgp->big_bytes = dev->mtu + ETH_HLEN + MXGEFW_PAD; + mgp->big_bytes = dev->mtu + ETH_HLEN + VLAN_HLEN + MXGEFW_PAD; } else { big_pow2 = MYRI10GE_ALLOC_SIZE; mgp->big_bytes = big_pow2; -- cgit v1.2.3