--- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -2693,7 +2693,8 @@ static int ath11k_install_key(struct ath } if (test_bit(ATH11K_FLAG_RAW_MODE, &ar->ab->dev_flags)) - key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; + key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV | + IEEE80211_KEY_FLAG_RESERVE_TAILROOM; install: ret = ath11k_wmi_vdev_install_key(arvif->ar, &arg); @@ -6613,7 +6614,13 @@ static int __ath11k_mac_register(struct ieee80211_hw_set(ar->hw, HAS_RATE_CONTROL); ieee80211_hw_set(ar->hw, AP_LINK_PS); ieee80211_hw_set(ar->hw, SPECTRUM_MGMT); - ieee80211_hw_set(ar->hw, SUPPORT_FAST_XMIT); + + /* Use normal tx path for raw mode as fast-tx path does not + * ensure tailroom availability for including MIC length. + */ + if (!test_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags)) + ieee80211_hw_set(ar->hw, SUPPORT_FAST_XMIT); + ieee80211_hw_set(ar->hw, CONNECTION_MONITOR); ieee80211_hw_set(ar->hw, SUPPORTS_PER_STA_GTK); ieee80211_hw_set(ar->hw, WANT_MONITOR_VIF);