64 lines
2.6 KiB
Diff
64 lines
2.6 KiB
Diff
From: Jes Sorensen <Jes.Sorensen@redhat.com>
|
|
Date: Mon, 9 Jun 2014 15:16:13 +0200
|
|
Subject: [034/249] staging: rtl8723au: _issue_deauth(): Use struct
|
|
ieee80211_mgmt to build frame
|
|
Origin: https://git.kernel.org/linus/f89547b651d842035c982f43d4303c0e7b890191
|
|
|
|
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
---
|
|
drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 27 ++++++++++-----------------
|
|
1 file changed, 10 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
|
|
index e5df86a..d109256 100644
|
|
--- a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
|
|
+++ b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
|
|
@@ -3840,8 +3840,7 @@ static int _issue_deauth(struct rtw_adapter *padapter, unsigned char *da,
|
|
{
|
|
struct xmit_frame *pmgntframe;
|
|
struct pkt_attrib *pattrib;
|
|
- unsigned char *pframe;
|
|
- struct ieee80211_hdr *pwlanhdr;
|
|
+ struct ieee80211_mgmt *mgmt;
|
|
struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
|
|
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
|
struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
|
|
@@ -3860,27 +3859,21 @@ static int _issue_deauth(struct rtw_adapter *padapter, unsigned char *da,
|
|
|
|
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
|
|
|
|
- pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
|
|
- pwlanhdr = (struct ieee80211_hdr *)pframe;
|
|
+ mgmt = (struct ieee80211_mgmt *)(pmgntframe->buf_addr + TXDESC_OFFSET);
|
|
|
|
- pwlanhdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
|
|
- IEEE80211_STYPE_DEAUTH);
|
|
+ mgmt->frame_control =
|
|
+ cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_DEAUTH);
|
|
|
|
- ether_addr_copy(pwlanhdr->addr1, da);
|
|
- ether_addr_copy(pwlanhdr->addr2, myid(&padapter->eeprompriv));
|
|
- ether_addr_copy(pwlanhdr->addr3, get_my_bssid23a(&pmlmeinfo->network));
|
|
+ ether_addr_copy(mgmt->da, da);
|
|
+ ether_addr_copy(mgmt->sa, myid(&padapter->eeprompriv));
|
|
+ ether_addr_copy(mgmt->bssid, get_my_bssid23a(&pmlmeinfo->network));
|
|
|
|
- pwlanhdr->seq_ctrl =
|
|
- cpu_to_le16(IEEE80211_SN_TO_SEQ(pmlmeext->mgnt_seq));
|
|
+ mgmt->seq_ctrl = cpu_to_le16(IEEE80211_SN_TO_SEQ(pmlmeext->mgnt_seq));
|
|
pmlmeext->mgnt_seq++;
|
|
|
|
- pframe += sizeof(struct ieee80211_hdr_3addr);
|
|
- pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr);
|
|
+ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr) + 2;
|
|
|
|
- reason = cpu_to_le16(reason);
|
|
- pframe = rtw_set_fixed_ie23a(pframe, WLAN_REASON_PREV_AUTH_NOT_VALID,
|
|
- (unsigned char *)&reason,
|
|
- &pattrib->pktlen);
|
|
+ mgmt->u.deauth.reason_code = cpu_to_le16(reason);
|
|
|
|
pattrib->last_txcmdsz = pattrib->pktlen;
|
|
|