Getting rid of duplicate definitions in linux/ieee80211.h.
Patches are intended for 3.8 and apply to the wireless-next
repository.
Arend van Spriel (3):
wireless: drivers: make use of WLAN_EID_VENDOR_SPECIFIC
wireless: gelic: make use of WLAN_EID_VENDOR_SPECIFIC
wireless: remove duplicate enum ieee80211_eid definitions
drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 4 ++--
drivers/net/wireless/airo.c | 2 +-
drivers/net/wireless/ath/ath6kl/cfg80211.c | 2 +-
.../net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 2 +-
drivers/net/wireless/hostap/hostap_80211_rx.c | 2 +-
drivers/net/wireless/ipw2x00/libipw_rx.c | 4 ++--
drivers/net/wireless/libertas/mesh.c | 2 +-
drivers/net/wireless/mwifiex/scan.c | 13 ++++++++-----
drivers/net/wireless/mwifiex/sta_ioctl.c | 4 ++--
drivers/net/wireless/orinoco/main.h | 2 +-
include/linux/ieee80211.h | 2 --
11 files changed, 20 insertions(+), 19 deletions(-)
--
1.7.9.5
On Fri, 2012-10-12 at 12:28 +0200, Arend van Spriel wrote:
> Getting rid of duplicate definitions in linux/ieee80211.h.
>
> Patches are intended for 3.8 and apply to the wireless-next
> repository.
I applied them all and fixed up libipw for you :)
johannes
On 10/12/2012 01:46 PM, Kalle Valo wrote:
> On 10/12/2012 01:28 PM, Arend van Spriel wrote:
>> The include file linux/ieee80211.h contains three definitions for
>> the same thing in enum ieee80211_eid due to historic changes:
>>
>> /* Information Element IDs */
>> enum ieee80211_eid {
>> :
>> WLAN_EID_WPA = 221,
>> WLAN_EID_GENERIC = 221,
>> WLAN_EID_VENDOR_SPECIFIC = 221,
>> :
>> };
>>
>> The standard refers to this as "vendor specific" element so the
>> other two definitions are better not used. This patch changes the
>> wireless drivers to use one definition, ie. WLAN_EID_VENDOR_SPECIFIC.
>
> Why not remove _WPA and _GENERIC from ieee80211.h at the same time so
> that nobody else won't use them in the future?
Ah, you did that in patch 3. Forget what I said :)
Kalle
On 10/12/2012 01:28 PM, Arend van Spriel wrote:
> The include file linux/ieee80211.h contains three definitions for
> the same thing in enum ieee80211_eid due to historic changes:
>
> /* Information Element IDs */
> enum ieee80211_eid {
> :
> WLAN_EID_WPA = 221,
> WLAN_EID_GENERIC = 221,
> WLAN_EID_VENDOR_SPECIFIC = 221,
> :
> };
>
> The standard refers to this as "vendor specific" element so the
> other two definitions are better not used. This patch changes the
> wireless drivers to use one definition, ie. WLAN_EID_VENDOR_SPECIFIC.
Why not remove _WPA and _GENERIC from ieee80211.h at the same time so
that nobody else won't use them in the future?
> Cc: Kalle Valo <[email protected]>
> Cc: Jouni Malinen <[email protected]>
> Cc: Stanislav Yakovlev <[email protected]>
> Cc: Dan Williams <[email protected]>
> Cc: Bing Zhao <[email protected]>
> Cc: Larry Finger <[email protected]>
> Signed-off-by: Arend van Spriel <[email protected]>
For the ath6kl part:
Acked-by: Kalle Valo <[email protected]>
Kalle
Hi Arend,
On 12 October 2012 14:28, Arend van Spriel <[email protected]> wrote:
> The include file linux/ieee80211.h contains three definitions for
> the same thing in enum ieee80211_eid due to historic changes:
>
> /* Information Element IDs */
> enum ieee80211_eid {
> :
> WLAN_EID_WPA = 221,
> WLAN_EID_GENERIC = 221,
> WLAN_EID_VENDOR_SPECIFIC = 221,
> :
> };
>
> The standard refers to this as "vendor specific" element so the
> other two definitions are better not used. This patch changes the
> wireless drivers to use one definition, ie. WLAN_EID_VENDOR_SPECIFIC.
>
> Cc: Kalle Valo <[email protected]>
> Cc: Jouni Malinen <[email protected]>
> Cc: Stanislav Yakovlev <[email protected]>
> Cc: Dan Williams <[email protected]>
> Cc: Bing Zhao <[email protected]>
> Cc: Larry Finger <[email protected]>
> Signed-off-by: Arend van Spriel <[email protected]>
For the ipw2x00 part:
Acked-by: Stanislav Yakovlev <[email protected]>
Thanks!
Stanislav.
On 10/12/2012 05:28 AM, Arend van Spriel wrote:
> The include file linux/ieee80211.h contains three definitions for
> the same thing in enum ieee80211_eid due to historic changes:
>
> /* Information Element IDs */
> enum ieee80211_eid {
> :
> WLAN_EID_WPA = 221,
> WLAN_EID_GENERIC = 221,
> WLAN_EID_VENDOR_SPECIFIC = 221,
> :
> };
>
> The standard refers to this as "vendor specific" element so the
> other two definitions are better not used. This patch changes the
> wireless drivers to use one definition, ie. WLAN_EID_VENDOR_SPECIFIC.
>
> Cc: Kalle Valo <[email protected]>
> Cc: Jouni Malinen <[email protected]>
> Cc: Stanislav Yakovlev <[email protected]>
> Cc: Dan Williams <[email protected]>
> Cc: Bing Zhao <[email protected]>
> Cc: Larry Finger <[email protected]>
> Signed-off-by: Arend van Spriel <[email protected]>
> ---
> The prism54 and rtl8712 drivers use WLAN_EID_GENERIC as well, but have
> their own definition so those are not changed. They may consider using
> linux/ieee80211.h.
Arend,
Thanks for the r8712u suggestion.
Larry
WLAN_EID_WPA and WLAN_EID_GENERIC mapped to the same value
as WLAN_EID_VENDOR_SPECIFIC. The last one being more in line
with the standard specification. Removing WLAN_EID_WPA and
WLAN_EID_GENERIC as there are no longer drivers using these.
Cc: Johannes Berg <[email protected]>
Signed-off-by: Arend van Spriel <[email protected]>
---
include/linux/ieee80211.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 2385119..213e7a3 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -1440,8 +1440,6 @@ enum ieee80211_eid {
WLAN_EID_RSN = 48,
WLAN_EID_MMIE = 76,
- WLAN_EID_WPA = 221,
- WLAN_EID_GENERIC = 221,
WLAN_EID_VENDOR_SPECIFIC = 221,
WLAN_EID_QOS_PARAMETER = 222,
--
1.7.9.5
The include file linux/ieee80211.h contains three definitions for
the same thing in enum ieee80211_eid due to historic changes:
/* Information Element IDs */
enum ieee80211_eid {
:
WLAN_EID_WPA = 221,
WLAN_EID_GENERIC = 221,
WLAN_EID_VENDOR_SPECIFIC = 221,
:
};
The standard refers to this as "vendor specific" element so the
other two definitions are better not used. This patch changes the
wireless drivers to use one definition, ie. WLAN_EID_VENDOR_SPECIFIC.
Cc: Kalle Valo <[email protected]>
Cc: Jouni Malinen <[email protected]>
Cc: Stanislav Yakovlev <[email protected]>
Cc: Dan Williams <[email protected]>
Cc: Bing Zhao <[email protected]>
Cc: Larry Finger <[email protected]>
Signed-off-by: Arend van Spriel <[email protected]>
---
The prism54 and rtl8712 drivers use WLAN_EID_GENERIC as well, but have
their own definition so those are not changed. They may consider using
linux/ieee80211.h.
Gr. AvS
---
drivers/net/wireless/airo.c | 2 +-
drivers/net/wireless/ath/ath6kl/cfg80211.c | 2 +-
.../net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 2 +-
drivers/net/wireless/hostap/hostap_80211_rx.c | 2 +-
drivers/net/wireless/ipw2x00/libipw_rx.c | 4 ++--
drivers/net/wireless/libertas/mesh.c | 2 +-
drivers/net/wireless/mwifiex/scan.c | 13 ++++++++-----
drivers/net/wireless/mwifiex/sta_ioctl.c | 4 ++--
drivers/net/wireless/orinoco/main.h | 2 +-
9 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index ac1eda6..37abea3 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -7425,7 +7425,7 @@ static inline char *airo_translate_scan(struct net_device *dev,
num_null_ies++;
break;
- case WLAN_EID_GENERIC:
+ case WLAN_EID_VENDOR_SPECIFIC:
if (ie[1] >= 4 &&
ie[2] == 0x00 &&
ie[3] == 0x50 &&
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index 7089f81..ad252d0 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -301,7 +301,7 @@ static bool ath6kl_cfg80211_ready(struct ath6kl_vif *vif)
static bool ath6kl_is_wpa_ie(const u8 *pos)
{
- return pos[0] == WLAN_EID_WPA && pos[1] >= 4 &&
+ return pos[0] == WLAN_EID_VENDOR_SPECIFIC && pos[1] >= 4 &&
pos[2] == 0x00 && pos[3] == 0x50 &&
pos[4] == 0xf2 && pos[5] == 0x01;
}
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
index c1abaa6..0e95209 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -2679,7 +2679,7 @@ brcmf_find_wpaie(u8 *parse, u32 len)
{
struct brcmf_tlv *ie;
- while ((ie = brcmf_parse_tlvs(parse, len, WLAN_EID_WPA))) {
+ while ((ie = brcmf_parse_tlvs(parse, len, WLAN_EID_VENDOR_SPECIFIC))) {
if (brcmf_tlv_has_ie((u8 *)ie, &parse, &len,
WPA_OUI, TLV_OUI_LEN, WPA_OUI_TYPE))
return (struct brcmf_vs_tlv *)ie;
diff --git a/drivers/net/wireless/hostap/hostap_80211_rx.c b/drivers/net/wireless/hostap/hostap_80211_rx.c
index df7050a..d39e3e2 100644
--- a/drivers/net/wireless/hostap/hostap_80211_rx.c
+++ b/drivers/net/wireless/hostap/hostap_80211_rx.c
@@ -415,7 +415,7 @@ static void hostap_rx_sta_beacon(local_info_t *local, struct sk_buff *skb,
ssid = pos + 2;
ssid_len = pos[1];
break;
- case WLAN_EID_GENERIC:
+ case WLAN_EID_VENDOR_SPECIFIC:
if (pos[1] >= 4 &&
pos[2] == 0x00 && pos[3] == 0x50 &&
pos[4] == 0xf2 && pos[5] == 1) {
diff --git a/drivers/net/wireless/ipw2x00/libipw_rx.c b/drivers/net/wireless/ipw2x00/libipw_rx.c
index 02e0579..c287ce2 100644
--- a/drivers/net/wireless/ipw2x00/libipw_rx.c
+++ b/drivers/net/wireless/ipw2x00/libipw_rx.c
@@ -1248,8 +1248,8 @@ static int libipw_parse_info_param(struct libipw_info_element
LIBIPW_DEBUG_MGMT("WLAN_EID_CHALLENGE: ignored\n");
break;
- case WLAN_EID_GENERIC:
- LIBIPW_DEBUG_MGMT("WLAN_EID_GENERIC: %d bytes\n",
+ case WLAN_EID_VENDOR_SPECIFIC:
+ LIBIPW_DEBUG_MGMT("WLAN_EID_VENDOR_SPECIFIC: %d bytes\n",
info_element->len);
if (!libipw_parse_qos_info_param_IE(info_element,
network))
diff --git a/drivers/net/wireless/libertas/mesh.c b/drivers/net/wireless/libertas/mesh.c
index 9780775..3e81264 100644
--- a/drivers/net/wireless/libertas/mesh.c
+++ b/drivers/net/wireless/libertas/mesh.c
@@ -101,7 +101,7 @@ static int lbs_mesh_config(struct lbs_private *priv, uint16_t action,
switch (action) {
case CMD_ACT_MESH_CONFIG_START:
- ie->id = WLAN_EID_GENERIC;
+ ie->id = WLAN_EID_VENDOR_SPECIFIC;
ie->val.oui[0] = 0x00;
ie->val.oui[1] = 0x50;
ie->val.oui[2] = 0x43;
diff --git a/drivers/net/wireless/mwifiex/scan.c b/drivers/net/wireless/mwifiex/scan.c
index 00b658d..5896b1f 100644
--- a/drivers/net/wireless/mwifiex/scan.c
+++ b/drivers/net/wireless/mwifiex/scan.c
@@ -153,7 +153,7 @@ mwifiex_is_wpa_oui_present(struct mwifiex_bssdescriptor *bss_desc, u32 cipher)
if (((bss_desc->bcn_wpa_ie) &&
((*(bss_desc->bcn_wpa_ie)).vend_hdr.element_id ==
- WLAN_EID_WPA))) {
+ WLAN_EID_VENDOR_SPECIFIC))) {
iebody = (struct ie_body *) bss_desc->bcn_wpa_ie->data;
oui = &mwifiex_wpa_oui[cipher][0];
ret = mwifiex_search_oui_in_ie(iebody, oui);
@@ -202,7 +202,7 @@ mwifiex_is_bss_no_sec(struct mwifiex_private *priv,
if (!priv->sec_info.wep_enabled && !priv->sec_info.wpa_enabled &&
!priv->sec_info.wpa2_enabled && ((!bss_desc->bcn_wpa_ie) ||
((*(bss_desc->bcn_wpa_ie)).vend_hdr.element_id !=
- WLAN_EID_WPA)) &&
+ WLAN_EID_VENDOR_SPECIFIC)) &&
((!bss_desc->bcn_rsn_ie) ||
((*(bss_desc->bcn_rsn_ie)).ieee_hdr.element_id !=
WLAN_EID_RSN)) &&
@@ -237,7 +237,8 @@ mwifiex_is_bss_wpa(struct mwifiex_private *priv,
{
if (!priv->sec_info.wep_enabled && priv->sec_info.wpa_enabled &&
!priv->sec_info.wpa2_enabled && ((bss_desc->bcn_wpa_ie) &&
- ((*(bss_desc->bcn_wpa_ie)).vend_hdr.element_id == WLAN_EID_WPA))
+ ((*(bss_desc->bcn_wpa_ie)).
+ vend_hdr.element_id == WLAN_EID_VENDOR_SPECIFIC))
/*
* Privacy bit may NOT be set in some APs like
* LinkSys WRT54G && bss_desc->privacy
@@ -309,7 +310,8 @@ mwifiex_is_bss_adhoc_aes(struct mwifiex_private *priv,
if (!priv->sec_info.wep_enabled && !priv->sec_info.wpa_enabled &&
!priv->sec_info.wpa2_enabled &&
((!bss_desc->bcn_wpa_ie) ||
- ((*(bss_desc->bcn_wpa_ie)).vend_hdr.element_id != WLAN_EID_WPA)) &&
+ ((*(bss_desc->bcn_wpa_ie)).
+ vend_hdr.element_id != WLAN_EID_VENDOR_SPECIFIC)) &&
((!bss_desc->bcn_rsn_ie) ||
((*(bss_desc->bcn_rsn_ie)).ieee_hdr.element_id != WLAN_EID_RSN)) &&
!priv->sec_info.encryption_mode && bss_desc->privacy) {
@@ -329,7 +331,8 @@ mwifiex_is_bss_dynamic_wep(struct mwifiex_private *priv,
if (!priv->sec_info.wep_enabled && !priv->sec_info.wpa_enabled &&
!priv->sec_info.wpa2_enabled &&
((!bss_desc->bcn_wpa_ie) ||
- ((*(bss_desc->bcn_wpa_ie)).vend_hdr.element_id != WLAN_EID_WPA)) &&
+ ((*(bss_desc->bcn_wpa_ie)).
+ vend_hdr.element_id != WLAN_EID_VENDOR_SPECIFIC)) &&
((!bss_desc->bcn_rsn_ie) ||
((*(bss_desc->bcn_rsn_ie)).ieee_hdr.element_id != WLAN_EID_RSN)) &&
priv->sec_info.encryption_mode && bss_desc->privacy) {
diff --git a/drivers/net/wireless/mwifiex/sta_ioctl.c b/drivers/net/wireless/mwifiex/sta_ioctl.c
index 0c9f70b..552d72e 100644
--- a/drivers/net/wireless/mwifiex/sta_ioctl.c
+++ b/drivers/net/wireless/mwifiex/sta_ioctl.c
@@ -713,7 +713,7 @@ static int mwifiex_set_wpa_ie_helper(struct mwifiex_private *priv,
dev_dbg(priv->adapter->dev, "cmd: Set Wpa_ie_len=%d IE=%#x\n",
priv->wpa_ie_len, priv->wpa_ie[0]);
- if (priv->wpa_ie[0] == WLAN_EID_WPA) {
+ if (priv->wpa_ie[0] == WLAN_EID_VENDOR_SPECIFIC) {
priv->sec_info.wpa_enabled = true;
} else if (priv->wpa_ie[0] == WLAN_EID_RSN) {
priv->sec_info.wpa2_enabled = true;
@@ -1253,7 +1253,7 @@ mwifiex_set_gen_ie_helper(struct mwifiex_private *priv, u8 *ie_data_ptr,
}
pvendor_ie = (struct ieee_types_vendor_header *) ie_data_ptr;
/* Test to see if it is a WPA IE, if not, then it is a gen IE */
- if (((pvendor_ie->element_id == WLAN_EID_WPA) &&
+ if (((pvendor_ie->element_id == WLAN_EID_VENDOR_SPECIFIC) &&
(!memcmp(pvendor_ie->oui, wpa_oui, sizeof(wpa_oui)))) ||
(pvendor_ie->element_id == WLAN_EID_RSN)) {
diff --git a/drivers/net/wireless/orinoco/main.h b/drivers/net/wireless/orinoco/main.h
index 4dadf98..5a8fec2 100644
--- a/drivers/net/wireless/orinoco/main.h
+++ b/drivers/net/wireless/orinoco/main.h
@@ -39,7 +39,7 @@ static inline u8 *orinoco_get_wpa_ie(u8 *data, size_t len)
{
u8 *p = data;
while ((p + 2 + WPA_SELECTOR_LEN) < (data + len)) {
- if ((p[0] == WLAN_EID_GENERIC) &&
+ if ((p[0] == WLAN_EID_VENDOR_SPECIFIC) &&
(memcmp(&p[2], WPA_OUI_TYPE, WPA_SELECTOR_LEN) == 0))
return p;
p += p[1] + 2;
--
1.7.9.5
Hi Arend,
> The include file linux/ieee80211.h contains three definitions for
> the same thing in enum ieee80211_eid due to historic changes:
>
> /* Information Element IDs */
> enum ieee80211_eid {
> :
> WLAN_EID_WPA = 221,
> WLAN_EID_GENERIC = 221,
> WLAN_EID_VENDOR_SPECIFIC = 221,
> :
> };
>
> The standard refers to this as "vendor specific" element so the
> other two definitions are better not used. This patch changes the
> wireless drivers to use one definition, ie. WLAN_EID_VENDOR_SPECIFIC.
>
> Cc: Kalle Valo <[email protected]>
> Cc: Jouni Malinen <[email protected]>
> Cc: Stanislav Yakovlev <[email protected]>
> Cc: Dan Williams <[email protected]>
> Cc: Bing Zhao <[email protected]>
> Cc: Larry Finger <[email protected]>
> Signed-off-by: Arend van Spriel <[email protected]>
For mwifiex part,
Acked-by: Bing Zhao <[email protected]>
Thanks,
Bing
On 10/12/2012 12:46 PM, Kalle Valo wrote:
> On 10/12/2012 01:28 PM, Arend van Spriel wrote:
>> The include file linux/ieee80211.h contains three definitions for
>> the same thing in enum ieee80211_eid due to historic changes:
>>
>> /* Information Element IDs */
>> enum ieee80211_eid {
>> :
>> WLAN_EID_WPA = 221,
>> WLAN_EID_GENERIC = 221,
>> WLAN_EID_VENDOR_SPECIFIC = 221,
>> :
>> };
>>
>> The standard refers to this as "vendor specific" element so the
>> other two definitions are better not used. This patch changes the
>> wireless drivers to use one definition, ie. WLAN_EID_VENDOR_SPECIFIC.
>
> Why not remove _WPA and _GENERIC from ieee80211.h at the same time so
> that nobody else won't use them in the future?
Actually doing that in patch #3/3.
Regards,
Arend
The include file linux/ieee80211.h contains three definitions for
the same thing in enum ieee80211_eid due to historic changes:
/* Information Element IDs */
enum ieee80211_eid {
:
WLAN_EID_WPA = 221,
WLAN_EID_GENERIC = 221,
WLAN_EID_VENDOR_SPECIFIC = 221,
:
};
The standard refers to this as "vendor specific" element so the
other two definitions are better not used. This patch changes the
wireless drivers to use one definition, ie. WLAN_EID_VENDOR_SPECIFIC.
Cc: David S. Miller <[email protected]>
Signed-off-by: Arend van Spriel <[email protected]>
---
For some reason this driver resides in the net/ethernet driver
directory. Still decided to tag the patch as a wireless patch.
The other strange thing is that I could not find how to select
this driver. Using ps3_defconfig for ARCH=powerpc and following
the clues from Kconfig search function I can not get
"Toshiba devices" showing up. So this one is not compile tested.
Gr. AvS
---
drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c b/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
index 961c832..72b775f 100644
--- a/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
+++ b/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
@@ -452,7 +452,7 @@ static size_t gelic_wl_synthesize_ie(u8 *buf,
if (rsn)
*buf++ = WLAN_EID_RSN;
else
- *buf++ = WLAN_EID_GENERIC;
+ *buf++ = WLAN_EID_VENDOR_SPECIFIC;
/* length filed; set later */
buf++;
@@ -540,7 +540,7 @@ static void gelic_wl_parse_ie(u8 *data, size_t len,
break;
switch (item_id) {
- case WLAN_EID_GENERIC:
+ case WLAN_EID_VENDOR_SPECIFIC:
if ((OUI_LEN + 1 <= item_len) &&
!memcmp(pos, wpa_oui, OUI_LEN) &&
pos[OUI_LEN] == 0x01) {
--
1.7.9.5