diff options
author | David S. Miller <davem@davemloft.net> | 2008-08-29 17:02:13 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-08-29 17:02:13 -0400 |
commit | 143b11c03cd42f2284efe5128afc057d8fc86c78 (patch) | |
tree | 8186830c461b7933c26cdd00b69e4c737c5c88e7 /net/mac80211/cfg.c | |
parent | af01d537463714e36e2c96d2da35902b76cd6827 (diff) | |
parent | 18c8adeb0244f823ba78a51e23f813fe68bc3c54 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r-- | net/mac80211/cfg.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 6d2ad2bf3ab5..928813ce08e2 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -674,6 +674,11 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
674 | sta->supp_rates[local->oper_channel->band] = rates; | 674 | sta->supp_rates[local->oper_channel->band] = rates; |
675 | } | 675 | } |
676 | 676 | ||
677 | if (params->ht_capa) { | ||
678 | ieee80211_ht_cap_ie_to_ht_info(params->ht_capa, | ||
679 | &sta->ht_info); | ||
680 | } | ||
681 | |||
677 | if (ieee80211_vif_is_mesh(&sdata->vif) && params->plink_action) { | 682 | if (ieee80211_vif_is_mesh(&sdata->vif) && params->plink_action) { |
678 | switch (params->plink_action) { | 683 | switch (params->plink_action) { |
679 | case PLINK_ACTION_OPEN: | 684 | case PLINK_ACTION_OPEN: |
@@ -1010,6 +1015,42 @@ static int ieee80211_dump_mpath(struct wiphy *wiphy, struct net_device *dev, | |||
1010 | } | 1015 | } |
1011 | #endif | 1016 | #endif |
1012 | 1017 | ||
1018 | static int ieee80211_change_bss(struct wiphy *wiphy, | ||
1019 | struct net_device *dev, | ||
1020 | struct bss_parameters *params) | ||
1021 | { | ||
1022 | struct ieee80211_local *local = wiphy_priv(wiphy); | ||
1023 | struct ieee80211_sub_if_data *sdata; | ||
1024 | u32 changed = 0; | ||
1025 | |||
1026 | if (dev == local->mdev) | ||
1027 | return -EOPNOTSUPP; | ||
1028 | |||
1029 | sdata = IEEE80211_DEV_TO_SUB_IF(dev); | ||
1030 | |||
1031 | if (sdata->vif.type != IEEE80211_IF_TYPE_AP) | ||
1032 | return -EINVAL; | ||
1033 | |||
1034 | if (params->use_cts_prot >= 0) { | ||
1035 | sdata->bss_conf.use_cts_prot = params->use_cts_prot; | ||
1036 | changed |= BSS_CHANGED_ERP_CTS_PROT; | ||
1037 | } | ||
1038 | if (params->use_short_preamble >= 0) { | ||
1039 | sdata->bss_conf.use_short_preamble = | ||
1040 | params->use_short_preamble; | ||
1041 | changed |= BSS_CHANGED_ERP_PREAMBLE; | ||
1042 | } | ||
1043 | if (params->use_short_slot_time >= 0) { | ||
1044 | sdata->bss_conf.use_short_slot = | ||
1045 | params->use_short_slot_time; | ||
1046 | changed |= BSS_CHANGED_ERP_SLOT; | ||
1047 | } | ||
1048 | |||
1049 | ieee80211_bss_info_change_notify(sdata, changed); | ||
1050 | |||
1051 | return 0; | ||
1052 | } | ||
1053 | |||
1013 | struct cfg80211_ops mac80211_config_ops = { | 1054 | struct cfg80211_ops mac80211_config_ops = { |
1014 | .add_virtual_intf = ieee80211_add_iface, | 1055 | .add_virtual_intf = ieee80211_add_iface, |
1015 | .del_virtual_intf = ieee80211_del_iface, | 1056 | .del_virtual_intf = ieee80211_del_iface, |
@@ -1033,4 +1074,5 @@ struct cfg80211_ops mac80211_config_ops = { | |||
1033 | .get_mpath = ieee80211_get_mpath, | 1074 | .get_mpath = ieee80211_get_mpath, |
1034 | .dump_mpath = ieee80211_dump_mpath, | 1075 | .dump_mpath = ieee80211_dump_mpath, |
1035 | #endif | 1076 | #endif |
1077 | .change_bss = ieee80211_change_bss, | ||
1036 | }; | 1078 | }; |