UPSTREAM: 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: 4db7a2360597 ("scsi: ufs: Fix concurrency of error handler and other error recovery paths") Suggested-by: Avri Altman <Avri.Altman@wdc.com> Reviewed-by: Asutosh Das <asutoshd@codeaurora.org> Reviewed-by: Avri Altman <avri.altman@wdc.com> Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> (cherry picked from commit 2e6f11a797a24d1e2141a214a6dd6dfbe709f55d) Bug: 187129171 Signed-off-by: Connor O'Brien <connoro@google.com> Change-Id: I2db2a6c6fb22b1e780ec7e167940d7104aaae267
This commit is contained in:
parent
e6d3c97bac
commit
3f54d632a6
@ -9025,6 +9025,7 @@ void ufshcd_remove(struct ufs_hba *hba)
|
||||
ufs_bsg_remove(hba);
|
||||
ufs_sysfs_remove_nodes(hba->dev);
|
||||
scsi_remove_host(hba->host);
|
||||
destroy_workqueue(hba->eh_wq);
|
||||
/* disable interrupts */
|
||||
ufshcd_disable_intr(hba, hba->intr_mask);
|
||||
ufshcd_hba_stop(hba, true);
|
||||
@ -9296,6 +9297,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);
|
||||
|
Loading…
Reference in New Issue
Block a user