{
        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)
 
 {
        struct sdio_mmc_card *card = adapter->card;
 
-       if (test_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags))
-               return;
-
-       set_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags);
-
-       schedule_work(&card->work);
+       if (!test_and_set_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags))
+               schedule_work(&card->work);
 }
 
 /* This function dumps FW information */
 {
        struct sdio_mmc_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);
 }
 
 /* Function to dump SDIO function registers and SDIO scratch registers in case