r8169: NFG in 2.6.24-rc2

Mark Lord
2007-11-07T16:07:23Z

My ASUS board has one of these:

01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
Subsystem: ASUSTeK Computer Inc. Unknown device 81aa
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-
Interrupt: pin A routed to IRQ 16
Region 0: I/O ports at 9800 [size=256]
Region 2: Memory at ff3ff000 (64-bit, non-prefetchable) [size=4K]
Expansion ROM at ff3c0000 [disabled] [size=128K]
Capabilities: [40] 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-
Capabilities: [48] Vital Product Data
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/1 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [60] Express Endpoint IRQ 0
Device: Supported: MaxPayload 1024 bytes, PhantFunc 0, ExtTag+
Device: Latency L0s <1us, L1 unlimited
Device: AtnBtn+ AtnInd+ PwrInd+
Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 4096 bytes
Link: Supported Speed 2.5Gb/s, Width x4, ASPM L0s, Port 0
Link: Latency L0s unlimited, L1 unlimited
Link: ASPM Disabled RCB 64 bytes CommClk+ ExtSynch-
Link: Speed 2.5Gb/s, Width x1
Capabilities: [84] Vendor Specific Information

It works perfectly in 2.6.23.
It does not work in 2.6.24-rc2. Dunno about -rc1 or earlier -git*.

Without CONFIG_PCI_MSI, it works slightly, enough to ping it a couple of times,
but it then dies when used for anything real:

r8169 Gigabit Ethernet driver 2.2LK loaded
r8169 0000:01:00.0: no MSI. Back to INTx.
...
eth0: RTL8168b/8111b at 0xf884a000, 00:17:31:64:e0:bc, XID 30000000 IRQ 16
...
r8169: eth0: link up
...
kernel: NETDEV WATCHDOG: eth0: transmit timed out
r8169: eth0: link up
...
Not usable from this point on.

With CONFIG_PCI_MSI=y, it also fails, and then isn't even detected (not in lspci)
on subsequent reboots. A power cycle is required to get it to show up again.

Help?