2004-01-22 18:11:46

by Andreas Happe

[permalink] [raw]
Subject: [net/8139cp] still crashes my notebook

hi,

my notebook (hp/compaq nx7000) still crashes when using 8139cp (runs
rock solid with 8139too driver). The computer just locks up, there is no
dmesg output. This has happened since I've got this laptop (around
november '03).

8139too outputs:
| 8139too Fast Ethernet driver 0.9.27
| 8139too: pci dev 0000:02:01.0 (id 10ec:8139 rev 20) is an enhanced 8139C+ chip
| 8139too: Use the "8139cp" driver for improved performance and stability.
| 8139too: 0000:02:01.0: unknown chip version, assuming RTL-8139
| 8139too: 0000:02:01.0: TxConfig = 0x74800000

the "Use the.." line is rather annoying..

lspci lists:
02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 20)

--Andreas



2004-01-23 17:57:16

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: [net/8139cp] still crashes my notebook

Andreas Happe <[email protected]> writes:

> hi,
>
> my notebook (hp/compaq nx7000) still crashes when using 8139cp (runs
> rock solid with 8139too driver). The computer just locks up, there is no
> dmesg output. This has happened since I've got this laptop (around
> november '03).

It seems 8139cp.c has the race condition of rx_poll and interrupt.
Does the following patch fix this problem?

NOTE, since I don't have this device, patch is untested. Sorry.
--
OGAWA Hirofumi <[email protected]>

---

drivers/net/8139cp.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)

diff -puN drivers/net/8139cp.c~8139cp-napi-race-fix drivers/net/8139cp.c
--- linux-2.6.2-rc1/drivers/net/8139cp.c~8139cp-napi-race-fix 2004-01-24 02:22:36.000000000 +0900
+++ linux-2.6.2-rc1-hirofumi/drivers/net/8139cp.c 2004-01-24 02:37:43.000000000 +0900
@@ -615,8 +615,10 @@ rx_next:
if (cpr16(IntrStatus) & cp_rx_intr_mask)
goto rx_status_loop;

- netif_rx_complete(dev);
+ local_irq_disable();
cpw16_f(IntrMask, cp_intr_mask);
+ __netif_rx_complete(dev);
+ local_irq_enable();

return 0; /* done */
}
@@ -643,6 +645,12 @@ cp_interrupt (int irq, void *dev_instanc

spin_lock(&cp->lock);

+ /* close possible race's with dev_close */
+ if (unlikely(!netif_running(dev))) {
+ cpw16(IntrMask, 0);
+ goto out;
+ }
+
if (status & (RxOK | RxErr | RxEmpty | RxFIFOOvr)) {
if (netif_rx_schedule_prep(dev)) {
cpw16_f(IntrMask, cp_norx_intr_mask);
@@ -664,7 +672,7 @@ cp_interrupt (int irq, void *dev_instanc

/* TODO: reset hardware */
}
-
+out:
spin_unlock(&cp->lock);
return IRQ_HANDLED;
}

_

2004-01-24 15:52:26

by Thomas Svedberg

[permalink] [raw]
Subject: Re: [net/8139cp] still crashes my notebook

fre 2004-01-23 klockan 18.56 skrev OGAWA Hirofumi:
> Andreas Happe <[email protected]> writes:
>
> > hi,
> >
> > my notebook (hp/compaq nx7000) still crashes when using 8139cp (runs
> > rock solid with 8139too driver). The computer just locks up, there is no
> > dmesg output. This has happened since I've got this laptop (around
> > november '03).
>
> It seems 8139cp.c has the race condition of rx_poll and interrupt.
> Does the following patch fix this problem?
>
> NOTE, since I don't have this device, patch is untested. Sorry.

I can confirm that this patch fixes the same complete lockup I have had
since 2.6.0-test4 or so, (See: "Hard lock with recent 2.6.0-test
kernels").

Tested against 2.6.2-rc1-mm2 which locks har without patch and works
great with it.

--
/ Thomas
.......................................................................
Thomas Svedberg
Department of Applied Mechanics
Chalmers University of Technology

Address: S-412 96 G?teborg, SWEDEN
E-mail : [email protected], [email protected]
Phone : +46 31 772 1522
Fax : +46 31 772 3827
.......................................................................

2004-01-24 21:00:57

by Jeff Garzik

[permalink] [raw]
Subject: Re: [net/8139cp] still crashes my notebook

applied to 2.4 and 2.6


2004-01-24 21:39:32

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: [net/8139cp] still crashes my notebook

Jeff Garzik <[email protected]> writes:

> applied to 2.4 and 2.6

Oh, thanks.
--
OGAWA Hirofumi <[email protected]>

2004-01-24 21:27:24

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: [net/8139cp] still crashes my notebook

Thomas Svedberg <[email protected]> writes:

> fre 2004-01-23 klockan 18.56 skrev OGAWA Hirofumi:
> > Andreas Happe <[email protected]> writes:
> >
> > > hi,
> > >
> > > my notebook (hp/compaq nx7000) still crashes when using 8139cp (runs
> > > rock solid with 8139too driver). The computer just locks up, there is no
> > > dmesg output. This has happened since I've got this laptop (around
> > > november '03).
> >
> > It seems 8139cp.c has the race condition of rx_poll and interrupt.
> > Does the following patch fix this problem?
> >
> > NOTE, since I don't have this device, patch is untested. Sorry.
>
> I can confirm that this patch fixes the same complete lockup I have had
> since 2.6.0-test4 or so, (See: "Hard lock with recent 2.6.0-test
> kernels").
>
> Tested against 2.6.2-rc1-mm2 which locks har without patch and works
> great with it.

Thaks for testing.
--
OGAWA Hirofumi <[email protected]>

2004-01-27 00:38:08

by Andreas Happe

[permalink] [raw]
Subject: Re: [net/8139cp] still crashes my notebook

On 2004-01-24, OGAWA Hirofumi <[email protected]> wrote:
> Thomas Svedberg <[email protected]> writes:
>> I can confirm that this patch fixes the same complete lockup I have had
>> since 2.6.0-test4 or so, (See: "Hard lock with recent 2.6.0-test
>> kernels").
>>
>> Tested against 2.6.2-rc1-mm2 which locks har without patch and works
>> great with it.
>
> Thaks for testing.

I just wanted to confirm that this patch has solved my problem (my
computer hasn't crashed with 8139cp since ~48h).

Thanks for the patch,
Andreas