cfg80211: skip disabled channels on channel survey
The channel survey information will be empy for disabled channels so simply discard those entries. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
84288044dc
Коммит
180cdc79c2
|
@ -3754,10 +3754,6 @@ static int nl80211_send_survey(struct sk_buff *msg, u32 pid, u32 seq,
|
|||
void *hdr;
|
||||
struct nlattr *infoattr;
|
||||
|
||||
/* Survey without a channel doesn't make sense */
|
||||
if (!survey->channel)
|
||||
return -EINVAL;
|
||||
|
||||
hdr = nl80211hdr_put(msg, pid, seq, flags,
|
||||
NL80211_CMD_NEW_SURVEY_RESULTS);
|
||||
if (!hdr)
|
||||
|
@ -3820,6 +3816,8 @@ static int nl80211_dump_survey(struct sk_buff *skb,
|
|||
}
|
||||
|
||||
while (1) {
|
||||
struct ieee80211_channel *chan;
|
||||
|
||||
res = dev->ops->dump_survey(&dev->wiphy, netdev, survey_idx,
|
||||
&survey);
|
||||
if (res == -ENOENT)
|
||||
|
@ -3827,6 +3825,19 @@ static int nl80211_dump_survey(struct sk_buff *skb,
|
|||
if (res)
|
||||
goto out_err;
|
||||
|
||||
/* Survey without a channel doesn't make sense */
|
||||
if (!survey.channel) {
|
||||
res = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
chan = ieee80211_get_channel(&dev->wiphy,
|
||||
survey.channel->center_freq);
|
||||
if (!chan || chan->flags & IEEE80211_CHAN_DISABLED) {
|
||||
survey_idx++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (nl80211_send_survey(skb,
|
||||
NETLINK_CB(cb->skb).pid,
|
||||
cb->nlh->nlmsg_seq, NLM_F_MULTI,
|
||||
|
|
Загрузка…
Ссылка в новой задаче