diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c index 81a3b0e3a8e0..59509d80f73f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c | |||
@@ -341,13 +341,10 @@ int iwlagn_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) | |||
341 | if (info->flags & IEEE80211_TX_CTL_AMPDU) | 341 | if (info->flags & IEEE80211_TX_CTL_AMPDU) |
342 | is_agg = true; | 342 | is_agg = true; |
343 | 343 | ||
344 | /* irqs already disabled/saved above when locking priv->shrd->lock */ | ||
345 | spin_lock(&priv->shrd->sta_lock); | ||
346 | |||
347 | dev_cmd = kmem_cache_alloc(priv->tx_cmd_pool, GFP_ATOMIC); | 344 | dev_cmd = kmem_cache_alloc(priv->tx_cmd_pool, GFP_ATOMIC); |
348 | 345 | ||
349 | if (unlikely(!dev_cmd)) | 346 | if (unlikely(!dev_cmd)) |
350 | goto drop_unlock_sta; | 347 | goto drop_unlock_priv; |
351 | 348 | ||
352 | memset(dev_cmd, 0, sizeof(*dev_cmd)); | 349 | memset(dev_cmd, 0, sizeof(*dev_cmd)); |
353 | tx_cmd = (struct iwl_tx_cmd *) dev_cmd->payload; | 350 | tx_cmd = (struct iwl_tx_cmd *) dev_cmd->payload; |
@@ -372,6 +369,9 @@ int iwlagn_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) | |||
372 | info->driver_data[0] = ctx; | 369 | info->driver_data[0] = ctx; |
373 | info->driver_data[1] = dev_cmd; | 370 | info->driver_data[1] = dev_cmd; |
374 | 371 | ||
372 | /* irqs already disabled/saved above when locking priv->shrd->lock */ | ||
373 | spin_lock(&priv->shrd->sta_lock); | ||
374 | |||
375 | if (ieee80211_is_data_qos(fc) && !ieee80211_is_qos_nullfunc(fc)) { | 375 | if (ieee80211_is_data_qos(fc) && !ieee80211_is_qos_nullfunc(fc)) { |
376 | u8 *qc = NULL; | 376 | u8 *qc = NULL; |
377 | struct iwl_tid_data *tid_data; | 377 | struct iwl_tid_data *tid_data; |