struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(entry->skb);
        struct ieee80211_key_conf *hw_key = tx_info->control.hw_key;
 
-       if (!test_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags) ||
-           !hw_key || entry->skb->do_not_encrypt)
+       if (!test_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags) || !hw_key)
                return;
 
        __set_bit(ENTRY_TXD_ENCRYPT, &txdesc->flags);
        struct ieee80211_key_conf *key = tx_info->control.hw_key;
        unsigned int overhead = 0;
 
-       if (!test_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags) ||
-           !key || skb->do_not_encrypt)
+       if (!test_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags) || !key)
                return overhead;
 
        /*
 
        else
                rts_info->flags &= ~IEEE80211_TX_CTL_NO_ACK;
 
-       skb->do_not_encrypt = 1;
+       /* Disable hardware encryption */
+       rts_info->control.hw_key = NULL;
 
        /*
         * RTS/CTS frame should use the length of the frame plus any