diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 21951bac1ef799d7a167c2ee9b0255e974c3f2cc..541e3e64493d73f5497ece370915aab491eeb7a5 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -563,8 +563,8 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_tx_data *tx)
 				IEEE80211_TX_RC_USE_RTS_CTS;
 
 		/* RC is busted */
-		if (WARN_ON(info->control.rates[i].idx >=
-			    sband->n_bitrates)) {
+		if (WARN_ON_ONCE(info->control.rates[i].idx >=
+				 sband->n_bitrates)) {
 			info->control.rates[i].idx = -1;
 			continue;
 		}