diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2008-07-10 23:53:34 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-07-14 14:52:58 -0400 |
commit | 1ff50bda6eef4466366e197541508fc69af0f0c0 (patch) | |
tree | 79499aa72caab98d52cb95602eb64d08b24c4ed4 /drivers/net/wireless/iwlwifi/iwl-dev.h | |
parent | 6c5379077f47f6eff9c23caf8513751d2f582e72 (diff) |
iwlwifi: make iwl4965_mac_conf_tx in atomic context
This patch fixes iwl4965_mac_conf_tx. A mutex was taken in atomic context
leading to Oops. This patch removes the mutex and extends the hold
priv->lock. None of the field of QOS is accessed without priv->lock held.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 81a57cb2266b..92a37664d453 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -290,7 +290,7 @@ struct iwl_cmd { | |||
290 | struct iwl4965_bt_cmd bt; | 290 | struct iwl4965_bt_cmd bt; |
291 | struct iwl4965_rxon_time_cmd rxon_time; | 291 | struct iwl4965_rxon_time_cmd rxon_time; |
292 | struct iwl4965_powertable_cmd powertable; | 292 | struct iwl4965_powertable_cmd powertable; |
293 | struct iwl4965_qosparam_cmd qosparam; | 293 | struct iwl_qosparam_cmd qosparam; |
294 | struct iwl_tx_cmd tx; | 294 | struct iwl_tx_cmd tx; |
295 | struct iwl4965_tx_beacon_cmd tx_beacon; | 295 | struct iwl4965_tx_beacon_cmd tx_beacon; |
296 | struct iwl4965_rxon_assoc_cmd rxon_assoc; | 296 | struct iwl4965_rxon_assoc_cmd rxon_assoc; |
@@ -435,7 +435,7 @@ struct iwl_ht_info { | |||
435 | u8 non_GF_STA_present; | 435 | u8 non_GF_STA_present; |
436 | }; | 436 | }; |
437 | 437 | ||
438 | union iwl4965_qos_capabity { | 438 | union iwl_qos_capabity { |
439 | struct { | 439 | struct { |
440 | u8 edca_count:4; /* bit 0-3 */ | 440 | u8 edca_count:4; /* bit 0-3 */ |
441 | u8 q_ack:1; /* bit 4 */ | 441 | u8 q_ack:1; /* bit 4 */ |
@@ -456,11 +456,11 @@ union iwl4965_qos_capabity { | |||
456 | }; | 456 | }; |
457 | 457 | ||
458 | /* QoS structures */ | 458 | /* QoS structures */ |
459 | struct iwl4965_qos_info { | 459 | struct iwl_qos_info { |
460 | int qos_enable; | 460 | int qos_enable; |
461 | int qos_active; | 461 | int qos_active; |
462 | union iwl4965_qos_capabity qos_cap; | 462 | union iwl_qos_capabity qos_cap; |
463 | struct iwl4965_qosparam_cmd def_qos_parm; | 463 | struct iwl_qosparam_cmd def_qos_parm; |
464 | }; | 464 | }; |
465 | 465 | ||
466 | #define STA_PS_STATUS_WAKE 0 | 466 | #define STA_PS_STATUS_WAKE 0 |
@@ -1042,7 +1042,7 @@ struct iwl_priv { | |||
1042 | u16 assoc_capability; | 1042 | u16 assoc_capability; |
1043 | u8 ps_mode; | 1043 | u8 ps_mode; |
1044 | 1044 | ||
1045 | struct iwl4965_qos_info qos_data; | 1045 | struct iwl_qos_info qos_data; |
1046 | 1046 | ||
1047 | struct workqueue_struct *workqueue; | 1047 | struct workqueue_struct *workqueue; |
1048 | 1048 | ||