mac80211: remove SSID driver code
authorJohannes Berg <johannes@sipsolutions.net>
Wed, 29 Oct 2008 00:09:37 +0000 (01:09 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 10 Nov 2008 20:11:56 +0000 (15:11 -0500)
Remove the SSID from the driver API since now there is no
driver that requires knowing the SSID and I think it's
unlikely that any hardware design that does require the
SSID will play well with mac80211.

This also removes support for setting the SSID in master
mode which will require a patch to hostapd to not try.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
include/net/mac80211.h
net/mac80211/ieee80211_i.h
net/mac80211/main.c
net/mac80211/mlme.c
net/mac80211/wext.c

index ce3141f07f3562341c763e74ff2bfa3d556b530f..ad186e134decb5da24d816887d1aadf3b6dd058d 100644 (file)
@@ -2957,13 +2957,6 @@ static int iwl4965_mac_config_interface(struct ieee80211_hw *hw,
                        return rc;
        }
 
-       if ((priv->iw_mode == NL80211_IFTYPE_AP) &&
-           (!conf->ssid_len)) {
-               IWL_DEBUG_MAC80211
-                   ("Leaving in AP mode because HostAPD is not ready.\n");
-               return 0;
-       }
-
        if (!iwl_is_alive(priv))
                return -EAGAIN;
 
index 0c2d778a9ff73aa43693a3cc2399311724adea1a..47881be9ba44bcd57650be8b78b6e0ac1a0d4f80 100644 (file)
@@ -6743,13 +6743,6 @@ static int iwl3945_mac_config_interface(struct ieee80211_hw *hw,
 
        /* XXX: this MUST use conf->mac_addr */
 
-       if ((priv->iw_mode == NL80211_IFTYPE_AP) &&
-           (!conf->ssid_len)) {
-               IWL_DEBUG_MAC80211
-                   ("Leaving in AP mode because HostAPD is not ready.\n");
-               return 0;
-       }
-
        if (!iwl3945_is_alive(priv))
                return -EAGAIN;
 
index 0b983bed3829bda243c68a8e5ade585c92f806df..af2ec6f9beb910e93410800ef66a809141c39a08 100644 (file)
@@ -616,14 +616,12 @@ struct ieee80211_if_init_conf {
  * enum ieee80211_if_conf_change - interface config change flags
  *
  * @IEEE80211_IFCC_BSSID: The BSSID changed.
- * @IEEE80211_IFCC_SSID: The SSID changed.
  * @IEEE80211_IFCC_BEACON: The beacon for this interface changed
  *     (currently AP and MESH only), use ieee80211_beacon_get().
  */
 enum ieee80211_if_conf_change {
        IEEE80211_IFCC_BSSID    = BIT(0),
-       IEEE80211_IFCC_SSID     = BIT(1),
-       IEEE80211_IFCC_BEACON   = BIT(2),
+       IEEE80211_IFCC_BEACON   = BIT(1),
 };
 
 /**
@@ -631,11 +629,6 @@ enum ieee80211_if_conf_change {
  *
  * @changed: parameters that have changed, see &enum ieee80211_if_conf_change.
  * @bssid: BSSID of the network we are associated to/creating.
- * @ssid: used (together with @ssid_len) by drivers for hardware that
- *     generate beacons independently. The pointer is valid only during the
- *     config_interface() call, so copy the value somewhere if you need
- *     it.
- * @ssid_len: length of the @ssid field.
  *
  * This structure is passed to the config_interface() callback of
  * &struct ieee80211_hw.
@@ -643,8 +636,6 @@ enum ieee80211_if_conf_change {
 struct ieee80211_if_conf {
        u32 changed;
        u8 *bssid;
-       u8 *ssid;
-       size_t ssid_len;
 };
 
 /**
index 2c91108e3901d1c89e751e018f7894cf93b93bdd..155a20410017661e60436712019f0b114a5abf83 100644 (file)
@@ -212,9 +212,6 @@ struct ieee80211_if_ap {
 
        struct list_head vlans;
 
-       u8 ssid[IEEE80211_MAX_SSID_LEN];
-       size_t ssid_len;
-
        /* yes, this looks ugly, but guarantees that we can later use
         * bitmap_empty :)
         * NB: don't touch this bitmap, use sta_info_{set,clear}_tim_bit */
index fa0cc7a1e6b4b7146356cc49fab39733dac463f8..d631dc96c3231a0de2f9ed9ad36329edc330e687 100644 (file)
@@ -171,19 +171,13 @@ int ieee80211_if_config(struct ieee80211_sub_if_data *sdata, u32 changed)
        conf.changed = changed;
 
        if (sdata->vif.type == NL80211_IFTYPE_STATION ||
-           sdata->vif.type == NL80211_IFTYPE_ADHOC) {
+           sdata->vif.type == NL80211_IFTYPE_ADHOC)
                conf.bssid = sdata->u.sta.bssid;
-               conf.ssid = sdata->u.sta.ssid;
-               conf.ssid_len = sdata->u.sta.ssid_len;
-       } else if (sdata->vif.type == NL80211_IFTYPE_AP) {
+       else if (sdata->vif.type == NL80211_IFTYPE_AP)
                conf.bssid = sdata->dev->dev_addr;
-               conf.ssid = sdata->u.ap.ssid;
-               conf.ssid_len = sdata->u.ap.ssid_len;
-       } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
+       else if (ieee80211_vif_is_mesh(&sdata->vif)) {
                u8 zero[ETH_ALEN] = { 0 };
                conf.bssid = zero;
-               conf.ssid = zero;
-               conf.ssid_len = 0;
        } else {
                WARN_ON(1);
                return -EINVAL;
@@ -192,9 +186,6 @@ int ieee80211_if_config(struct ieee80211_sub_if_data *sdata, u32 changed)
        if (WARN_ON(!conf.bssid && (changed & IEEE80211_IFCC_BSSID)))
                return -EINVAL;
 
-       if (WARN_ON(!conf.ssid && (changed & IEEE80211_IFCC_SSID)))
-               return -EINVAL;
-
        return local->ops->config_interface(local_to_hw(local),
                                            &sdata->vif, &conf);
 }
index 9e6c75abc92200bdad6b216bb18d54f8e39d7b39..708eb4502ed7307959cde48a0816b660b11aac7b 100644 (file)
@@ -2416,7 +2416,6 @@ void ieee80211_sta_req_auth(struct ieee80211_sub_if_data *sdata,
 int ieee80211_sta_set_ssid(struct ieee80211_sub_if_data *sdata, char *ssid, size_t len)
 {
        struct ieee80211_if_sta *ifsta;
-       int res;
 
        if (len > IEEE80211_MAX_SSID_LEN)
                return -EINVAL;
@@ -2428,19 +2427,6 @@ int ieee80211_sta_set_ssid(struct ieee80211_sub_if_data *sdata, char *ssid, size
                memcpy(ifsta->ssid, ssid, len);
                ifsta->ssid_len = len;
                ifsta->flags &= ~IEEE80211_STA_PREV_BSSID_SET;
-
-               res = 0;
-               /*
-                * Hack! MLME code needs to be cleaned up to have different
-                * entry points for configuration and internal selection change
-                */
-               if (netif_running(sdata->dev))
-                       res = ieee80211_if_config(sdata, IEEE80211_IFCC_SSID);
-               if (res) {
-                       printk(KERN_DEBUG "%s: Failed to config new SSID to "
-                              "the low-level driver\n", sdata->dev->name);
-                       return res;
-               }
        }
 
        if (len)
index 231cab57351f11b9b4674b6a401955902d66f973..63f36e9d1af8714f82ea8f6d9ba503ad5c9179d4 100644 (file)
@@ -407,13 +407,6 @@ static int ieee80211_ioctl_siwessid(struct net_device *dev,
                return 0;
        }
 
-       if (sdata->vif.type == NL80211_IFTYPE_AP) {
-               memcpy(sdata->u.ap.ssid, ssid, len);
-               memset(sdata->u.ap.ssid + len, 0,
-                      IEEE80211_MAX_SSID_LEN - len);
-               sdata->u.ap.ssid_len = len;
-               return ieee80211_if_config(sdata, IEEE80211_IFCC_SSID);
-       }
        return -EOPNOTSUPP;
 }
 
@@ -437,15 +430,6 @@ static int ieee80211_ioctl_giwessid(struct net_device *dev,
                return res;
        }
 
-       if (sdata->vif.type == NL80211_IFTYPE_AP) {
-               len = sdata->u.ap.ssid_len;
-               if (len > IW_ESSID_MAX_SIZE)
-                       len = IW_ESSID_MAX_SIZE;
-               memcpy(ssid, sdata->u.ap.ssid, len);
-               data->length = len;
-               data->flags = 1;
-               return 0;
-       }
        return -EOPNOTSUPP;
 }