mac80211: check hostapd configuration parsing twt requests

Check twt_responder in ieee80211_process_rx_twt_action routine
in order to take into account the case where twt has been disabled
in hostapd configuration.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://lore.kernel.org/r/516057fe4ca73ad257e8c2762e25f4b7872957fc.1630051438.git.lorenzo@kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Lorenzo Bianconi 2021-08-27 10:07:19 +02:00 committed by Johannes Berg
parent 3df15f3451
commit 68ba1131d4

View File

@ -3216,10 +3216,7 @@ static bool
ieee80211_process_rx_twt_action(struct ieee80211_rx_data *rx) ieee80211_process_rx_twt_action(struct ieee80211_rx_data *rx)
{ {
struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)rx->skb->data; struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)rx->skb->data;
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb);
struct ieee80211_sub_if_data *sdata = rx->sdata; struct ieee80211_sub_if_data *sdata = rx->sdata;
const struct ieee80211_sta_he_cap *hecap;
struct ieee80211_supported_band *sband;
/* TWT actions are only supported in AP for the moment */ /* TWT actions are only supported in AP for the moment */
if (sdata->vif.type != NL80211_IFTYPE_AP) if (sdata->vif.type != NL80211_IFTYPE_AP)
@ -3228,14 +3225,7 @@ ieee80211_process_rx_twt_action(struct ieee80211_rx_data *rx)
if (!rx->local->ops->add_twt_setup) if (!rx->local->ops->add_twt_setup)
return false; return false;
sband = rx->local->hw.wiphy->bands[status->band]; if (!sdata->vif.bss_conf.twt_responder)
hecap = ieee80211_get_he_iftype_cap(sband,
ieee80211_vif_type_p2p(&sdata->vif));
if (!hecap)
return false;
if (!(hecap->he_cap_elem.mac_cap_info[0] &
IEEE80211_HE_MAC_CAP0_TWT_RES))
return false; return false;
if (!rx->sta) if (!rx->sta)