mac80211: add stations in order to the station list
authorArik Nemtsov <arik@wizery.com>
Wed, 22 Oct 2014 09:32:16 +0000 (12:32 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 23 Oct 2014 18:40:02 +0000 (20:40 +0200)
During reconfig the station list is traversed in order and station are
added back to the driver. Make sure the stations are added to the driver
in the same order they were added to mac80211.

This has a real side effect - some drivers (iwlwifi) require TDLS
stations to be added only after the AP station for the same network.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/sta_info.c

index de494df..2cd48ce 100644 (file)
@@ -501,7 +501,7 @@ static int sta_info_insert_finish(struct sta_info *sta) __acquires(RCU)
        /* make the station visible */
        sta_info_hash_add(local, sta);
 
-       list_add_rcu(&sta->list, &local->sta_list);
+       list_add_tail_rcu(&sta->list, &local->sta_list);
 
        /* notify driver */
        err = sta_info_insert_drv_state(local, sdata, sta);