All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] staging: wlags49_h2: WEXT cleanups
@ 2011-09-25  7:30 David Kilroy
  2011-09-25  7:30 ` [PATCH 1/4] staging: wlags49_h2: Fixup WEXT capabilities David Kilroy
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: David Kilroy @ 2011-09-25  7:30 UTC (permalink / raw)
  To: linux-kernel, greg; +Cc: pe1dnn, David Kilroy

These are some fixes found while verifying the driver has been updated
for changes between WEXT v15 and 21. IOCTLs used for WEP look like
they should work. WPA related IOCTLS look like more work is needed
(but WPA is known to be be broken with this driver).

Should apply on top of the series "wlags49_h2: Various cleanups" (1-13
of 13) and "staging: wlags49_h2: Improve WEXT support" (1-2 of 3)

Compile tested only.

David Kilroy (4):
  staging: wlags49_h2: Fixup WEXT capabilities
  staging: wlags49_h2: Stop playing with length in GIWESSID handler
  staging: wlags49_h2: Declare support for WEXT 21
  staging: wlags49_h2: Use IW_HANDLER macro

 drivers/staging/wlags49_h2/wl_version.h |    3 +-
 drivers/staging/wlags49_h2/wl_wext.c    |  116 +++++++++++--------------------
 2 files changed, 43 insertions(+), 76 deletions(-)

-- 
1.7.4.1


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

* [PATCH 1/4] staging: wlags49_h2: Fixup WEXT capabilities
  2011-09-25  7:30 [PATCH 0/4] staging: wlags49_h2: WEXT cleanups David Kilroy
@ 2011-09-25  7:30 ` David Kilroy
  2011-09-25  7:30 ` [PATCH 2/4] staging: wlags49_h2: Stop playing with length in GIWESSID handler David Kilroy
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: David Kilroy @ 2011-09-25  7:30 UTC (permalink / raw)
  To: linux-kernel, greg; +Cc: pe1dnn, David Kilroy

Add recently added events to the capabilities reported in iw_range.
Use capability macros instead of assuming the array offsets.

Explicitly list scan capabilities.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
---
 drivers/staging/wlags49_h2/wl_wext.c |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/wlags49_h2/wl_wext.c b/drivers/staging/wlags49_h2/wl_wext.c
index 917c949..80bd938 100644
--- a/drivers/staging/wlags49_h2/wl_wext.c
+++ b/drivers/staging/wlags49_h2/wl_wext.c
@@ -523,15 +523,17 @@ retry:
 	DBG_TRACE( DbgInfo, "wl_wireless_stats done\n" );
 
 	/* Event capability (kernel + driver) */
-	range->event_capa[0] = (IW_EVENT_CAPA_K_0 |
-				IW_EVENT_CAPA_MASK(SIOCGIWAP) |
-				IW_EVENT_CAPA_MASK(SIOCGIWSCAN));
-	range->event_capa[1] = IW_EVENT_CAPA_K_1;
-	range->event_capa[4] = (IW_EVENT_CAPA_MASK(IWEVREGISTERED) |
-				IW_EVENT_CAPA_MASK(IWEVCUSTOM) |
-				IW_EVENT_CAPA_MASK(IWEVEXPIRED));
+	IW_EVENT_CAPA_SET_KERNEL(range->event_capa);
+	IW_EVENT_CAPA_SET(range->event_capa, SIOCGIWAP);
+	IW_EVENT_CAPA_SET(range->event_capa, SIOCGIWSCAN);
+	IW_EVENT_CAPA_SET(range->event_capa, IWEVREGISTERED);
+	IW_EVENT_CAPA_SET(range->event_capa, IWEVEXPIRED);
+	IW_EVENT_CAPA_SET(range->event_capa, IWEVMICHAELMICFAILURE);
+	IW_EVENT_CAPA_SET(range->event_capa, IWEVASSOCREQIE);
+	IW_EVENT_CAPA_SET(range->event_capa, IWEVASSOCRESPIE);
 
 	range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_CIPHER_TKIP;
+	range->scan_capa = IW_SCAN_CAPA_NONE;
 
 out_unlock:
     	wl_act_int_on( lp );
-- 
1.7.4.1


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

* [PATCH 2/4] staging: wlags49_h2: Stop playing with length in GIWESSID handler
  2011-09-25  7:30 [PATCH 0/4] staging: wlags49_h2: WEXT cleanups David Kilroy
  2011-09-25  7:30 ` [PATCH 1/4] staging: wlags49_h2: Fixup WEXT capabilities David Kilroy
@ 2011-09-25  7:30 ` David Kilroy
  2011-09-25  7:30 ` [PATCH 3/4] staging: wlags49_h2: Declare support for WEXT 21 David Kilroy
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: David Kilroy @ 2011-09-25  7:30 UTC (permalink / raw)
  To: linux-kernel, greg; +Cc: pe1dnn, David Kilroy

WE21 clarified that ESSID should not be NULL terminated.
The existing code didn't NULL terminate, but did play with length
and then reset it again. Just stop it.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
---
 drivers/staging/wlags49_h2/wl_wext.c |   11 +----------
 1 files changed, 1 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/wlags49_h2/wl_wext.c b/drivers/staging/wlags49_h2/wl_wext.c
index 80bd938..1f6b4dc 100644
--- a/drivers/staging/wlags49_h2/wl_wext.c
+++ b/drivers/staging/wlags49_h2/wl_wext.c
@@ -1042,9 +1042,6 @@ static int wireless_get_essid(struct net_device *dev, struct iw_request_info *in
 		/* Copy the information into the user buffer */
 		data->length = pName->length;
 
-		/* NOTE: Null terminating is necessary for proper display of the SSID in
-		   the wireless tools */
-		data->length = pName->length + 1;
 		if( pName->length < HCF_MAX_NAME_LEN ) {
 			pName->name[pName->length] = '\0';
 		}
@@ -1070,11 +1067,7 @@ static int wireless_get_essid(struct net_device *dev, struct iw_request_info *in
 				pName->length = CNV_LITTLE_TO_INT( pName->length );
 
 				/* Copy the information into the user buffer */
-				data->length = pName->length + 1;
-				if( pName->length < HCF_MAX_NAME_LEN ) {
-					pName->name[pName->length] = '\0';
-				}
-
+				data->length = pName->length;
 				data->flags = 1;
 			} else {
 				ret = -EFAULT;
@@ -1084,8 +1077,6 @@ static int wireless_get_essid(struct net_device *dev, struct iw_request_info *in
 
 #endif // HCF_STA
 
-		data->length--;
-
 		if (pName->length > IW_ESSID_MAX_SIZE) {
 			ret = -EFAULT;
 			goto out_unlock;
-- 
1.7.4.1


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

* [PATCH 3/4] staging: wlags49_h2: Declare support for WEXT 21
  2011-09-25  7:30 [PATCH 0/4] staging: wlags49_h2: WEXT cleanups David Kilroy
  2011-09-25  7:30 ` [PATCH 1/4] staging: wlags49_h2: Fixup WEXT capabilities David Kilroy
  2011-09-25  7:30 ` [PATCH 2/4] staging: wlags49_h2: Stop playing with length in GIWESSID handler David Kilroy
@ 2011-09-25  7:30 ` David Kilroy
  2011-09-25  7:30 ` [PATCH 4/4] staging: wlags49_h2: Use IW_HANDLER macro David Kilroy
  2011-09-25  9:54 ` [PATCH 0/4] staging: wlags49_h2: WEXT cleanups Henk de Groot
  4 siblings, 0 replies; 6+ messages in thread
From: David Kilroy @ 2011-09-25  7:30 UTC (permalink / raw)
  To: linux-kernel, greg; +Cc: pe1dnn, David Kilroy

WEXT changes between versions 15 and 21 have been taken care of,
so update the declared support.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
---
 drivers/staging/wlags49_h2/wl_version.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/wlags49_h2/wl_version.h b/drivers/staging/wlags49_h2/wl_version.h
index 872d085..a68159a 100644
--- a/drivers/staging/wlags49_h2/wl_version.h
+++ b/drivers/staging/wlags49_h2/wl_version.h
@@ -144,7 +144,8 @@ err: define bus type;
 							" for " BUS_TYPE ", " 											   	 \
 							MODULE_DATE " by " VENDOR_NAME
 
-#define WIRELESS_SUPPORT    15  // The version of wireless extensions we support
+/* The version of wireless extensions we support */
+#define WIRELESS_SUPPORT    21
 
 //#define DBG_MOD_NAME         DRIVER_NAME ":" BUS_TYPE ":" HW_TYPE ":" FW_TYPE
 #define DBG_MOD_NAME        MODULE_NAME
-- 
1.7.4.1


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

* [PATCH 4/4] staging: wlags49_h2: Use IW_HANDLER macro
  2011-09-25  7:30 [PATCH 0/4] staging: wlags49_h2: WEXT cleanups David Kilroy
                   ` (2 preceding siblings ...)
  2011-09-25  7:30 ` [PATCH 3/4] staging: wlags49_h2: Declare support for WEXT 21 David Kilroy
@ 2011-09-25  7:30 ` David Kilroy
  2011-09-25  9:54 ` [PATCH 0/4] staging: wlags49_h2: WEXT cleanups Henk de Groot
  4 siblings, 0 replies; 6+ messages in thread
From: David Kilroy @ 2011-09-25  7:30 UTC (permalink / raw)
  To: linux-kernel, greg; +Cc: pe1dnn, David Kilroy

to declare wireless handlers.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
---
 drivers/staging/wlags49_h2/wl_wext.c |   89 ++++++++++++----------------------
 1 files changed, 31 insertions(+), 58 deletions(-)

diff --git a/drivers/staging/wlags49_h2/wl_wext.c b/drivers/staging/wlags49_h2/wl_wext.c
index 1f6b4dc..764a320 100644
--- a/drivers/staging/wlags49_h2/wl_wext.c
+++ b/drivers/staging/wlags49_h2/wl_wext.c
@@ -3904,66 +3904,39 @@ void wl_wext_event_assoc_ie( struct net_device *dev )
 
 static const iw_handler wl_handler[] =
 {
-                (iw_handler) wireless_commit,           /* SIOCSIWCOMMIT */
-                (iw_handler) wireless_get_protocol,     /* SIOCGIWNAME */
-                (iw_handler) NULL,                      /* SIOCSIWNWID */
-                (iw_handler) NULL,                      /* SIOCGIWNWID */
-                (iw_handler) wireless_set_frequency,    /* SIOCSIWFREQ */
-                (iw_handler) wireless_get_frequency,    /* SIOCGIWFREQ */
-                (iw_handler) wireless_set_porttype,     /* SIOCSIWMODE */
-                (iw_handler) wireless_get_porttype,     /* SIOCGIWMODE */
-                (iw_handler) wireless_set_sensitivity,  /* SIOCSIWSENS */
-                (iw_handler) wireless_get_sensitivity,  /* SIOCGIWSENS */
-                (iw_handler) NULL ,                     /* SIOCSIWRANGE */
-                (iw_handler) wireless_get_range,        /* SIOCGIWRANGE */
-                (iw_handler) NULL ,                     /* SIOCSIWPRIV */
-                (iw_handler) NULL /* kernel code */,    /* SIOCGIWPRIV */
-                (iw_handler) NULL ,                     /* SIOCSIWSTATS */
-                (iw_handler) NULL /* kernel code */,    /* SIOCGIWSTATS */
-                iw_handler_set_spy,                     /* SIOCSIWSPY */
-                iw_handler_get_spy,                     /* SIOCGIWSPY */
-                NULL,                                   /* SIOCSIWTHRSPY */
-                NULL,                                   /* SIOCGIWTHRSPY */
-                (iw_handler) NULL,                      /* SIOCSIWAP */
+	IW_HANDLER(SIOCSIWCOMMIT, (iw_handler) wireless_commit),
+	IW_HANDLER(SIOCGIWNAME, (iw_handler) wireless_get_protocol),
+	IW_HANDLER(SIOCSIWFREQ, (iw_handler) wireless_set_frequency),
+	IW_HANDLER(SIOCGIWFREQ, (iw_handler) wireless_get_frequency),
+	IW_HANDLER(SIOCSIWMODE, (iw_handler) wireless_set_porttype),
+	IW_HANDLER(SIOCGIWMODE, (iw_handler) wireless_get_porttype),
+	IW_HANDLER(SIOCSIWSENS, (iw_handler) wireless_set_sensitivity),
+	IW_HANDLER(SIOCGIWSENS, (iw_handler) wireless_get_sensitivity),
+	IW_HANDLER(SIOCGIWRANGE, (iw_handler) wireless_get_range),
+	IW_HANDLER(SIOCSIWSPY, iw_handler_set_spy),
+	IW_HANDLER(SIOCGIWSPY, iw_handler_get_spy),
 #if 1 //;? (HCF_TYPE) & HCF_TYPE_STA
-                (iw_handler) wireless_get_bssid,        /* SIOCGIWAP */
-#else
-                (iw_handler) NULL,                      /* SIOCGIWAP */
+	IW_HANDLER(SIOCGIWAP, (iw_handler) wireless_get_bssid),
 #endif
-                (iw_handler) NULL,                      /* SIOCSIWMLME */
-                (iw_handler) wireless_get_ap_list,      /* SIOCGIWAPLIST */
-                (iw_handler) wireless_set_scan,         /* SIOCSIWSCAN */
-                (iw_handler) wireless_get_scan,         /* SIOCGIWSCAN */
-                (iw_handler) wireless_set_essid,        /* SIOCSIWESSID */
-                (iw_handler) wireless_get_essid,        /* SIOCGIWESSID */
-                (iw_handler) wireless_set_nickname,     /* SIOCSIWNICKN */
-                (iw_handler) wireless_get_nickname,     /* SIOCGIWNICKN */
-                (iw_handler) NULL,                      /* -- hole -- */
-                (iw_handler) NULL,                      /* -- hole -- */
-                (iw_handler) wireless_set_rate,         /* SIOCSIWRATE */
-                (iw_handler) wireless_get_rate,         /* SIOCGIWRATE */
-                (iw_handler) wireless_set_rts_threshold,/* SIOCSIWRTS */
-                (iw_handler) wireless_get_rts_threshold,/* SIOCGIWRTS */
-                (iw_handler) NULL,                      /* SIOCSIWFRAG */
-                (iw_handler) NULL,                      /* SIOCGIWFRAG */
-                (iw_handler) NULL,                      /* SIOCSIWTXPOW */
-                (iw_handler) wireless_get_tx_power,     /* SIOCGIWTXPOW */
-                (iw_handler) NULL,                      /* SIOCSIWRETRY */
-                (iw_handler) NULL,                      /* SIOCGIWRETRY */
-                (iw_handler) wireless_set_encode,       /* SIOCSIWENCODE */
-                (iw_handler) wireless_get_encode,       /* SIOCGIWENCODE */
-                (iw_handler) wireless_set_power,        /* SIOCSIWPOWER */
-                (iw_handler) wireless_get_power,        /* SIOCGIWPOWER */
-                (iw_handler) NULL,                      /* -- hole -- */
-                (iw_handler) NULL,                      /* -- hole -- */
-                (iw_handler) wireless_get_genie,        /* SIOCSIWGENIE */
-                (iw_handler) NULL,                      /* SIOCGIWGENIE */
-                (iw_handler) wireless_set_auth,         /* SIOCSIWAUTH */
-                (iw_handler) NULL,                      /* SIOCGIWAUTH */
-                (iw_handler) wireless_set_encodeext,    /* SIOCSIWENCODEEXT */
-                (iw_handler) NULL,                      /* SIOCGIWENCODEEXT */
-                (iw_handler) NULL,                      /* SIOCSIWPMKSA */
-                (iw_handler) NULL,                      /* -- hole -- */
+	IW_HANDLER(SIOCGIWAPLIST, (iw_handler) wireless_get_ap_list),
+	IW_HANDLER(SIOCSIWSCAN, (iw_handler) wireless_set_scan),
+	IW_HANDLER(SIOCGIWSCAN, (iw_handler) wireless_get_scan),
+	IW_HANDLER(SIOCSIWESSID, (iw_handler) wireless_set_essid),
+	IW_HANDLER(SIOCGIWESSID, (iw_handler) wireless_get_essid),
+	IW_HANDLER(SIOCSIWNICKN, (iw_handler) wireless_set_nickname),
+	IW_HANDLER(SIOCGIWNICKN, (iw_handler) wireless_get_nickname),
+	IW_HANDLER(SIOCSIWRATE, (iw_handler) wireless_set_rate),
+	IW_HANDLER(SIOCGIWRATE, (iw_handler) wireless_get_rate),
+	IW_HANDLER(SIOCSIWRTS, (iw_handler) wireless_set_rts_threshold),
+	IW_HANDLER(SIOCGIWRTS, (iw_handler) wireless_get_rts_threshold),
+	IW_HANDLER(SIOCGIWTXPOW, (iw_handler) wireless_get_tx_power),
+	IW_HANDLER(SIOCSIWENCODE, (iw_handler) wireless_set_encode),
+	IW_HANDLER(SIOCGIWENCODE, (iw_handler) wireless_get_encode),
+	IW_HANDLER(SIOCSIWPOWER, (iw_handler) wireless_set_power),
+	IW_HANDLER(SIOCGIWPOWER, (iw_handler) wireless_get_power),
+	IW_HANDLER(SIOCSIWGENIE, (iw_handler) wireless_get_genie),
+	IW_HANDLER(SIOCSIWAUTH, (iw_handler) wireless_set_auth),
+	IW_HANDLER(SIOCSIWENCODEEXT, (iw_handler) wireless_set_encodeext),
 };
 
 static const iw_handler wl_private_handler[] =
-- 
1.7.4.1


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

* Re: [PATCH 0/4] staging: wlags49_h2: WEXT cleanups
  2011-09-25  7:30 [PATCH 0/4] staging: wlags49_h2: WEXT cleanups David Kilroy
                   ` (3 preceding siblings ...)
  2011-09-25  7:30 ` [PATCH 4/4] staging: wlags49_h2: Use IW_HANDLER macro David Kilroy
@ 2011-09-25  9:54 ` Henk de Groot
  4 siblings, 0 replies; 6+ messages in thread
From: Henk de Groot @ 2011-09-25  9:54 UTC (permalink / raw)
  To: David Kilroy; +Cc: linux-kernel, greg

Op 25-9-2011 9:30, David Kilroy schreef:
> These are some fixes found while verifying the driver has been updated
> for changes between WEXT v15 and 21. IOCTLs used for WEP look like
> they should work. WPA related IOCTLS look like more work is needed
> (but WPA is known to be be broken with this driver).

Patches applied to test driver (only 3/4 failed because I applied the 
v15->v21 patch before). Driver compiles and runs okay using WEP as it did 
before. Tested on kernel 2.6.38-11-generic #50-Ubuntu.

Henk.


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

end of thread, other threads:[~2011-09-25  9:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-25  7:30 [PATCH 0/4] staging: wlags49_h2: WEXT cleanups David Kilroy
2011-09-25  7:30 ` [PATCH 1/4] staging: wlags49_h2: Fixup WEXT capabilities David Kilroy
2011-09-25  7:30 ` [PATCH 2/4] staging: wlags49_h2: Stop playing with length in GIWESSID handler David Kilroy
2011-09-25  7:30 ` [PATCH 3/4] staging: wlags49_h2: Declare support for WEXT 21 David Kilroy
2011-09-25  7:30 ` [PATCH 4/4] staging: wlags49_h2: Use IW_HANDLER macro David Kilroy
2011-09-25  9:54 ` [PATCH 0/4] staging: wlags49_h2: WEXT cleanups Henk de Groot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.