staging: r8188eu: clean up unnecessary type casts
cover staging: r8188eu: clean up unnecessary type casts
This series removes unnecessary type casts from de/encrypt functions in core/rtw_security.c.
Tested with Inter-Tech DMG-02 adapter connected to a CCMP network.
Michael Straube (3):
staging: r8188eu: convert type of second parameter of rtw_*_encrypt()
staging: r8188eu: convert type of second parameter of rtw_*_decrypt()
staging: r8188eu: remove unnecessary type casts
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 2 +- drivers/staging/r8188eu/core/rtw_recv.c | 6 +- drivers/staging/r8188eu/core/rtw_security.c | 61 +++++++++---------- drivers/staging/r8188eu/core/rtw_xmit.c | 6 +- .../staging/r8188eu/include/rtw_security.h | 12 ++-- 5 files changed, 42 insertions(+), 45 deletions(-)
Signature · 1 line
2.32.0
PATCH 1/3 staging: r8188eu: convert type of second parameter of rtw_*_encrypt()
Convert the type of the second parameter of the rtw_*_encrypt() functions to struct xmit_frame.
All callers of the functions cast the type to (u8 *) and in the functions it is casted back to the original type. Changing the type of the second parameter to struct xmit_frame avoids these unnecessary casts and improves readability.
--- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 2 +- drivers/staging/r8188eu/core/rtw_security.c | 36 +++++++++---------- drivers/staging/r8188eu/core/rtw_xmit.c | 6 ++-- .../staging/r8188eu/include/rtw_security.h | 6 ++-- 4 files changed, 23 insertions(+), 27 deletions(-)
drivers/staging/r8188eu/core/rtw_mlme_ext.c +1 -1
@@ -5049,7 +5049,7 @@ void issue_auth(struct adapter *padapter, struct sta_info *psta, unsigned short pattrib->last_txcmdsz = pattrib->pktlen; -rtw_wep_encrypt (padapter, (u8 *)pmgntframe); +rtw_wep_encrypt (padapter, pmgntframe);DBG_88E ("%s\n" , __func__);dump_mgntframe (padapter, pmgntframe); }
drivers/staging/r8188eu/core/rtw_security.c +16 -20
@@ -77,7 +77,7 @@ static void arcfour_encrypt(struct arc4context *parc4ctx, u8 *dest, u8 *src, u32/* Need to consider the fragment situation */ -void rtw_wep_encrypt (struct adapter *padapter,u8 *pxmitframe) +void rtw_wep_encrypt (struct adapter *padapter,struct xmit_frame *pxmitframe) {/* exclude ICV */ union {__le32 f0;
@@ -91,17 +91,15 @@ void rtw_wep_encrypt(struct adapter *padapter, u8 *pxmitframe)u8 *pframe, *payload, *iv;/* wepkey */ u8 wepkey[16 ];u8 hw_hdr_offset =0 ; -struct pkt_attrib *pattrib = &((struct xmit_frame *)pxmitframe)->attrib; +struct pkt_attrib *pattrib = &pxmitframe->attrib;struct security_priv *psecuritypriv = &padapter->securitypriv;struct xmit_priv *pxmitpriv = &padapter->xmitpriv; -if (!((struct xmit_frame *)pxmitframe)->buf_addr) +if (!pxmitframe->buf_addr)return ; - hw_hdr_offset =TXDESC_SIZE + - (((struct xmit_frame *)pxmitframe)->pkt_offset *PACKET_OFFSET_SZ ); - - pframe = ((struct xmit_frame *)pxmitframe)->buf_addr + hw_hdr_offset; + hw_hdr_offset =TXDESC_SIZE + pxmitframe->pkt_offset *PACKET_OFFSET_SZ ; + pframe = pxmitframe->buf_addr + hw_hdr_offset;/* start to encrypt each fragment */ if ((pattrib->encrypt == _WEP40_) || (pattrib->encrypt == _WEP104_)) {
@@ -502,7 +500,7 @@ static void phase2(u8 *rc4key, const u8 *tk, const u16 *p1k, u16 iv16) }/* The hlen isn't include the IV */ -u32 rtw_tkip_encrypt (struct adapter *padapter,u8 *pxmitframe) +u32 rtw_tkip_encrypt (struct adapter *padapter,struct xmit_frame *pxmitframe) {/* exclude ICV */ u16 pnl;u32 pnh;
@@ -519,17 +517,17 @@ u32 rtw_tkip_encrypt(struct adapter *padapter, u8 *pxmitframe)u8 *pframe, *payload, *iv, *prwskey;union pn48 dot11txpn;struct sta_info *stainfo; -struct pkt_attrib *pattrib = &((struct xmit_frame *)pxmitframe)->attrib; +struct pkt_attrib *pattrib = &pxmitframe->attrib;struct security_priv *psecuritypriv = &padapter->securitypriv;struct xmit_priv *pxmitpriv = &padapter->xmitpriv;u32 res = _SUCCESS; -if (!((struct xmit_frame *)pxmitframe)->buf_addr) +if (!pxmitframe->buf_addr)return _FAIL; - hw_hdr_offset =TXDESC_SIZE + - (((struct xmit_frame *)pxmitframe)->pkt_offset *PACKET_OFFSET_SZ ); - pframe = ((struct xmit_frame *)pxmitframe)->buf_addr + hw_hdr_offset; + hw_hdr_offset =TXDESC_SIZE + pxmitframe->pkt_offset *PACKET_OFFSET_SZ ; + pframe = pxmitframe->buf_addr + hw_hdr_offset; +/* 4 start to encrypt each fragment */ if (pattrib->encrypt == _TKIP_) {if (pattrib->psta)
@@ -1154,7 +1152,7 @@ static int aes_cipher(u8 *key, uint hdrlen, u8 *pframe, uint plen)return _SUCCESS; } -u32 rtw_aes_encrypt (struct adapter *padapter,u8 *pxmitframe) +u32 rtw_aes_encrypt (struct adapter *padapter,struct xmit_frame *pxmitframe) {/* exclude ICV */ /*static*/
@@ -1165,20 +1163,18 @@ u32 rtw_aes_encrypt(struct adapter *padapter, u8 *pxmitframe)u8 *pframe, *prwskey;/* *payload,*iv */ u8 hw_hdr_offset =0 ;struct sta_info *stainfo; -struct pkt_attrib *pattrib = &((struct xmit_frame *)pxmitframe)->attrib; +struct pkt_attrib *pattrib = &pxmitframe->attrib;struct security_priv *psecuritypriv = &padapter->securitypriv;struct xmit_priv *pxmitpriv = &padapter->xmitpriv;/* uint offset = 0; */ u32 res = _SUCCESS; -if (!((struct xmit_frame *)pxmitframe)->buf_addr) +if (!pxmitframe->buf_addr)return _FAIL; - hw_hdr_offset =TXDESC_SIZE + - (((struct xmit_frame *)pxmitframe)->pkt_offset *PACKET_OFFSET_SZ ); - - pframe = ((struct xmit_frame *)pxmitframe)->buf_addr + hw_hdr_offset; + hw_hdr_offset =TXDESC_SIZE + pxmitframe->pkt_offset *PACKET_OFFSET_SZ ; + pframe = pxmitframe->buf_addr + hw_hdr_offset;/* 4 start to encrypt each fragment */ if (pattrib->encrypt == _AES_) {
drivers/staging/r8188eu/core/rtw_xmit.c +3 -3
@@ -683,13 +683,13 @@ static s32 xmitframe_swencrypt(struct adapter *padapter, struct xmit_frame *pxmiswitch (pattrib->encrypt) {case _WEP40_:case _WEP104_: -rtw_wep_encrypt (padapter, (u8 *)pxmitframe); +rtw_wep_encrypt (padapter, pxmitframe);break ;case _TKIP_: -rtw_tkip_encrypt (padapter, (u8 *)pxmitframe); +rtw_tkip_encrypt (padapter, pxmitframe);break ;case _AES_: -rtw_aes_encrypt (padapter, (u8 *)pxmitframe); +rtw_aes_encrypt (padapter, pxmitframe);break ;default :break ;
drivers/staging/r8188eu/include/rtw_security.h +3 -3
@@ -330,9 +330,9 @@ void rtw_secmicappend(struct mic_data *pmicdata, u8 *src, u32 nBytes);void rtw_secgetmic (struct mic_data *pmicdata,u8 *dst);void rtw_seccalctkipmic (u8 *key,u8 *header,u8 *data,u32 data_len,u8 *Miccode,u8 priority); -u32 rtw_aes_encrypt (struct adapter *padapter,u8 *pxmitframe); -u32 rtw_tkip_encrypt (struct adapter *padapter,u8 *pxmitframe); -void rtw_wep_encrypt (struct adapter *padapter,u8 *pxmitframe); +u32 rtw_aes_encrypt (struct adapter *padapter,struct xmit_frame *pxmitframe); +u32 rtw_tkip_encrypt (struct adapter *padapter,struct xmit_frame *pxmitframe); +void rtw_wep_encrypt (struct adapter *padapter,struct xmit_frame *pxmitframe);u32 rtw_aes_decrypt (struct adapter *padapter,u8 *precvframe);u32 rtw_tkip_decrypt (struct adapter *padapter,u8 *precvframe);void rtw_wep_decrypt (struct adapter *padapter,u8 *precvframe);
Signature · 1 line
2.32.0
PATCH 2/3 staging: r8188eu: convert type of second parameter of rtw_*_decrypt()
In reply to Michael StraubeConvert the type of the second parameter of the rtw_*_decrypt() functions to struct recv_frame.
All callers of the functions cast the type to (u8 *) and in the functions it is casted back to the original type. Changing the type of the second parameter to struct recv_frame avoids these unnecessary casts and improves readability.
--- drivers/staging/r8188eu/core/rtw_recv.c | 6 ++--- drivers/staging/r8188eu/core/rtw_security.c | 25 ++++++++++--------- .../staging/r8188eu/include/rtw_security.h | 6 ++--- 3 files changed, 19 insertions(+), 18 deletions(-)
drivers/staging/r8188eu/core/rtw_recv.c +3 -3
@@ -418,13 +418,13 @@ static struct recv_frame *decryptor(struct adapter *padapter, struct recv_frameswitch (prxattrib->encrypt) {case _WEP40_:case _WEP104_: -rtw_wep_decrypt (padapter, (u8 *)precv_frame); +rtw_wep_decrypt (padapter, precv_frame);break ;case _TKIP_: - res =rtw_tkip_decrypt (padapter, (u8 *)precv_frame); + res =rtw_tkip_decrypt (padapter, precv_frame);break ;case _AES_: - res =rtw_aes_decrypt (padapter, (u8 *)precv_frame); + res =rtw_aes_decrypt (padapter, precv_frame);break ;default :break ;
drivers/staging/r8188eu/core/rtw_security.c +13 -12
@@ -134,7 +134,7 @@ void rtw_wep_encrypt(struct adapter *padapter, struct xmit_frame *pxmitframe) } -void rtw_wep_decrypt (struct adapter *padapter,u8 *precvframe) +void rtw_wep_decrypt (struct adapter *padapter,struct recv_frame *precvframe) {/* exclude ICV */ struct arc4context mycontext;
@@ -142,10 +142,10 @@ void rtw_wep_decrypt(struct adapter *padapter, u8 *precvframe)u32 keylength;u8 *pframe, *payload, *iv, wepkey[16 ];u8 keyindex; -struct rx_pkt_attrib *prxattrib = &(((struct recv_frame *)precvframe)->attrib); +struct rx_pkt_attrib *prxattrib = &precvframe->attrib;struct security_priv *psecuritypriv = &padapter->securitypriv; - pframe = (unsigned char *)((struct recv_frame *)precvframe)->rx_data; + pframe = (unsigned char *)precvframe->rx_data;/* start to decrypt recvframe */ if ((prxattrib->encrypt == _WEP40_) || (prxattrib->encrypt == _WEP104_)) {
@@ -154,7 +154,7 @@ void rtw_wep_decrypt(struct adapter *padapter, u8 *precvframe) keylength = psecuritypriv->dot11DefKeylen[keyindex];memcpy (&wepkey[0 ], iv,3 );memcpy (&wepkey[3 ], &psecuritypriv->dot11DefKey[keyindex].skey[0 ], keylength); - length = ((struct recv_frame *)precvframe)->len - prxattrib->hdrlen - prxattrib->iv_len; + length = precvframe->len - prxattrib->hdrlen - prxattrib->iv_len; payload = pframe + prxattrib->iv_len + prxattrib->hdrlen;
@@ -580,7 +580,7 @@ u32 rtw_tkip_encrypt(struct adapter *padapter, struct xmit_frame *pxmitframe) }/* The hlen isn't include the IV */ -u32 rtw_tkip_decrypt (struct adapter *padapter,u8 *precvframe) +u32 rtw_tkip_decrypt (struct adapter *padapter,struct recv_frame *precvframe) {/* exclude ICV */ u16 pnl;u32 pnh;
@@ -596,11 +596,11 @@ u32 rtw_tkip_decrypt(struct adapter *padapter, u8 *precvframe)u8 *pframe, *payload, *iv, *prwskey;union pn48 dot11txpn;struct sta_info *stainfo; -struct rx_pkt_attrib *prxattrib = &((struct recv_frame *)precvframe)->attrib; +struct rx_pkt_attrib *prxattrib = &precvframe->attrib;struct security_priv *psecuritypriv = &padapter->securitypriv;u32 res = _SUCCESS; - pframe = (unsigned char *)((struct recv_frame *)precvframe)->rx_data; + pframe = (unsigned char *)precvframe->rx_data;/* 4 start to decrypt recvframe */ if (prxattrib->encrypt == _TKIP_) {
@@ -619,7 +619,7 @@ u32 rtw_tkip_decrypt(struct adapter *padapter, u8 *precvframe) iv = pframe + prxattrib->hdrlen; payload = pframe + prxattrib->iv_len + prxattrib->hdrlen; - length = ((struct recv_frame *)precvframe)->len - prxattrib->hdrlen - prxattrib->iv_len; + length = precvframe->len - prxattrib->hdrlen - prxattrib->iv_len;GET_TKIP_PN (iv, dot11txpn);
@@ -1402,17 +1402,18 @@ static int aes_decipher(u8 *key, uint hdrlen,return res; } -u32 rtw_aes_decrypt (struct adapter *padapter,u8 *precvframe) +u32 rtw_aes_decrypt (struct adapter *padapter,struct recv_frame *precvframe) {/* exclude ICV */ /* Intermediate Buffers */ int length;u8 *pframe, *prwskey;/* *payload,*iv */ struct sta_info *stainfo; -struct rx_pkt_attrib *prxattrib = &((struct recv_frame *)precvframe)->attrib; +struct rx_pkt_attrib *prxattrib = &precvframe->attrib;struct security_priv *psecuritypriv = &padapter->securitypriv;u32 res = _SUCCESS; - pframe = (unsigned char *)((struct recv_frame *)precvframe)->rx_data; + pframe = (unsigned char *)precvframe->rx_data; +/* 4 start to encrypt each fragment */ if (prxattrib->encrypt == _AES_) { stainfo =rtw_get_stainfo (&padapter->stapriv, &prxattrib->ta[0 ]);
@@ -1434,7 +1435,7 @@ u32 rtw_aes_decrypt(struct adapter *padapter, u8 *precvframe) }else { prwskey = &stainfo->dot118021x_UncstKey.skey[0 ]; } - length = ((struct recv_frame *)precvframe)->len - prxattrib->hdrlen - prxattrib->iv_len; + length = precvframe->len - prxattrib->hdrlen - prxattrib->iv_len; res =aes_decipher (prwskey, prxattrib->hdrlen, pframe, length); }else { res = _FAIL;
drivers/staging/r8188eu/include/rtw_security.h +3 -3
@@ -333,9 +333,9 @@ void rtw_seccalctkipmic(u8 *key, u8 *header, u8 *data, u32 data_len,u32 rtw_aes_encrypt (struct adapter *padapter,struct xmit_frame *pxmitframe);u32 rtw_tkip_encrypt (struct adapter *padapter,struct xmit_frame *pxmitframe);void rtw_wep_encrypt (struct adapter *padapter,struct xmit_frame *pxmitframe); -u32 rtw_aes_decrypt (struct adapter *padapter,u8 *precvframe); -u32 rtw_tkip_decrypt (struct adapter *padapter,u8 *precvframe); -void rtw_wep_decrypt (struct adapter *padapter,u8 *precvframe); +u32 rtw_aes_decrypt (struct adapter *padapter,struct recv_frame *precvframe); +u32 rtw_tkip_decrypt (struct adapter *padapter,struct recv_frame *precvframe); +void rtw_wep_decrypt (struct adapter *padapter,struct recv_frame *precvframe);void rtw_use_tkipkey_handler (void *FunctionContext);#endif /* __RTL871X_SECURITY_H_ */
Signature · 1 line
2.32.0
PATCH 3/3 staging: r8188eu: remove unnecessary type casts
In reply to Michael StraubeThe field rx_data of struct recv_frame and the local variable pframe both have type (u8 *). Remove unnecessary type casts to (unsigned char *).
--- drivers/staging/r8188eu/core/rtw_security.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/staging/r8188eu/core/rtw_security.c +3 -3
@@ -145,7 +145,7 @@ void rtw_wep_decrypt(struct adapter *padapter, struct recv_frame *precvframe)struct rx_pkt_attrib *prxattrib = &precvframe->attrib;struct security_priv *psecuritypriv = &padapter->securitypriv; - pframe = (unsigned char *)precvframe->rx_data; + pframe = precvframe->rx_data;/* start to decrypt recvframe */ if ((prxattrib->encrypt == _WEP40_) || (prxattrib->encrypt == _WEP104_)) {
@@ -600,7 +600,7 @@ u32 rtw_tkip_decrypt(struct adapter *padapter, struct recv_frame *precvframe)struct security_priv *psecuritypriv = &padapter->securitypriv;u32 res = _SUCCESS; - pframe = (unsigned char *)precvframe->rx_data; + pframe = precvframe->rx_data;/* 4 start to decrypt recvframe */ if (prxattrib->encrypt == _TKIP_) {
@@ -1412,7 +1412,7 @@ u32 rtw_aes_decrypt(struct adapter *padapter, struct recv_frame *precvframe)struct security_priv *psecuritypriv = &padapter->securitypriv;u32 res = _SUCCESS; - pframe = (unsigned char *)precvframe->rx_data; + pframe = precvframe->rx_data;/* 4 start to encrypt each fragment */ if (prxattrib->encrypt == _AES_) {
Signature · 1 line
2.32.0
Quoted 18 lines · Michael Straube
This series removes unnecessary type casts from de/encrypt functions in
core/rtw_security.c.Tested with Inter-Tech DMG-02 adapter connected to a CCMP network.
Michael Straube (3):
staging: r8188eu: convert type of second parameter of rtw_*_encrypt()
staging: r8188eu: convert type of second parameter of rtw_*_decrypt()
staging: r8188eu: remove unnecessary type castsdrivers/staging/r8188eu/core/rtw_mlme_ext.c | 2 +- drivers/staging/r8188eu/core/rtw_recv.c | 6 +- drivers/staging/r8188eu/core/rtw_security.c | 61 +++++++++---------- drivers/staging/r8188eu/core/rtw_xmit.c | 6 +- .../staging/r8188eu/include/rtw_security.h | 12 ++-- 5 files changed, 42 insertions(+), 45 deletions(-)
Quoted 3 lines
--
2.32.0
Dear Michael,
Looks good to me, built/run fine again, for whole series:
Regards,
Phil Potter