netdev: On connect success don't wait for netdev_operstate_cb
Send the link_mode and operstate RTNL command in parallel with the connect Ok event, don't wait for the RTNL callback as it's non-critical.
This commit is contained in:
parent
4d20db05d7
commit
55ecda31f3
31
src/netdev.c
31
src/netdev.c
|
@ -714,24 +714,15 @@ static void netdev_operstate_cb(bool success, void *user_data)
|
||||||
{
|
{
|
||||||
struct netdev *netdev = user_data;
|
struct netdev *netdev = user_data;
|
||||||
|
|
||||||
if (!netdev->connected)
|
l_debug("netdev: %d, success: %d", netdev->index, success);
|
||||||
return;
|
|
||||||
|
|
||||||
if (!success) {
|
|
||||||
struct l_genl_msg *msg;
|
|
||||||
|
|
||||||
l_error("Setting LinkMode and OperState failed for ifindex: %d",
|
|
||||||
netdev->index);
|
|
||||||
|
|
||||||
netdev->result = NETDEV_RESULT_KEY_SETTING_FAILED;
|
|
||||||
msg = netdev_build_cmd_deauthenticate(netdev,
|
|
||||||
MPDU_REASON_CODE_UNSPECIFIED);
|
|
||||||
netdev->disconnect_cmd_id = l_genl_family_send(nl80211, msg,
|
|
||||||
netdev_connect_failed,
|
|
||||||
netdev, NULL);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void netdev_connect_ok(struct netdev *netdev)
|
||||||
|
{
|
||||||
|
netdev_set_linkmode_and_operstate(netdev->index, IF_LINK_MODE_DORMANT,
|
||||||
|
IF_OPER_UP, netdev_operstate_cb,
|
||||||
|
netdev);
|
||||||
|
|
||||||
netdev->operational = true;
|
netdev->operational = true;
|
||||||
|
|
||||||
if (netdev->connect_cb) {
|
if (netdev->connect_cb) {
|
||||||
|
@ -786,9 +777,7 @@ static void netdev_set_station_cb(struct l_genl_msg *msg, void *user_data)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
netdev_set_linkmode_and_operstate(netdev->index, IF_LINK_MODE_DORMANT,
|
netdev_connect_ok(netdev);
|
||||||
IF_OPER_UP, netdev_operstate_cb,
|
|
||||||
netdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct l_genl_msg *netdev_build_cmd_set_station(struct netdev *netdev)
|
static struct l_genl_msg *netdev_build_cmd_set_station(struct netdev *netdev)
|
||||||
|
@ -1464,9 +1453,7 @@ static void netdev_connect_event(struct l_genl_msg *msg,
|
||||||
handshake_state_install_ptk(netdev->handshake);
|
handshake_state_install_ptk(netdev->handshake);
|
||||||
}
|
}
|
||||||
|
|
||||||
netdev_set_linkmode_and_operstate(netdev->index, IF_LINK_MODE_DORMANT,
|
netdev_connect_ok(netdev);
|
||||||
IF_OPER_UP, netdev_operstate_cb,
|
|
||||||
netdev);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue