mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-26 02:19:26 +01:00
netdev: Initialize signal level during connection attempt
The call to netdev_rssi_level_init() in netdev_connect_common() is currently a no-op, because netdev->connected has not yet been set at this stage of the connection attempt. Because netdev_rssi_level_init() is only used twice, it's been replaced by two inlined calls to netdev_set_rssi_level_idx().
This commit is contained in:
parent
58eaecbd14
commit
6cea51b79f
20
src/netdev.c
20
src/netdev.c
@ -1025,12 +1025,6 @@ static void netdev_cqm_event_rssi_threshold(struct netdev *netdev,
|
|||||||
netdev->event_filter(netdev, event, NULL, netdev->user_data);
|
netdev->event_filter(netdev, event, NULL, netdev->user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void netdev_rssi_level_init(struct netdev *netdev)
|
|
||||||
{
|
|
||||||
if (netdev->connected && netdev->rssi_levels_num)
|
|
||||||
netdev_set_rssi_level_idx(netdev);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void netdev_cqm_event_rssi_value(struct netdev *netdev, int rssi_val)
|
static void netdev_cqm_event_rssi_value(struct netdev *netdev, int rssi_val)
|
||||||
{
|
{
|
||||||
bool new_rssi_low;
|
bool new_rssi_low;
|
||||||
@ -4043,7 +4037,10 @@ build_cmd_connect:
|
|||||||
netdev->handshake = hs;
|
netdev->handshake = hs;
|
||||||
netdev->sm = sm;
|
netdev->sm = sm;
|
||||||
netdev->cur_rssi = bss->signal_strength / 100;
|
netdev->cur_rssi = bss->signal_strength / 100;
|
||||||
netdev_rssi_level_init(netdev);
|
|
||||||
|
if (netdev->rssi_levels_num)
|
||||||
|
netdev_set_rssi_level_idx(netdev);
|
||||||
|
|
||||||
netdev_cqm_rssi_update(netdev);
|
netdev_cqm_rssi_update(netdev);
|
||||||
|
|
||||||
if (!wiphy_has_ext_feature(netdev->wiphy,
|
if (!wiphy_has_ext_feature(netdev->wiphy,
|
||||||
@ -5651,11 +5648,14 @@ int netdev_set_rssi_report_levels(struct netdev *netdev, const int8_t *levels,
|
|||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if (levels_num)
|
netdev->rssi_levels_num = levels_num;
|
||||||
|
|
||||||
|
if (levels_num) {
|
||||||
memcpy(netdev->rssi_levels, levels, levels_num);
|
memcpy(netdev->rssi_levels, levels, levels_num);
|
||||||
|
|
||||||
netdev->rssi_levels_num = levels_num;
|
if (netdev->connected)
|
||||||
netdev_rssi_level_init(netdev);
|
netdev_set_rssi_level_idx(netdev);
|
||||||
|
}
|
||||||
|
|
||||||
netdev_rssi_polling_update(netdev);
|
netdev_rssi_polling_update(netdev);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user