Commit c8f260e3 authored by Jes Sorensen's avatar Jes Sorensen Committed by Greg Kroah-Hartman
Browse files

staging: rtl8723au: OnDisassoc23(): Use ieee80211_mgmt



Use proper kernel ieee80211.h defined headers to parse the response.

Signed-off-by: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent be47f782
Loading
Loading
Loading
Loading
+13 −15
Original line number Original line Diff line number Diff line
@@ -1755,22 +1755,21 @@ unsigned int OnDeAuth23a(struct rtw_adapter *padapter,
	return _SUCCESS;
	return _SUCCESS;
}
}


unsigned int OnDisassoc23a(struct rtw_adapter *padapter, struct recv_frame *precv_frame)
unsigned int OnDisassoc23a(struct rtw_adapter *padapter,
			   struct recv_frame *precv_frame)
{
{
	unsigned short	reason;
	unsigned short	reason;
	struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
	struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
	struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
	struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
	struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
	struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
	struct sk_buff *skb = precv_frame->pkt;
	struct sk_buff *skb = precv_frame->pkt;
	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
	struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *) skb->data;
	u8 *pframe = skb->data;


	/* check A3 */
	if (!ether_addr_equal(mgmt->bssid,
	if (!ether_addr_equal(hdr->addr3, get_my_bssid23a(&pmlmeinfo->network)))
			      get_my_bssid23a(&pmlmeinfo->network)))
		return _SUCCESS;
		return _SUCCESS;


	reason = le16_to_cpu(*(unsigned short *)
	reason = le16_to_cpu(mgmt->u.disassoc.reason_code);
			     (pframe + sizeof(struct ieee80211_hdr_3addr)));


        DBG_8723A("%s Reason code(%d)\n", __func__, reason);
        DBG_8723A("%s Reason code(%d)\n", __func__, reason);


@@ -1780,9 +1779,9 @@ unsigned int OnDisassoc23a(struct rtw_adapter *padapter, struct recv_frame *prec
		struct sta_priv *pstapriv = &padapter->stapriv;
		struct sta_priv *pstapriv = &padapter->stapriv;


		DBG_8723A_LEVEL(_drv_always_, "ap recv disassoc reason code(%d)"
		DBG_8723A_LEVEL(_drv_always_, "ap recv disassoc reason code(%d)"
				" sta:%pM\n", reason, hdr->addr2);
				" sta:%pM\n", reason, mgmt->sa);


		psta = rtw_get_stainfo23a(pstapriv, hdr->addr2);
		psta = rtw_get_stainfo23a(pstapriv, mgmt->sa);
		if (psta) {
		if (psta) {
			u8 updated = 0;
			u8 updated = 0;


@@ -1799,14 +1798,13 @@ unsigned int OnDisassoc23a(struct rtw_adapter *padapter, struct recv_frame *prec
		}
		}


		return _SUCCESS;
		return _SUCCESS;
	}
	} else
	else
#endif
#endif
	{
	{
		DBG_8723A_LEVEL(_drv_always_, "ap recv disassoc reason "
		DBG_8723A_LEVEL(_drv_always_, "ap recv disassoc reason "
				"code(%d) sta:%pM\n", reason, hdr->addr3);
				"code(%d) sta:%pM\n", reason, mgmt->bssid);


		receive_disconnect23a(padapter, hdr->addr3, reason);
		receive_disconnect23a(padapter, mgmt->bssid, reason);
	}
	}
	pmlmepriv->LinkDetectInfo.bBusyTraffic = false;
	pmlmepriv->LinkDetectInfo.bBusyTraffic = false;
	return _SUCCESS;
	return _SUCCESS;