iwlwifi: correct atomic bitops usage
authorJohannes Berg <johannes.berg@intel.com>
Tue, 6 Apr 2010 11:12:38 +0000 (04:12 -0700)
committerReinette Chatre <reinette.chatre@intel.com>
Fri, 16 Apr 2010 20:46:50 +0000 (13:46 -0700)
With atomic bitops, test_and_{set,clear}_bit
should be used instead of separate test_bit
and set_bit/clear_bit.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
drivers/net/wireless/iwlwifi/iwl-scan.c

index 3904bb45ca61a8d8feaf0d95e4db9cc5d81fcbad..7982b19307637236fcb214a5afdbfeb399d576b2 100644 (file)
@@ -68,9 +68,8 @@ int iwl_scan_cancel(struct iwl_priv *priv)
        }
 
        if (test_bit(STATUS_SCANNING, &priv->status)) {
-               if (!test_bit(STATUS_SCAN_ABORTING, &priv->status)) {
+               if (!test_and_set_bit(STATUS_SCAN_ABORTING, &priv->status)) {
                        IWL_DEBUG_SCAN(priv, "Queuing scan abort.\n");
-                       set_bit(STATUS_SCAN_ABORTING, &priv->status);
                        queue_work(priv->workqueue, &priv->abort_scan);
 
                } else
@@ -227,13 +226,13 @@ static void iwl_rx_scan_complete_notif(struct iwl_priv *priv,
                       jiffies_to_msecs(elapsed_jiffies
                                        (priv->scan_pass_start, jiffies)));
 
-       /* If a request to abort was given, or the scan did not succeed
+       /*
+        * If a request to abort was given, or the scan did not succeed
         * then we reset the scan state machine and terminate,
-        * re-queuing another scan if one has been requested */
-       if (test_bit(STATUS_SCAN_ABORTING, &priv->status)) {
+        * re-queuing another scan if one has been requested
+        */
+       if (test_and_clear_bit(STATUS_SCAN_ABORTING, &priv->status))
                IWL_DEBUG_INFO(priv, "Aborted scan completed.\n");
-               clear_bit(STATUS_SCAN_ABORTING, &priv->status);
-       }
 
        if (!priv->is_internal_short_scan)
                priv->next_scan_jiffies = 0;