Commit 2e6f11a7 authored by Qinglang Miao's avatar Qinglang Miao Committed by Martin K. Petersen
Browse files

scsi: ufshcd: Fix missing destroy_workqueue()

Add the missing destroy_workqueue() before return from ufshcd_init in the
error handling case as well as in ufshcd_remove.

Link: https://lore.kernel.org/r/20201110074223.41280-1-miaoqinglang@huawei.com


Fixes: 4db7a236 ("scsi: ufs: Fix concurrency of error handler and other error recovery paths")
Suggested-by: default avatarAvri Altman <Avri.Altman@wdc.com>
Reviewed-by: default avatarAsutosh Das <asutoshd@codeaurora.org>
Reviewed-by: default avatarAvri Altman <avri.altman@wdc.com>
Signed-off-by: default avatarQinglang Miao <miaoqinglang@huawei.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 0f52fcb9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -8928,6 +8928,7 @@ void ufshcd_remove(struct ufs_hba *hba)
	blk_mq_free_tag_set(&hba->tmf_tag_set);
	blk_cleanup_queue(hba->cmd_queue);
	scsi_remove_host(hba->host);
	destroy_workqueue(hba->eh_wq);
	/* disable interrupts */
	ufshcd_disable_intr(hba, hba->intr_mask);
	ufshcd_hba_stop(hba);
@@ -9228,6 +9229,7 @@ out_remove_scsi_host:
exit_gating:
	ufshcd_exit_clk_scaling(hba);
	ufshcd_exit_clk_gating(hba);
	destroy_workqueue(hba->eh_wq);
out_disable:
	hba->is_irq_enabled = false;
	ufshcd_hba_exit(hba);