]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.fixes/rt2x00-fix-race-conditions.patch
Revert "Move xen patchset to new version's subdir."
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / rt2x00-fix-race-conditions.patch
diff --git a/src/patches/suse-2.6.27.31/patches.fixes/rt2x00-fix-race-conditions.patch b/src/patches/suse-2.6.27.31/patches.fixes/rt2x00-fix-race-conditions.patch
deleted file mode 100644 (file)
index e50041f..0000000
+++ /dev/null
@@ -1,570 +0,0 @@
-From 0262ab0df64a67d4c0ed7577a29b7d866819cc68 Mon Sep 17 00:00:00 2001
-From: Ivo van Doorn <ivdoorn@gmail.com>
-Date: Fri, 29 Aug 2008 21:04:26 +0200
-Subject: [PATCH] rt2x00: Fix race conditions in flag handling
-Patch-mainline: 2.6.28-rc3
-References: bnc#462551
-
-Some of the flags should be accessed atomically to
-prevent race conditions. The flags that are most important
-are those that can change often and indicate the actual
-state of the device, queue or queue entry.
-
-The big flag rename was done to move all state flags to
-the same naming type as the other rt2x00dev flags and
-made sure all places where the flags were used were changed. ;)
-
-Thanks to Stephen for most of the queue flags updates,
-which fixes some of the most obvious consequences of the
-race conditions. Among those the notorious:
-
-rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 0.
-rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 0.
-rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 0.
-
-Signed-off-by: Stephen Blackheath <tramp.enshrine.stephen@blacksapphire.com>
-Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
-Signed-off-by: John W. Linville <linville@tuxdriver.com>
-Signed-off-by: Jiri Slaby <jslaby@suse.cz>
----
- drivers/net/wireless/rt2x00/rt2400pci.c    |    2 -
- drivers/net/wireless/rt2x00/rt2500pci.c    |    2 -
- drivers/net/wireless/rt2x00/rt2500usb.c    |    2 -
- drivers/net/wireless/rt2x00/rt2x00.h       |   16 ++++----
- drivers/net/wireless/rt2x00/rt2x00config.c |    4 +-
- drivers/net/wireless/rt2x00/rt2x00dev.c    |   58 +++++++++++++++--------------
- drivers/net/wireless/rt2x00/rt2x00mac.c    |   26 ++++++-------
- drivers/net/wireless/rt2x00/rt2x00queue.c  |    6 +--
- drivers/net/wireless/rt2x00/rt2x00rfkill.c |    6 +--
- drivers/net/wireless/rt2x00/rt2x00usb.c    |   10 ++---
- drivers/net/wireless/rt2x00/rt61pci.c      |    2 -
- 11 files changed, 68 insertions(+), 66 deletions(-)
-
---- a/drivers/net/wireless/rt2x00/rt2400pci.c
-+++ b/drivers/net/wireless/rt2x00/rt2400pci.c
-@@ -1241,7 +1241,7 @@ static irqreturn_t rt2400pci_interrupt(i
-       if (!reg)
-               return IRQ_NONE;
--      if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               return IRQ_HANDLED;
-       /*
---- a/drivers/net/wireless/rt2x00/rt2500pci.c
-+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
-@@ -1377,7 +1377,7 @@ static irqreturn_t rt2500pci_interrupt(i
-       if (!reg)
-               return IRQ_NONE;
--      if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               return IRQ_HANDLED;
-       /*
---- a/drivers/net/wireless/rt2x00/rt2500usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
-@@ -1297,7 +1297,7 @@ static void rt2500usb_beacondone(struct 
-       struct queue_entry *entry = (struct queue_entry *)urb->context;
-       struct queue_entry_priv_usb_bcn *bcn_priv = entry->priv_data;
--      if (!test_bit(DEVICE_ENABLED_RADIO, &entry->queue->rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &entry->queue->rt2x00dev->flags))
-               return;
-       /*
---- a/drivers/net/wireless/rt2x00/rt2x00.h
-+++ b/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -599,14 +599,14 @@ enum rt2x00_flags {
-       /*
-        * Device state flags
-        */
--      DEVICE_PRESENT,
--      DEVICE_REGISTERED_HW,
--      DEVICE_INITIALIZED,
--      DEVICE_STARTED,
--      DEVICE_STARTED_SUSPEND,
--      DEVICE_ENABLED_RADIO,
--      DEVICE_DISABLED_RADIO_HW,
--      DEVICE_DIRTY_CONFIG,
-+      DEVICE_STATE_PRESENT,
-+      DEVICE_STATE_REGISTERED_HW,
-+      DEVICE_STATE_INITIALIZED,
-+      DEVICE_STATE_STARTED,
-+      DEVICE_STATE_STARTED_SUSPEND,
-+      DEVICE_STATE_ENABLED_RADIO,
-+      DEVICE_STATE_DISABLED_RADIO_HW,
-+      DEVICE_STATE_DIRTY_CONFIG,
-       /*
-        * Driver features
---- a/drivers/net/wireless/rt2x00/rt2x00config.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00config.c
-@@ -121,7 +121,7 @@ void rt2x00lib_config_antenna(struct rt2
-        * Antenna setup changes require the RX to be disabled,
-        * else the changes will be ignored by the device.
-        */
--      if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF_LINK);
-       /*
-@@ -136,7 +136,7 @@ void rt2x00lib_config_antenna(struct rt2
-       rt2x00dev->link.ant.active.rx = libconf.ant.rx;
-       rt2x00dev->link.ant.active.tx = libconf.ant.tx;
--      if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON_LINK);
- }
---- a/drivers/net/wireless/rt2x00/rt2x00dev.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -34,7 +34,7 @@
-  */
- void rt2x00lib_reset_link_tuner(struct rt2x00_dev *rt2x00dev)
- {
--      if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               return;
-       /*
-@@ -94,8 +94,8 @@ int rt2x00lib_enable_radio(struct rt2x00
-        * Don't enable the radio twice.
-        * And check if the hardware button has been disabled.
-        */
--      if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags) ||
--          test_bit(DEVICE_DISABLED_RADIO_HW, &rt2x00dev->flags))
-+      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags) ||
-+          test_bit(DEVICE_STATE_DISABLED_RADIO_HW, &rt2x00dev->flags))
-               return 0;
-       /*
-@@ -117,7 +117,7 @@ int rt2x00lib_enable_radio(struct rt2x00
-       rt2x00leds_led_radio(rt2x00dev, true);
-       rt2x00led_led_activity(rt2x00dev, true);
--      __set_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags);
-+      set_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags);
-       /*
-        * Enable RX.
-@@ -134,7 +134,7 @@ int rt2x00lib_enable_radio(struct rt2x00
- void rt2x00lib_disable_radio(struct rt2x00_dev *rt2x00dev)
- {
--      if (!__test_and_clear_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (!test_and_clear_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               return;
-       /*
-@@ -354,7 +354,7 @@ static void rt2x00lib_link_tuner(struct 
-        * When the radio is shutting down we should
-        * immediately cease all link tuning.
-        */
--      if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               return;
-       /*
-@@ -431,7 +431,7 @@ static void rt2x00lib_intf_scheduled_ite
-        * note that in the spinlock protected area above the delayed_flags
-        * have been cleared correctly.
-        */
--      if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               return;
-       if (delayed_flags & DELAYED_UPDATE_BEACON)
-@@ -484,7 +484,7 @@ static void rt2x00lib_beacondone_iter(vo
- void rt2x00lib_beacondone(struct rt2x00_dev *rt2x00dev)
- {
--      if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               return;
-       ieee80211_iterate_active_interfaces_atomic(rt2x00dev->hw,
-@@ -563,7 +563,7 @@ void rt2x00lib_txdone(struct queue_entry
-       rt2x00dev->ops->lib->init_txentry(rt2x00dev, entry);
--      __clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
-+      clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
-       rt2x00queue_index_inc(entry->queue, Q_INDEX_DONE);
-       /*
-@@ -878,7 +878,7 @@ static int rt2x00lib_probe_hw_modes(stru
- static void rt2x00lib_remove_hw(struct rt2x00_dev *rt2x00dev)
- {
--      if (test_bit(DEVICE_REGISTERED_HW, &rt2x00dev->flags))
-+      if (test_bit(DEVICE_STATE_REGISTERED_HW, &rt2x00dev->flags))
-               ieee80211_unregister_hw(rt2x00dev->hw);
-       if (likely(rt2x00dev->hw->wiphy->bands[IEEE80211_BAND_2GHZ])) {
-@@ -894,6 +894,9 @@ static int rt2x00lib_probe_hw(struct rt2
-       struct hw_mode_spec *spec = &rt2x00dev->spec;
-       int status;
-+      if (test_bit(DEVICE_STATE_REGISTERED_HW, &rt2x00dev->flags))
-+              return 0;
-+
-       /*
-        * Initialize HW modes.
-        */
-@@ -915,7 +918,7 @@ static int rt2x00lib_probe_hw(struct rt2
-               return status;
-       }
--      __set_bit(DEVICE_REGISTERED_HW, &rt2x00dev->flags);
-+      set_bit(DEVICE_STATE_REGISTERED_HW, &rt2x00dev->flags);
-       return 0;
- }
-@@ -925,7 +928,7 @@ static int rt2x00lib_probe_hw(struct rt2
-  */
- static void rt2x00lib_uninitialize(struct rt2x00_dev *rt2x00dev)
- {
--      if (!__test_and_clear_bit(DEVICE_INITIALIZED, &rt2x00dev->flags))
-+      if (!test_and_clear_bit(DEVICE_STATE_INITIALIZED, &rt2x00dev->flags))
-               return;
-       /*
-@@ -948,7 +951,7 @@ static int rt2x00lib_initialize(struct r
- {
-       int status;
--      if (test_bit(DEVICE_INITIALIZED, &rt2x00dev->flags))
-+      if (test_bit(DEVICE_STATE_INITIALIZED, &rt2x00dev->flags))
-               return 0;
-       /*
-@@ -967,7 +970,7 @@ static int rt2x00lib_initialize(struct r
-               return status;
-       }
--      __set_bit(DEVICE_INITIALIZED, &rt2x00dev->flags);
-+      set_bit(DEVICE_STATE_INITIALIZED, &rt2x00dev->flags);
-       /*
-        * Register the extra components.
-@@ -981,7 +984,7 @@ int rt2x00lib_start(struct rt2x00_dev *r
- {
-       int retval;
--      if (test_bit(DEVICE_STARTED, &rt2x00dev->flags))
-+      if (test_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags))
-               return 0;
-       /*
-@@ -1012,15 +1015,15 @@ int rt2x00lib_start(struct rt2x00_dev *r
-       rt2x00dev->intf_sta_count = 0;
-       rt2x00dev->intf_associated = 0;
--      __set_bit(DEVICE_STARTED, &rt2x00dev->flags);
--      __set_bit(DEVICE_DIRTY_CONFIG, &rt2x00dev->flags);
-+      set_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags);
-+      set_bit(DEVICE_STATE_DIRTY_CONFIG, &rt2x00dev->flags);
-       return 0;
- }
- void rt2x00lib_stop(struct rt2x00_dev *rt2x00dev)
- {
--      if (!test_bit(DEVICE_STARTED, &rt2x00dev->flags))
-+      if (!test_and_clear_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags))
-               return;
-       /*
-@@ -1032,8 +1035,6 @@ void rt2x00lib_stop(struct rt2x00_dev *r
-       rt2x00dev->intf_ap_count = 0;
-       rt2x00dev->intf_sta_count = 0;
-       rt2x00dev->intf_associated = 0;
--
--      __clear_bit(DEVICE_STARTED, &rt2x00dev->flags);
- }
- /*
-@@ -1088,7 +1089,7 @@ int rt2x00lib_probe_dev(struct rt2x00_de
-       rt2x00rfkill_allocate(rt2x00dev);
-       rt2x00debug_register(rt2x00dev);
--      __set_bit(DEVICE_PRESENT, &rt2x00dev->flags);
-+      set_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
-       return 0;
-@@ -1101,7 +1102,7 @@ EXPORT_SYMBOL_GPL(rt2x00lib_probe_dev);
- void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev)
- {
--      __clear_bit(DEVICE_PRESENT, &rt2x00dev->flags);
-+      clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
-       /*
-        * Disable radio.
-@@ -1146,14 +1147,15 @@ int rt2x00lib_suspend(struct rt2x00_dev 
-       int retval;
-       NOTICE(rt2x00dev, "Going to sleep.\n");
--      __clear_bit(DEVICE_PRESENT, &rt2x00dev->flags);
-       /*
-        * Only continue if mac80211 has open interfaces.
-        */
--      if (!test_bit(DEVICE_STARTED, &rt2x00dev->flags))
-+      if (!test_and_clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) ||
-+          !test_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags))
-               goto exit;
--      __set_bit(DEVICE_STARTED_SUSPEND, &rt2x00dev->flags);
-+
-+      set_bit(DEVICE_STATE_STARTED_SUSPEND, &rt2x00dev->flags);
-       /*
-        * Disable radio.
-@@ -1225,7 +1227,7 @@ int rt2x00lib_resume(struct rt2x00_dev *
-       /*
-        * Only continue if mac80211 had open interfaces.
-        */
--      if (!__test_and_clear_bit(DEVICE_STARTED_SUSPEND, &rt2x00dev->flags))
-+      if (!test_and_clear_bit(DEVICE_STATE_STARTED_SUSPEND, &rt2x00dev->flags))
-               return 0;
-       /*
-@@ -1252,7 +1254,7 @@ int rt2x00lib_resume(struct rt2x00_dev *
-       /*
-        * We are ready again to receive requests from mac80211.
-        */
--      __set_bit(DEVICE_PRESENT, &rt2x00dev->flags);
-+      set_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
-       /*
-        * It is possible that during that mac80211 has attempted
-@@ -1272,7 +1274,7 @@ int rt2x00lib_resume(struct rt2x00_dev *
-       return 0;
- exit:
--      rt2x00lib_disable_radio(rt2x00dev);
-+      rt2x00lib_stop(rt2x00dev);
-       rt2x00lib_uninitialize(rt2x00dev);
-       rt2x00debug_deregister(rt2x00dev);
---- a/drivers/net/wireless/rt2x00/rt2x00mac.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
-@@ -106,7 +106,7 @@ int rt2x00mac_tx(struct ieee80211_hw *hw
-        * Note that we can only stop the TX queues inside the TX path
-        * due to possible race conditions in mac80211.
-        */
--      if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags)) {
-+      if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) {
-               ieee80211_stop_queues(hw);
-               dev_kfree_skb_any(skb);
-               return NETDEV_TX_OK;
-@@ -168,7 +168,7 @@ int rt2x00mac_start(struct ieee80211_hw 
- {
-       struct rt2x00_dev *rt2x00dev = hw->priv;
--      if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
-               return 0;
-       return rt2x00lib_start(rt2x00dev);
-@@ -179,7 +179,7 @@ void rt2x00mac_stop(struct ieee80211_hw 
- {
-       struct rt2x00_dev *rt2x00dev = hw->priv;
--      if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
-               return;
-       rt2x00lib_stop(rt2x00dev);
-@@ -199,8 +199,8 @@ int rt2x00mac_add_interface(struct ieee8
-        * Don't allow interfaces to be added
-        * the device has disappeared.
-        */
--      if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags) ||
--          !test_bit(DEVICE_STARTED, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) ||
-+          !test_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags))
-               return -ENODEV;
-       switch (conf->type) {
-@@ -249,7 +249,7 @@ int rt2x00mac_add_interface(struct ieee8
-        */
-       for (i = 0; i < queue->limit; i++) {
-               entry = &queue->entries[i];
--              if (!__test_and_set_bit(ENTRY_BCN_ASSIGNED, &entry->flags))
-+              if (!test_and_set_bit(ENTRY_BCN_ASSIGNED, &entry->flags))
-                       break;
-       }
-@@ -303,7 +303,7 @@ void rt2x00mac_remove_interface(struct i
-        * either the device has disappeared or when
-        * no interface is present.
-        */
--      if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags) ||
-+      if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) ||
-           (conf->type == IEEE80211_IF_TYPE_AP && !rt2x00dev->intf_ap_count) ||
-           (conf->type != IEEE80211_IF_TYPE_AP && !rt2x00dev->intf_sta_count))
-               return;
-@@ -317,7 +317,7 @@ void rt2x00mac_remove_interface(struct i
-        * Release beacon entry so it is available for
-        * new interfaces again.
-        */
--      __clear_bit(ENTRY_BCN_ASSIGNED, &intf->beacon->flags);
-+      clear_bit(ENTRY_BCN_ASSIGNED, &intf->beacon->flags);
-       /*
-        * Make sure the bssid and mac address registers
-@@ -337,14 +337,14 @@ int rt2x00mac_config(struct ieee80211_hw
-        * Mac80211 might be calling this function while we are trying
-        * to remove the device or perhaps suspending it.
-        */
--      if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
-               return 0;
-       /*
-        * Check if we need to disable the radio,
-        * if this is not the case, at least the RX must be disabled.
-        */
--      if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags)) {
-+      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) {
-               if (!conf->radio_enabled)
-                       rt2x00lib_disable_radio(rt2x00dev);
-               else
-@@ -359,14 +359,14 @@ int rt2x00mac_config(struct ieee80211_hw
-        * initialized.
-        */
-       force_reconfig =
--          __test_and_clear_bit(DEVICE_DIRTY_CONFIG, &rt2x00dev->flags);
-+          test_and_clear_bit(DEVICE_STATE_DIRTY_CONFIG, &rt2x00dev->flags);
-       rt2x00lib_config(rt2x00dev, conf, force_reconfig);
-       /*
-        * Reenable RX only if the radio should be on.
-        */
--      if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
-       else if (conf->radio_enabled)
-               return rt2x00lib_enable_radio(rt2x00dev);
-@@ -388,7 +388,7 @@ int rt2x00mac_config_interface(struct ie
-        * Mac80211 might be calling this function while we are trying
-        * to remove the device or perhaps suspending it.
-        */
--      if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
-               return 0;
-       spin_lock(&intf->lock);
---- a/drivers/net/wireless/rt2x00/rt2x00queue.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
-@@ -309,7 +309,7 @@ int rt2x00queue_write_tx_frame(struct da
-       if (unlikely(rt2x00queue_full(queue)))
-               return -EINVAL;
--      if (__test_and_set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags)) {
-+      if (test_and_set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags)) {
-               ERROR(queue->rt2x00dev,
-                     "Arrived at non-free entry in the non-full queue %d.\n"
-                     "Please file bug report to %s.\n",
-@@ -333,14 +333,14 @@ int rt2x00queue_write_tx_frame(struct da
-       skbdesc->entry = entry;
-       if (unlikely(queue->rt2x00dev->ops->lib->write_tx_data(entry))) {
--              __clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
-+              clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
-               return -EIO;
-       }
-       if (test_bit(DRIVER_REQUIRE_DMA, &queue->rt2x00dev->flags))
-               rt2x00queue_map_txskb(queue->rt2x00dev, skb);
--      __set_bit(ENTRY_DATA_PENDING, &entry->flags);
-+      set_bit(ENTRY_DATA_PENDING, &entry->flags);
-       rt2x00queue_index_inc(queue, Q_INDEX);
-       rt2x00queue_write_tx_descriptor(entry, &txdesc);
---- a/drivers/net/wireless/rt2x00/rt2x00rfkill.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00rfkill.c
-@@ -41,16 +41,16 @@ static int rt2x00rfkill_toggle_radio(voi
-       /*
-        * Only continue if there are enabled interfaces.
-        */
--      if (!test_bit(DEVICE_STARTED, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags))
-               return 0;
-       if (state == RFKILL_STATE_UNBLOCKED) {
-               INFO(rt2x00dev, "Hardware button pressed, enabling radio.\n");
--              __clear_bit(DEVICE_DISABLED_RADIO_HW, &rt2x00dev->flags);
-+              clear_bit(DEVICE_STATE_DISABLED_RADIO_HW, &rt2x00dev->flags);
-               retval = rt2x00lib_enable_radio(rt2x00dev);
-       } else if (state == RFKILL_STATE_SOFT_BLOCKED) {
-               INFO(rt2x00dev, "Hardware button pressed, disabling radio.\n");
--              __set_bit(DEVICE_DISABLED_RADIO_HW, &rt2x00dev->flags);
-+              set_bit(DEVICE_STATE_DISABLED_RADIO_HW, &rt2x00dev->flags);
-               rt2x00lib_disable_radio(rt2x00dev);
-       } else {
-               WARNING(rt2x00dev, "Received unexpected rfkill state %d.\n",
---- a/drivers/net/wireless/rt2x00/rt2x00usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00usb.c
-@@ -163,7 +163,7 @@ static void rt2x00usb_interrupt_txdone(s
-       struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
-       struct txdone_entry_desc txdesc;
--      if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags) ||
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags) ||
-           !test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags))
-               return;
-@@ -232,7 +232,7 @@ static inline void rt2x00usb_kick_tx_ent
- {
-       struct queue_entry_priv_usb *entry_priv = entry->priv_data;
--      if (__test_and_clear_bit(ENTRY_DATA_PENDING, &entry->flags))
-+      if (test_and_clear_bit(ENTRY_DATA_PENDING, &entry->flags))
-               usb_submit_urb(entry_priv->urb, GFP_ATOMIC);
- }
-@@ -283,7 +283,7 @@ static void rt2x00usb_interrupt_rxdone(s
-       struct skb_frame_desc *skbdesc = get_skb_frame_desc(entry->skb);
-       u8 rxd[32];
--      if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags) ||
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags) ||
-           !test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags))
-               return;
-@@ -293,7 +293,7 @@ static void rt2x00usb_interrupt_rxdone(s
-        * a problem.
-        */
-       if (urb->actual_length < entry->queue->desc_size || urb->status) {
--              __set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
-+              set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
-               usb_submit_urb(urb, GFP_ATOMIC);
-               return;
-       }
-@@ -361,7 +361,7 @@ void rt2x00usb_init_rxentry(struct rt2x0
-                         entry->skb->data, entry->skb->len,
-                         rt2x00usb_interrupt_rxdone, entry);
--      __set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
-+      set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
-       usb_submit_urb(entry_priv->urb, GFP_ATOMIC);
- }
- EXPORT_SYMBOL_GPL(rt2x00usb_init_rxentry);
---- a/drivers/net/wireless/rt2x00/rt61pci.c
-+++ b/drivers/net/wireless/rt2x00/rt61pci.c
-@@ -1860,7 +1860,7 @@ static irqreturn_t rt61pci_interrupt(int
-       if (!reg && !reg_mcu)
-               return IRQ_NONE;
--      if (!test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
-+      if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
-               return IRQ_HANDLED;
-       /*