diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-09-15 13:36:34 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-10-06 16:39:52 +0900 |
commit | e44b0fbce78fdf44f0c632a8cc308be77062ef18 (patch) | |
tree | 27412b4c56352f8651c209d1452f7ea2bddfd2db /src/udev | |
parent | 78ae4d449eb44cf5ad72803087a7ad4aa0e338a2 (diff) | |
download | systemd-e44b0fbce78fdf44f0c632a8cc308be77062ef18.tar.gz |
udev: use LinkInfo::iftype at one more place
Diffstat (limited to 'src/udev')
-rw-r--r-- | src/udev/udev-builtin-net_id.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c index bc174ad965..a3cbbe50d5 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"); } } |