Re: [PATCH] block: fix mq request allocation

From: Jens Axboe
Date: Mon Dec 02 2013 - 11:50:16 EST


On 12/02/2013 08:20 AM, Jeff Moyer wrote:
> Ming Lei <tom.leiming@xxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/