[systemd-devel] [PATCH] Use dev_port for the ID of a network device.

Thadeu Lima de Souza Cascardo cascardo at linux.vnet.ibm.com
Mon Jun 30 13:36:36 PDT 2014


For network devices on the same PCI function, dev_id should not be used,
since its purpose is for IPv6 support on interfaces with the same MAC
address.

The new dev_port sysfs attribute should be used when it is found. When
it is not, using dev_id might work.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo at linux.vnet.ibm.com>
---
 src/udev/udev-builtin-net_id.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
index c80c30a..6de9c98 100644
--- a/src/udev/udev-builtin-net_id.c
+++ b/src/udev/udev-builtin-net_id.c
@@ -186,9 +186,14 @@ static int dev_pci_slot(struct udev_device *dev, struct netnames *names) {
                 return -ENOENT;
 
         /* kernel provided multi-device index */
-        attr = udev_device_get_sysattr_value(dev, "dev_id");
-        if (attr)
+        attr = udev_device_get_sysattr_value(dev, "dev_port");
+        if (attr) {
                 dev_id = strtol(attr, NULL, 16);
+        } else {
+                attr = udev_device_get_sysattr_value(dev, "dev_id");
+                if (attr)
+                        dev_id = strtol(attr, NULL, 16);
+        }
 
         /* compose a name based on the raw kernel's PCI bus, slot numbers */
         s = names->pci_path;
-- 
1.7.1



More information about the systemd-devel mailing list