Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=999acd9c339a761a18d625b13001612ac396ee00
Commit:     999acd9c339a761a18d625b13001612ac396ee00
Parent:     2bf236d55e5ea2b92ed5235af09997c2995b316b
Author:     Johannes Berg <[EMAIL PROTECTED]>
AuthorDate: Sun Oct 28 14:49:33 2007 +0100
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sat Nov 10 21:59:43 2007 -0800

    mac80211: don't allow registering the same rate control twice
    
    Previously, mac80211 would allow registering the same rate control
    algorithm twice. This is a programming error in the registration
    and should not happen; additionally the second version could never
    be selected. Disallow this and warn about it.
    
    Signed-off-by: Johannes Berg <[EMAIL PROTECTED]>
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 net/mac80211/ieee80211_rate.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/net/mac80211/ieee80211_rate.c b/net/mac80211/ieee80211_rate.c
index e4bd848..7254bd6 100644
--- a/net/mac80211/ieee80211_rate.c
+++ b/net/mac80211/ieee80211_rate.c
@@ -28,13 +28,22 @@ int ieee80211_rate_control_register(struct rate_control_ops 
*ops)
        if (!ops->name)
                return -EINVAL;
 
+       mutex_lock(&rate_ctrl_mutex);
+       list_for_each_entry(alg, &rate_ctrl_algs, list) {
+               if (!strcmp(alg->ops->name, ops->name)) {
+                       /* don't register an algorithm twice */
+                       WARN_ON(1);
+                       return -EALREADY;
+               }
+       }
+
        alg = kzalloc(sizeof(*alg), GFP_KERNEL);
        if (alg == NULL) {
+               mutex_unlock(&rate_ctrl_mutex);
                return -ENOMEM;
        }
        alg->ops = ops;
 
-       mutex_lock(&rate_ctrl_mutex);
        list_add_tail(&alg->list, &rate_ctrl_algs);
        mutex_unlock(&rate_ctrl_mutex);
 
-
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