device-services: make network driver dispatch disjoint

- rtl8168d: add explicit device = [0x8168, 0x8169] filter; the
  description is corrected to 'Realtek 8168/8169' (the '8125'
  claim is removed because rtl8125 has a different register layout
  and would silently misbind).
- ixgbed: raise priority to 60 and add explicit device id
  enumeration; this removes the collision with e1000d which
  matches the same vendor/class/subclass wildcard. e1000d
  keeps priority 50 and its existing device filter (5 IDs); the
  two are now disjoint.
This commit is contained in:
2026-07-26 17:20:19 +09:00
parent d878b19ed1
commit 07f14c01be
+10 -2
View File
@@ -288,7 +288,7 @@ subclass = 0
[[driver]] [[driver]]
name = "rtl8168d" name = "rtl8168d"
description = "Realtek 8168/8125 Ethernet" description = "Realtek 8168/8169 Gigabit Ethernet"
priority = 50 priority = 50
command = ["/usr/lib/drivers/rtl8168d"] command = ["/usr/lib/drivers/rtl8168d"]
@@ -297,6 +297,11 @@ vendor = 0x10EC
class = 2 class = 2
# Realtek also ships class 0x02 subclass 0x80 Wi-Fi (RTL8852 etc.) — scope to Ethernet. # Realtek also ships class 0x02 subclass 0x80 Wi-Fi (RTL8852 etc.) — scope to Ethernet.
subclass = 0 subclass = 0
# Restrict to the PCI device IDs the rtl8168d register layout supports.
# RTL8168 (0x8168) and RTL8169/8111 (0x8169) only. The RTL8125 (0x8125)
# 2.5GbE chip has a different register layout (r8125 in Linux); claim
# would silently misbind until a proper r8125d driver exists.
device = [0x8168, 0x8169]
[[driver]] [[driver]]
name = "rtl8139d" name = "rtl8139d"
@@ -311,13 +316,16 @@ device = 0x8139
[[driver]] [[driver]]
name = "ixgbed" name = "ixgbed"
description = "Intel 10 Gigabit Ethernet" description = "Intel 10 Gigabit Ethernet"
priority = 50 priority = 60
command = ["/usr/lib/drivers/ixgbed"] command = ["/usr/lib/drivers/ixgbed"]
[[driver.match]] [[driver.match]]
vendor = 0x8086 vendor = 0x8086
class = 2 class = 2
# Ethernet only and explicitly enumerated by device id so we never
# claim an e1000 gigabit NIC that e1000d owns.
subclass = 0 subclass = 0
device = [0x10F7, 0x1514, 0x1517, 0x151C, 0x10F9, 0x10FB, 0x1521, 0x1522, 0x1523, 0x1524, 0x154A, 0x154D, 0x1557, 0x1558, 0x1563, 0x1572, 0x15AD, 0x15AE, 0x15C2, 0x15C3, 0x15C4, 0x15C5, 0x15D1, 0x15D2, 0x15D5, 0x15DA, 0x15DB, 0x15E4, 0x15E5, 0x15F4, 0x15F5, 0x15F8, 0x15FF, 0x1571, 0x1581, 0x1583, 0x1589, 0x158A, 0x158B, 0x37D0, 0x37D1, 0x37D2]
[[driver]] [[driver]]
name = "virtio-netd" name = "virtio-netd"