[PATCH 2/4] net usb asix: Use only 11 bits of header for data size
Philipp Zabel
philipp.zabel at gmail.com
Wed Jan 22 17:50:47 EST 2014
From: Marek Vasut <marek.vasut at gmail.com>
The AX88772B uses only 11 bits of the header for the actual size. The other bits
are used for something else. This causes dmesg full of messages:
asix_rx_fixup() Bad Header Length
This patch trims the check to only 11 bits. I believe on older chips, the
remaining 5 top bits are unused.
Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
Signed-off-by: Philipp Zabel <philipp.zabel at gmail.com>
---
drivers/net/usb/asix.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
index 8b73bf9..003ebba 100644
--- a/drivers/net/usb/asix.c
+++ b/drivers/net/usb/asix.c
@@ -408,11 +408,11 @@ static int asix_rx_fixup(struct usbnet *dev, void *buf, int len)
len -= 4;
while (len > 0) {
- if ((header & 0xffff) != ((~header >> 16) & 0xffff))
+ if ((header & 0x07ff) != ((~header >> 16) & 0x07ff))
dev_err(&dev->edev.dev, "asix_rx_fixup() Bad Header Length\n");
/* get the packet length */
- size = (unsigned short) (header & 0x0000ffff);
+ size = (unsigned short) (header & 0x07ff);
if (size > 1514) {
dev_err(&dev->edev.dev, "asix_rx_fixup() Bad RX Length %d\n", size);
--
1.8.5.3
More information about the barebox
mailing list