aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl4965-base.c
diff options
context:
space:
mode:
authorGregory Greenman <gregory.greenman@intel.com>2008-01-23 13:15:21 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-31 22:26:44 -0500
commit76f3915b4cbadf5f7dc80d3df6d3a7492914675a (patch)
treeee2d85eb6ef92543cc18e518f04311daf1a8f883 /drivers/net/wireless/iwlwifi/iwl4965-base.c
parent25c03d8e8c13c5468155c58013b03841161b4559 (diff)
iwlwifi: Fix uCode error on association
The problem is that priv->assoc_id is set when assoc. resp frame is received. But, when it is set, LQ cmd is still not sent to the uCode, it is done from bg_post_assoc, which is called through a workqueue. On the other hand, when a tx arrives at the moment when this flag is set, but LQ is still not sent, the if condition in tx_skb will not hold and the frame will not be dropped. Thus, it will be sent through which is still not in the sta table in the uCoded. Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl4965-base.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index 131cf5adbd79..abdce17f60e6 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -2933,8 +2933,10 @@ static int iwl4965_tx_skb(struct iwl4965_priv *priv,
2933#endif 2933#endif
2934 2934
2935 /* drop all data frame if we are not associated */ 2935 /* drop all data frame if we are not associated */
2936 if (!iwl4965_is_associated(priv) && !priv->assoc_id && 2936 if (((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA) &&
2937 ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA)) { 2937 (!iwl4965_is_associated(priv) ||
2938 !priv->assoc_id ||
2939 !priv->assoc_station_added)) {
2938 IWL_DEBUG_DROP("Dropping - !iwl4965_is_associated\n"); 2940 IWL_DEBUG_DROP("Dropping - !iwl4965_is_associated\n");
2939 goto drop_unlock; 2941 goto drop_unlock;
2940 } 2942 }