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

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
Loading
Loading
Loading
Loading
+5 −42
Original line number Diff line number Diff line
@@ -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,34 +286,11 @@ 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,
	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)) {
@@ -336,7 +300,6 @@ static int rtw_cfg80211_inform_bss(struct rtw_adapter *padapter,

	cfg80211_put_bss(wiphy, bss);

exit:
	return ret;
}