diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-04-30 14:30:43 -0400 |
---|---|---|
committer | Reinette Chatre <reinette.chatre@intel.com> | 2010-05-10 18:09:04 -0400 |
commit | fd1af15d0a82ae681ecf34192150e27455c9c494 (patch) | |
tree | 828b4532c5aa2df1859f461e828fd8b4606ec43c /drivers/net/wireless/iwlwifi/iwl-dev.h | |
parent | 4ff739747de20506e478269221f22f3d8d24c706 (diff) |
iwlwifi: track station IDs
mac80211 allows us to store private data per
station, so put the station ID there. This
allows us to avoid the station ID lookup when
removing regular stations. To also be able to
avoid the lookup to remove the special IBSS
BSSID station, track its ID in the per-vif
private data.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 46571f7f7abf..f3f3473c5c7e 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -497,20 +497,38 @@ struct iwl_station_entry { | |||
497 | struct iwl_link_quality_cmd *lq; | 497 | struct iwl_link_quality_cmd *lq; |
498 | }; | 498 | }; |
499 | 499 | ||
500 | struct iwl_station_priv_common { | ||
501 | u8 sta_id; | ||
502 | }; | ||
503 | |||
500 | /* | 504 | /* |
501 | * iwl_station_priv: Driver's private station information | 505 | * iwl_station_priv: Driver's private station information |
502 | * | 506 | * |
503 | * When mac80211 creates a station it reserves some space (hw->sta_data_size) | 507 | * When mac80211 creates a station it reserves some space (hw->sta_data_size) |
504 | * in the structure for use by driver. This structure is places in that | 508 | * in the structure for use by driver. This structure is places in that |
505 | * space. | 509 | * space. |
510 | * | ||
511 | * The common struct MUST be first because it is shared between | ||
512 | * 3945 and agn! | ||
506 | */ | 513 | */ |
507 | struct iwl_station_priv { | 514 | struct iwl_station_priv { |
515 | struct iwl_station_priv_common common; | ||
508 | struct iwl_lq_sta lq_sta; | 516 | struct iwl_lq_sta lq_sta; |
509 | atomic_t pending_frames; | 517 | atomic_t pending_frames; |
510 | bool client; | 518 | bool client; |
511 | bool asleep; | 519 | bool asleep; |
512 | }; | 520 | }; |
513 | 521 | ||
522 | /** | ||
523 | * struct iwl_vif_priv - driver's private per-interface information | ||
524 | * | ||
525 | * When mac80211 allocates a virtual interface, it can allocate | ||
526 | * space for us to put data into. | ||
527 | */ | ||
528 | struct iwl_vif_priv { | ||
529 | u8 ibss_bssid_sta_id; | ||
530 | }; | ||
531 | |||
514 | /* one for each uCode image (inst/data, boot/init/runtime) */ | 532 | /* one for each uCode image (inst/data, boot/init/runtime) */ |
515 | struct fw_desc { | 533 | struct fw_desc { |
516 | void *v_addr; /* access by driver */ | 534 | void *v_addr; /* access by driver */ |