summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/edac/edac_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/edac/edac_device.c')
-rw-r--r--kernel/drivers/edac/edac_device.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/kernel/drivers/edac/edac_device.c b/kernel/drivers/edac/edac_device.c
index 592af5f0c..53587377e 100644
--- a/kernel/drivers/edac/edac_device.c
+++ b/kernel/drivers/edac/edac_device.c
@@ -435,16 +435,13 @@ void edac_device_workq_setup(struct edac_device_ctl_info *edac_dev,
*/
void edac_device_workq_teardown(struct edac_device_ctl_info *edac_dev)
{
- int status;
-
if (!edac_dev->edac_check)
return;
- status = cancel_delayed_work(&edac_dev->work);
- if (status == 0) {
- /* workq instance might be running, wait for it */
- flush_workqueue(edac_workqueue);
- }
+ edac_dev->op_state = OP_OFFLINE;
+
+ cancel_delayed_work_sync(&edac_dev->work);
+ flush_workqueue(edac_workqueue);
}
/*