Skip to content

Commit

Permalink
mac80211: remove SSID driver code
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Johannes Berg authored and John W. Linville committed Nov 10, 2008
1 parent b23f99b commit 41bb73e
Show file tree
Hide file tree
Showing 7 changed files with 4 additions and 69 deletions.
7 changes: 0 additions & 7 deletions drivers/net/wireless/iwlwifi/iwl-agn.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
7 changes: 0 additions & 7 deletions drivers/net/wireless/iwlwifi/iwl3945-base.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
11 changes: 1 addition & 10 deletions include/net/mac80211.h
Original file line number Diff line number Diff line change
Expand Up @@ -616,35 +616,26 @@ 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),
};

/**
* struct ieee80211_if_conf - configuration of an interface
*
* @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.
*/
struct ieee80211_if_conf {
u32 changed;
u8 *bssid;
u8 *ssid;
size_t ssid_len;
};

/**
Expand Down
3 changes: 0 additions & 3 deletions net/mac80211/ieee80211_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
15 changes: 3 additions & 12 deletions net/mac80211/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
}
Expand Down
14 changes: 0 additions & 14 deletions net/mac80211/mlme.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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)
Expand Down
16 changes: 0 additions & 16 deletions net/mac80211/wext.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand All @@ -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;
}

Expand Down

0 comments on commit 41bb73e

Please sign in to comment.