diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-04-14 17:46:20 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-04-15 10:19:31 +0200 |
commit | 47d60a393c6f38dd5a3d6e5488f6f4b3ae947677 (patch) | |
tree | c5cb21e24ecf91defe39ce97791c8fbfc6d67d06 | |
parent | 38e3dc46a04dcc3374cc2b4701b2345acb44f9d2 (diff) | |
download | NetworkManager-bg/sriov-numvfs-rh1398934.tar.gz |
device: re-apply sriov_numvfs after SIGHUPbg/sriov-numvfs-rh1398934
-rw-r--r-- | src/devices/nm-device.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index e235fd9709..af80f74e71 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -295,7 +295,7 @@ typedef struct _NMDevicePrivate { guint link_disconnected_id; guint carrier_defer_id; guint carrier_wait_id; - gulong ignore_carrier_id; + gulong config_changed_id; guint32 mtu; guint32 ip6_mtu; guint32 mtu_initial; @@ -2816,17 +2816,20 @@ device_init_sriov_num_vfs (NMDevice *self) } static void -config_changed_update_ignore_carrier (NMConfig *config, - NMConfigData *config_data, - NMConfigChangeFlags changes, - NMConfigData *old_data, - NMDevice *self) +config_changed (NMConfig *config, + NMConfigData *config_data, + NMConfigChangeFlags changes, + NMConfigData *old_data, + NMDevice *self) { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); if ( priv->state <= NM_DEVICE_STATE_DISCONNECTED || priv->state > NM_DEVICE_STATE_ACTIVATED) priv->ignore_carrier = nm_config_data_get_ignore_carrier (config_data, self); + + if (NM_FLAGS_HAS (changes, NM_CONFIG_CHANGE_VALUES)) + device_init_sriov_num_vfs (self); } static void @@ -2961,10 +2964,10 @@ realize_start_setup (NMDevice *self, /* Note: initial hardware address must be read before calling get_ignore_carrier() */ config = nm_config_get (); priv->ignore_carrier = nm_config_data_get_ignore_carrier (nm_config_get_data (config), self); - if (!priv->ignore_carrier_id) { - priv->ignore_carrier_id = g_signal_connect (config, + if (!priv->config_changed_id) { + priv->config_changed_id = g_signal_connect (config, NM_CONFIG_SIGNAL_CONFIG_CHANGED, - G_CALLBACK (config_changed_update_ignore_carrier), + G_CALLBACK (config_changed), self); } @@ -3182,7 +3185,7 @@ nm_device_unrealize (NMDevice *self, gboolean remove_resources, GError **error) priv->capabilities |= NM_DEVICE_GET_CLASS (self)->get_generic_capabilities (self); _notify (self, PROP_CAPABILITIES); - nm_clear_g_signal_handler (nm_config_get (), &priv->ignore_carrier_id); + nm_clear_g_signal_handler (nm_config_get (), &priv->config_changed_id); priv->real = FALSE; _notify (self, PROP_REAL); @@ -13697,7 +13700,7 @@ dispose (GObject *object) arp_cleanup (self); - nm_clear_g_signal_handler (nm_config_get (), &priv->ignore_carrier_id); + nm_clear_g_signal_handler (nm_config_get (), &priv->config_changed_id); dispatcher_cleanup (self); |