Description of problem: ----------------------- device names of onboard NICs are not ordered by PCI bus number. How reproducible: ----------------------- There are 2 on-board NICs on Intel S5500HV: #lspci ... 02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection ... We hope the device placed at 02:00.0 could be detected and named as "eth0" while the other one can be named as "eth1". However, in fact the info are: # ethtool -i eth0 driver: e1000e version: 1.0.2-k2 firmware-version: 1.8-0 bus-info: 0000:03:00.0 # ethtool -i eth1 driver: e1000e version: 1.0.2-k2 firmware-version: 1.8-0 bus-info: 0000:02:00.0 # biosdecode ... Slot Entry 25: ID 03:00, on-board Slot Entry 26: ID 02:00, on-board ... # dmesg ... e1000e: Intel(R) PRO/1000 Network Driver - 1.0.2-k2 e1000e: Copyright (c) 1999-2008 Intel Corporation. ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 16 (level, low) -> IRQ 177 PCI: Setting latency timer of device 0000:03:00.0 to 64 sr0: scsi3-mmc drive: 24x/24x cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 sr 6:0:0:0: Attached scsi CD-ROM sr0 eth0: (PCI Express:2.5GB/s:Width x1) e0:cb:4e:5d:a2:13 eth0: Intel(R) PRO/1000 Network Connection eth0: MAC: 3, PHY: 8, PBA No: ffffff-0ff ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 17 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:02:00.0 to 64 eth1: (PCI Express:2.5GB/s:Width x1) e0:cb:4e:5d:a2:12 eth1: Intel(R) PRO/1000 Network Connection eth1: MAC: 3, PHY: 8, PBA No: ffffff-0ff ... # ifconfig eth0 Link encap:Ethernet HWaddr E0:CB:4E:5D:A2:13 inet addr:10.1.1.1 Bcast:10.1.1.255 Mask:255.255.255.0 inet6 addr: fe80::e2cb:4eff:fe5d:a213/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:60 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:9360 (9.1 KiB) Memory:fbee0000-fbf00000 eth1 Link encap:Ethernet HWaddr E0:CB:4E:5D:A2:12 inet addr:172.25.234.75 Bcast:172.25.234.255 Mask:255.255.255.0 inet6 addr: fe80::e2cb:4eff:fe5d:a212/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2562 errors:0 dropped:0 overruns:0 frame:0 TX packets:1304 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:260565 (254.4 KiB) TX bytes:177673 (173.5 KiB) Memory:fbde0000-fbe00000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2623 errors:0 dropped:0 overruns:0 frame:0 TX packets:2623 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3553976 (3.3 MiB) TX bytes:3553976 (3.3 MiB) Steps to Reproduce: 1. Install RHEL 5.4 x64 on Intel S5500HV 2. NIC on bus "0000:02:00.0" named as "eth1", while NIC on bus "0000:03:00.0" named as "eth0". 3. run biosdecode, dmesg... to check. Actual results: NIC on bus "0000:02:00.0" named as "eth1", while NIC on bus "0000:03:00.0" named as "eth0". Expected results: I don't know the rule for naming the on-board NICs, why is such a order? We expect NIC on bus "0000:02:00.0" named can be named as "eth0", while NIC on bus "0000:03:00.0" named as "eth1". Additional info:
There is no guarantee for the ordering, it is set as the devices are discovered.