Re: weired NE2K ether problem - help!

From: Jun Sun (jsun@mvista.com)
Date: Tue Jul 25 2000 - 23:52:08 EST


On Tue, 25 Jul 2000, Jun Sun wrote:

> Paul Gortmaker wrote:
> In 8390.h you should increase ei_debug from one to 4. Also add a
> >
> > #define VERBOSE_ERROR_DUMP
> >
> > which will give you detailed information as to how your packet
> > transmission failed. That plus the driver detection messages might
> > help me and others shed some more light on the issue.
> >
>
> That is exactly why this problem is so weired: there is no error
> message! Anyhow I turned on debugging options as you suggested and here
> is the output :
>
....

BTW, I believe I have already found one bug in ne2k-pci.c. The bug
is in ne2k_pci_block_input() and ne2k_pci_block_output(). The code
checks if ONLY_16BIT_IO is set or not. If not, it will try to read/write
using 32bit mode, into/from the buffer (skb->data). However,
skb->data is NOT aligned along 4-byte boundary (See related sbk_reserve(2)
calls in 8390.c). This causes bus error on my MIPS board.

What should be the right fix? I currently use a separate buffer, which is
aligned along 4-byte boundary, to copy into/from skb->data to do the IO.
Obviously, this is not good.

I also tried to change from skb_reserve(2) skb_reserve(4). That seems
to causes some other problem. (OK, I admit I am quite ignorant about
ether driver.)

Jun

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jul 31 2000 - 21:00:21 EST