Bug 1855 - (net de4x5) does not work with SMP
Summary: (net de4x5) does not work with SMP
Status: REJECTED UNREPRODUCIBLE
Alias: None
Product: Drivers
Classification: Unclassified
Component: Network (show other bugs)
Hardware: i386 Linux
: P2 high
Assignee: Jeff Garzik
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-12 19:34 UTC by Thomas Zehetbauer
Modified: 2006-02-04 10:40 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.1, 2.6.2, 2.6.3
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
Patch for de2104x driver (639 bytes, text/plain)
2005-03-24 12:22 UTC, Troy Rollo
Details

Description Thomas Zehetbauer 2004-01-12 19:34:32 UTC
I am successfully using a "Digital Equipment Corporation DECchip 21041[Tulip
Pass 3] (rev 11)" with the de4x5 driver under linux 2.4.*. Linux 2.6.1 works
fine when compiled for UP but when compiled for SMP it does lockup within
milliseconds after bringing up the network interface. After enabling the NMI
watchdog I received the following oops message (copied manually, case not
preserved, typos possible):

NMI watchdog detected lockup on cpu0, eip e29a1528, registers:
cpu0: 0
eip: 0060:[<e29a1528>] not tainted
eflags: 00000086
eip is at .text.lock.de4x5+0x30/0x78 [de4x5]
eax: 00000040 ebx: 00000282 ecx: c03ef194 edx: 00000000
esi: df5a1200 edi: df5a1000 ebp: 0000c400 esp: c047bee0
ds: 007b es: 007b ss: 0068
process swapper (pid: 0, threadinfo=c047a000 task=c03ec980)
Stack: df5a1000 df5a1200 00000001 df5a1000 000000fa e299a873 df5a1000 00001010
00001010 0000ef01 0000ff3f 00000008 00000960 df5a1200 df5a1000 000000fa
c047bf50 e299955c df5a1000 00000007 e29994d0 df5a16f8 c150b520 c0127717
call trace:
e299a873 dc21041_autoconf+0x223/0x630 de4x5
e299955c de4x5_ast+0x8c/0xb0 de4x5
e29994d0 de4x5_ast+0x0/0xb0 de4x5
c0127717 run_timer_softirq+0xd7/0x190
c0122fc7 do_softirq+0xc7/0xd0
c0115bfd smp_apic_timer_interrupt+0xcd/0x140
c0105000 rest_init+0x0/0x50
c0109a0e apic_timer_interrupt+0x1a/0x20
c0106cb0 default_idle+0x0/0x40
c0105000 rest_init+0x0/0x50
c0106cdc default_idle+0x2c/0x40
c0106d6b cpu_idle+0x3b/0x50
c047c8ed start_kernel+0x15d/0x170
c047c4a0 unknown_bootoption+0x0/0x120
code: f3 90 80 be 0c 02 00 00 00 7e f5 e9 6a b3 ff ff f3 90 80 bb

Using the de2104x driver is not an option as it fails to receive or transmit any
packets according to tcpdump and even in UP mode.
Comment 1 Thomas Zehetbauer 2004-02-06 20:10:42 UTC
Driver is still broken in 2.6.2, does not even produce an oops message anymore.
Comment 2 Thomas Zehetbauer 2004-02-19 06:01:49 UTC
Problem persists in current kernel 2.6.3.
Comment 3 Troy Rollo 2005-03-24 12:22:17 UTC
Created attachment 4793 [details]
Patch for de2104x driver

The attached patch should get the de2104x driver working for you, which will
obviate the need to fix the de4x5 driver. The de2104x driver seems to work OK
in an SMP kernel. The problem with the de2104x driver has always been that some
de21041 cards have defective (or even non-existent) circuitry to test if the
link is down. This was never a problem for the Windows driver since the Windows
drivers were normally installed with link detection off. This patch turns off
link detection for twisted pair (both half and full duplex).
Comment 4 Nishanth Aravamudan 2005-07-17 22:26:44 UTC
Thomas, did Troy's patch fix your issues?
Thanks,
Nish
Comment 5 Thomas Zehetbauer 2005-07-24 03:52:13 UTC
Unfortunately I cannot tell, I have replaced that machine before the patch
became available.

Note You need to log in before you can comment on or make changes to this bug.