Hi Bart, I'd rather to understand the issue first. On Wed, Jun 29, 2022 at 02:49:27PM -0700, Bart Van Assche wrote: > On 6/28/22 18:17, Ming Lei wrote: > > On Tue, Jun 28, 2022 at 10:56:12AM -0700, Bart Van Assche wrote: > > > There are two .exit_cmd_priv implementations. Both implementations use the > > > SCSI host pointer. Make sure that the SCSI host pointer is valid when > > > .exit_cmd_priv is called by moving the .exit_cmd_priv calls from > > > scsi_device_dev_release() to scsi_forget_host(). Moving .exit_cmd_priv is actually called from scsi_host_dev_release() instead of scsi_device_dev_release(). Both scsi host pointer and host->shost_data is still valid when calling .exit_cmd_priv via scsi_mq_destroy_tags(). Previously I fixed[1] one similar issue, and that is caused by early module unloading, and anywhere host->hostt is referred, the scsi driver module should be prevented from being unloaded. [1] f2b85040acec scsi: core: Put LLD module refcnt after SCSI device is released Thanks, Ming