Link up detection bug in tg3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The tg3 driver is not always detecting link up when I plug the cable into my
3Com 3C996SX fiber gigabit ethernet card.  Here is the sequence of events:

(cable unplugged)
ifconfig eth0 up
(plug in cable)
ping <other machine's IP address>
(no response)
ifconfig eth0 down
ifconfig eth0 up
ping <other machine's IP address>
(gets ping response)
(unplug cable)
(plug in cable)
ping <other machine's IP address>
(gets ping response)

If the cable was plugged in when the interface was brought up with ifconfig,
then the driver detects link up/down status just fine.  If the cable was not
plugged in when the interface was brought up with ifconfig, the driver will
never detect if the cable is plugged in until the interface is brought down
and up again.  The problem exists in both Linux 2.4.20 and Linux
2.4.21-pre7.

Under Linux 2.4.21-pre7, I get the following messages when I bring the
interface up with ifconfig and the cable is plugged in:

tg3: eth0: Link is up at 1000 Mbps, full duplex.
tg3: eth0: Flow control is on for TX and on for RX.

When I unplug the cable, I get the following messages:

tg3: eth0: Link is down.

When I plug the cable back in, I get the following messages:

tg3: eth0: Link is up at 1000 Mbps, full duplex.
tg3: eth0: Flow control is on for TX and on for RX.

When I bring the interface up without the cable plugged in, I get the
following message:

tg3: eth0: Link is down.

And when I plug the cable in again, there is no message.

Additional system information is attached below.  Thanks for any help.

Anthony J. Battersby
Cybernetics

-----------------------------

The fiber 3Com card has the following written on a label on the card:
EA=000476DFD17A
3C996-SX
03-0283-000    A

The Broadcom chip has the following written on it:
BCM5701TKHB
TS0141 P13
58420 C

-----------------------------

cat /proc/version

Linux version 2.4.21-pre7 (tony@carnivore.engr.ccg.com) (gcc version 2.96
20000731 (Red Hat Linux 7.3 2.96-112)) #1 SMP Tue Apr 15 11:59:25 EDT 2003

-----------------------------

lspci -vvv
(Sorry, no PCI name database.  The 3Com card starts with the line "00:0b.0
Class 0200: 14e4:1645 (rev 15)".)

00:00.0 Class 0600: 1039:0650 (rev 01)
	Subsystem: 1039:0650
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort+ >SERR- <PERR-
	Latency: 32
	Region 0: Memory at d0000000 (32-bit, non-prefetchable) [size=128M]
	Capabilities: [c0] AGP version 2.0
		Status: RQ=31 SBA+ 64bit- FW- Rate=x1,x2
		Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none>

00:01.0 Class 0604: 1039:0001
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
	Latency: 64
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
	I/O behind bridge: 0000d000-0000dfff
	Memory behind bridge: e1000000-e10fffff
	Prefetchable memory behind bridge: d8000000-dfffffff
	BridgeCtl: Parity- SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-

00:02.0 Class 0601: 1039:0008
	Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
	Latency: 0

00:02.2 Class 0c03: 1039:7001 (rev 07) (prog-if 10)
	Subsystem: 1039:7001
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR+
	Latency: 32 (20000ns max), cache line size 08
	Interrupt: pin D routed to IRQ 7
	Region 0: Memory at e1114000 (32-bit, non-prefetchable) [size=4K]

00:02.3 Class 0c03: 1039:7001 (rev 07) (prog-if 10)
	Subsystem: 1039:7001
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR+
	Latency: 32 (20000ns max), cache line size 08
	Interrupt: pin A routed to IRQ 5
	Region 0: Memory at e1113000 (32-bit, non-prefetchable) [size=4K]

00:02.5 Class 0101: 1039:5513 (rev d0) (prog-if 80 [Master])
	Subsystem: 1039:5513
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
	Latency: 128
	Region 4: I/O ports at 4000 [size=16]

00:0b.0 Class 0200: 14e4:1645 (rev 15)
	Subsystem: 10b7:1004
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
	Latency: 32 (16000ns min), cache line size 08
	Interrupt: pin A routed to IRQ 10
	Region 0: Memory at e1100000 (64-bit, non-prefetchable) [size=64K]
	Capabilities: [40] PCI-X non-bridge device.
		Command: DPERE- ERO- RBC=0 OST=0
		Status: Bus=0 Dev=0 Func=0 64bit- 133MHz- SCD- USC-, DC=simple, DMMRBC=0,
DMOST=0, DMCRS=0, RSCEM-
	Capabilities: [48] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=1 PME-
	Capabilities: [50] Vital Product Data
	Capabilities: [58] Message Signalled Interrupts: 64bit+ Queue=0/3 Enable-
		Address: 6ff97fd9473b6ff8  Data: a82f

00:0c.0 Class 0100: 1000:0012 (rev 01)
	Subsystem: 1000:1020
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr+
Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
	Latency: 72 (4250ns min, 16000ns max), cache line size 08
	Interrupt: pin A routed to IRQ 11
	Region 0: I/O ports at e000 [size=256]
	Region 1: Memory at e1112000 (32-bit, non-prefetchable) [size=1K]
	Region 2: Memory at e1110000 (32-bit, non-prefetchable) [size=8K]
	Expansion ROM at <unassigned> [disabled] [size=128K]
	Capabilities: [40] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0f.0 Class 0200: 10ec:8139 (rev 10)
	Subsystem: 10ec:8139
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
	Latency: 32 (8000ns min, 16000ns max)
	Interrupt: pin A routed to IRQ 10
	Region 0: I/O ports at e400 [size=256]
	Region 1: Memory at e1115000 (32-bit, non-prefetchable) [size=256]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA
PME(D0-,D1+,D2+,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:10.0 Class 0c00: 11c1:5811 (rev 04) (prog-if 10)
	Subsystem: 1297:f024
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
	Latency: 32 (3000ns min, 6000ns max), cache line size 08
	Interrupt: pin A routed to IRQ 11
	Region 0: Memory at e1116000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [44] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

01:00.0 Class 0300: 1039:6325
	Subsystem: 1039:6325
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
	Interrupt: pin A routed to IRQ 12
	BIST result: 00
	Region 0: Memory at d8000000 (32-bit, prefetchable) [size=128M]
	Region 1: Memory at e1000000 (32-bit, non-prefetchable) [size=128K]
	Region 2: I/O ports at d000 [size=128]
	Capabilities: [40] Power Management version 1
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] AGP version 2.0
		Status: RQ=15 SBA+ 64bit- FW- Rate=x1,x2
		Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none>

-----------------------------

cat /proc/cpuinfo

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 15
model		: 1
model name	: Intel(R) Pentium(R) 4 CPU 1.60GHz
stepping	: 2
cpu MHz		: 1594.108
cache size	: 256 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 2
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips	: 3178.49

-----------------------------


-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux