about summary refs log tree commit diff
path: root/src/nm-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nm-manager.c')
-rw-r--r--src/nm-manager.c40
1 files changed, 27 insertions, 13 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 3696c789..6d3a5ddb 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -2011,6 +2011,20 @@ system_create_virtual_device (NMManager *self, NMConnection *connection)
 		return device;
 	}
 
+	if (!find_master (self,
+	                  connection,
+	                  device,
+	                  NULL,
+	                  NULL,
+	                  NULL,
+	                  &error)) {
+		_LOG3D (LOGD_DEVICE, connection,
+		        "skip activation: %s",
+		        error->message);
+		g_error_free (error);
+		return device;
+	}
+
 	/* Create backing resources if the device has any autoconnect connections */
 	connections = nm_settings_get_connections_clone (priv->settings, NULL,
 	                                                 NULL, NULL,
@@ -4649,6 +4663,19 @@ _internal_activate_device (NMManager *self, NMActiveConnection *active, GError *
 	if (nm_active_connection_get_activation_type (active) == NM_ACTIVATION_TYPE_MANAGED)
 		nm_device_sys_iface_state_set (device, NM_DEVICE_SYS_IFACE_STATE_MANAGED);
 
+	/* Try to find the master connection/device if the connection has a dependency */
+	if (!find_master (self,
+	                  applied,
+	                  device,
+	                  &master_connection,
+	                  &master_device,
+	                  &master_ac,
+	                  error)) {
+		g_prefix_error (error, "Can not find a master for %s: ",
+		                nm_settings_connection_get_id (sett_conn));
+		return FALSE;
+	}
+
 	/* Create any backing resources the device needs */
 	if (!nm_device_is_real (device)) {
 		NMDevice *parent;
@@ -4717,19 +4744,6 @@ _internal_activate_device (NMManager *self, NMActiveConnection *active, GError *
 		}
 	}
 
-	/* Try to find the master connection/device if the connection has a dependency */
-	if (!find_master (self,
-	                  applied,
-	                  device,
-	                  &master_connection,
-	                  &master_device,
-	                  &master_ac,
-	                  error)) {
-		g_prefix_error (error, "Can not find a master for %s: ",
-		                nm_settings_connection_get_id (sett_conn));
-		return FALSE;
-	}
-
 	/* Ensure there's a master active connection the new connection we're
 	 * activating can depend on.
 	 */