staging: wfx: avoid duplicate updating of beacon template

When ERP changes, mac80211 call wfx_bss_info_changed() with
BSS_CHANGED_ERP_* and with BSS_CHANGED_BEACON.

The driver already update beacon template because of
BSS_CHANGED_BEACON. It is not necessary to also update beacon template
because of BSS_CHANGED_ERP_*.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20200410133239.438347-14-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Jérôme Pouiller 2020-04-10 15:32:33 +02:00 committed by Greg Kroah-Hartman
parent 974dfbf8fe
commit 7b063f3bfb

View File

@ -725,18 +725,8 @@ void wfx_bss_info_changed(struct ieee80211_hw *hw,
hif_keep_alive_period(wvif, info->max_idle_period *
USEC_PER_TU / USEC_PER_MSEC);
if (changed & BSS_CHANGED_ERP_CTS_PROT ||
changed & BSS_CHANGED_ERP_PREAMBLE) {
u8 erp_ie[3] = { WLAN_EID_ERP_INFO, 1, 0 };
if (changed & BSS_CHANGED_ERP_CTS_PROT)
hif_erp_use_protection(wvif, info->use_cts_prot);
if (info->use_cts_prot)
erp_ie[2] |= WLAN_ERP_USE_PROTECTION;
if (info->use_short_preamble)
erp_ie[2] |= WLAN_ERP_BARKER_PREAMBLE;
if (wvif->vif->type != NL80211_IFTYPE_STATION)
hif_update_ie_beacon(wvif, erp_ie, sizeof(erp_ie));
}
if (changed & BSS_CHANGED_ERP_SLOT)
hif_slot_time(wvif, info->use_short_slot ? 9 : 20);