#define bf_al                  bf_state.bfs_al
 #define bf_frmlen              bf_state.bfs_frmlen
 #define bf_retries             bf_state.bfs_retries
-#define bf_keyix                bf_state.bfs_keyix
 #define bf_isht(bf)            (bf->bf_state.bf_type & BUF_HT)
 #define bf_isampdu(bf)         (bf->bf_state.bf_type & BUF_AMPDU)
 #define bf_isaggr(bf)          (bf->bf_state.bf_type & BUF_AGGR)
        int bfs_retries;
        u8 bf_type;
        u8 bfs_paprd;
-       u32 bfs_keyix;
        enum ath9k_internal_frame_type bfs_ftype;
 };
 
 
 
        bf->bf_flags = setup_tx_flags(skb);
 
-       if (tx_info->control.hw_key) {
+       if (tx_info->control.hw_key)
                bf->bf_frmlen += tx_info->control.hw_key->icv_len;
-               bf->bf_keyix = tx_info->control.hw_key->hw_key_idx;
-       } else {
-               bf->bf_keyix = ATH9K_TXKEYIX_INVALID;
-       }
 
        bf->bf_mpdu = skb;
 
        struct ath_atx_tid *tid;
        struct ath_hw *ah = sc->sc_ah;
        enum ath9k_key_type keytype;
+       u32 keyix;
        int frm_type;
        __le16 fc;
        u8 tidno;
        ath9k_hw_set_desc_link(ah, ds, 0);
 
        keytype = ath9k_cmn_get_hw_crypto_keytype(skb);
+       if (tx_info->control.hw_key)
+               keyix = tx_info->control.hw_key->hw_key_idx;
+       else
+               keyix = ATH9K_TXKEYIX_INVALID;
+
        ath9k_hw_set11n_txdesc(ah, ds, bf->bf_frmlen, frm_type, MAX_RATE_POWER,
-                              bf->bf_keyix, keytype, bf->bf_flags);
+                              keyix, keytype, bf->bf_flags);
 
        ath9k_hw_filltxdesc(ah, ds,
                            skb->len,   /* segment length */