From: Yu Watanabe Date: Wed, 15 Sep 2021 04:36:34 +0000 (+0900) Subject: udev: use LinkInfo::iftype at one more place X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a3fcb8fce9c721cf58f3f14e8aed6208851c6bf7;p=thirdparty%2Fsystemd.git udev: use LinkInfo::iftype at one more place --- diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c index 63b7364b040..eaa7060fe9b 100644 --- a/src/udev/udev-builtin-net_id.c +++ b/src/udev/udev-builtin-net_id.c @@ -342,22 +342,16 @@ static int dev_pci_slot(sd_device *dev, const LinkInfo *info, NetNames *names) { r = safe_atolu_full(attr, 10, &dev_port); if (r < 0) log_device_debug_errno(dev, r, "Failed to parse attribute dev_port, ignoring: %m"); + /* With older kernels IP-over-InfiniBand network interfaces sometimes erroneously * provide the port number in the 'dev_id' sysfs attribute instead of 'dev_port', * which thus stays initialized as 0. */ if (dev_port == 0 && - sd_device_get_sysattr_value(dev, "type", &attr) >= 0) { - unsigned long type; - - r = safe_atolu_full(attr, 10, &type); + info->iftype == ARPHRD_INFINIBAND && + sd_device_get_sysattr_value(dev, "dev_id", &attr) >= 0) { + r = safe_atolu_full(attr, 10, &dev_port); if (r < 0) - log_device_debug_errno(dev, r, "Failed to parse attribute type, ignoring: %m"); - else if (type == ARPHRD_INFINIBAND && - sd_device_get_sysattr_value(dev, "dev_id", &attr) >= 0) { - r = safe_atolu_full(attr, 10, &dev_port); - if (r < 0) - log_device_debug_errno(dev, r, "Failed to parse attribute dev_id, ignoring: %m"); - } + log_device_debug_errno(dev, r, "Failed to parse attribute dev_id, ignoring: %m"); } }