Linux wireless drivers development
 help / color / mirror / Atom feed
* [RFC] wireless: Do not allow disabled channel in scan request
@ 2011-09-15 12:03 Rajkumar Manoharan
  2011-09-15 12:05 ` Johannes Berg
  0 siblings, 1 reply; 3+ messages in thread
From: Rajkumar Manoharan @ 2011-09-15 12:03 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless, Rajkumar Manoharan

cfg80211_conn_scan allows disabled channels at scan request.
Hence probe request was seen at the disabled one. This patch
ensures that disabled channel never be added into the scan
request's channel list.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
---
 net/wireless/sme.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index dec0fa2..6e86d5a 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -110,17 +110,22 @@ static int cfg80211_conn_scan(struct wireless_dev *wdev)
 	else {
 		int i = 0, j;
 		enum ieee80211_band band;
+		struct ieee80211_supported_band *bands;
+		struct ieee80211_channel *channel;
 
 		for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
-			if (!wdev->wiphy->bands[band])
+			bands = wdev->wiphy->bands[band];
+			if (!bands)
 				continue;
-			for (j = 0; j < wdev->wiphy->bands[band]->n_channels;
-			     i++, j++)
-				request->channels[i] =
-					&wdev->wiphy->bands[band]->channels[j];
-			request->rates[band] =
-				(1 << wdev->wiphy->bands[band]->n_bitrates) - 1;
+			for (j = 0; j < bands->n_channels; j++) {
+				channel = &bands->channels[j];
+				if (channel->flags & IEEE80211_CHAN_DISABLED)
+					continue;
+				request->channels[i++] = channel;
+			}
+			request->rates[band] = (1 << bands->n_bitrates) - 1;
 		}
+		n_channels = i;
 	}
 	request->n_channels = n_channels;
 	request->ssids = (void *)&request->channels[n_channels];
-- 
1.7.6.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [RFC] wireless: Do not allow disabled channel in scan request
  2011-09-15 12:03 [RFC] wireless: Do not allow disabled channel in scan request Rajkumar Manoharan
@ 2011-09-15 12:05 ` Johannes Berg
  2011-09-15 12:08   ` Rajkumar Manoharan
  0 siblings, 1 reply; 3+ messages in thread
From: Johannes Berg @ 2011-09-15 12:05 UTC (permalink / raw)
  To: Rajkumar Manoharan; +Cc: linux-wireless

On Thu, 2011-09-15 at 17:33 +0530, Rajkumar Manoharan wrote:
> cfg80211_conn_scan allows disabled channels at scan request.
> Hence probe request was seen at the disabled one. This patch
> ensures that disabled channel never be added into the scan
> request's channel list.

Acked-by: Johannes Berg <johannes@sipsolutions.net>

Good catch. We should probably refactor this later to go through a
single point...

johannes

> Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
> ---
>  net/wireless/sme.c |   19 ++++++++++++-------
>  1 files changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/net/wireless/sme.c b/net/wireless/sme.c
> index dec0fa2..6e86d5a 100644
> --- a/net/wireless/sme.c
> +++ b/net/wireless/sme.c
> @@ -110,17 +110,22 @@ static int cfg80211_conn_scan(struct wireless_dev *wdev)
>  	else {
>  		int i = 0, j;
>  		enum ieee80211_band band;
> +		struct ieee80211_supported_band *bands;
> +		struct ieee80211_channel *channel;
>  
>  		for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
> -			if (!wdev->wiphy->bands[band])
> +			bands = wdev->wiphy->bands[band];
> +			if (!bands)
>  				continue;
> -			for (j = 0; j < wdev->wiphy->bands[band]->n_channels;
> -			     i++, j++)
> -				request->channels[i] =
> -					&wdev->wiphy->bands[band]->channels[j];
> -			request->rates[band] =
> -				(1 << wdev->wiphy->bands[band]->n_bitrates) - 1;
> +			for (j = 0; j < bands->n_channels; j++) {
> +				channel = &bands->channels[j];
> +				if (channel->flags & IEEE80211_CHAN_DISABLED)
> +					continue;
> +				request->channels[i++] = channel;
> +			}
> +			request->rates[band] = (1 << bands->n_bitrates) - 1;
>  		}
> +		n_channels = i;
>  	}
>  	request->n_channels = n_channels;
>  	request->ssids = (void *)&request->channels[n_channels];



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC] wireless: Do not allow disabled channel in scan request
  2011-09-15 12:05 ` Johannes Berg
@ 2011-09-15 12:08   ` Rajkumar Manoharan
  0 siblings, 0 replies; 3+ messages in thread
From: Rajkumar Manoharan @ 2011-09-15 12:08 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

On Thu, Sep 15, 2011 at 02:05:06PM +0200, Johannes Berg wrote:
> On Thu, 2011-09-15 at 17:33 +0530, Rajkumar Manoharan wrote:
> > cfg80211_conn_scan allows disabled channels at scan request.
> > Hence probe request was seen at the disabled one. This patch
> > ensures that disabled channel never be added into the scan
> > request's channel list.
> 
> Acked-by: Johannes Berg <johannes@sipsolutions.net>
> 
> Good catch. We should probably refactor this later to go through a
> single point...
> 
True. Thanks for the review

--
Rajkumar

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-09-15 12:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-15 12:03 [RFC] wireless: Do not allow disabled channel in scan request Rajkumar Manoharan
2011-09-15 12:05 ` Johannes Berg
2011-09-15 12:08   ` Rajkumar Manoharan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox