--- /dev/null
+--- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
++++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
+@@ -273,7 +273,7 @@ static int ar9002_hw_proc_txdesc(struct
+
+ static void ar9002_hw_set11n_txdesc(struct ath_hw *ah, void *ds,
+ u32 pktLen, enum ath9k_pkt_type type,
+- u32 txPower, u32 keyIx,
++ u32 txPower, u8 keyIx,
+ enum ath9k_key_type keyType, u32 flags)
+ {
+ struct ar5416_desc *ads = AR5416DESC(ds);
+--- a/drivers/net/wireless/ath/ath9k/ath9k.h
++++ b/drivers/net/wireless/ath/ath9k/ath9k.h
+@@ -207,8 +207,8 @@ struct ath_atx_ac {
+
+ struct ath_frame_info {
+ int framelen;
+- u32 keyix;
+ enum ath9k_key_type keytype;
++ u8 keyix;
+ u8 retries;
+ u16 seqno;
+ };
+--- a/drivers/net/wireless/ath/ath9k/hw.h
++++ b/drivers/net/wireless/ath/ath9k/hw.h
+@@ -623,7 +623,7 @@ struct ath_hw_ops {
+ struct ath_tx_status *ts);
+ void (*set11n_txdesc)(struct ath_hw *ah, void *ds,
+ u32 pktLen, enum ath9k_pkt_type type,
+- u32 txPower, u32 keyIx,
++ u32 txPower, u8 keyIx,
+ enum ath9k_key_type keyType,
+ u32 flags);
+ void (*set11n_ratescenario)(struct ath_hw *ah, void *ds,
+--- a/drivers/net/wireless/ath/ath9k/mac.h
++++ b/drivers/net/wireless/ath/ath9k/mac.h
+@@ -194,7 +194,7 @@ struct ath_htc_rx_status {
+ #define ATH9K_RX_DECRYPT_BUSY 0x40
+
+ #define ATH9K_RXKEYIX_INVALID ((u8)-1)
+-#define ATH9K_TXKEYIX_INVALID ((u32)-1)
++#define ATH9K_TXKEYIX_INVALID ((u8)-1)
+
+ enum ath9k_phyerr {
+ ATH9K_PHYERR_UNDERRUN = 0, /* Transmit underrun */
+--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+@@ -312,7 +312,7 @@ static int ar9003_hw_proc_txdesc(struct
+
+ static void ar9003_hw_set11n_txdesc(struct ath_hw *ah, void *ds,
+ u32 pktlen, enum ath9k_pkt_type type, u32 txpower,
+- u32 keyIx, enum ath9k_key_type keyType, u32 flags)
++ u8 keyIx, enum ath9k_key_type keyType, u32 flags)
+ {
+ struct ar9003_txc *ads = (struct ar9003_txc *) ds;
+