]> err.no Git - linux-2.6/blobdiff - net/mac80211/key.c
Merge branch 'linus' into core/softlockup
[linux-2.6] / net / mac80211 / key.c
index b98711dcdc54ec5cef69036862902f9087a0ae1b..150d66dbda9d22de6ca0b94c48eab7e70c3f733f 100644 (file)
@@ -74,9 +74,12 @@ static void add_todo(struct ieee80211_key *key, u32 flag)
 
        spin_lock(&todo_lock);
        key->flags |= flag;
-       /* only add if not already added */
-       if (list_empty(&key->todo))
-               list_add(&key->todo, &todo_list);
+       /*
+        * Remove again if already on the list so that we move it to the end.
+        */
+       if (!list_empty(&key->todo))
+               list_del(&key->todo);
+       list_add_tail(&key->todo, &todo_list);
        schedule_work(&todo_work);
        spin_unlock(&todo_lock);
 }