Commit 4062f7aa authored by Jes Sorensen's avatar Jes Sorensen Committed by Greg Kroah-Hartman

staging: rtl8723au: rtw_cfg80211_inform_bss(): Use cfg80211_inform_bss()

There is no point in creating a fake beacon frame to call
cfg80211_inform_bss_frame() when we can just call
cfg80211_inform_bss() with the parameters we were sticking into the
fake frame.
Signed-off-by: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8a3adc24
......@@ -239,14 +239,12 @@ rtw_cfg80211_default_mgmt_stypes[NUM_NL80211_IFTYPES] = {
},
};
#define MAX_BSSINFO_LEN 1000
static int rtw_cfg80211_inform_bss(struct rtw_adapter *padapter,
struct wlan_network *pnetwork)
{
int ret = 0;
struct ieee80211_channel *notify_channel;
struct cfg80211_bss *bss;
/* struct ieee80211_supported_band *band; */
u16 channel;
u32 freq;
u16 notify_capability;
......@@ -254,21 +252,10 @@ static int rtw_cfg80211_inform_bss(struct rtw_adapter *padapter,
u8 *notify_ie;
size_t notify_ielen;
s32 notify_signal;
u8 buf[MAX_BSSINFO_LEN], *pbuf;
size_t len;
struct ieee80211_hdr *pwlanhdr;
struct wireless_dev *wdev = padapter->rtw_wdev;
struct wiphy *wiphy = wdev->wiphy;
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
/* DBG_8723A("%s\n", __func__); */
if (pnetwork->network.IELength > MAX_IE_SZ) {
DBG_8723A("%s IE Length too long > %d byte\n", __func__,
MAX_IE_SZ);
goto exit;
}
channel = pnetwork->network.DSConfig;
if (channel <= RTW_CH_MAX_2G_CHANNEL)
freq = ieee80211_channel_to_frequency(channel,
......@@ -299,35 +286,12 @@ static int rtw_cfg80211_inform_bss(struct rtw_adapter *padapter,
} else {
notify_signal = 100 * translate_percentage_to_dbm(pnetwork->network.PhyInfo.SignalStrength); /* dbm */
}
pbuf = buf;
pwlanhdr = (struct ieee80211_hdr *)pbuf;
pwlanhdr->seq_ctrl = 0;
if (pnetwork->network.reserved == 1) { /* WIFI_BEACON */
eth_broadcast_addr(pwlanhdr->addr1);
pwlanhdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
IEEE80211_STYPE_BEACON);
} else {
ether_addr_copy(pwlanhdr->addr1, myid(&padapter->eeprompriv));
pwlanhdr->frame_control =
cpu_to_le16(IEEE80211_FTYPE_MGMT |
IEEE80211_STYPE_PROBE_RESP);
}
ether_addr_copy(pwlanhdr->addr2, pnetwork->network.MacAddress);
ether_addr_copy(pwlanhdr->addr3, pnetwork->network.MacAddress);
pbuf += sizeof(struct ieee80211_hdr_3addr);
len = sizeof(struct ieee80211_hdr_3addr);
memcpy(pbuf, pnetwork->network.IEs, pnetwork->network.IELength);
len += pnetwork->network.IELength;
bss = cfg80211_inform_bss_frame(wiphy, notify_channel,
(struct ieee80211_mgmt *)buf, len,
notify_signal, GFP_ATOMIC);
bss = cfg80211_inform_bss(wiphy, notify_channel,
pnetwork->network.MacAddress, 0,
notify_capability, notify_interval,
notify_ie, notify_ielen,
notify_signal, GFP_ATOMIC);
if (unlikely(!bss)) {
DBG_8723A("rtw_cfg80211_inform_bss error\n");
......@@ -336,7 +300,6 @@ static int rtw_cfg80211_inform_bss(struct rtw_adapter *padapter,
cfg80211_put_bss(wiphy, bss);
exit:
return ret;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment