Christoph Hellwig <hch@xxxxxxxxxxxxx> writes: > On Tue, Nov 24, 2015 at 11:34:22AM -0500, Jeff Moyer wrote: >> CPU 1 takes an interrupt for the completion of the same request: >> >> blk_complete_request(): >> if (!blk_mark_rq_complete(req) || // this fails, as it's already marked complete >> test_and_clear_bit(REQ_ATOM_QUIESCED, &req->atomic_flags)) // this succeeds > > and clears the flag, so we'd need a race betweem this call to > blk_mq_complete request and the later completion of all outstanding > commands from reset. For NVMe we ensure this by not taking completions But we're completing the request, so the request will actually be freed. Any references to this request are bogus at this point, no? > onc we start reset, but we probably need to document this better. I > will ensure all this is properly documented in the next version! Thanks, I think that will help a lot. Cheers, Jeff -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html