Skip to content

Commit

Permalink
cfg80211: skip disabled channels on channel survey
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Luis R. Rodriguez authored and John W. Linville committed Jun 1, 2011
1 parent 8428804 commit 180cdc7
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions net/wireless/nl80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -3820,13 +3816,28 @@ 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)
break;
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,
Expand Down

0 comments on commit 180cdc7

Please sign in to comment.