diff options
author | David S. Miller <davem@davemloft.net> | 2012-06-29 19:28:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-06-29 19:28:28 -0400 |
commit | dd7f36ba3ce17d4fe85987d83efd5901b0935816 (patch) | |
tree | bad385290c22f6e10c2f587af4b9df0dfeb99e8b /drivers/net/wireless/rtlwifi/pci.c | |
parent | ae0eef66088777cf252c6b91d3eb5ef2f30a67c5 (diff) | |
parent | 8732baafc3f19e69df683c3f0f36c13cec746fb9 (diff) |
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
John Linville says:
====================
Here is another batch of updates intended for 3.6. This includes a
number of pulls, including ones from the mac80211, iwlwifi, ath6kl, and
wl12xx trees. I also pulled from the wireless tree to avoid potential
build conflicts. There are a number of other patches applied directly,
including a number for the Broadcom drivers and the mwifiex driver.
The updates cover the usual variety of new hardware support and feature
enhancements. It's all good work, but there aren't any big headliners.
This does resolve a net-next/wireless-next merge conflict reported
by Stephen.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/rtlwifi/pci.c')
-rw-r--r-- | drivers/net/wireless/rtlwifi/pci.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c index 82d3afcfecd1..31138fdad1f7 100644 --- a/drivers/net/wireless/rtlwifi/pci.c +++ b/drivers/net/wireless/rtlwifi/pci.c | |||
@@ -1273,17 +1273,18 @@ int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw) | |||
1273 | *after reset, release previous pending packet, | 1273 | *after reset, release previous pending packet, |
1274 | *and force the tx idx to the first one | 1274 | *and force the tx idx to the first one |
1275 | */ | 1275 | */ |
1276 | spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags); | ||
1277 | for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++) { | 1276 | for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++) { |
1278 | if (rtlpci->tx_ring[i].desc) { | 1277 | if (rtlpci->tx_ring[i].desc) { |
1279 | struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[i]; | 1278 | struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[i]; |
1280 | 1279 | ||
1281 | while (skb_queue_len(&ring->queue)) { | 1280 | while (skb_queue_len(&ring->queue)) { |
1282 | struct rtl_tx_desc *entry = | 1281 | struct rtl_tx_desc *entry; |
1283 | &ring->desc[ring->idx]; | 1282 | struct sk_buff *skb; |
1284 | struct sk_buff *skb = | ||
1285 | __skb_dequeue(&ring->queue); | ||
1286 | 1283 | ||
1284 | spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, | ||
1285 | flags); | ||
1286 | entry = &ring->desc[ring->idx]; | ||
1287 | skb = __skb_dequeue(&ring->queue); | ||
1287 | pci_unmap_single(rtlpci->pdev, | 1288 | pci_unmap_single(rtlpci->pdev, |
1288 | rtlpriv->cfg->ops-> | 1289 | rtlpriv->cfg->ops-> |
1289 | get_desc((u8 *) | 1290 | get_desc((u8 *) |
@@ -1291,15 +1292,15 @@ int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw) | |||
1291 | true, | 1292 | true, |
1292 | HW_DESC_TXBUFF_ADDR), | 1293 | HW_DESC_TXBUFF_ADDR), |
1293 | skb->len, PCI_DMA_TODEVICE); | 1294 | skb->len, PCI_DMA_TODEVICE); |
1294 | kfree_skb(skb); | ||
1295 | ring->idx = (ring->idx + 1) % ring->entries; | 1295 | ring->idx = (ring->idx + 1) % ring->entries; |
1296 | spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, | ||
1297 | flags); | ||
1298 | kfree_skb(skb); | ||
1296 | } | 1299 | } |
1297 | ring->idx = 0; | 1300 | ring->idx = 0; |
1298 | } | 1301 | } |
1299 | } | 1302 | } |
1300 | 1303 | ||
1301 | spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags); | ||
1302 | |||
1303 | return 0; | 1304 | return 0; |
1304 | } | 1305 | } |
1305 | 1306 | ||