On 2019-12-14 14:24, cang@xxxxxxxxxxxxxx wrote: > How do you think if I replace my patch with below one? > In this way, you can also move blk_cleanup_queue() behind > cancel_work_sync(eh_work). > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c > index b5966fa..bd4ae75 100644 > --- a/drivers/scsi/ufs/ufshcd.c > +++ b/drivers/scsi/ufs/ufshcd.c > @@ -8251,15 +8251,17 @@ void ufshcd_remove(struct ufs_hba *hba) > ufs_bsg_remove(hba); > ufs_sysfs_remove_nodes(hba->dev); > scsi_remove_host(hba->host); > - /* disable interrupts */ > - ufshcd_disable_intr(hba, hba->intr_mask); > - ufshcd_hba_stop(hba, true); > - > ufshcd_exit_clk_scaling(hba); > ufshcd_exit_clk_gating(hba); > if (ufshcd_is_clkscaling_supported(hba)) > device_remove_file(hba->dev, > &hba->clk_scaling.enable_attr); > + cancel_work_sync(&hba->eeh_work); > + cancel_work_sync(&hba->eh_work); > + /* disable interrupts */ > + ufshcd_disable_intr(hba, hba->intr_mask); > + ufshcd_hba_stop(hba, true); > ufshcd_hba_exit(hba); > + ufshcd_dealloc_host(hba); > } > EXPORT_SYMBOL_GPL(ufshcd_remove); Hi Can, To which kernel tree does the above patch apply? I'm asking this because I don't see the recently added blk_cleanup_queue() calls in the above patch. Please start from Martin's latest scsi-queue branch when preparing SCSI patches. Additionally, is it on purpose that there is no scsi_host_put() call in the above code? I'd like to keep that call because without that call a memory leak will occur when unloading the ufshcd-core kernel driver. Thanks, Bart.