diff --git a/src/nm-manager.c b/src/nm-manager.c index 2171260240..f239d5f32b 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -2266,10 +2266,24 @@ platform_link_added (NMManager *self, if (device) { gs_free_error GError *error = NULL; + NMUnmanFlagOp unmanaged_user_explicit = NM_UNMAN_FLAG_OP_FORGET; + + if (dev_state) { + switch (dev_state->managed) { + case NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED: + unmanaged_user_explicit = NM_UNMAN_FLAG_OP_SET_MANAGED; + break; + case NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNMANAGED: + unmanaged_user_explicit = NM_UNMAN_FLAG_OP_SET_UNMANAGED; + break; + case NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNKNOWN: + break; + } + } if (nm_device_realize_start (device, plink, - NM_UNMAN_FLAG_OP_FORGET, + unmanaged_user_explicit, NULL, &error)) { add_device (self, device, NULL);