X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=drivers%2Fedac%2Fedac_device.c;h=53587377e67268fd90efb4fbfed2358dcbe03717;hb=d4686ea76bd19b81ed89184f9cc401da36a9573f;hp=102674346035e13bc28d6f3f001ea0d4a5e57e29;hpb=825e587af2e90e9b953849f3347a01d8f383d577;p=firefly-linux-kernel-4.4.55.git diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c index 102674346035..53587377e672 100644 --- a/drivers/edac/edac_device.c +++ b/drivers/edac/edac_device.c @@ -435,13 +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); } /*