Skip to content

Commit e0645d9

Browse files
committed
Merge tag 'mac80211-for-davem-2018-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
Johannes Berg says: ==================== Two more fixes (in three patches): * ath9k_htc doesn't like QoS NDP frames, use regular ones * hwsim: set up wmediumd for radios created later ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 40013ff + 60b01bc commit e0645d9

File tree

5 files changed

+9
-1
lines changed

5 files changed

+9
-1
lines changed

drivers/net/wireless/ath/ath9k/htc_drv_init.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -729,6 +729,7 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,
729729
ieee80211_hw_set(hw, SPECTRUM_MGMT);
730730
ieee80211_hw_set(hw, SIGNAL_DBM);
731731
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
732+
ieee80211_hw_set(hw, DOESNT_SUPPORT_QOS_NDP);
732733

733734
if (ath9k_ps_enable)
734735
ieee80211_hw_set(hw, SUPPORTS_PS);

drivers/net/wireless/mac80211_hwsim.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2727,6 +2727,7 @@ static int mac80211_hwsim_new_radio(struct genl_info *info,
27272727
mutex_init(&data->mutex);
27282728

27292729
data->netgroup = hwsim_net_get_netgroup(net);
2730+
data->wmediumd = hwsim_net_get_wmediumd(net);
27302731

27312732
/* Enable frame retransmissions for lossy channels */
27322733
hw->max_rates = 4;

include/net/mac80211.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2063,6 +2063,9 @@ struct ieee80211_txq {
20632063
* @IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA: Hardware supports buffer STA on
20642064
* TDLS links.
20652065
*
2066+
* @IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP: The driver (or firmware) doesn't
2067+
* support QoS NDP for AP probing - that's most likely a driver bug.
2068+
*
20662069
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
20672070
*/
20682071
enum ieee80211_hw_flags {
@@ -2106,6 +2109,7 @@ enum ieee80211_hw_flags {
21062109
IEEE80211_HW_REPORTS_LOW_ACK,
21072110
IEEE80211_HW_SUPPORTS_TX_FRAG,
21082111
IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA,
2112+
IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP,
21092113

21102114
/* keep last, obviously */
21112115
NUM_IEEE80211_HW_FLAGS

net/mac80211/debugfs.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ static const char *hw_flag_names[] = {
212212
FLAG(REPORTS_LOW_ACK),
213213
FLAG(SUPPORTS_TX_FRAG),
214214
FLAG(SUPPORTS_TDLS_BUFFER_STA),
215+
FLAG(DOESNT_SUPPORT_QOS_NDP),
215216
#undef FLAG
216217
};
217218

net/mac80211/mlme.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,8 @@ void ieee80211_send_nullfunc(struct ieee80211_local *local,
896896
struct ieee80211_hdr_3addr *nullfunc;
897897
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
898898

899-
skb = ieee80211_nullfunc_get(&local->hw, &sdata->vif, true);
899+
skb = ieee80211_nullfunc_get(&local->hw, &sdata->vif,
900+
!ieee80211_hw_check(&local->hw, DOESNT_SUPPORT_QOS_NDP));
900901
if (!skb)
901902
return;
902903

0 commit comments

Comments
 (0)