mac80211: move HT operation mode BSS info
Johannes Berg [Fri, 8 May 2009 18:47:39 +0000 (20:47 +0200)]
There really is no need to have a separate struct for a
single variable. The fact that it exists is due to the
code legacy, but we can remove that now. Very simple.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/mac80211_hwsim.c
drivers/net/wireless/mwl8k.c
include/net/mac80211.h
net/mac80211/mlme.c

index 77f4b43..a9a4fce 100644 (file)
@@ -2225,9 +2225,9 @@ static void iwl_ht_conf(struct iwl_priv *priv,
 
        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();
 
index b1213b6..61a4ad7 100644 (file)
@@ -642,7 +642,7 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,
        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) {
index 46b288d..a263d5c 100644 (file)
@@ -2369,7 +2369,7 @@ static int mwl8k_cmd_set_aid(struct ieee80211_hw *hw,
        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;
index 38dc1cd..03591fc 100644 (file)
@@ -171,14 +171,6 @@ enum ieee80211_bss_change {
 };
 
 /**
- * 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
  *
  * This structure keeps information about a BSS (and an association
@@ -203,6 +195,8 @@ struct ieee80211_bss_ht_conf {
  *     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;
@@ -219,7 +213,7 @@ struct ieee80211_bss_conf {
        u16 assoc_capability;
        u64 timestamp;
        u32 basic_rates;
-       struct ieee80211_bss_ht_conf ht;
+       u16 ht_operation_mode;
 };
 
 /**
index c5445ba..a1f2332 100644 (file)
@@ -95,16 +95,14 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
        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;
@@ -148,19 +146,18 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
                                                 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;