Greg Steuck <gne...@openbsd.org> wrote:

> Mark Kettenis <mark.kette...@xs4all.nl> writes:
> 
> > Anyway, I think you're right in thinking that nvme_intr() needs some
> > belt and suspenders.  In nvme_shutdown() we delete the "normal"
> > command queue, but nvme_intr() inconditionally looks at both of them.
> > Now nvme_shutdown() masks the interrupt and nvme_resume() unmasks it
> > only after it re-creates the "normal" command queue.  But I think
> > there are scenarios where we can get a spurious interrupt and it would
> > check a queue that isn't there.  So I think something like the diff
> > below would make sense.
> >
> > Greg, does this fix your crash?
> 
> I applied this on top of -current. Sadly I'm still getting the same
> crashes in sd_buf_done.

Can you add some printf's to track what happens to sc_q ?

Reply via email to