mac80211: check hostapd configuration parsing twt requests
authorLorenzo Bianconi <lorenzo@kernel.org>
Fri, 27 Aug 2021 08:07:19 +0000 (10:07 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 23 Sep 2021 11:37:09 +0000 (13:37 +0200)
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>
net/mac80211/rx.c

index 99ed68f7dc365ebc526338d883789a0fd1aa1616..8acc743559c330a5e54d462dcf1fee84f1876cdf 100644 (file)
@@ -3216,10 +3216,7 @@ static bool
 ieee80211_process_rx_twt_action(struct ieee80211_rx_data *rx)
 {
        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;
-       const struct ieee80211_sta_he_cap *hecap;
-       struct ieee80211_supported_band *sband;
 
        /* TWT actions are only supported in AP for the moment */
        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)
                return false;
 
-       sband = rx->local->hw.wiphy->bands[status->band];
-       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))
+       if (!sdata->vif.bss_conf.twt_responder)
                return false;
 
        if (!rx->sta)