staging: r8188eu: use ieee80211 helpers in mgt_dispatcher
Use structs and functions from ieee80211.h in mgt_dispatcher to parse the incoming frame. Signed-off-by: Martin Kaiser <martin@kaiser.cx> Link: https://lore.kernel.org/r/20220413200742.276806-4-martin@kaiser.cx Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
7897aa28c0
commit
7bb528c6da
@ -396,14 +396,15 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame)
|
||||
struct mlme_handler *ptable;
|
||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||
u8 *pframe = precv_frame->rx_data;
|
||||
struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, GetAddr2Ptr(pframe));
|
||||
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)precv_frame->rx_data;
|
||||
struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, hdr->addr2);
|
||||
|
||||
if (GetFrameType(pframe) != IEEE80211_FTYPE_MGMT)
|
||||
if (!ieee80211_is_mgmt(hdr->frame_control))
|
||||
return;
|
||||
|
||||
/* receive the frames that ra(a1) is my address or ra(a1) is bc address. */
|
||||
if (memcmp(GetAddr1Ptr(pframe), myid(&padapter->eeprompriv), ETH_ALEN) &&
|
||||
!is_broadcast_ether_addr(GetAddr1Ptr(pframe)))
|
||||
if (memcmp(hdr->addr1, myid(&padapter->eeprompriv), ETH_ALEN) &&
|
||||
!is_broadcast_ether_addr(hdr->addr1))
|
||||
return;
|
||||
|
||||
ptable = mlme_sta_tbl;
|
||||
@ -415,7 +416,7 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame)
|
||||
ptable += index;
|
||||
|
||||
if (psta) {
|
||||
if (GetRetry(pframe)) {
|
||||
if (ieee80211_has_retry(hdr->frame_control)) {
|
||||
if (precv_frame->attrib.seq_num == psta->RxMgmtFrameSeqNum)
|
||||
/* drop the duplicate management frame */
|
||||
return;
|
||||
@ -423,7 +424,7 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame)
|
||||
psta->RxMgmtFrameSeqNum = precv_frame->attrib.seq_num;
|
||||
}
|
||||
|
||||
if (GetFrameSubType(pframe) == WIFI_AUTH) {
|
||||
if (ieee80211_is_auth(hdr->frame_control)) {
|
||||
if (check_fwstate(pmlmepriv, WIFI_AP_STATE))
|
||||
ptable->func = &OnAuth;
|
||||
else
|
||||
@ -432,8 +433,8 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame)
|
||||
|
||||
if (ptable->func) {
|
||||
/* receive the frames that ra(a1) is my address or ra(a1) is bc address. */
|
||||
if (memcmp(GetAddr1Ptr(pframe), myid(&padapter->eeprompriv), ETH_ALEN) &&
|
||||
!is_broadcast_ether_addr(GetAddr1Ptr(pframe)))
|
||||
if (memcmp(hdr->addr1, myid(&padapter->eeprompriv), ETH_ALEN) &&
|
||||
!is_broadcast_ether_addr(hdr->addr1))
|
||||
return;
|
||||
ptable->func(padapter, precv_frame);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user