2009-07-05 21:13:19

by Johannes Berg

[permalink] [raw]
Subject: [PATCH] cfg80211: fix giwrange

commit c4c496e49ddbf022e51adbd25cedd071329280db
Author: David Kilroy <[email protected]>
Date: Thu Jun 18 23:21:14 2009 +0100

cfg80211: Advertise ciphers via WE according to driver capability

Signed-off-by: David Kilroy <[email protected]>
Acked-by: Johannes Berg <[email protected]>
Signed-off-by: John W. Linville <[email protected]>

unfortunately broke iwrange -- it used the variable c
that needs to be 0 for the channel list.

Signed-off-by: Johannes Berg <[email protected]>
---
net/wireless/wext-compat.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

--- wireless-testing.orig/net/wireless/wext-compat.c 2009-07-05 23:10:33.000000000 +0200
+++ wireless-testing/net/wireless/wext-compat.c 2009-07-05 23:10:37.000000000 +0200
@@ -154,7 +154,7 @@ int cfg80211_wext_giwrange(struct net_de
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct iw_range *range = (struct iw_range *) extra;
enum ieee80211_band band;
- int c = 0;
+ int i, c = 0;

if (!wdev)
return -EOPNOTSUPP;
@@ -201,7 +201,7 @@ int cfg80211_wext_giwrange(struct net_de
range->avg_qual.noise = range->max_qual.noise / 2;
range->avg_qual.updated = range->max_qual.updated;

- for (c = 0; c < wdev->wiphy->n_cipher_suites; c++) {
+ for (i = 0; i < wdev->wiphy->n_cipher_suites; i++) {
switch (wdev->wiphy->cipher_suites[c]) {
case WLAN_CIPHER_SUITE_TKIP:
range->enc_capa |= (IW_ENC_CAPA_CIPHER_TKIP |
@@ -226,7 +226,6 @@ int cfg80211_wext_giwrange(struct net_de
}

for (band = 0; band < IEEE80211_NUM_BANDS; band ++) {
- int i;
struct ieee80211_supported_band *sband;

sband = wdev->wiphy->bands[band];




2009-07-06 17:41:27

by Johannes Berg

[permalink] [raw]
Subject: [PATCH v2] cfg80211: fix giwrange

commit c4c496e49ddbf022e51adbd25cedd071329280db
Author: David Kilroy <[email protected]>
Date: Thu Jun 18 23:21:14 2009 +0100

cfg80211: Advertise ciphers via WE according to driver capability

Signed-off-by: David Kilroy <[email protected]>
Acked-by: Johannes Berg <[email protected]>
Signed-off-by: John W. Linville <[email protected]>

unfortunately broke iwrange -- it used the variable c
that needs to be 0 for the channel list.

Signed-off-by: Johannes Berg <[email protected]>
---
v2: fix bug pointed out by dave

net/wireless/wext-compat.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

--- wireless-testing.orig/net/wireless/wext-compat.c 2009-07-06 12:03:14.000000000 +0200
+++ wireless-testing/net/wireless/wext-compat.c 2009-07-06 19:40:06.000000000 +0200
@@ -154,7 +154,7 @@ int cfg80211_wext_giwrange(struct net_de
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct iw_range *range = (struct iw_range *) extra;
enum ieee80211_band band;
- int c = 0;
+ int i, c = 0;

if (!wdev)
return -EOPNOTSUPP;
@@ -201,8 +201,8 @@ int cfg80211_wext_giwrange(struct net_de
range->avg_qual.noise = range->max_qual.noise / 2;
range->avg_qual.updated = range->max_qual.updated;

- for (c = 0; c < wdev->wiphy->n_cipher_suites; c++) {
- switch (wdev->wiphy->cipher_suites[c]) {
+ for (i = 0; i < wdev->wiphy->n_cipher_suites; i++) {
+ switch (wdev->wiphy->cipher_suites[i]) {
case WLAN_CIPHER_SUITE_TKIP:
range->enc_capa |= (IW_ENC_CAPA_CIPHER_TKIP |
IW_ENC_CAPA_WPA);
@@ -226,7 +226,6 @@ int cfg80211_wext_giwrange(struct net_de
}

for (band = 0; band < IEEE80211_NUM_BANDS; band ++) {
- int i;
struct ieee80211_supported_band *sband;

sband = wdev->wiphy->bands[band];



2009-07-06 17:36:10

by Dave Kilroy

[permalink] [raw]
Subject: Re: [PATCH] cfg80211: fix giwrange

Johannes Berg wrote:
> commit c4c496e49ddbf022e51adbd25cedd071329280db
> Author: David Kilroy <[email protected]>
> Date: Thu Jun 18 23:21:14 2009 +0100
>
> cfg80211: Advertise ciphers via WE according to driver capability
>
> unfortunately broke iwrange -- it used the variable c
> that needs to be 0 for the channel list.

Doh! I distinctly recall wonderring whether I should use a separate
variable. Must've got side-tracked. Sorry :(

Just one thing about the fix though...

> @@ -201,7 +201,7 @@ int cfg80211_wext_giwrange(struct net_de
> range->avg_qual.noise = range->max_qual.noise / 2;
> range->avg_qual.updated = range->max_qual.updated;
>
> - for (c = 0; c < wdev->wiphy->n_cipher_suites; c++) {
> + for (i = 0; i < wdev->wiphy->n_cipher_suites; i++) {
> switch (wdev->wiphy->cipher_suites[c]) {
^ needs to be i

Dave.

2009-07-06 17:40:15

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] cfg80211: fix giwrange

On Mon, 2009-07-06 at 18:36 +0100, Dave wrote:
> Johannes Berg wrote:
> > commit c4c496e49ddbf022e51adbd25cedd071329280db
> > Author: David Kilroy <[email protected]>
> > Date: Thu Jun 18 23:21:14 2009 +0100
> >
> > cfg80211: Advertise ciphers via WE according to driver capability
> >
> > unfortunately broke iwrange -- it used the variable c
> > that needs to be 0 for the channel list.
>
> Doh! I distinctly recall wonderring whether I should use a separate
> variable. Must've got side-tracked. Sorry :(

No worries.

> Just one thing about the fix though...
>
> > @@ -201,7 +201,7 @@ int cfg80211_wext_giwrange(struct net_de
> > range->avg_qual.noise = range->max_qual.noise / 2;
> > range->avg_qual.updated = range->max_qual.updated;
> >
> > - for (c = 0; c < wdev->wiphy->n_cipher_suites; c++) {
> > + for (i = 0; i < wdev->wiphy->n_cipher_suites; i++) {
> > switch (wdev->wiphy->cipher_suites[c]) {
> ^ needs to be i

Ouch! Thanks, good catch.

johannes


Attachments:
signature.asc (801.00 B)
This is a digitally signed message part