netdev: update use of l_rtnl_set_mac

This API was updated to take an extra boolean which will
automatically power up the device while changing the MAC
address. Since this is what IWD does anyways we can avoid
the need for an intermediate callback and go right into
netdev_initial_up_cb.
This commit is contained in:
James Prestwood 2020-03-11 18:52:51 -04:00 committed by Denis Kenzior
parent eb7845ec29
commit 421af060f8
1 changed files with 2 additions and 16 deletions

View File

@ -4137,20 +4137,6 @@ static void netdev_initial_up_cb(int error, uint16_t type, const void *data,
netdev->events_ready = true;
}
static void netdev_set_mac_cb(int error, uint16_t type, const void *data,
uint32_t len, void *user_data)
{
struct netdev *netdev = user_data;
if (error)
l_error("Error setting mac address on %d: %s", netdev->index,
strerror(-error));
netdev->set_powered_cmd_id =
l_rtnl_set_powered(rtnl, netdev->index, true,
netdev_initial_up_cb, netdev, NULL);
}
static bool netdev_check_set_mac(struct netdev *netdev)
{
if (util_mem_is_zero(netdev->set_mac_once, 6))
@ -4159,8 +4145,8 @@ static bool netdev_check_set_mac(struct netdev *netdev)
l_debug("Setting initial address on ifindex: %d to: " MAC,
netdev->index, MAC_STR(netdev->set_mac_once));
netdev->set_powered_cmd_id =
l_rtnl_set_mac(rtnl, netdev->index, netdev->set_mac_once,
netdev_set_mac_cb, netdev, NULL);
l_rtnl_set_mac(rtnl, netdev->index, netdev->set_mac_once, true,
netdev_initial_up_cb, netdev, NULL);
memset(netdev->set_mac_once, 0, 6);
return true;
}