]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/wireless/marvell/mwifiex/pcie.c
mwifiex: initiate card-specific work atomically
[karo-tx-linux.git] / drivers / net / wireless / marvell / mwifiex / pcie.c
index ac62bce50e964b900135cdc600dcdb9032928a3f..5f56e8e6d61264a0d6f7fc28a4e382729a841e16 100644 (file)
@@ -2837,12 +2837,9 @@ static void mwifiex_pcie_device_dump(struct mwifiex_adapter *adapter)
 {
        struct pcie_service_card *card = adapter->card;
 
-       if (test_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags))
-               return;
-
-       set_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags);
-
-       schedule_work(&card->work);
+       if (!test_and_set_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP,
+                             &card->work_flags))
+               schedule_work(&card->work);
 }
 
 static void mwifiex_pcie_free_buffers(struct mwifiex_adapter *adapter)