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:
Luis R. Rodriguez 2011-05-27 07:24:02 -07:00 коммит произвёл John W. Linville
Родитель 84288044dc
Коммит 180cdc79c2
1 изменённых файлов: 15 добавлений и 4 удалений

Просмотреть файл

@ -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,