Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f658eb90d065c2d76ab3f3eb676ebf53462e323b
Commit:     f658eb90d065c2d76ab3f3eb676ebf53462e323b
Parent:     8f37171a6243a8370211a1e86d58be683ccf01f0
Author:     Johannes Berg <[EMAIL PROTECTED]>
AuthorDate: Tue Aug 28 17:01:54 2007 -0400
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Oct 10 16:48:52 2007 -0700

    [MAC80211] key handling: remove default_wep_only
    
    Remove the default_wep_only stuff, this wasn't really done well
    and no current driver actually cares.
    
    Signed-off-by: Johannes Berg <[EMAIL PROTECTED]>
    Acked-by: Michael Wu <[EMAIL PROTECTED]>
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 include/net/mac80211.h         |    3 +-
 net/mac80211/ieee80211_i.h     |    5 --
 net/mac80211/ieee80211_iface.c |    5 --
 net/mac80211/ieee80211_ioctl.c |   97 +--------------------------------------
 net/mac80211/sta_info.c        |    6 +--
 5 files changed, 6 insertions(+), 110 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 056c225..3437fa1 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -632,8 +632,7 @@ struct ieee80211_ops {
         * selected by the low-level driver.
         */
        int (*set_key)(struct ieee80211_hw *hw, set_key_cmd cmd,
-                      u8 *address, struct ieee80211_key_conf *key,
-                      int static_wep_only);
+                      u8 *address, struct ieee80211_key_conf *key);
 
        /*
         * Set TX key index for default/broadcast keys. This is needed in cases
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index cc87e9d..7b5cc14 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -551,9 +551,6 @@ struct ieee80211_local {
 #endif /* CONFIG_MAC80211_DEBUG_COUNTERS */
 
 
-       int default_wep_only; /* only default WEP keys are used with this
-                              * interface; this is used to decide when hwaccel
-                              * can be used with default keys */
        int total_ps_buffered; /* total number of all buffered unicast and
                                * multicast packets for power saving stations
                                */
@@ -733,8 +730,6 @@ void ieee80211_key_threshold_notify(struct net_device *dev,
 /* ieee80211_ioctl.c */
 extern const struct iw_handler_def ieee80211_iw_handler_def;
 
-void ieee80211_update_default_wep_only(struct ieee80211_local *local);
-
 
 /* Least common multiple of the used rates (in 100 kbps). This is used to
  * calculate rate_inv values for each rate so that only integers are needed. */
diff --git a/net/mac80211/ieee80211_iface.c b/net/mac80211/ieee80211_iface.c
index 3e59afa..8bb85f1 100644
--- a/net/mac80211/ieee80211_iface.c
+++ b/net/mac80211/ieee80211_iface.c
@@ -88,8 +88,6 @@ int ieee80211_if_add(struct net_device *dev, const char *name,
                *new_dev = ndev;
        write_unlock_bh(&local->sub_if_lock);
 
-       ieee80211_update_default_wep_only(local);
-
        return 0;
 
 fail:
@@ -154,7 +152,6 @@ void ieee80211_if_del_mgmt(struct ieee80211_local *local)
 void ieee80211_if_set_type(struct net_device *dev, int type)
 {
        struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
-       struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
        int oldtype = sdata->type;
 
        dev->hard_start_xmit = ieee80211_subif_start_xmit;
@@ -205,7 +202,6 @@ void ieee80211_if_set_type(struct net_device *dev, int type)
                       dev->name, __FUNCTION__, type);
        }
        ieee80211_debugfs_change_if_type(sdata, oldtype);
-       ieee80211_update_default_wep_only(local);
 }
 
 /* Must be called with rtnl lock held. */
@@ -336,7 +332,6 @@ int ieee80211_if_remove(struct net_device *dev, const char 
*name, int id)
                        list_del(&sdata->list);
                        write_unlock_bh(&local->sub_if_lock);
                        __ieee80211_if_del(local, sdata);
-                       ieee80211_update_default_wep_only(local);
                        return 0;
                }
        }
diff --git a/net/mac80211/ieee80211_ioctl.c b/net/mac80211/ieee80211_ioctl.c
index 380670c..dc05bc6 100644
--- a/net/mac80211/ieee80211_ioctl.c
+++ b/net/mac80211/ieee80211_ioctl.c
@@ -40,7 +40,7 @@ static void ieee80211_set_hw_encryption(struct net_device 
*dev,
 
        if (key && local->ops->set_key) {
                if (local->ops->set_key(local_to_hw(local), SET_KEY, addr,
-                                       &key->conf, local->default_wep_only)) {
+                                       &key->conf)) {
                        key->conf.flags |= IEEE80211_KEY_FORCE_SW_ENCRYPT;
                        key->conf.hw_key_idx = HW_KEY_IDX_INVALID;
                }
@@ -111,7 +111,7 @@ static int ieee80211_set_encryption(struct net_device *dev, 
u8 *sta_addr,
         * possibility of conflict with default keys. This can maybe later be
         * optimized by using non-default keys (at least with Atheros ar521x).
         */
-       if (!sta && alg == ALG_WEP && !local->default_wep_only &&
+       if (!sta && alg == ALG_WEP &&
            sdata->type != IEEE80211_IF_TYPE_IBSS &&
            sdata->type != IEEE80211_IF_TYPE_AP) {
                try_hwaccel = 0;
@@ -148,8 +148,7 @@ static int ieee80211_set_encryption(struct net_device *dev, 
u8 *sta_addr,
                    key->conf.hw_key_idx != HW_KEY_IDX_INVALID &&
                    local->ops->set_key &&
                    local->ops->set_key(local_to_hw(local), DISABLE_KEY,
-                                       sta_addr, &key->conf,
-                                       local->default_wep_only)) {
+                                       sta_addr, &key->conf)) {
                        printk(KERN_DEBUG "%s: set_encrypt - low-level disable"
                               " failed\n", dev->name);
                        ret = -EINVAL;
@@ -924,96 +923,6 @@ static int ieee80211_ioctl_giwretry(struct net_device *dev,
        return 0;
 }
 
-static void ieee80211_key_enable_hwaccel(struct ieee80211_local *local,
-                                        struct ieee80211_key *key)
-{
-       u8 addr[ETH_ALEN];
-
-       if (!key || key->conf.alg != ALG_WEP ||
-           !(key->conf.flags & IEEE80211_KEY_FORCE_SW_ENCRYPT) ||
-           (local->hw.flags & IEEE80211_HW_DEVICE_HIDES_WEP))
-               return;
-
-       memset(addr, 0xff, ETH_ALEN);
-
-       if (local->ops->set_key)
-           local->ops->set_key(local_to_hw(local),
-                               SET_KEY, addr, &key->conf,
-                               local->default_wep_only);
-}
-
-
-static void ieee80211_key_disable_hwaccel(struct ieee80211_local *local,
-                                         struct ieee80211_key *key)
-{
-       u8 addr[ETH_ALEN];
-
-       if (!key || key->conf.alg != ALG_WEP ||
-           (key->conf.flags & IEEE80211_KEY_FORCE_SW_ENCRYPT) ||
-           (local->hw.flags & IEEE80211_HW_DEVICE_HIDES_WEP))
-               return;
-
-       memset(addr, 0xff, ETH_ALEN);
-       if (local->ops->set_key)
-               local->ops->set_key(local_to_hw(local), DISABLE_KEY,
-                                   addr, &key->conf,
-                                   local->default_wep_only);
-       key->conf.flags |= IEEE80211_KEY_FORCE_SW_ENCRYPT;
-}
-
-
-static int ieee80211_ioctl_default_wep_only(struct ieee80211_local *local,
-                                           int value)
-{
-       int i;
-       struct ieee80211_sub_if_data *sdata;
-
-       local->default_wep_only = value;
-       read_lock(&local->sub_if_lock);
-       list_for_each_entry(sdata, &local->sub_if_list, list)
-               for (i = 0; i < NUM_DEFAULT_KEYS; i++)
-                       if (value)
-                               ieee80211_key_enable_hwaccel(local,
-                                                            sdata->keys[i]);
-                       else
-                               ieee80211_key_disable_hwaccel(local,
-                                                             sdata->keys[i]);
-       read_unlock(&local->sub_if_lock);
-
-       return 0;
-}
-
-
-void ieee80211_update_default_wep_only(struct ieee80211_local *local)
-{
-       int i = 0;
-       struct ieee80211_sub_if_data *sdata;
-
-       read_lock(&local->sub_if_lock);
-       list_for_each_entry(sdata, &local->sub_if_list, list) {
-
-               if (sdata->dev == local->mdev)
-                       continue;
-
-               /* If there is an AP interface then depend on userspace to
-                  set default_wep_only correctly. */
-               if (sdata->type == IEEE80211_IF_TYPE_AP) {
-                       read_unlock(&local->sub_if_lock);
-                       return;
-               }
-
-               i++;
-       }
-
-       read_unlock(&local->sub_if_lock);
-
-       if (i <= 1)
-               ieee80211_ioctl_default_wep_only(local, 1);
-       else
-               ieee80211_ioctl_default_wep_only(local, 0);
-}
-
-
 static int ieee80211_ioctl_prism2_param(struct net_device *dev,
                                        struct iw_request_info *info,
                                        void *wrqu, char *extra)
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index 7e10c69..a1f766f 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -230,8 +230,7 @@ void sta_info_free(struct sta_info *sta)
                if (local->ops->set_key) {
                        local->ops->set_key(local_to_hw(local),
                                           DISABLE_KEY, sta->addr,
-                                          &sta->key->conf,
-                                          local->default_wep_only);
+                                          &sta->key->conf);
                }
        } else if (sta->key_idx_compression != HW_KEY_IDX_INVALID) {
                struct ieee80211_key_conf conf;
@@ -240,8 +239,7 @@ void sta_info_free(struct sta_info *sta)
                conf.alg = ALG_NONE;
                conf.flags |= IEEE80211_KEY_FORCE_SW_ENCRYPT;
                local->ops->set_key(local_to_hw(local), DISABLE_KEY,
-                                   sta->addr, &conf,
-                                   local->default_wep_only);
+                                   sta->addr, &conf);
                sta->key_idx_compression = HW_KEY_IDX_INVALID;
        }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to