'destroy_workqueue()' already drains the queue before destroying it, so there is no need to flush it explicitly. Remove the redundant 'flush_workqueue()' calls. This was generated with coccinelle: @@ expression E; @@ - flush_workqueue(E); destroy_workqueue(E); Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> --- drivers/media/platform/mtk-vpu/mtk_vpu.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/media/platform/mtk-vpu/mtk_vpu.c b/drivers/media/platform/mtk-vpu/mtk_vpu.c index 7f1647da0ade..7bd715fc844d 100644 --- a/drivers/media/platform/mtk-vpu/mtk_vpu.c +++ b/drivers/media/platform/mtk-vpu/mtk_vpu.c @@ -964,10 +964,8 @@ static int mtk_vpu_remove(struct platform_device *pdev) #ifdef CONFIG_DEBUG_FS debugfs_remove(vpu_debugfs); #endif - if (vpu->wdt.wq) { - flush_workqueue(vpu->wdt.wq); + if (vpu->wdt.wq) destroy_workqueue(vpu->wdt.wq); - } vpu_free_ext_mem(vpu, P_FW); vpu_free_ext_mem(vpu, D_FW); mutex_destroy(&vpu->vpu_mutex); -- 2.30.2