diff options
Diffstat (limited to 'kernel/drivers/edac/edac_device.c')
-rw-r--r-- | kernel/drivers/edac/edac_device.c | 11 |
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); } /* |