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 de494df3bab82ce56efabde30790d8a660f6a983..2cd48cefcbdcd1bd688b5af57dfdb8d7889db6a4 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);