Skip to contentSkip to conversation

still crashes my notebook

net/8139cp Applied Andreas Happe 4 participants 7 messages Jan 22, 2004 – Jan 27, 2004

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
Quoted 6 lines · Andreas Happe

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.

Signature · 46 lines
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;
 }

_
#2 lore raw

fre 2004-01-23 klockan 18.56 skrev OGAWA Hirofumi:

Quoted 9 lines
Quoted 6 lines · Andreas Happe

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).

Quoted 4 lines

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.

Signature · 11 lines
/ 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
.......................................................................
#3 lore raw
Quoted 13 lines · Thomas Svedberg

fre 2004-01-23 klockan 18.56 skrev OGAWA Hirofumi:

Quoted 12 lines
Quoted 6 lines · Andreas Happe

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?

Quoted 8 lines
Quoted 1 line

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.

Signature · 1 line
OGAWA Hirofumi <[email protected]>
#4 lore raw
Quoted 9 lines · OGAWA Hirofumi
Quoted 6 lines · Thomas Svedberg

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