On 12/02/2013 08:20 AM, Jeff Moyer wrote: > Ming Lei <[email protected]> writes: > >> blk_mq_alloc_request_pinned() may return NULL request in case of >> !__GFP_WAIT, so cause its callers to derefence NULL pointer for >> releasing current context. >> >> This patch introduces two flags to address the issue. > > Hi, Ming, > > > Good catch, but your patch seems overly complicated. How about > something like the following (compile-tested only), instead? Note that > I did not touch blk_make_request, as the put_ctx there seems to > correlate to a get_ctx earlier in the function (not a leaked reference > from __blk_mq_alloc_request).
I would tend to agree, it's overly complicated. The bug is real, however. > p.s. Jens, every time I see GFP_ATOMIC|__GFP_WAIT, my head explodes. Just > sayin'. It's perfectly fine :-) -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

