iwl_conf->tx_chan_width = iwl_conf->supported_chan_width != 0;
        iwl_conf->ht_protection =
-               bss_conf->ht.operation_mode & IEEE80211_HT_OP_MODE_PROTECTION;
+               bss_conf->ht_operation_mode & IEEE80211_HT_OP_MODE_PROTECTION;
        iwl_conf->non_GF_STA_present =
-               !!(bss_conf->ht.operation_mode & IEEE80211_HT_OP_MODE_NON_GF_STA_PRSNT);
+               !!(bss_conf->ht_operation_mode & IEEE80211_HT_OP_MODE_NON_GF_STA_PRSNT);
 
        rcu_read_unlock();
 
 
        if (changed & BSS_CHANGED_HT) {
                printk(KERN_DEBUG "  %s: HT: op_mode=0x%x\n",
                       wiphy_name(hw->wiphy),
-                      info->ht.operation_mode);
+                      info->ht_operation_mode);
        }
 
        if (changed & BSS_CHANGED_BASIC_RATES) {
 
        if (info->use_cts_prot) {
                prot_mode = MWL8K_FRAME_PROT_11G;
        } else {
-               switch (info->ht.operation_mode &
+               switch (info->ht_operation_mode &
                        IEEE80211_HT_OP_MODE_PROTECTION) {
                case IEEE80211_HT_OP_MODE_PROTECTION_20MHZ:
                        prot_mode = MWL8K_FRAME_PROT_11N_HT_40MHZ_ONLY;
 
        BSS_CHANGED_BEACON_ENABLED      = 1<<9,
 };
 
-/**
- * struct ieee80211_bss_ht_conf - BSS's changing HT configuration
- * @operation_mode: HT operation mode (like in &struct ieee80211_ht_info)
- */
-struct ieee80211_bss_ht_conf {
-       u16 operation_mode;
-};
-
 /**
  * struct ieee80211_bss_conf - holds the BSS's changing parameters
  *
  *     the current band.
  * @bssid: The BSSID for this BSS
  * @enable_beacon: whether beaconing should be enabled or not
+ * @ht_operation_mode: HT operation mode (like in &struct ieee80211_ht_info).
+ *     This field is only valid when the channel type is one of the HT types.
  */
 struct ieee80211_bss_conf {
        const u8 *bssid;
        u16 assoc_capability;
        u64 timestamp;
        u32 basic_rates;
-       struct ieee80211_bss_ht_conf ht;
+       u16 ht_operation_mode;
 };
 
 /**
 
        struct ieee80211_local *local = sdata->local;
        struct ieee80211_supported_band *sband;
        struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
-       struct ieee80211_bss_ht_conf ht;
        struct sta_info *sta;
        u32 changed = 0;
+       u16 ht_opmode;
        bool enable_ht = true, ht_changed;
        enum nl80211_channel_type channel_type = NL80211_CHAN_NO_HT;
 
        sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
 
-       memset(&ht, 0, sizeof(ht));
-
        /* HT is not supported */
        if (!sband->ht_cap.ht_supported)
                enable_ht = false;
                                                 IEEE80211_RC_HT_CHANGED);
 
                rcu_read_unlock();
-
         }
 
        /* disable HT */
        if (!enable_ht)
                return 0;
 
-       ht.operation_mode = le16_to_cpu(hti->operation_mode);
+       ht_opmode = le16_to_cpu(hti->operation_mode);
 
        /* if bss configuration changed store the new one */
-       if (memcmp(&sdata->vif.bss_conf.ht, &ht, sizeof(ht))) {
+       if (sdata->vif.bss_conf.ht_operation_mode != ht_opmode) {
                changed |= BSS_CHANGED_HT;
-               sdata->vif.bss_conf.ht = ht;
+               sdata->vif.bss_conf.ht_operation_mode = ht_opmode;
        }
 
        return changed;