summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-02-28 13:55:40 +0100
committerThomas Haller <thaller@redhat.com>2020-03-17 08:13:22 +0100
commit3d78740398a8238ee4ba4f02ca14a8812d0d5493 (patch)
tree5684d831f83c7bf3b4490c1ff3545e9807c7857b
parent5979972e20d167a2ebef69f09f5680efacc00d52 (diff)
downloadNetworkManager-3d78740398a8238ee4ba4f02ca14a8812d0d5493.tar.gz
device: allow scheduling nm_device_activate_schedule_stage1_prepare() right away
There was only API to schedule the stage on an idle handler. Sometimes, we are just in the right situation to schedule the stage right away. It should be possibly to avoid going through the extra hop. For now, none of the caller makes use of this. So, there isn't any actual change in behavior. But by adding this possibility, we may do use in the future.
-rw-r--r--src/devices/bluetooth/nm-device-bt.c8
-rw-r--r--src/devices/nm-device-ethernet.c4
-rw-r--r--src/devices/nm-device-macsec.c2
-rw-r--r--src/devices/nm-device-private.h3
-rw-r--r--src/devices/nm-device-wireguard.c2
-rw-r--r--src/devices/nm-device.c26
-rw-r--r--src/devices/team/nm-device-team.c2
-rw-r--r--src/devices/wifi/nm-device-olpc-mesh.c2
-rw-r--r--src/devices/wifi/nm-device-wifi-p2p.c2
-rw-r--r--src/devices/wifi/nm-device-wifi.c4
-rw-r--r--src/devices/wwan/nm-device-modem.c4
11 files changed, 28 insertions, 31 deletions
diff --git a/src/devices/bluetooth/nm-device-bt.c b/src/devices/bluetooth/nm-device-bt.c
index a6a4bd68c9..ab18897f4e 100644
--- a/src/devices/bluetooth/nm-device-bt.c
+++ b/src/devices/bluetooth/nm-device-bt.c
@@ -484,7 +484,7 @@ modem_auth_result (NMModem *modem, GError *error, gpointer user_data)
}
priv->stage1_modem_prepare_state = NM_DEVICE_STAGE_STATE_INIT;
- nm_device_activate_schedule_stage1_device_prepare (device);
+ nm_device_activate_schedule_stage1_device_prepare (device, FALSE);
}
static void
@@ -519,7 +519,7 @@ modem_prepare_result (NMModem *modem,
}
priv->stage1_modem_prepare_state = NM_DEVICE_STAGE_STATE_COMPLETED;
- nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self));
+ nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self), FALSE);
}
static void
@@ -719,7 +719,7 @@ mm_modem_added_cb (NMModemManager *manager,
priv = NM_DEVICE_BT_GET_PRIVATE (self);
if (priv->stage1_bt_state == NM_DEVICE_STAGE_STATE_COMPLETED)
- nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self));
+ nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self), FALSE);
}
/*****************************************************************************/
@@ -903,7 +903,7 @@ connect_bz_cb (NMBluezManager *bz_mgr,
}
priv->stage1_bt_state = NM_DEVICE_STAGE_STATE_COMPLETED;
- nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self));
+ nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self), FALSE);
}
static NMActStageReturn
diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c
index d54350d24b..dc44c084bd 100644
--- a/src/devices/nm-device-ethernet.c
+++ b/src/devices/nm-device-ethernet.c
@@ -505,7 +505,7 @@ wired_secrets_cb (NMActRequest *req,
}
supplicant_interface_release (self);
- nm_device_activate_schedule_stage1_device_prepare (device);
+ nm_device_activate_schedule_stage1_device_prepare (device, FALSE);
}
static void
@@ -954,7 +954,7 @@ pppoe_reconnect_delay (gpointer user_data)
priv->pppoe_wait_id = 0;
priv->last_pppoe_time = 0;
_LOGI (LOGD_DEVICE, "PPPoE reconnect delay complete, resuming connection...");
- nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self));
+ nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self), FALSE);
return G_SOURCE_REMOVE;
}
diff --git a/src/devices/nm-device-macsec.c b/src/devices/nm-device-macsec.c
index 08a5f8cd30..4d620831ac 100644
--- a/src/devices/nm-device-macsec.c
+++ b/src/devices/nm-device-macsec.c
@@ -306,7 +306,7 @@ macsec_secrets_cb (NMActRequest *req,
return;
}
- nm_device_activate_schedule_stage1_device_prepare (device);
+ nm_device_activate_schedule_stage1_device_prepare (device, FALSE);
}
static void
diff --git a/src/devices/nm-device-private.h b/src/devices/nm-device-private.h
index a8e577e645..dc8a33f98e 100644
--- a/src/devices/nm-device-private.h
+++ b/src/devices/nm-device-private.h
@@ -71,7 +71,8 @@ gboolean nm_device_hw_addr_reset (NMDevice *device, const char *detail);
void nm_device_set_firmware_missing (NMDevice *self, gboolean missing);
-void nm_device_activate_schedule_stage1_device_prepare (NMDevice *device);
+void nm_device_activate_schedule_stage1_device_prepare (NMDevice *device,
+ gboolean do_sync);
void nm_device_activate_schedule_stage2_device_config (NMDevice *device);
void nm_device_activate_schedule_ip_config_result (NMDevice *device,
diff --git a/src/devices/nm-device-wireguard.c b/src/devices/nm-device-wireguard.c
index e4f7122d34..bb7a595060 100644
--- a/src/devices/nm-device-wireguard.c
+++ b/src/devices/nm-device-wireguard.c
@@ -1266,7 +1266,7 @@ _secrets_cb (NMActRequest *req,
return;
}
- nm_device_activate_schedule_stage1_device_prepare (device);
+ nm_device_activate_schedule_stage1_device_prepare (device, FALSE);
}
static void
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index 852aae173e..e712d5813b 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -6438,7 +6438,7 @@ master_ready_cb (NMActiveConnection *active,
nm_assert (nm_active_connection_get_master_ready (active));
if (priv->state == NM_DEVICE_STATE_PREPARE)
- nm_device_activate_schedule_stage1_device_prepare (self);
+ nm_device_activate_schedule_stage1_device_prepare (self, FALSE);
}
static void
@@ -6586,7 +6586,7 @@ sriov_params_cb (GError *error, gpointer data)
priv->stage1_sriov_state = NM_DEVICE_STAGE_STATE_COMPLETED;
- nm_device_activate_schedule_stage1_device_prepare (self);
+ nm_device_activate_schedule_stage1_device_prepare (self, FALSE);
}
/*
@@ -6729,23 +6729,19 @@ activate_stage1_device_prepare (NMDevice *self)
activation_source_invoke_sync (self, activate_stage2_device_config, AF_INET);
}
-/*
- * nm_device_activate_schedule_stage1_device_prepare
- *
- * Prepare a device for activation
- *
- */
void
-nm_device_activate_schedule_stage1_device_prepare (NMDevice *self)
+nm_device_activate_schedule_stage1_device_prepare (NMDevice *self,
+ gboolean do_sync)
{
- NMDevicePrivate *priv;
-
g_return_if_fail (NM_IS_DEVICE (self));
+ g_return_if_fail (NM_DEVICE_GET_PRIVATE (self)->act_request.obj);
- priv = NM_DEVICE_GET_PRIVATE (self);
- g_return_if_fail (priv->act_request.obj);
+ if (!do_sync) {
+ activation_source_schedule (self, activate_stage1_device_prepare, AF_INET);
+ return;
+ }
- activation_source_schedule (self, activate_stage1_device_prepare, AF_INET);
+ activation_source_invoke_sync (self, activate_stage1_device_prepare, AF_INET);
}
static NMActStageReturn
@@ -12600,7 +12596,7 @@ _device_activate (NMDevice *self, NMActRequest *req)
act_request_set (self, req);
- nm_device_activate_schedule_stage1_device_prepare (self);
+ nm_device_activate_schedule_stage1_device_prepare (self, FALSE);
}
static void
diff --git a/src/devices/team/nm-device-team.c b/src/devices/team/nm-device-team.c
index a0749c21f6..3f7ee48c0e 100644
--- a/src/devices/team/nm-device-team.c
+++ b/src/devices/team/nm-device-team.c
@@ -416,7 +416,7 @@ teamd_dbus_appeared (GDBusConnection *connection,
}
priv->stage1_state = NM_DEVICE_STAGE_STATE_COMPLETED;
- nm_device_activate_schedule_stage1_device_prepare (device);
+ nm_device_activate_schedule_stage1_device_prepare (device, FALSE);
}
static void
diff --git a/src/devices/wifi/nm-device-olpc-mesh.c b/src/devices/wifi/nm-device-olpc-mesh.c
index 33c3b83007..2850682b00 100644
--- a/src/devices/wifi/nm-device-olpc-mesh.c
+++ b/src/devices/wifi/nm-device-olpc-mesh.c
@@ -256,7 +256,7 @@ companion_notify_cb (NMDeviceWifi *companion, GParamSpec *pspec, gpointer user_d
g_object_get (companion, NM_DEVICE_WIFI_SCANNING, &scanning, NULL);
if (!scanning) {
priv->stage1_waiting = FALSE;
- nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self));
+ nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self), FALSE);
}
}
diff --git a/src/devices/wifi/nm-device-wifi-p2p.c b/src/devices/wifi/nm-device-wifi-p2p.c
index ae2a741d38..a655c95025 100644
--- a/src/devices/wifi/nm-device-wifi-p2p.c
+++ b/src/devices/wifi/nm-device-wifi-p2p.c
@@ -523,7 +523,7 @@ peer_add_remove (NMDeviceWifiP2P *self,
if (peer) {
/* A peer for the connection was found, cancel the timeout and go to configure state. */
nm_clear_g_source (&priv->find_peer_timeout_id);
- nm_device_activate_schedule_stage1_device_prepare (device);
+ nm_device_activate_schedule_stage1_device_prepare (device, FALSE);
}
}
diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c
index 6b6467119d..ce5cf1a466 100644
--- a/src/devices/wifi/nm-device-wifi.c
+++ b/src/devices/wifi/nm-device-wifi.c
@@ -1743,7 +1743,7 @@ wifi_secrets_cb (NMActRequest *req,
return;
}
- nm_device_activate_schedule_stage1_device_prepare (device);
+ nm_device_activate_schedule_stage1_device_prepare (device, FALSE);
}
static void
@@ -1810,7 +1810,7 @@ supplicant_iface_wps_credentials_cb (NMSupplicantInterface *iface,
}
wifi_secrets_cancel (self);
- nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self));
+ nm_device_activate_schedule_stage1_device_prepare (NM_DEVICE (self), FALSE);
}
static gboolean
diff --git a/src/devices/wwan/nm-device-modem.c b/src/devices/wwan/nm-device-modem.c
index 5b712625bb..53e4636523 100644
--- a/src/devices/wwan/nm-device-modem.c
+++ b/src/devices/wwan/nm-device-modem.c
@@ -156,7 +156,7 @@ modem_prepare_result (NMModem *modem,
}
priv->stage1_state = NM_DEVICE_STAGE_STATE_COMPLETED;
- nm_device_activate_schedule_stage1_device_prepare (device);
+ nm_device_activate_schedule_stage1_device_prepare (device, FALSE);
}
static void
@@ -191,7 +191,7 @@ modem_auth_result (NMModem *modem, GError *error, gpointer user_data)
}
priv->stage1_state = NM_DEVICE_STAGE_STATE_INIT;
- nm_device_activate_schedule_stage1_device_prepare (device);
+ nm_device_activate_schedule_stage1_device_prepare (device, FALSE);
}
static void