diff --git a/package/mac80211/patches/566-ath9k_fix_keymiss.patch b/package/mac80211/patches/566-ath9k_fix_keymiss.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d939e5996544ebb841a9b2d4d8f2aabefafeffe7
--- /dev/null
+++ b/package/mac80211/patches/566-ath9k_fix_keymiss.patch
@@ -0,0 +1,32 @@
+--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+@@ -558,10 +558,11 @@ int ath9k_hw_process_rxdesc_edma(struct 
+ 			rxs->rs_status |= ATH9K_RXERR_DECRYPT;
+ 		else if (rxsp->status11 & AR_MichaelErr)
+ 			rxs->rs_status |= ATH9K_RXERR_MIC;
+-		if (rxsp->status11 & AR_KeyMiss)
+-			rxs->rs_status |= ATH9K_RXERR_KEYMISS;
+ 	}
+ 
++	if (rxsp->status11 & AR_KeyMiss)
++		rxs->rs_status |= ATH9K_RXERR_KEYMISS;
++
+ 	return 0;
+ }
+ EXPORT_SYMBOL(ath9k_hw_process_rxdesc_edma);
+--- a/drivers/net/wireless/ath/ath9k/mac.c
++++ b/drivers/net/wireless/ath/ath9k/mac.c
+@@ -621,10 +621,11 @@ int ath9k_hw_rxprocdesc(struct ath_hw *a
+ 			rs->rs_status |= ATH9K_RXERR_DECRYPT;
+ 		else if (ads.ds_rxstatus8 & AR_MichaelErr)
+ 			rs->rs_status |= ATH9K_RXERR_MIC;
+-		if (ads.ds_rxstatus8 & AR_KeyMiss)
+-			rs->rs_status |= ATH9K_RXERR_KEYMISS;
+ 	}
+ 
++	if (ads.ds_rxstatus8 & AR_KeyMiss)
++		rs->rs_status |= ATH9K_RXERR_KEYMISS;
++
+ 	return 0;
+ }
+ EXPORT_SYMBOL(ath9k_hw_rxprocdesc);