diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800pci.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00dev.c | 9 |
3 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c index 433c7f3ef837..b989b0d3ed49 100644 --- a/drivers/net/wireless/rt2x00/rt2800pci.c +++ b/drivers/net/wireless/rt2x00/rt2800pci.c | |||
@@ -911,6 +911,7 @@ static int rt2800pci_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
911 | __set_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags); | 911 | __set_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags); |
912 | __set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags); | 912 | __set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags); |
913 | __set_bit(DRIVER_REQUIRE_TXSTATUS_FIFO, &rt2x00dev->flags); | 913 | __set_bit(DRIVER_REQUIRE_TXSTATUS_FIFO, &rt2x00dev->flags); |
914 | __set_bit(DRIVER_REQUIRE_TASKLET_CONTEXT, &rt2x00dev->flags); | ||
914 | if (!modparam_nohwcrypt) | 915 | if (!modparam_nohwcrypt) |
915 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); | 916 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); |
916 | __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags); | 917 | __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags); |
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 0a55eeff871e..e72117f3fdf5 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h | |||
@@ -664,6 +664,7 @@ enum rt2x00_flags { | |||
664 | DRIVER_REQUIRE_COPY_IV, | 664 | DRIVER_REQUIRE_COPY_IV, |
665 | DRIVER_REQUIRE_L2PAD, | 665 | DRIVER_REQUIRE_L2PAD, |
666 | DRIVER_REQUIRE_TXSTATUS_FIFO, | 666 | DRIVER_REQUIRE_TXSTATUS_FIFO, |
667 | DRIVER_REQUIRE_TASKLET_CONTEXT, | ||
667 | 668 | ||
668 | /* | 669 | /* |
669 | * Driver features | 670 | * Driver features |
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index c879f9a7037c..bd3afc92f434 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -379,9 +379,12 @@ void rt2x00lib_txdone(struct queue_entry *entry, | |||
379 | * through a mac80211 library call (RTS/CTS) then we should not | 379 | * through a mac80211 library call (RTS/CTS) then we should not |
380 | * send the status report back. | 380 | * send the status report back. |
381 | */ | 381 | */ |
382 | if (!(skbdesc_flags & SKBDESC_NOT_MAC80211)) | 382 | if (!(skbdesc_flags & SKBDESC_NOT_MAC80211)) { |
383 | ieee80211_tx_status(rt2x00dev->hw, entry->skb); | 383 | if (test_bit(DRIVER_REQUIRE_TASKLET_CONTEXT, &rt2x00dev->flags)) |
384 | else | 384 | ieee80211_tx_status(rt2x00dev->hw, entry->skb); |
385 | else | ||
386 | ieee80211_tx_status_ni(rt2x00dev->hw, entry->skb); | ||
387 | } else | ||
385 | dev_kfree_skb_any(entry->skb); | 388 | dev_kfree_skb_any(entry->skb); |
386 | 389 | ||
387 | /* | 390 | /* |