ASIX USB dongle problem: asix_rx_fixup() Bad Header Length

Sascha Hauer s.hauer at pengutronix.de
Tue Nov 28 05:20:06 PST 2017


On Tue, Nov 28, 2017 at 01:40:28PM +0100, Holger Birkmeyer wrote:
> Dear Sascha,
> 
> the ASIX USB dongle is working on the same hardware running a 4.4
> vanilla kernel. The dongle also works on my Linux PC with a 4.13 kernel.
> 
> I added memory_display(buf, 0, len, 4, 0) to asix_rx_fixup(). Here are
> the logs:

Hm, comparing that to the traffic my device receives that may look
somewhat shifted. Do you have CONFIG_MMU enabled? If yes, please try
with MMU disabled. Also, maybe the buffer is not sufficiently aligned.
Could you print the pointer address of buf?

The buffer is statically allocated in drivers/net/usb/usbnet.c:

static char rx_buf[4096];

This looks fishy. It should be allocated with dma_alloc() instead.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list