|
|
386167 |
From 16419a5467ca7bf9408030316cf12bc31cdd2e33 Mon Sep 17 00:00:00 2001
|
|
|
386167 |
From: Thomas Haller <thaller@redhat.com>
|
|
|
386167 |
Date: Mon, 26 Jan 2015 15:34:02 +0100
|
|
|
386167 |
Subject: [PATCH] device: schedule queued_ip_config_change() after constructing
|
|
|
386167 |
device
|
|
|
386167 |
|
|
|
386167 |
During queued_ip_config_change(), we eventually call update_ip_config()
|
|
|
386167 |
and ip4_config_merge_and_apply(). These functions read the IP configuration
|
|
|
386167 |
from platform and setup the private ip4_config instance.
|
|
|
386167 |
|
|
|
386167 |
Trigger this initialization after constructing the device to setup
|
|
|
386167 |
the IP configuration.
|
|
|
386167 |
|
|
|
386167 |
Before, for unmanaged devices we would not call ip4_config_merge_and_apply()
|
|
|
386167 |
until the first platform change event.
|
|
|
386167 |
|
|
|
386167 |
Note that in the worst case we do some unnecessary work due to this,
|
|
|
386167 |
because queued_ip_config_change() must already be robust to be called
|
|
|
386167 |
at any time.
|
|
|
386167 |
|
|
|
386167 |
(cherry picked from commit ddac52a61e838b6f2b7e103e2f94276c6dc41037)
|
|
|
386167 |
---
|
|
|
386167 |
src/devices/nm-device.c | 3 +++
|
|
|
386167 |
1 file changed, 3 insertions(+)
|
|
|
386167 |
|
|
|
386167 |
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
|
|
|
386167 |
index 1c75790..dd8fd8f 100644
|
|
|
386167 |
--- a/src/devices/nm-device.c
|
|
|
386167 |
+++ b/src/devices/nm-device.c
|
|
|
386167 |
@@ -8067,6 +8067,9 @@ constructor (GType type,
|
|
|
386167 |
g_signal_connect (platform, NM_PLATFORM_SIGNAL_IP6_ROUTE_CHANGED, G_CALLBACK (device_ip_changed), self);
|
|
|
386167 |
g_signal_connect (platform, NM_PLATFORM_SIGNAL_LINK_CHANGED, G_CALLBACK (link_changed_cb), self);
|
|
|
386167 |
|
|
|
386167 |
+ /* trigger initial ip config change to initialize ip-config */
|
|
|
386167 |
+ priv->queued_ip_config_id = g_idle_add (queued_ip_config_change, self);
|
|
|
386167 |
+
|
|
|
386167 |
if (nm_platform_check_support_user_ipv6ll ()) {
|
|
|
386167 |
int ip_ifindex = nm_device_get_ip_ifindex (self);
|
|
|
386167 |
|
|
|
386167 |
--
|
|
|
386167 |
1.9.3
|
|
|
386167 |
|