The case statement in get_ap_information() should not use literal integers
to parse information element IDs when these values are provided by name
in 'enum ieee80211_eid' in the header 'linux/ieee80211.h'.

Signed-off-by: Quytelda Kahja <quyte...@tamalin.org>
---
 drivers/staging/ks7010/ks_hostif.c | 31 +++++++++++++++----------------
 drivers/staging/ks7010/ks_hostif.h |  1 +
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c 
b/drivers/staging/ks7010/ks_hostif.c
index 74a08417bd0b..67cf32433023 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -251,9 +251,8 @@ int get_ap_information(struct ks_wlan_private *priv, struct 
ap_info_t *ap_info,
        offset = 0;
 
        while (bsize > offset) {
-               /* DPRINTK(4, "Element ID=%d\n",*bp); */
-               switch (*bp) {
-               case 0: /* ssid */
+               switch (*bp) { /* Information Element ID */
+               case WLAN_EID_SSID:
                        if (*(bp + 1) <= SSID_MAX_SIZE) {
                                ap->ssid.size = *(bp + 1);
                        } else {
@@ -263,8 +262,8 @@ int get_ap_information(struct ks_wlan_private *priv, struct 
ap_info_t *ap_info,
                        }
                        memcpy(ap->ssid.body, bp + 2, ap->ssid.size);
                        break;
-               case 1: /* rate */
-               case 50:        /* ext rate */
+               case WLAN_EID_SUPP_RATES:
+               case WLAN_EID_EXT_SUPP_RATES:
                        if ((*(bp + 1) + ap->rate_set.size) <=
                            RATE_SET_MAX_SIZE) {
                                memcpy(&ap->rate_set.body[ap->rate_set.size],
@@ -280,9 +279,9 @@ int get_ap_information(struct ks_wlan_private *priv, struct 
ap_info_t *ap_info,
                                    (RATE_SET_MAX_SIZE - ap->rate_set.size);
                        }
                        break;
-               case 3: /* DS parameter */
+               case WLAN_EID_DS_PARAMS:
                        break;
-               case 48:        /* RSN(WPA2) */
+               case WLAN_EID_RSN:
                        ap->rsn_ie.id = *bp;
                        if (*(bp + 1) <= RSN_IE_BODY_MAX) {
                                ap->rsn_ie.size = *(bp + 1);
@@ -293,8 +292,8 @@ int get_ap_information(struct ks_wlan_private *priv, struct 
ap_info_t *ap_info,
                        }
                        memcpy(ap->rsn_ie.body, bp + 2, ap->rsn_ie.size);
                        break;
-               case 221:       /* WPA */
-                       if (memcmp(bp + 2, "\x00\x50\xf2\x01", 4) == 0) {       
/* WPA OUI check */
+               case WLAN_EID_VENDOR_SPECIFIC: /* WPA */
+                       if (memcmp(bp + 2, "\x00\x50\xf2\x01", 4) == 0) { /* 
WPA OUI check */
                                ap->wpa_ie.id = *bp;
                                if (*(bp + 1) <= RSN_IE_BODY_MAX) {
                                        ap->wpa_ie.size = *(bp + 1);
@@ -309,18 +308,18 @@ int get_ap_information(struct ks_wlan_private *priv, 
struct ap_info_t *ap_info,
                        }
                        break;
 
-               case 2: /* FH parameter */
-               case 4: /* CF parameter */
-               case 5: /* TIM */
-               case 6: /* IBSS parameter */
-               case 7: /* Country */
-               case 42:        /* ERP information */
-               case 47:        /* Reserve ID 47 Broadcom AP */
+               case WLAN_EID_FH_PARAMS:
+               case WLAN_EID_CF_PARAMS:
+               case WLAN_EID_TIM:
+               case WLAN_EID_IBSS_PARAMS:
+               case WLAN_EID_COUNTRY:
+               case WLAN_EID_ERP_INFO:
                        break;
                default:
                        DPRINTK(4, "unknown Element ID=%d\n", *bp);
                        break;
                }
+
                offset += 2;    /* id & size field */
                offset += *(bp + 1);    /* +size offset */
                bp += (*(bp + 1) + 2);  /* pointer update */
diff --git a/drivers/staging/ks7010/ks_hostif.h 
b/drivers/staging/ks7010/ks_hostif.h
index 5bae8d468e23..9ac317e4b507 100644
--- a/drivers/staging/ks7010/ks_hostif.h
+++ b/drivers/staging/ks7010/ks_hostif.h
@@ -13,6 +13,7 @@
 #define _KS_HOSTIF_H_
 
 #include <linux/compiler.h>
+#include <linux/ieee80211.h>
 
 /*
  * HOST-MAC I/F events
-- 
2.16.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to