Mike Christie <michael.christie@xxxxxxxxxx> 于2023年4月20日周四 23:39写道: > > On 4/12/23 10:34 PM, Zheng Wang wrote: > > In qedi_probe, it calls __qedi_probe, which bound &qedi->recovery_work > > with qedi_recovery_handler and bound &qedi->board_disable_work > > with qedi_board_disable_work. > > > > When it calls qedi_schedule_recovery_handler, it will finally > > call schedule_delayed_work to start the work. > > > > When we call qedi_remove to remove the driver, there > > may be a sequence as follows: > > > > Fix it by finishing the work before cleanup in qedi_remove. > > > > CPU0 CPU1 > > > > |qedi_recovery_handler > > qedi_remove | > > __qedi_remove | > > iscsi_host_free | > > scsi_host_put | > > //free shost | > > |iscsi_host_for_each_session > > |//use qedi->shost > > > > Fixes: 4b1068f5d74b ("scsi: qedi: Add MFW error recovery process") > > Signed-off-by: Zheng Wang <zyytlz.wz@xxxxxxx> > > --- > > v2: > > - remove unnecessary comment suggested by Mike Christie and cancel the work > > after qedi_ops->stop and qedi_ops->ll2->stop which ensure there is no more > > work suggested by Manish Rangankar > > Look ok to me now. Thanks. > > Reviewed-by: Mike Christie <michael.christie@xxxxxxxxxx> Thanks for your review. Best regards, Zheng