diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c index 2f9a092a0f..4fc32c38f2 100644 --- a/src/devices/nm-device-ethernet.c +++ b/src/devices/nm-device-ethernet.c @@ -306,14 +306,18 @@ static NMDeviceCapabilities get_generic_capabilities (NMDevice *device) { NMDeviceEthernet *self = NM_DEVICE_ETHERNET (device); + int ifindex = nm_device_get_ifindex (device); - if (nm_platform_link_supports_carrier_detect (NM_PLATFORM_GET, nm_device_get_ifindex (device))) - return NM_DEVICE_CAP_CARRIER_DETECT; - else { - _LOGI (LOGD_PLATFORM, "driver '%s' does not support carrier detection.", - nm_device_get_driver (device)); - return NM_DEVICE_CAP_NONE; + if (ifindex > 0) { + if (nm_platform_link_supports_carrier_detect (NM_PLATFORM_GET, ifindex)) + return NM_DEVICE_CAP_CARRIER_DETECT; + else { + _LOGI (LOGD_PLATFORM, "driver '%s' does not support carrier detection.", + nm_device_get_driver (device)); + } } + + return NM_DEVICE_CAP_NONE; } static guint32 diff --git a/src/devices/nm-device-generic.c b/src/devices/nm-device-generic.c index 60afb6753d..2f51c69dd5 100644 --- a/src/devices/nm-device-generic.c +++ b/src/devices/nm-device-generic.c @@ -56,7 +56,9 @@ G_DEFINE_TYPE (NMDeviceGeneric, nm_device_generic, NM_TYPE_DEVICE) static NMDeviceCapabilities get_generic_capabilities (NMDevice *dev) { - if (nm_platform_link_supports_carrier_detect (NM_PLATFORM_GET, nm_device_get_ifindex (dev))) + int ifindex = nm_device_get_ifindex (dev); + + if (ifindex > 0 && nm_platform_link_supports_carrier_detect (NM_PLATFORM_GET, ifindex)) return NM_DEVICE_CAP_CARRIER_DETECT; else return NM_DEVICE_CAP_NONE;