diff options
author | Reinette Chatre <reinette.chatre@intel.com> | 2010-05-05 05:26:06 -0400 |
---|---|---|
committer | Reinette Chatre <reinette.chatre@intel.com> | 2010-05-13 13:44:16 -0400 |
commit | 9c5ac091b269912cd30fade987f4bc615ef3be90 (patch) | |
tree | 698fe77ad1f144ca1c2e3ba9738946a22253399f /drivers/net/wireless/iwlwifi/iwl-dev.h | |
parent | 94adfaa406420ae035b1b760e3d5015775fe7b7c (diff) |
iwlwifi: fix and add missing sta_lock usage
There are a few places where sta_lock is used, but the
station information protected by it is accessed outside
of the lock. Address this in two ways, if the access
won't sleep then just move the access into the lock, if
the access can sleep then copy the needed station
information to the stack to be accessed without risk of
it changing while access in progress.
Additionally, a number of other places access station
station information without holding the sta_lock, fix
those as well.
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 8538af788a73..5ac03f5a4713 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -1224,7 +1224,9 @@ struct iwl_priv { | |||
1224 | u8 bssid[ETH_ALEN]; /* used only on 3945 but filled by core */ | 1224 | u8 bssid[ETH_ALEN]; /* used only on 3945 but filled by core */ |
1225 | u8 mac_addr[ETH_ALEN]; | 1225 | u8 mac_addr[ETH_ALEN]; |
1226 | 1226 | ||
1227 | /*station table variables */ | 1227 | /* station table variables */ |
1228 | |||
1229 | /* Note: if lock and sta_lock are needed, lock must be acquired first */ | ||
1228 | spinlock_t sta_lock; | 1230 | spinlock_t sta_lock; |
1229 | int num_stations; | 1231 | int num_stations; |
1230 | struct iwl_station_entry stations[IWL_STATION_COUNT]; | 1232 | struct iwl_station_entry stations[IWL_STATION_COUNT]; |