Message ID | 20100606233531.23585.10292.stgit@fate.lan |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Date: Mon, 07 Jun 2010 02:35:31 +0300 > Driver checks received packet is too large in asix_rx_fixup() and fails if it is. Problem is > that MTU might be set larger than 1500 and asix fails to work correctly with VLAN tagged > packets. The check should be 'dev->net->mtu + ETH_HLEN' instead. > > Tested with AX88772. > > Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c index 7e797ed..aea4645 100644 --- a/drivers/net/usb/asix.c +++ b/drivers/net/usb/asix.c @@ -344,7 +344,7 @@ static int asix_rx_fixup(struct usbnet *dev, struct sk_buff *skb) return 2; } - if (size > ETH_FRAME_LEN) { + if (size > dev->net->mtu + ETH_HLEN) { netdev_err(dev->net, "asix_rx_fixup() Bad RX Length %d\n", size); return 0;
Driver checks received packet is too large in asix_rx_fixup() and fails if it is. Problem is that MTU might be set larger than 1500 and asix fails to work correctly with VLAN tagged packets. The check should be 'dev->net->mtu + ETH_HLEN' instead. Tested with AX88772. Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> --- drivers/net/usb/asix.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html