clean up wlan_bssdef.h
v4 cover clean up wlan_bssdef.h
I posted v4 of this patch set a week ago and there have been no comments. I hope this is a good sign that the patches are good. However, I have noticed that I managed to use the same message id for the coverletter of v4 as for v3, which might have caused people to hold off reviewing, perhaps thinking that earlier comments had not been addressed.
Better safe than sorry, so I am reposting v4
My apologies for the noise on the mailing list.
The main goal of this series is to get rid of a needless typedef in the rtl8712 wlan driver.
In the course of fixing that, I found a bug that can (at least in theory) lead to a overrun during a memcpy, as well as an identical struct with a different name, which use the typedef.
Finally after cleaning up the typedef, change the name of the primary variable that used the typedef from "SupportedRates" to "rates", to conform to kernel coding style.
Changes since V1:
Do not make other logic changes while Changing the name of SupportedRates New patch 3/6 fixes a buggy comment that referred to the typedef
Changes since V2:
broke former patch 4 into 3 parts, as it was too big for git-send-email
Changes since V3:
In patch 8/8 Change the line wrapping of lines that fit within 80 characters, removing superfluous "== true" expressions that would otherwise keep the lines overlong.
Joshua Clayton (8):
staging: rtl8712: fix buggy size calculation
staging: rtl8712: simplify size calculation
staging: rtl8712: fix comment
staging: rtl8712: removed unused wrapper structs
staging: rtl8712: remove duplicate struct
staging: rtl8712: rename function
staging: rtl8712: remove typedefs
staging: rtl8712: change SupportedRates to rates
drivers/staging/rtl8712/ieee80211.c | 25 +++++++------- drivers/staging/rtl8712/rtl871x_cmd.c | 28 +++++----------- drivers/staging/rtl8712/rtl871x_cmd.h | 18 ---------- drivers/staging/rtl8712/rtl871x_event.h | 2 +- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 34 +++++++++---------- drivers/staging/rtl8712/rtl871x_mlme.c | 47 ++++++++++----------------- drivers/staging/rtl8712/rtl871x_mlme.h | 2 +- drivers/staging/rtl8712/rtl871x_mp_ioctl.c | 6 ++-- drivers/staging/rtl8712/wlan_bssdef.h | 42 +++--------------------- 9 files changed, 62 insertions(+), 142 deletions(-)
Signature · 1 line
2.5.0
PATCH v4 1/8 staging: rtl8712: fix buggy size calculation
r8712_get_ndis_wlan_bssid_ex_sz has a "6 * sizeof(unsigned long)" where the underlying struct has a 6 * unsigned char. Simplify the calculation by just subtracting the variable part from the size of the struct.
This also gets rid of a use of typedef NDIS_802_11_RATES_EX
--- drivers/staging/rtl8712/rtl871x_mlme.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-)
drivers/staging/rtl8712/rtl871x_mlme.c +1 -11
@@ -210,17 +210,7 @@ void r8712_generate_random_ibss(u8 *pibss)uint r8712_get_ndis_wlan_bssid_ex_sz (struct ndis_wlan_bssid_ex *bss) { -uint t_len; - - t_len =sizeof (u32) +6 *sizeof (unsigned long ) +2 + -sizeof (struct ndis_802_11_ssid ) +sizeof (u32) + -sizeof (s32) + -sizeof (enum NDIS_802_11_NETWORK_TYPE ) + -sizeof (struct NDIS_802_11_CONFIGURATION ) + -sizeof (enum NDIS_802_11_NETWORK_INFRASTRUCTURE ) + -sizeof (NDIS_802_11_RATES_EX ) + -sizeof (u32) + bss->IELength; -return t_len; +return sizeof (*bss) + bss->IELength -MAX_IE_SZ ; }u8 *r8712_get_capability_from_ie (u8 *ie)
Signature · 1 line
2.5.0
PATCH v4 2/8 staging: rtl8712: simplify size calculation
In reply to Joshua Claytonreplace item-by-item size calculation of a struct with the size of the struct.
This gets rid of a use of typedef NDIS_802_11_RATES_EX
--- drivers/staging/rtl8712/rtl871x_cmd.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-)
drivers/staging/rtl8712/rtl871x_cmd.c +1 -10
@@ -471,7 +471,6 @@ u8 r8712_createbss_cmd(struct _adapter *padapter)u8 r8712_joinbss_cmd (struct _adapter *padapter,struct wlan_network *pnetwork) { -uint t_len =0 ;struct ndis_wlan_bssid_ex *psecnetwork;struct cmd_obj *pcmd;struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
@@ -486,14 +485,6 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork) pcmd =kmalloc (sizeof (*pcmd),GFP_ATOMIC );if (pcmd ==NULL )return _FAIL; - t_len =sizeof (u32) +6 *sizeof (unsigned char ) +2 + -sizeof (struct ndis_802_11_ssid ) +sizeof (u32) + -sizeof (s32) + -sizeof (enum NDIS_802_11_NETWORK_TYPE ) + -sizeof (struct NDIS_802_11_CONFIGURATION ) + -sizeof (enum NDIS_802_11_NETWORK_INFRASTRUCTURE ) + -sizeof (NDIS_802_11_RATES_EX ) + -sizeof (u32) +MAX_IE_SZ ;/* for hidden ap to set fw_state here */ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE|WIFI_ADHOC_STATE) !=
@@ -516,7 +507,7 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork)kfree (pcmd);return _FAIL; } -memcpy (psecnetwork, &pnetwork->network, t_len); +memcpy (psecnetwork, &pnetwork->network,sizeof (*psecnetwork)); psecuritypriv->authenticator_ie[0 ] = (unsigned char ) psecnetwork->IELength;if ((psecnetwork->IELength-12 ) < (256 -1 ))
Signature · 1 line
2.5.0
PATCH v4 3/8 staging: rtl8712: fix comment
In reply to Joshua ClaytonThe old comment refers to a typedef name which is being removed, and to a style of calculation which is no longer being used. It falsely states that IELength is variable length, instead of IEs.
Change comment to simply state that the IEs field is a buffer of variable size and that IELength refers to the current size.
--- drivers/staging/rtl8712/wlan_bssdef.h | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-)
drivers/staging/rtl8712/wlan_bssdef.h +1 -11
@@ -83,17 +83,6 @@ struct NDIS_802_11_FIXED_IEs {u16 Capabilities; }; -/* -* Length is the 4 bytes multiples of the sume of -* 6 * sizeof (unsigned char) + 2 + sizeof (ndis_802_11_ssid) + sizeof (u32) -* + sizeof (s32) + sizeof (NDIS_802_11_NETWORK_TYPE) -* + sizeof (struct NDIS_802_11_CONFIGURATION) -* + sizeof (NDIS_802_11_RATES_EX) + IELength - -* Except the IELength, all other fields are fixed length. Therefore, we can -* define a macro to present the partial sum. -*/ -struct ndis_wlan_bssid_ex {u32 Length;unsigned char MacAddress[6 ];
@@ -105,6 +94,7 @@ struct ndis_wlan_bssid_ex {struct NDIS_802_11_CONFIGURATION Configuration;enum NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;NDIS_802_11_RATES_EX SupportedRates; +/* number of content bytes in EIs, which varies */ u32 IELength;/*(timestamp, beacon interval, and capability information) */ u8 IEs[MAX_IE_SZ ];
Signature · 1 line
2.5.0
PATCH v4 4/8 staging: rtl8712: removed unused wrapper structs
In reply to Joshua ClaytonRemove wrapper structs that just wrap struct ndis_wlan_bssid_ex, and are unused.
--- drivers/staging/rtl8712/rtl871x_cmd.h | 18 ------------------ 1 file changed, 18 deletions(-)
drivers/staging/rtl8712/rtl871x_cmd.h +0 -18
@@ -123,15 +123,6 @@ struct usb_suspend_parm { };/* -* Caller Mode: Infra, Ad-Hoc -* Notes: To join the specified bss -* Command Event Mode -*/ -struct joinbss_parm { -struct ndis_wlan_bssid_ex network; -}; - -/* * Caller Mode: Infra, Ad-HoC(C) * Notes: To disconnect the current associated BSS * Command Mode
@@ -141,15 +132,6 @@ struct disconnect_parm { };/* -* Caller Mode: AP, Ad-HoC(M) -* Notes: To create a BSS -* Command Mode -*/ -struct createbss_parm { -struct ndis_wlan_bssid_ex network; -}; - -/* * Caller Mode: AP, Ad-HoC, Infra * Notes: To set the NIC mode of RTL8711 * Command Mode
Signature · 1 line
2.5.0
PATCH v4 5/8 staging: rtl8712: remove duplicate struct
In reply to Joshua Claytonstruct ndis_wlan_bssid_ex is a doppelganger of struct wlan_bssid_ex, and is used about a third as often.
Switch all instances to wlan_bssid_ex, and remove ndis_wlan_bssid_ex
This also gets rid of a use of typedef NDIS_802_11_RATES_EX
--- drivers/staging/rtl8712/rtl871x_cmd.c | 11 ++++------- drivers/staging/rtl8712/rtl871x_event.h | 2 +- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 10 +++++----- drivers/staging/rtl8712/rtl871x_mlme.c | 23 +++++++++++------------ drivers/staging/rtl8712/rtl871x_mlme.h | 2 +- drivers/staging/rtl8712/rtl871x_mp_ioctl.c | 4 ++-- drivers/staging/rtl8712/wlan_bssdef.h | 23 ++--------------------- 7 files changed, 26 insertions(+), 49 deletions(-)
drivers/staging/rtl8712/rtl871x_cmd.c +4 -7
@@ -456,9 +456,7 @@ u8 r8712_createbss_cmd(struct _adapter *padapter)INIT_LIST_HEAD (&pcmd->list); pcmd->cmdcode = _CreateBss_CMD_; pcmd->parmbuf = (unsigned char *)pdev_network; - pcmd->cmdsz =r8712_get_ndis_wlan_bssid_ex_sz (( -struct ndis_wlan_bssid_ex *) - pdev_network); + pcmd->cmdsz =r8712_get_ndis_wlan_bssid_ex_sz (pdev_network); pcmd->rsp =NULL ; pcmd->rspsz =0 ;/* notes: translate IELength & Length after assign to cmdsz; */
@@ -471,7 +469,7 @@ u8 r8712_createbss_cmd(struct _adapter *padapter)u8 r8712_joinbss_cmd (struct _adapter *padapter,struct wlan_network *pnetwork) { -struct ndis_wlan_bssid_ex *psecnetwork; +struct wlan_bssid_ex *psecnetwork;struct cmd_obj *pcmd;struct cmd_priv *pcmdpriv = &padapter->cmdpriv;struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
@@ -502,7 +500,7 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork)break ; } } - psecnetwork = (struct ndis_wlan_bssid_ex *)&psecuritypriv->sec_bss; + psecnetwork = &psecuritypriv->sec_bss;if (psecnetwork ==NULL ) {kfree (pcmd);return _FAIL;
@@ -894,8 +892,7 @@ void r8712_createbss_cmd_callback(struct _adapter *padapter,struct sta_info *psta =NULL ;struct wlan_network *pwlan =NULL ;struct mlme_priv *pmlmepriv = &padapter->mlmepriv; -struct ndis_wlan_bssid_ex *pnetwork = (struct ndis_wlan_bssid_ex *) - pcmd->parmbuf; +struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex *)pcmd->parmbuf;struct wlan_network *tgt_network = &(pmlmepriv->cur_network);if (pcmd->res !=H2C_SUCCESS )
drivers/staging/rtl8712/rtl871x_event.h +1 -1
@@ -36,7 +36,7 @@* Used to report a bss has been scanned */ struct survey_event { -struct ndis_wlan_bssid_ex bss; +struct wlan_bssid_ex bss; };/*
drivers/staging/rtl8712/rtl871x_ioctl_linux.c +5 -5
@@ -634,7 +634,7 @@ static int r8711_wx_get_name(struct net_device *dev,char *p;u8 ht_cap = false;struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); -struct ndis_wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; +struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network;NDIS_802_11_RATES_EX *prates =NULL ; if (check_fwstate(pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE) ==
@@ -723,7 +723,7 @@ static int r8711_wx_get_freq(struct net_device *dev, {struct _adapter *padapter =netdev_priv (dev);struct mlme_priv *pmlmepriv = &padapter->mlmepriv; -struct ndis_wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; +struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network;if (check_fwstate (pmlmepriv, _FW_LINKED) == true) { wrqu->freq.m = ieee80211_wlan_frequencies[
@@ -1111,7 +1111,7 @@ static int r8711_wx_get_wap(struct net_device *dev, {struct _adapter *padapter =netdev_priv (dev);struct mlme_priv *pmlmepriv = &padapter->mlmepriv; -struct ndis_wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; +struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; wrqu->ap_addr.sa_family =ARPHRD_ETHER ; if (check_fwstate(pmlmepriv, _FW_LINKED | WIFI_ADHOC_MASTER_STATE |
@@ -1327,7 +1327,7 @@ static int r8711_wx_get_essid(struct net_device *dev, {struct _adapter *padapter =netdev_priv (dev);struct mlme_priv *pmlmepriv = &padapter->mlmepriv; -struct ndis_wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; +struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network;u32 len, ret =0 ;if (check_fwstate (pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE )) {
@@ -1419,7 +1419,7 @@ static int r8711_wx_get_rate(struct net_device *dev, {struct _adapter *padapter =netdev_priv (dev);struct mlme_priv *pmlmepriv = &padapter->mlmepriv; -struct ndis_wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; +struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network;struct ieee80211_ht_cap *pht_capie;unsigned char rf_type = padapter->registrypriv.rf_config;int i;
drivers/staging/rtl8712/rtl871x_mlme.c +11 -12
@@ -208,7 +208,7 @@ void r8712_generate_random_ibss(u8 *pibss) pibss[5 ] = (u8)((curtime>>16 ) &0xff ); } -uint r8712_get_ndis_wlan_bssid_ex_sz (struct ndis_wlan_bssid_ex *bss) +uint r8712_get_ndis_wlan_bssid_ex_sz (struct wlan_bssid_ex *bss) {return sizeof (*bss) + bss->IELength -MAX_IE_SZ ; }
@@ -276,8 +276,8 @@ int r8712_is_same_ibss(struct _adapter *adapter, struct wlan_network *pnetwork) } -static int is_same_network (struct ndis_wlan_bssid_ex *src, -struct ndis_wlan_bssid_ex *dst) +static int is_same_network (struct wlan_bssid_ex *src, +struct wlan_bssid_ex *dst) {u16 s_cap, d_cap;
@@ -322,8 +322,8 @@ struct wlan_network *r8712_get_oldest_wlan_network(return oldest; } -static void update_network (struct ndis_wlan_bssid_ex *dst, -struct ndis_wlan_bssid_ex *src, +static void update_network (struct wlan_bssid_ex *dst, +struct wlan_bssid_ex *src,struct _adapter *padapter) {u32 last_evm =0 , tmpVal;
@@ -360,7 +360,7 @@ static void update_network(struct ndis_wlan_bssid_ex *dst, }static void update_current_network (struct _adapter *adapter, -struct ndis_wlan_bssid_ex *pnetwork) +struct wlan_bssid_ex *pnetwork) {struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
@@ -378,7 +378,7 @@ static void update_current_network(struct _adapter *adapter,Caller must hold pmlmepriv->lock first. */ static void update_scanned_network (struct _adapter *adapter, -struct ndis_wlan_bssid_ex *target) +struct wlan_bssid_ex *target) {struct list_head *plist, *phead;
@@ -441,7 +441,7 @@ static void update_scanned_network(struct _adapter *adapter, }static void rtl8711_add_network (struct _adapter *adapter, -struct ndis_wlan_bssid_ex *pnetwork) +struct wlan_bssid_ex *pnetwork) {unsigned long irqL;struct mlme_priv *pmlmepriv = &(((struct _adapter *)adapter)->mlmepriv);
@@ -497,10 +497,10 @@ void r8712_survey_event_callback(struct _adapter *adapter, u8 *pbuf) {unsigned long flags;u32 len; -struct ndis_wlan_bssid_ex *pnetwork; +struct wlan_bssid_ex *pnetwork;struct mlme_priv *pmlmepriv = &adapter->mlmepriv; - pnetwork = (struct ndis_wlan_bssid_ex *)pbuf; + pnetwork = (struct wlan_bssid_ex *)pbuf;#ifdef __BIG_ENDIAN/* endian_convert */ pnetwork->Length =le32_to_cpu (pnetwork->Length);
@@ -1658,8 +1658,7 @@ void r8712_update_registrypriv_dev_network(struct _adapter *adapter)*/ sz =r8712_generate_ie (pregistrypriv); pdev_network->IELength = sz; - pdev_network->Length =r8712_get_ndis_wlan_bssid_ex_sz ( - (struct ndis_wlan_bssid_ex *)pdev_network); + pdev_network->Length =r8712_get_ndis_wlan_bssid_ex_sz (pdev_network); }/*the function is at passive_level*/
drivers/staging/rtl8712/rtl871x_mlme.h +1 -1
@@ -202,7 +202,7 @@ sint r8712_set_key(struct _adapter *adapter, struct security_priv *psecuritypriv, sint keyid);sint r8712_set_auth (struct _adapter *adapter,struct security_priv *psecuritypriv); -uint r8712_get_ndis_wlan_bssid_ex_sz (struct ndis_wlan_bssid_ex *bss); +uint r8712_get_ndis_wlan_bssid_ex_sz (struct wlan_bssid_ex *bss);void r8712_generate_random_ibss (u8 *pibss);u8 *r8712_get_capability_from_ie (u8 *ie); struct wlan_network *r8712_get_oldest_wlan_network(
drivers/staging/rtl8712/rtl871x_mp_ioctl.c +2 -2
@@ -160,13 +160,13 @@ static int mp_start_test(struct _adapter *padapter)struct mp_priv *pmppriv = &padapter->mppriv;struct mlme_priv *pmlmepriv = &padapter->mlmepriv;struct wlan_network *tgt_network = &pmlmepriv->cur_network; -struct ndis_wlan_bssid_ex bssid; +struct wlan_bssid_ex bssid;struct sta_info *psta;unsigned long length;unsigned long irqL;int res = _SUCCESS; -/* 3 1. initialize a new struct ndis_wlan_bssid_ex */ +/* 3 1. initialize a new struct wlan_bssid_ex */ memcpy (bssid.MacAddress, pmppriv->network_macaddr,ETH_ALEN ); bssid.Ssid.SsidLength =16 ; memcpy(bssid.Ssid.Ssid, (unsigned char *)"mp_pseudo_adhoc",
drivers/staging/rtl8712/wlan_bssdef.h +2 -21
@@ -83,7 +83,7 @@ struct NDIS_802_11_FIXED_IEs {u16 Capabilities; }; -struct ndis_wlan_bssid_ex { +struct wlan_bssid_ex {u32 Length;unsigned char MacAddress[6 ];u8 Reserved[2 ];
@@ -203,7 +203,7 @@ struct wlan_network {unsigned int last_scanned;/*timestamp for the network */ int aid;/*will only be valid when a BSS is joined. */ int join_res; -struct ndis_wlan_bssid_ex network;/*must be the last item */ +struct wlan_bssid_ex network;/*must be the last item */ };enum VRTL_CARRIER_SENSE {
@@ -234,24 +234,5 @@ enum UAPSD_MAX_SP {#define NUM_PRE_AUTH_KEY 16#define NUM_PMKID_CACHE NUM_PRE_AUTH_KEY -/* -* WPA2 -*/ -struct wlan_bssid_ex { -u32 Length; -unsigned char MacAddress[6 ]; -u8 Reserved[2 ]; -struct ndis_802_11_ssid Ssid; -u32 Privacy; -s32 Rssi; -enum NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; -struct NDIS_802_11_CONFIGURATION Configuration; -enum NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; -NDIS_802_11_RATES_EX SupportedRates; -u32 IELength; -u8 IEs[MAX_IE_SZ ];/* (timestamp, beacon interval, and capability -* information) */ -}; -#endif /* #ifndef WLAN_BSSDEF_H_ */
Signature · 1 line
2.5.0
PATCH v4 6/8 staging: rtl8712: rename function
In reply to Joshua ClaytonRename r8712_get_ndis_wlan_bssid_ex_sz() to r8712_get_wlan_bssid_ex_sz(), which corresponds to the struct whose size it measures.
--- drivers/staging/rtl8712/rtl871x_cmd.c | 8 ++++---- drivers/staging/rtl8712/rtl871x_mlme.c | 16 ++++++++-------- drivers/staging/rtl8712/rtl871x_mlme.h | 2 +- drivers/staging/rtl8712/rtl871x_mp_ioctl.c | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-)
drivers/staging/rtl8712/rtl871x_cmd.c +4 -4
@@ -456,7 +456,7 @@ u8 r8712_createbss_cmd(struct _adapter *padapter)INIT_LIST_HEAD (&pcmd->list); pcmd->cmdcode = _CreateBss_CMD_; pcmd->parmbuf = (unsigned char *)pdev_network; - pcmd->cmdsz =r8712_get_ndis_wlan_bssid_ex_sz (pdev_network); + pcmd->cmdsz =r8712_get_wlan_bssid_ex_sz (pdev_network); pcmd->rsp =NULL ; pcmd->rspsz =0 ;/* notes: translate IELength & Length after assign to cmdsz; */
@@ -564,7 +564,7 @@ u8 r8712_joinbss_cmd(struct _adapter *padapter, struct wlan_network *pnetwork)memcpy (&psecuritypriv->supplicant_ie[1 ], &psecnetwork->IEs[0 ],255 );/* get cmdsz before endian conversion */ - pcmd->cmdsz =r8712_get_ndis_wlan_bssid_ex_sz (psecnetwork); + pcmd->cmdsz =r8712_get_wlan_bssid_ex_sz (psecnetwork);#ifdef __BIG_ENDIAN/* wlan_network endian conversion */ psecnetwork->Length =cpu_to_le32 (psecnetwork->Length);
@@ -946,11 +946,11 @@ void r8712_createbss_cmd_callback(struct _adapter *padapter, }else list_add_tail (&(pwlan->list), &pmlmepriv->scanned_queue.queue); - pnetwork->Length =r8712_get_ndis_wlan_bssid_ex_sz (pnetwork); + pnetwork->Length =r8712_get_wlan_bssid_ex_sz (pnetwork);memcpy (&(pwlan->network), pnetwork, pnetwork->Length); pwlan->fixed = true;memcpy (&tgt_network->network, pnetwork, - (r8712_get_ndis_wlan_bssid_ex_sz (pnetwork))); + (r8712_get_wlan_bssid_ex_sz (pnetwork)));if (pmlmepriv->fw_state & _FW_UNDER_LINKING) pmlmepriv->fw_state ^= _FW_UNDER_LINKING;/* we will set _FW_LINKED when there is one more sat to
drivers/staging/rtl8712/rtl871x_mlme.c +8 -8
@@ -208,7 +208,7 @@ void r8712_generate_random_ibss(u8 *pibss) pibss[5 ] = (u8)((curtime>>16 ) &0xff ); } -uint r8712_get_ndis_wlan_bssid_ex_sz (struct wlan_bssid_ex *bss) +uint r8712_get_wlan_bssid_ex_sz (struct wlan_bssid_ex *bss) {return sizeof (*bss) + bss->IELength -MAX_IE_SZ ; }
@@ -356,7 +356,7 @@ static void update_network(struct wlan_bssid_ex *dst, src->Rssi = padapter->recvpriv.signal; }else src->Rssi = (src->Rssi + dst->Rssi) /2 ; -memcpy ((u8 *)dst, (u8 *)src,r8712_get_ndis_wlan_bssid_ex_sz (src)); +memcpy ((u8 *)dst, (u8 *)src,r8712_get_wlan_bssid_ex_sz (src)); } static void update_current_network(struct _adapter *adapter,
@@ -416,7 +416,7 @@ static void update_scanned_network(struct _adapter *adapter, target->Rssi = (pnetwork->network.Rssi + target->Rssi) /2 ;memcpy (&pnetwork->network, target, -r8712_get_ndis_wlan_bssid_ex_sz (target)); +r8712_get_wlan_bssid_ex_sz (target)); pnetwork->last_scanned = jiffies; }else {/* Otherwise just pull from the free list */
@@ -424,7 +424,7 @@ static void update_scanned_network(struct _adapter *adapter, pnetwork =alloc_network (pmlmepriv);if (pnetwork ==NULL )return ; - bssid_ex_sz =r8712_get_ndis_wlan_bssid_ex_sz (target); + bssid_ex_sz =r8712_get_wlan_bssid_ex_sz (target); target->Length = bssid_ex_sz;memcpy (&pnetwork->network, target, bssid_ex_sz);list_add_tail (&pnetwork->list, &queue->queue);
@@ -528,7 +528,7 @@ void r8712_survey_event_callback(struct _adapter *adapter, u8 *pbuf)le32_to_cpu (pnetwork->InfrastructureMode); pnetwork->IELength =le32_to_cpu (pnetwork->IELength);#endif - len =r8712_get_ndis_wlan_bssid_ex_sz (pnetwork); + len =r8712_get_wlan_bssid_ex_sz (pnetwork);if (len >sizeof (struct wlan_bssid_ex ))return ;spin_lock_irqsave (&pmlmepriv->lock2, flags);
@@ -759,7 +759,7 @@ void r8712_joinbss_event_callback(struct _adapter *adapter, u8 *pbuf) the_same_macaddr = !memcmp (pnetwork->network.MacAddress, cur_network->network.MacAddress,ETH_ALEN ); pnetwork->network.Length = -r8712_get_ndis_wlan_bssid_ex_sz (&pnetwork->network); +r8712_get_wlan_bssid_ex_sz (&pnetwork->network);spin_lock_irqsave (&pmlmepriv->lock, irqL);if (pnetwork->network.Length >sizeof (struct wlan_bssid_ex )) goto ignore_joinbss_callback;
@@ -991,7 +991,7 @@ void r8712_stadel_event_callback(struct _adapter *adapter, u8 *pbuf) pdev_network = &(adapter->registrypriv.dev_network); pibss = adapter->registrypriv.dev_network.MacAddress;memcpy (pdev_network, &tgt_network->network, -r8712_get_ndis_wlan_bssid_ex_sz (&tgt_network-> +r8712_get_wlan_bssid_ex_sz (&tgt_network-> network)); memcpy(&pdev_network->Ssid, &pmlmepriv->assoc_ssid,
@@ -1658,7 +1658,7 @@ void r8712_update_registrypriv_dev_network(struct _adapter *adapter)*/ sz =r8712_generate_ie (pregistrypriv); pdev_network->IELength = sz; - pdev_network->Length =r8712_get_ndis_wlan_bssid_ex_sz (pdev_network); + pdev_network->Length =r8712_get_wlan_bssid_ex_sz (pdev_network); }/*the function is at passive_level*/
drivers/staging/rtl8712/rtl871x_mlme.h +1 -1
@@ -202,7 +202,7 @@ sint r8712_set_key(struct _adapter *adapter, struct security_priv *psecuritypriv, sint keyid);sint r8712_set_auth (struct _adapter *adapter,struct security_priv *psecuritypriv); -uint r8712_get_ndis_wlan_bssid_ex_sz (struct wlan_bssid_ex *bss); +uint r8712_get_wlan_bssid_ex_sz (struct wlan_bssid_ex *bss);void r8712_generate_random_ibss (u8 *pibss);u8 *r8712_get_capability_from_ie (u8 *ie); struct wlan_network *r8712_get_oldest_wlan_network(
drivers/staging/rtl8712/rtl871x_mp_ioctl.c +1 -1
@@ -174,7 +174,7 @@ static int mp_start_test(struct _adapter *padapter) bssid.InfrastructureMode = Ndis802_11IBSS; bssid.NetworkTypeInUse = Ndis802_11DS; bssid.IELength =0 ; - length =r8712_get_ndis_wlan_bssid_ex_sz (&bssid); + length =r8712_get_wlan_bssid_ex_sz (&bssid);if (length %4 ) {/*round up to multiple of 4 bytes.*/ bssid.Length = ((length >>2 ) +1 ) <<2 ;
Signature · 1 line
2.5.0
PATCH v4 7/8 staging: rtl8712: remove typedefs
In reply to Joshua ClaytonCoding style fix.
Get rid of typedefs NDIS_802_11_RATES and NDIS_802_11_RATES_EX Undo any casting that was done as a result of the typedef.
--- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 12 ++++++------ drivers/staging/rtl8712/wlan_bssdef.h | 7 +------ 2 files changed, 7 insertions(+), 12 deletions(-)
drivers/staging/rtl8712/rtl871x_ioctl_linux.c +6 -6
@@ -203,13 +203,13 @@ static inline char *translate_scan(struct _adapter *padapter, }/* Add the protocol name */ iwe.cmd =SIOCGIWNAME ; -if ((r8712_is_cckratesonly_included ((u8 *)&pnetwork->network. +if ((r8712_is_cckratesonly_included (pnetwork->network. SupportedRates)) == true) {if (ht_cap == true)snprintf (iwe.u.name,IFNAMSIZ ,"IEEE 802.11bn" );else snprintf (iwe.u.name,IFNAMSIZ ,"IEEE 802.11b" ); - }else if ((r8712_is_cckrates_included ((u8 *)&pnetwork->network. + }else if ((r8712_is_cckrates_included (pnetwork->network. SupportedRates)) == true) {if (ht_cap == true)snprintf (iwe.u.name,IFNAMSIZ ,"IEEE 802.11bgn" );
@@ -635,7 +635,7 @@ static int r8711_wx_get_name(struct net_device *dev,u8 ht_cap = false;struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; -NDIS_802_11_RATES_EX *prates =NULL ; +u8 *prates;if (check_fwstate (pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE ) == true) {
@@ -644,15 +644,15 @@ static int r8711_wx_get_name(struct net_device *dev, &ht_ielen, pcur_bss->IELength - 12);if (p && ht_ielen >0 ) ht_cap = true; - prates = &pcur_bss->SupportedRates; -if (r8712_is_cckratesonly_included ((u8 *)prates) == true) { + prates = pcur_bss->SupportedRates; +if (r8712_is_cckratesonly_included (prates) == true) {if (ht_cap == true)snprintf (wrqu->name,IFNAMSIZ ,"IEEE 802.11bn" );else snprintf (wrqu->name,IFNAMSIZ ,"IEEE 802.11b" ); - }else if ((r8712_is_cckrates_included ((u8 *)prates)) == true) { + }else if ((r8712_is_cckrates_included (prates)) == true) {if (ht_cap == true)snprintf (wrqu->name,IFNAMSIZ ,"IEEE 802.11bgn" );
drivers/staging/rtl8712/wlan_bssdef.h +1 -6
@@ -32,11 +32,6 @@#define NDIS_802_11_LENGTH_RATES 8#define NDIS_802_11_LENGTH_RATES_EX 16 -/* Set of 8 data rates*/ -typedef unsigned char NDIS_802_11_RATES [NDIS_802_11_LENGTH_RATES ]; -/* Set of 16 data rates */ -typedef unsigned char NDIS_802_11_RATES_EX [NDIS_802_11_LENGTH_RATES_EX ]; -struct ndis_802_11_ssid {u32 SsidLength;u8 Ssid[32 ];
@@ -93,7 +88,7 @@ struct wlan_bssid_ex {enum NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;struct NDIS_802_11_CONFIGURATION Configuration;enum NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; -NDIS_802_11_RATES_EX SupportedRates; +u8 SupportedRates[NDIS_802_11_LENGTH_RATES_EX ];/* number of content bytes in EIs, which varies */ u32 IELength;/*(timestamp, beacon interval, and capability information) */
Signature · 1 line
2.5.0
PATCH v4 8/8 staging: rtl8712: change SupportedRates to rates
In reply to Joshua ClaytonChange the value to a name that conforms to Linux coding style.
"rates" is equally expressive in this context, and I have left alone a comment and function name that describe the rates as supported rates.
--- drivers/staging/rtl8712/ieee80211.c | 25 +++++++++++-------------- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 18 ++++++++---------- drivers/staging/rtl8712/wlan_bssdef.h | 2 +- 3 files changed, 20 insertions(+), 25 deletions(-)
drivers/staging/rtl8712/ieee80211.c +11 -14
@@ -134,22 +134,20 @@ u8 *r8712_get_ie(u8 *pbuf, sint index, sint *len, sint limit)return NULL ; } -static void set_supported_rate (u8 *SupportedRates,uint mode) +static void set_supported_rate (u8 *rates,uint mode) { -memset (SupportedRates,0 ,NDIS_802_11_LENGTH_RATES_EX ); +memset (rates,0 ,NDIS_802_11_LENGTH_RATES_EX );switch (mode) {case WIRELESS_11B : -memcpy (SupportedRates,WIFI_CCKRATES , -IEEE80211_CCK_RATE_LEN ); +memcpy (rates,WIFI_CCKRATES ,IEEE80211_CCK_RATE_LEN );break ;case WIRELESS_11G :case WIRELESS_11A : -memcpy (SupportedRates,WIFI_OFDMRATES , -IEEE80211_NUM_OFDM_RATESLEN ); +memcpy (rates,WIFI_OFDMRATES ,IEEE80211_NUM_OFDM_RATESLEN );break ;case WIRELESS_11BG : -memcpy (SupportedRates,WIFI_CCKRATES ,IEEE80211_CCK_RATE_LEN ); -memcpy (SupportedRates +IEEE80211_CCK_RATE_LEN ,WIFI_OFDMRATES , +memcpy (rates,WIFI_CCKRATES ,IEEE80211_CCK_RATE_LEN ); +memcpy (rates +IEEE80211_CCK_RATE_LEN ,WIFI_OFDMRATES ,IEEE80211_NUM_OFDM_RATESLEN );break ; }
@@ -195,17 +193,16 @@ int r8712_generate_ie(struct registry_priv *pregistrypriv) ie =r8712_set_ie (ie, _SSID_IE_, pdev_network->Ssid.SsidLength, pdev_network->Ssid.Ssid, &sz);/*supported rates*/ -set_supported_rate (pdev_network->SupportedRates, - pregistrypriv->wireless_mode); - rateLen =r8712_get_rateset_len (pdev_network->SupportedRates); +set_supported_rate (pdev_network->rates, pregistrypriv->wireless_mode); + rateLen =r8712_get_rateset_len (pdev_network->rates);if (rateLen >8 ) { ie =r8712_set_ie (ie, _SUPPORTEDRATES_IE_,8 , - pdev_network->SupportedRates, &sz); + pdev_network->rates, &sz); ie =r8712_set_ie (ie, _EXT_SUPPORTEDRATES_IE_, (rateLen -8 ), - (pdev_network->SupportedRates +8 ), &sz); + (pdev_network->rates +8 ), &sz); }else ie =r8712_set_ie (ie, _SUPPORTEDRATES_IE_, - rateLen, pdev_network->SupportedRates, &sz); + rateLen, pdev_network->rates, &sz);/*DS parameter set*/ ie =r8712_set_ie (ie, _DSSET_IE_,1 , (u8 *)&(pdev_network->Configuration.DSConfig), &sz);
drivers/staging/rtl8712/rtl871x_ioctl_linux.c +8 -10
@@ -203,14 +203,12 @@ static inline char *translate_scan(struct _adapter *padapter, }/* Add the protocol name */ iwe.cmd =SIOCGIWNAME ; -if ((r8712_is_cckratesonly_included (pnetwork->network. - SupportedRates)) == true) { +if (r8712_is_cckratesonly_included (pnetwork->network.rates)) {if (ht_cap == true)snprintf (iwe.u.name,IFNAMSIZ ,"IEEE 802.11bn" );else snprintf (iwe.u.name,IFNAMSIZ ,"IEEE 802.11b" ); - }else if ((r8712_is_cckrates_included (pnetwork->network. - SupportedRates)) == true) { + }else if (r8712_is_cckrates_included (pnetwork->network.rates)) {if (ht_cap == true)snprintf (iwe.u.name,IFNAMSIZ ,"IEEE 802.11bgn" );else
@@ -270,9 +268,9 @@ static inline char *translate_scan(struct _adapter *padapter, iwe.u.bitrate.disabled =0 ; iwe.u.bitrate.value =0 ; i =0 ; -while (pnetwork->network.SupportedRates[i] !=0 ) { +while (pnetwork->network.rates[i] !=0 ) {/* Bit rate given in 500 kb/s units */ - iwe.u.bitrate.value = (pnetwork->network.SupportedRates[i++] & + iwe.u.bitrate.value = (pnetwork->network.rates[i++] &0x7F ) *500000 ; current_val =iwe_stream_add_value (info, start, current_val, stop, &iwe,IW_EV_PARAM_LEN );
@@ -644,7 +642,7 @@ static int r8711_wx_get_name(struct net_device *dev, &ht_ielen, pcur_bss->IELength - 12);if (p && ht_ielen >0 ) ht_cap = true; - prates = pcur_bss->SupportedRates; + prates = pcur_bss->rates;if (r8712_is_cckratesonly_included (prates) == true) {if (ht_cap == true) snprintf(wrqu->name, IFNAMSIZ,
@@ -1444,9 +1442,9 @@ static int r8711_wx_get_rate(struct net_device *dev, (IEEE80211_HT_CAP_SGI_20 | IEEE80211_HT_CAP_SGI_40)) ? 1 : 0; } -while ((pcur_bss->SupportedRates[i] !=0 ) && - (pcur_bss->SupportedRates[i] !=0xFF )) { - rate = pcur_bss->SupportedRates[i] &0x7F ; +while ((pcur_bss->rates[i] !=0 ) && + (pcur_bss->rates[i] !=0xFF )) { + rate = pcur_bss->rates[i] &0x7F ;if (rate > max_rate) max_rate = rate; wrqu->bitrate.fixed =0 ;/* no auto select */
drivers/staging/rtl8712/wlan_bssdef.h +1 -1
@@ -88,7 +88,7 @@ struct wlan_bssid_ex {enum NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;struct NDIS_802_11_CONFIGURATION Configuration;enum NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; -u8 SupportedRates[NDIS_802_11_LENGTH_RATES_EX ]; +u8 rates[NDIS_802_11_LENGTH_RATES_EX ];/* number of content bytes in EIs, which varies */ u32 IELength;/*(timestamp, beacon interval, and capability information) */
Signature · 1 line
2.5.0
Quoted 7 lines · Joshua Clayton
I posted v4 of this patch set a week ago and there have been no comments. I hope this is a good sign that the patches are good. However, I have noticed that I managed to use the same message id for the coverletter of v4 as for v3, which might have caused people to hold off reviewing, perhaps thinking that earlier comments had not been addressed.
No. No one reads cover letters. If there are no comments it means the peanut gallery is fine with it, and Greg hasn't gotten around to it yet.
Please don't repost patches unless asked.
You would think we would scramble around like panicked rabbits to fix the potential buffer overrun but actually we just treat it like a normal patch so it will take a bit to get merged.
Greg will email you when he gets to the patches, if they are merged or if there is a problem.
regards,
dan carpenter