diff options
author | Qinglang Miao <[email protected]> | 2020-11-10 15:42:23 +0800 |
---|---|---|
committer | Martin K. Petersen <[email protected]> | 2020-11-10 23:13:05 -0500 |
commit | 2e6f11a797a24d1e2141a214a6dd6dfbe709f55d (patch) | |
tree | a86374ead40c0b18b5b9f5c75052d6a6b96f87b2 | |
parent | 0f52fcb99ea2738a0a0f28e12cf4dd427069dd2a (diff) |
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/[email protected]
Fixes: 4db7a2360597 ("scsi: ufs: Fix concurrency of error handler and other error recovery paths")
Suggested-by: Avri Altman <[email protected]>
Reviewed-by: Asutosh Das <[email protected]>
Reviewed-by: Avri Altman <[email protected]>
Signed-off-by: Qinglang Miao <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
-rw-r--r-- | drivers/scsi/ufs/ufshcd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 5167c3e770a3..7a160b86adc6 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -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); |