Re: [systemd-devel] [PATCH] Use dev_port for the ID of a network device.
On Tue, Jul 01, 2014 at 02:33:19AM +0200, Kay Sievers wrote: On Mon, Jun 30, 2014 at 10:36 PM, Thadeu Lima de Souza Cascardo casca...@linux.vnet.ibm.com wrote: 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. I don't see a problem switching this over, but why would we keep using dev_id if it is not the right thing to use? Kay Because dev_port has only been introduced into Linux 3.15, and some drivers used dev_id before Linux 3.10. It's not an ideal situation, so I think it's important to keep some compatibility for the time being. Or we could simply drop dev_id, and force everyone to do the right thing and backport dev_port support and fix their drivers. Cascardo. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] Use dev_port for the ID of a network device.
On Tue, Jul 01, 2014 at 08:45:56AM +0200, Bjørn Mork wrote: Thadeu Lima de Souza Cascardo casca...@linux.vnet.ibm.com writes: 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; Note that the base of the new attribute is 10, not 16: bjorn@nemi:/usr/local/src/git/linux$ git grep dev_port net/core/ net/core/net-sysfs.c:NETDEVICE_SHOW_RO(dev_port, fmt_dec); net/core/net-sysfs.c: dev_attr_dev_port.attr, bjorn@nemi:/usr/local/src/git/linux$ git grep dev_id net/core/ net/core/net-sysfs.c:NETDEVICE_SHOW_RO(dev_id, fmt_hex); net/core/net-sysfs.c: dev_attr_dev_id.attr, Bjørn Thanks for noticing, I'll fix that. Cascardo. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] [PATCH] Use dev_port for the ID of a network device.
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 casca...@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 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] Use dev_port for the ID of a network device.
On Mon, Jun 30, 2014 at 10:36 PM, Thadeu Lima de Souza Cascardo casca...@linux.vnet.ibm.com wrote: 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. I don't see a problem switching this over, but why would we keep using dev_id if it is not the right thing to use? Kay ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel