summaryrefslogtreecommitdiff
path: root/target/linux/s3c24xx/patches-2.6.24/1143-fix-wep-needs-keys-before-ap.patch.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1143-fix-wep-needs-keys-before-ap.patch.patch')
-rw-r--r--target/linux/s3c24xx/patches-2.6.24/1143-fix-wep-needs-keys-before-ap.patch.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1143-fix-wep-needs-keys-before-ap.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1143-fix-wep-needs-keys-before-ap.patch.patch
new file mode 100644
index 0000000..e1bac78
--- /dev/null
+++ b/target/linux/s3c24xx/patches-2.6.24/1143-fix-wep-needs-keys-before-ap.patch.patch
@@ -0,0 +1,72 @@
+From ada5962807036b786fee00fd4462009c179181b6 Mon Sep 17 00:00:00 2001
+From: Sean McNeil <sean@mcneil.com>
+Date: Tue, 13 May 2008 10:54:45 +0100
+Subject: [PATCH] fix-wep-needs-keys-before-ap.patch
+
+Signed-off-by: Andy Green <andy@openmoko.com>
+---
+ .../function/wlan/ar6000/ar6000/wireless_ext.c | 20 +++++++-------------
+ 1 files changed, 7 insertions(+), 13 deletions(-)
+
+diff --git a/drivers/sdio/function/wlan/ar6000/ar6000/wireless_ext.c b/drivers/sdio/function/wlan/ar6000/ar6000/wireless_ext.c
+index db749e2..ede8e62 100644
+--- a/drivers/sdio/function/wlan/ar6000/ar6000/wireless_ext.c
++++ b/drivers/sdio/function/wlan/ar6000/ar6000/wireless_ext.c
+@@ -424,10 +424,6 @@ ar6000_ioctl_giwessid(struct net_device *dev,
+ return -EIO;
+ }
+
+- if (!ar->arSsidLen) {
+- return -EINVAL;
+- }
+-
+ data->flags = 1;
+ data->length = ar->arSsidLen;
+ A_MEMCPY(essid, ar->arSsid, ar->arSsidLen);
+@@ -818,12 +814,6 @@ ar6000_ioctl_siwencode(struct net_device *dev,
+ AR_SOFTC_T *ar = (AR_SOFTC_T *)dev->priv;
+ int index;
+ A_INT32 auth = ar->arDot11AuthMode;
+- /*
+- * Static WEP Keys should be configured before setting the SSID
+- */
+- if (ar->arSsidLen) {
+- return -EIO;
+- }
+
+ if (ar->arWlanState == WLAN_DISABLED) {
+ return -EIO;
+@@ -894,6 +884,7 @@ ar6000_ioctl_siwencode(struct net_device *dev,
+ * profile has changed. Erase ssid to signal change
+ */
+ A_MEMZERO(ar->arSsid, sizeof(ar->arSsid));
++ ar->arSsidLen = 0;
+
+ return 0;
+ }
+@@ -1096,8 +1087,10 @@ static int ar6000_ioctl_siwauth(struct net_device *dev,
+ return -EOPNOTSUPP;
+ }
+
+- if (reset)
+- memset(ar->arSsid, 0, sizeof(ar->arSsid));
++ if (reset) {
++ A_MEMZERO(ar->arSsid, sizeof(ar->arSsid));
++ ar->arSsidLen = 0;
++ }
+
+ return 0;
+ }
+@@ -1335,7 +1328,8 @@ ar6000_ioctl_setparam(struct net_device *dev,
+ /*
+ * profile has changed. Erase ssid to signal change
+ */
+- A_MEMZERO(ar->arSsid, sizeof(ar->arSsid));
++ A_MEMZERO(ar->arSsid, sizeof(ar->arSsid));
++ ar->arSsidLen = 0;
+ }
+
+ return ret;
+--
+1.5.6.5
+