From c6e479eb14779e42bc7eafdcd913cbdf7bd6c312 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Tue, 18 Feb 2020 19:09:18 +0100 Subject: [PATCH] Revert "core: create virtual device on settings changes in idle handler" When AddConnection() or Update() terminate, the (unrealized) virtual device should be already be available, otherwise an activation attempt of that connection can fail. https://bugzilla.redhat.com/show_bug.cgi?id=1804350 This reverts commit c163207b077a0e66e344b2352ccbe392c76e63ed. (cherry picked from commit efc04b1285674ba2aea459039f4143b3307b4bcf) --- src/nm-manager.c | 51 ++---------------------------------------------- 1 file changed, 2 insertions(+), 49 deletions(-) diff --git a/src/nm-manager.c b/src/nm-manager.c index 6d3a5ddbf..7f6657fd7 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -168,9 +168,6 @@ typedef struct { NMSettings *settings; - CList connection_changed_on_idle_lst; - guint connection_changed_on_idle_id; - RadioState radio_states[RFKILL_TYPE_MAX]; NMVpnManager *vpn_manager; @@ -2098,7 +2095,6 @@ static void connection_changed (NMManager *self, NMSettingsConnection *sett_conn) { - NMManagerPrivate *priv; NMConnection *connection; NMDevice *device; @@ -2106,11 +2102,6 @@ connection_changed (NMManager *self, NM_SETTINGS_CONNECTION_INT_FLAGS_VOLATILE)) return; - priv = NM_MANAGER_GET_PRIVATE (self); - - if (!nm_settings_has_connection (priv->settings, sett_conn)) - return; - connection = nm_settings_connection_get_connection (sett_conn); if (!nm_connection_is_virtual (connection)) @@ -2126,46 +2117,12 @@ connection_changed (NMManager *self, retry_connections_for_parent_device (self, device); } -static gboolean -connection_changed_on_idle_cb (gpointer user_data) -{ - NMManager *self = user_data; - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - NMCListElem *elem; - - priv->connection_changed_on_idle_id = 0; - - while ((elem = c_list_first_entry (&priv->connection_changed_on_idle_lst, NMCListElem, lst))) { - gs_unref_object NMSettingsConnection *sett_conn = NULL; - - sett_conn = nm_c_list_elem_free_steal (elem); - connection_changed (self, sett_conn); - } - - return G_SOURCE_REMOVE; -} - -static void -connection_changed_on_idle (NMManager *self, - NMSettingsConnection *sett_conn) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - - if (priv->connection_changed_on_idle_id == 0) - priv->connection_changed_on_idle_id = g_idle_add (connection_changed_on_idle_cb, self); - - if (!nm_c_list_elem_find_first_ptr (&priv->connection_changed_on_idle_lst, sett_conn)) { - c_list_link_tail (&priv->connection_changed_on_idle_lst, - &nm_c_list_elem_new_stale (g_object_ref (sett_conn))->lst); - } -} - static void connection_added_cb (NMSettings *settings, NMSettingsConnection *sett_conn, NMManager *self) { - connection_changed_on_idle (self, sett_conn); + connection_changed (self, sett_conn); } static void @@ -2174,7 +2131,7 @@ connection_updated_cb (NMSettings *settings, guint update_reason_u, NMManager *self) { - connection_changed_on_idle (self, sett_conn); + connection_changed (self, sett_conn); } /*****************************************************************************/ @@ -7511,7 +7468,6 @@ nm_manager_init (NMManager *self) c_list_init (&priv->active_connections_lst_head); c_list_init (&priv->async_op_lst_head); c_list_init (&priv->delete_volatile_connection_lst_head); - c_list_init (&priv->connection_changed_on_idle_lst); priv->platform = g_object_ref (NM_PLATFORM_GET); @@ -7817,9 +7773,6 @@ dispose (GObject *object) g_clear_object (&priv->policy); } - nm_clear_g_source (&priv->connection_changed_on_idle_id); - nm_c_list_elem_free_all (&priv->connection_changed_on_idle_lst, g_object_unref); - if (priv->settings) { g_signal_handlers_disconnect_by_func (priv->settings, settings_startup_complete_changed, self); g_signal_handlers_disconnect_by_func (priv->settings, system_unmanaged_devices_changed_cb, self); -- 2.24.1