Re: Linux 2.6.27-git3: rtl8169 oops and wireless missing symbols

From: Stefan Lippers-Hollmann
Date: Tue Oct 14 2008 - 19:39:41 EST


Hi

On Dienstag, 14. Oktober 2008, Francois Romieu wrote:
> J.A. Magallón <jamagallon@xxxxxxx> :
> [...]
> > Oct 14 02:27:45 one kernel: r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
> > Oct 14 02:27:45 one kernel: r8169 0000:02:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
> > Oct 14 02:27:45 one kernel: r8169 0000:02:00.0: setting latency timer to 64
> > Oct 14 02:27:45 one kernel: eth0: RTL8102e at 0xdfffe000, 00:00:00:00:00:00, XID 24a00000 IRQ 219
>
> The MAC address does not look sane. Does the revert below cure it ?

I can confirm this behaviour on 2.6.27 + all r8169 related updates cherry
picked from linux-2.6 git[1]:

This is the relevant diff between the non-working[2] (all current updates
applied on top of 2.6.27) and the working[3] variant including your revert
below. With that revert, everything seems to work well again.

r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
r8169 0000:03:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
r8169 0000:03:00.0: setting latency timer to 64
-eth0: RTL8168c/8111c at 0xffffc20000c44000, 00:00:00:00:00:00, XID 3c4000c0 IRQ 1274
+eth0: RTL8168c/8111c at 0xffffc20000c42000, 00:1f:d0:88:4b:2f, XID 3c4000c0 IRQ 1274
r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
r8169 0000:04:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
r8169 0000:04:00.0: setting latency timer to 64
-eth1: RTL8168c/8111c at 0xffffc20000c46000, 00:00:00:00:00:00, XID 3c4000c0 IRQ 1273
+eth1: RTL8168c/8111c at 0xffffc20000c44000, 00:1f:d0:80:86:25, XID 3c4000c0 IRQ 1273


lspci output taken from the working variant:

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
Subsystem: Giga-byte Technology Device e000
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 1274
Region 0: I/O ports at c000 [size=256]
Region 2: Memory at e8010000 (64-bit, prefetchable) [size=4K]
Region 4: Memory at e8000000 (64-bit, prefetchable) [size=64K]
[virtual] Expansion ROM at e8020000 [disabled] [size=64K]
Capabilities: <access denied>
Kernel driver in use: r8169
Kernel modules: r8169

04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
Subsystem: Giga-byte Technology Device e000
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 1273
Region 0: I/O ports at d000 [size=256]
Region 2: Memory at e8110000 (64-bit, prefetchable) [size=4K]
Region 4: Memory at e8100000 (64-bit, prefetchable) [size=64K]
[virtual] Expansion ROM at e8120000 [disabled] [size=64K]
Capabilities: <access denied>
Kernel driver in use: r8169
Kernel modules: r8169

> diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
> index c821da2..5b8f8ba 100644
> --- a/drivers/net/r8169.c
> +++ b/drivers/net/r8169.c
> @@ -1911,74 +1911,6 @@ static void rtl_disable_msi(struct pci_dev *pdev, struct rtl8169_private *tp)
> }
> }
>
> -static int rtl_eeprom_read(struct pci_dev *pdev, int cap, int addr, __le32 *val)
[...]
> -}
> -
> -static void rtl_init_mac_address(struct rtl8169_private *tp,
> - void __iomem *ioaddr)
> -{
[...]
> -}
> -
> static int __devinit
> rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
> {
> @@ -2156,8 +2088,6 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
>
> tp->mmio_addr = ioaddr;
>
> - rtl_init_mac_address(tp, ioaddr);
> -
> /* Get MAC address */
> for (i = 0; i < MAC_ADDR_LEN; i++)
> dev->dev_addr[i] = RTL_R8(MAC0 + i);

Regards
Stefan Lippers-Hollmann

[1] http://sidux.com/slh/r8169/patches/ (cherry picked r8169 from
linux-2.6 HEAD)
[2] http://sidux.com/slh/r8169/dmesg.not-working.log
[3] http://sidux.com/slh/r8169/dmesg.working.log

Attachment: signature.asc
Description: This is a digitally signed message part.