aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800pci.c1
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00.h1
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c9
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 /*