James Bottomley [James.Bottomley@xxxxxxxxxxxx] wrote: > On Wed, 2006-10-18 at 20:25 -0700, malahal@xxxxxxxxxx wrote: > > Signed-off-by: Malahal Naineni <malahal@xxxxxxxxxx> > > > > diff -r d134b26a8da8 drivers/scsi/aic94xx/aic94xx_init.c > > --- a/drivers/scsi/aic94xx/aic94xx_init.c Wed Oct 18 16:34:30 2006 -0700 > > +++ b/drivers/scsi/aic94xx/aic94xx_init.c Wed Oct 18 18:21:40 2006 -0700 > > @@ -737,6 +737,11 @@ static void __devexit asd_pci_remove(str > > /* XXX more here as needed */ > > > > free_irq(dev->irq, asd_ha); > > + > > + /* We already disabled interrupts and freed the IRQ. Now, it is > > + * safe to kill the tasklet that processes done list */ > > + tasklet_kill(&asd_ha->seq.dl_tasklet); > > + > > Actually, this should be in asd_destroy_ha_caches() which is where the > asd_init_hw() teardown path is ... not that I'm very happy with this; > the teardown should be in aic94xx_hwi.c where the init path is ... > > James James, I think we should stop processing the done list before we call asd_free_queues() which frees all pending SCB's. So asd_destroy_ha_caches() is too late for it. I can put it in asd_free_queues() if you agree. - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html