I have custom board based on AMD GeodeLX with an RTL-8100C(L) network chip. I was using 2.4 kernels for a long time without any problems. With 2.6 I experience weird behaviour: linux-2.4 The device works, ~10MByte/s Rx/Tx <=linux-2.6.25 The device works, although with weak performance. Rx:8MByte/s Tx:1.4MByte/s >=linux-2.6.26 The device is recognized, but fails while doing "ifconfig eth0 up" with: eth0: SIOCSIFFLAGS: Device or resource busy I tried various combination of the following options, no difference: CONFIG_8139TOO_PIO CONFIG_8139TOO_TUNE_TWISTER CONFIG_8139TOO_8129 CONFIG_8139_OLD_RX_RESET The relevant part of dmesg: 8139too Fast Ethernet driver 0.9.28 eth0: RealTek RTL8139 at 0xd0006000, 00:03:2d:0e:8e:75, IRQ 15 eth0: Identified 8139 chip type 'RTL-8100B/8139D' $ lspci -s 00:10.0 -vv 00:10.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) Subsystem: Realtek Semiconductor Co., Ltd. RT8139 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR+ INTx- Latency: 32 (8000ns min, 16000ns max) Interrupt: pin A routed to IRQ 15 Region 0: I/O ports at fc00 [size=256] Region 1: Memory at effff000 (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- Kernel driver in use: 8139too $ ethtool -d eth0 RealTek RTL-8100B/8139D registers: ------------------------------ 0x00: MAC Address 00:03:2d:0e:8e:75 0x08: Multicast Address Filter 0x80000000 0x00000000 0x10: Transmit Status Desc 0 0x0008a072 0x14: Transmit Status Desc 1 0x0008a072 0x18: Transmit Status Desc 2 0x0008a072 0x1C: Transmit Status Desc 3 0x0008a072 0x20: Transmit Start Addr 0 0x0e3b8000 0x24: Transmit Start Addr 1 0x0e3b8600 0x28: Transmit Start Addr 2 0x0e3b8c00 0x2C: Transmit Start Addr 3 0x0e3b9200 0x30: Rx buffer addr (C mode) 0x0e3d0000 0x34: Early Rx Byte Count 0 0x36: Early Rx Status 0x0a ERxGood ERxOverWrite 0x37: Command 0x0d Rx on, Tx on 0x38: Current Address of Packet Read (C mode) 0x40d8 0x3A: Current Rx buffer address (C mode) 0x40e8 0x3C: Interrupt Mask 0xc07f SERR TimeOut RxFIFO LinkChg RxNoBuf TxErr TxOK RxErr RxOK 0x3E: Interrupt Status 0x0000 0x40: Tx Configuration 0x77400680 0x44: Rx Configuration 0x0000f78e 0x48: Timer count 0x0874473d 0x4C: Missed packet counter 0x000000 0x50: EEPROM Command 0x00 0x51: Config 0 0x10 0x52: Config 1 0x8d 0x54: Timer interrupt 0x00000000 0x58: Media status 0x10 0x59: Config 3 0xc5 0x5A: Config 4 0x88 0x5C: Multiple Interrupt Select 0x0000 0x5E: PCI revision id 0x10 0x60: Transmit Status of All Desc (C mode) 0xf00f 0x62: MII Basic Mode Control Register 0x1100 0x64: MII Basic Mode Status Register 0x782d 0x66: MII Autonegotiation Advertising 0x01e1 0x68: MII Link Partner Ability 0x45e1 0x6A: MII Expansion 0x0001 0x6C: MII Disconnect counter 0x0000 0x6E: MII False carrier sense counter 0x0000 0x70: MII Nway test 0x0704 0x72: MII RX_ER counter 0x0000 0x74: MII CS configuration 0x07c0 0x78: PHY parameter 1 0x60f60c59 0x7C: Twister parameter 0x7b732660 0x80: PHY parameter 2 0x1a 0x84: PM CRC for wakeup frame 0 0x01 0x85: PM CRC for wakeup frame 1 0x00 0x86: PM CRC for wakeup frame 2 0x0a 0x87: PM CRC for wakeup frame 3 0x80 0x88: PM CRC for wakeup frame 4 0x00 0x89: PM CRC for wakeup frame 5 0x00 0x8A: PM CRC for wakeup frame 6 0x00 0x8B: PM CRC for wakeup frame 7 0x00 0x8C: PM wakeup frame 0 0x00000020 0x01140040 0x94: PM wakeup frame 1 0x00000002 0x00800000 0x9C: PM wakeup frame 2 0x00000080 0x08024100 0xA4: PM wakeup frame 3 0x20000002 0x04000000 0xAC: PM wakeup frame 4 0x00000002 0x00000210 0xB4: PM wakeup frame 5 0x00008a10 0x09000100 0xBC: PM wakeup frame 6 0x00002000 0x00000010 0xC4: PM wakeup frame 7 0x84000300 0x00000000 0xCC: PM LSB CRC for wakeup frame 0 0x00 0xCD: PM LSB CRC for wakeup frame 1 0x01 0xCE: PM LSB CRC for wakeup frame 2 0x00 0xCF: PM LSB CRC for wakeup frame 3 0x81 0xD0: PM LSB CRC for wakeup frame 4 0x08 0xD1: PM LSB CRC for wakeup frame 5 0x00 0xD2: PM LSB CRC for wakeup frame 6 0x00 0xD3: PM LSB CRC for wakeup frame 7 0x00 0xD8: Config 5 0x07 throughput on 2.6.25: $ netio -t 10.0.0.12 TCP connection established. Packet size 1k bytes: 11520 KByte/s Tx, 11458 KByte/s Rx. Packet size 2k bytes: 11518 KByte/s Tx, 4686 KByte/s Rx. Packet size 4k bytes: 6428 KByte/s Tx, 1383 KByte/s Rx. Packet size 8k bytes: 6194 KByte/s Tx, 1393 KByte/s Rx. Packet size 16k bytes: 4370 KByte/s Tx, 1392 KByte/s Rx. Packet size 32k bytes: 3188 KByte/s Tx, 1391 KByte/s Rx. $ netio -u 10.0.0.12 UDP connection established. Packet size 1k bytes: 8870 KByte/s (22%) Tx, 999 KByte/s (0%) Rx. Packet size 2k bytes: 8958 KByte/s (22%) Tx, 999 KByte/s (0%) Rx. Packet size 4k bytes: 8314 KByte/s (29%) Tx, 1331 KByte/s (0%) Rx. Packet size 8k bytes: 7278 KByte/s (37%) Tx, 1331 KByte/s (0%) Rx. Packet size 16k bytes: 5232 KByte/s (55%) Tx, 1329 KByte/s (0%) Rx. Packet size 32k bytes: 1151 KByte/s (90%) Tx, 1384 KByte/s (0%) Rx. I'd be grateful for any hint what could have went wrong here. Chris -- echo mailto: NOSPAM !#$.'<*>'|sed 's. ..'|tr "<*> !#:2" org@fr33z3 -- To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html