nl80211: Do not set sched_scan filter if driver does not support it

cfg80211 will reject the NL80211_CMD_START_SCHED_SCAN if too many
match sets are requested. To avoid being completely unable to start
any scheduled scans, skip setting these filters if the driver did
not advertise support for large enough number of match sets.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2011-11-25 17:46:00 +02:00 committed by Jouni Malinen
parent 29f338af26
commit fb67eec6f8

View file

@ -2798,7 +2798,8 @@ static int wpa_driver_nl80211_sched_scan(void *priv,
NLA_PUT_U32(msg, NL80211_ATTR_SCHED_SCAN_INTERVAL, interval); NLA_PUT_U32(msg, NL80211_ATTR_SCHED_SCAN_INTERVAL, interval);
if (drv->num_filter_ssids) { if (drv->num_filter_ssids &&
(int) drv->num_filter_ssids <= drv->capa.max_match_sets) {
match_sets = nlmsg_alloc(); match_sets = nlmsg_alloc();
for (i = 0; i < drv->num_filter_ssids; i++) { for (i = 0; i < drv->num_filter_ssids; i++) {