eepro100 timeout error, bug.

Andrey Savochkin saw@saw.sw.com.sg
Wed May 10 21:54:23 2000


Hello,

On Wed, May 10, 2000 at 05:05:12PM -0400, Soohoon Lee wrote:
> > I'm having troble with eepro100 on 2.3.99-prex.

Which kernel and driver version you have problem with?

> > It generates timeout error very often.
> > I thought it is alpha platform problem but it's new driver's bug.
> > There's a race condition problem in speedo_start_xmit().
> > The driver does read-modify-write and mean while 8255x write something
> > to the same address. So I change the operation automic.

You mean that 16-bit write in performed on alpha is performed on alpha via
read-modify-write cycle on words of bigger size, and it isn't atomic against
similar cycle updating other 16-bit component of the same word, don't you?

> > Old driver(in 2.2.14) doesn't have the problem.
> > What about seperating one 4bytes field to two 2byte fields.
> > 
> > Soohoon.
> > 
> > diff -w drivers/net/eepro100.c ~/linux/drivers/net/eepro100.c
> > 899c899
> > < /* #if 0 - Alphas need this or else they come up in 10 Mbit mode */
> > ---
> > > #if 0
> > 916c916
> > < /* #endif */
> > ---
> > > #endif
> > 1221,1223c1221
> > < //                    last_cmd->cmd_status &= cpu_to_le32(~(CmdSuspend
> > | CmdIntr));
> > <                       clear_bit(30, &last_cmd->cmd_status);
> > <                       clear_bit(29, &last_cmd->cmd_status);
> > ---
> > >                       last_cmd->cmd_status &= cpu_to_le32(~(CmdSuspend
> > | CmdIntr));

Could you produce unified diff (diff -u)?

Best regards
					Andrey V.
					Savochkin
-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-eepro100-request@beowulf.org