summaryrefslogtreecommitdiff
path: root/src/core/devices/nm-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/devices/nm-device.c')
-rw-r--r--src/core/devices/nm-device.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
index 6be8b06a6a..9f4c5bb7e8 100644
--- a/src/core/devices/nm-device.c
+++ b/src/core/devices/nm-device.c
@@ -6536,12 +6536,16 @@ device_recheck_slave_status(NMDevice *self, const NMPlatformLink *plink)
g_return_if_fail(plink);
- if (plink->master <= 0)
- goto out;
-
- master = nm_manager_get_device_by_ifindex(NM_MANAGER_GET, plink->master);
- plink_master = nm_platform_link_get(nm_device_get_platform(self), plink->master);
- plink_master_keep_alive = nmp_object_ref(NMP_OBJECT_UP_CAST(plink_master));
+ if (plink->master > 0) {
+ master = nm_manager_get_device_by_ifindex(NM_MANAGER_GET, plink->master);
+ plink_master = nm_platform_link_get(nm_device_get_platform(self), plink->master);
+ plink_master_keep_alive = nmp_object_ref(NMP_OBJECT_UP_CAST(plink_master));
+ } else {
+ if (priv->master_ifindex == 0)
+ goto out;
+ master = NULL;
+ plink_master = NULL;
+ }
if (master == NULL && plink_master
&& NM_IN_STRSET(plink_master->name, "ovs-system", "ovs-netdev")