staging: rtl8723au: issue_beacon23a(): Determine ie buffer location using 80211_mgmt
authorJes Sorensen <Jes.Sorensen@redhat.com>
Tue, 24 Jun 2014 13:03:27 +0000 (15:03 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Jun 2014 17:50:59 +0000 (13:50 -0400)
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

index cb882fb..ebd3743 100644 (file)
@@ -2430,11 +2430,9 @@ void issue_beacon23a(struct rtw_adapter *padapter, int timeout_ms)
                pframe += (cur_network->IELength+len_diff);
                pattrib->pktlen += (cur_network->IELength+len_diff);
 
-               iebuf = pmgntframe->buf_addr + TXDESC_OFFSET +
-                       sizeof (struct ieee80211_hdr_3addr) +
-                       _BEACON_IE_OFFSET_;
-               buflen = pattrib->pktlen - sizeof (struct ieee80211_hdr_3addr) -
-                       _BEACON_IE_OFFSET_;
+               iebuf = mgmt->u.beacon.variable;
+               buflen = pattrib->pktlen -
+                       offsetof(struct ieee80211_mgmt, u.beacon.variable);
                wps_ie = cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
                                                 WLAN_OUI_TYPE_MICROSOFT_WPS,
                                                 iebuf, buflen);