EDAC: Robustify workqueues destruction
[pandora-kernel.git] / drivers / edac / edac_pci.c
index 2b37820..17b8324 100644 (file)
@@ -275,13 +275,12 @@ static void edac_pci_workq_setup(struct edac_pci_ctl_info *pci,
  */
 static void edac_pci_workq_teardown(struct edac_pci_ctl_info *pci)
 {
-       int status;
-
        debugf0("%s()\n", __func__);
 
-       status = cancel_delayed_work(&pci->work);
-       if (status == 0)
-               flush_workqueue(edac_workqueue);
+       pci->op_state = OP_OFFLINE;
+
+       cancel_delayed_work_sync(&pci->work);
+       flush_workqueue(edac_workqueue);
 }
 
 /*