Beniamino Galvani 2019-08-01 09:26:20 +02:00
commit 5f668b81d3
4 changed files with 23 additions and 9 deletions

View file

@ -414,6 +414,12 @@ release_slave (NMDevice *device,
gboolean success;
gs_free char *address = NULL;
int ifindex_slave;
int ifindex;
ifindex = nm_device_get_ifindex (device);
if ( ifindex <= 0
|| !nm_platform_link_get (nm_device_get_platform (device), ifindex))
configure = FALSE;
ifindex_slave = nm_device_get_ip_ifindex (slave);

View file

@ -626,6 +626,12 @@ release_slave (NMDevice *device,
NMDeviceBridge *self = NM_DEVICE_BRIDGE (device);
gboolean success;
int ifindex_slave;
int ifindex;
ifindex = nm_device_get_ifindex (device);
if ( ifindex <= 0
|| !nm_platform_link_get (nm_device_get_platform (device), ifindex))
configure = FALSE;
ifindex_slave = nm_device_get_ip_ifindex (slave);

View file

@ -4153,13 +4153,14 @@ nm_device_create_and_realize (NMDevice *self,
{
nm_auto_nmpobj const NMPObject *plink_keep_alive = NULL;
NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
const NMPlatformLink *plink = NULL;
const NMPlatformLink *plink;
/* Must be set before device is realized */
priv->nm_owned = !nm_platform_link_get_by_ifname (nm_device_get_platform (self), priv->iface);
plink = nm_platform_link_get_by_ifname (nm_device_get_platform (self), priv->iface);
priv->nm_owned = !plink || !link_type_compatible (self, plink->type, NULL, NULL);
_LOGD (LOGD_DEVICE, "create (is %snm-owned)", priv->nm_owned ? "" : "not ");
plink = NULL;
/* Create any resources the device needs */
if (NM_DEVICE_GET_CLASS (self)->create_and_realize) {
if (!NM_DEVICE_GET_CLASS (self)->create_and_realize (self, connection, parent, &plink, error))
@ -4986,7 +4987,6 @@ nm_device_master_release_slaves (NMDevice *self)
{
NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
NMDeviceStateReason reason;
gboolean configure = TRUE;
CList *iter, *safe;
/* Don't release the slaves if this connection doesn't belong to NM. */
@ -4997,14 +4997,10 @@ nm_device_master_release_slaves (NMDevice *self)
if (priv->state == NM_DEVICE_STATE_FAILED)
reason = NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED;
if ( priv->ifindex <= 0
|| !nm_platform_link_get (nm_device_get_platform (self), priv->ifindex))
configure = FALSE;
c_list_for_each_safe (iter, safe, &priv->slaves) {
SlaveInfo *info = c_list_entry (iter, SlaveInfo, lst_slave);
nm_device_master_release_one_slave (self, info->slave, configure, reason);
nm_device_master_release_one_slave (self, info->slave, TRUE, reason);
}
}

View file

@ -775,6 +775,12 @@ release_slave (NMDevice *device,
NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (self);
gboolean success;
int ifindex_slave;
int ifindex;
ifindex = nm_device_get_ifindex (device);
if ( ifindex <= 0
|| !nm_platform_link_get (nm_device_get_platform (device), ifindex))
configure = FALSE;
ifindex_slave = nm_device_get_ip_ifindex (slave);