nl80211: Fix max_remain_on_chan capability reading
In case that NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP is supported, wiphy_info_handler() is called several times, where NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION is present only in one of these calls. Thus capa->max_remain_on_chan is overridden in all other calls. Fix it so the default value is set only after all the wiphy info was received. Signed-hostap: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
parent
41b1a76a96
commit
b691dcb129
1 changed files with 5 additions and 3 deletions
|
@ -2738,9 +2738,6 @@ static void wiphy_info_supp_cmds(struct wiphy_info_data *info,
|
||||||
static void wiphy_info_max_roc(struct wpa_driver_capa *capa,
|
static void wiphy_info_max_roc(struct wpa_driver_capa *capa,
|
||||||
struct nlattr *tb)
|
struct nlattr *tb)
|
||||||
{
|
{
|
||||||
/* default to 5000 since early versions of mac80211 don't set it */
|
|
||||||
capa->max_remain_on_chan = 5000;
|
|
||||||
|
|
||||||
if (tb)
|
if (tb)
|
||||||
capa->max_remain_on_chan = nla_get_u32(tb);
|
capa->max_remain_on_chan = nla_get_u32(tb);
|
||||||
}
|
}
|
||||||
|
@ -2932,6 +2929,11 @@ static int wpa_driver_nl80211_get_info(struct wpa_driver_nl80211_data *drv,
|
||||||
"concurrent (driver advertised support)");
|
"concurrent (driver advertised support)");
|
||||||
drv->capa.flags |= WPA_DRIVER_FLAGS_MULTI_CHANNEL_CONCURRENT;
|
drv->capa.flags |= WPA_DRIVER_FLAGS_MULTI_CHANNEL_CONCURRENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* default to 5000 since early versions of mac80211 don't set it */
|
||||||
|
if (!drv->capa.max_remain_on_chan)
|
||||||
|
drv->capa.max_remain_on_chan = 5000;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
nla_put_failure:
|
nla_put_failure:
|
||||||
nlmsg_free(msg);
|
nlmsg_free(msg);
|
||||||
|
|
Loading…
Reference in a new issue