--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1580,7 +1580,16 @@ static bool ieee80211_tx_frags(struct ie
 					return true;
 				}
 			} else {
-
+#ifdef CPTCFG_MAC80211_NSS_SUPPORT
+				if (skb_queue_len(&local->pending[q]) >= 1000) {
+					spin_unlock_irqrestore(
+						&local->queue_stop_reason_lock,
+						flags);
+					ieee80211_purge_tx_queue(&local->hw,
+								 skbs);
+					return false;
+				}
+#endif
 				/*
 				 * Since queue is stopped, queue up frames for
 				 * later transmission from the tx-pending
