diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/0139-fix-wep-needs-keys-before-ap.patch.patch')
-rwxr-xr-x | target/linux/s3c24xx/patches-2.6.26/0139-fix-wep-needs-keys-before-ap.patch.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/0139-fix-wep-needs-keys-before-ap.patch.patch b/target/linux/s3c24xx/patches-2.6.26/0139-fix-wep-needs-keys-before-ap.patch.patch new file mode 100755 index 0000000000..80c0b80f97 --- /dev/null +++ b/target/linux/s3c24xx/patches-2.6.26/0139-fix-wep-needs-keys-before-ap.patch.patch @@ -0,0 +1,72 @@ +From 0010ecb4113ddaa113f084cc4a8dce7c6d807bf4 Mon Sep 17 00:00:00 2001 +From: Sean McNeil <sean@mcneil.com> +Date: Fri, 25 Jul 2008 23:06:08 +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.3 + |