@@ -2631,6 +2631,19 @@ static void ath10k_tx(struct ieee80211_hw *hw,
struct ieee80211_vif *vif = info->control.vif;
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
+
+ if (vif && vif->type == NL80211_IFTYPE_ADHOC) {
+ static int my_zlen = 78;
+ /* This nasty little hack fixes IBSS + RSN with small
+ * frames frames (ARP, etc) on 10.1 (CT) firmware.
+ * Shouldn't hurt any firmware, and may help other as well. --Ben
+ */
+ if (skb->len < my_zlen) {
+ if (skb_put_padto(skb, my_zlen))
+ return; /* skb was consumed by skb_padto on error */
+ }
+ }
+
/* We should disable CCK RATE due to P2P */
if (info->flags & IEEE80211_TX_CTL_NO_CCK_RATE)
ath10k_dbg(ar, ATH10K_DBG_MAC, "IEEE80211_TX_CTL_NO_CCK_RATE\n");