summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/devices/nm-device.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index 316eb6ca2f..dfc68af759 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -3578,6 +3578,7 @@ slave_state_changed (NMDevice *slave,
{
NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
gboolean release = FALSE;
+ gboolean configure;
_LOGD (LOGD_DEVICE, "slave %s state change %d (%s) -> %d (%s)",
nm_device_get_iface (slave),
@@ -3601,8 +3602,11 @@ slave_state_changed (NMDevice *slave,
}
if (release) {
+ configure = priv->sys_iface_state == NM_DEVICE_SYS_IFACE_STATE_MANAGED
+ && nm_device_sys_iface_state_get (slave) == NM_DEVICE_SYS_IFACE_STATE_MANAGED;
+
nm_device_master_release_one_slave (self, slave,
- priv->sys_iface_state == NM_DEVICE_SYS_IFACE_STATE_MANAGED,
+ configure,
reason);
/* Bridge/bond/team interfaces are left up until manually deactivated */
if ( c_list_is_empty (&priv->slaves)