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

2014-07-01 Thread Thadeu Lima de Souza Cascardo
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.

2014-07-01 Thread Thadeu Lima de Souza Cascardo
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.

2014-06-30 Thread Thadeu Lima de Souza Cascardo
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.

2014-06-30 Thread Kay Sievers
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