Re: [PATCH 1/1] driver/md/block: Alloc space for member flush_rq
From: Mike Snitzer <hidden>
Date: 2014-05-28 15:03:20
Also in:
dm-devel, lkml
From: Mike Snitzer <hidden>
Date: 2014-05-28 15:03:20
Also in:
dm-devel, lkml
On Wed, May 28 2014 at 2:22am -0400, Li, Zhen-Hua [off-list ref] wrote:
This patch is trying to fix a kernel crash bug. When kernel boots on a HP large system, it crashes. The reason is when blk_rq_init is called, the second parameter rq , which is a member as q->flush_rq, is NULL. Kernel does not allocate space for it. This fix adds an alloc for flush_rq member when request_queue is created in struct mapped_device *alloc_dev(int minor); Bug Details: Error message: [ 62.931942] BUG: unable to handle kernel NULL pointer dereference at (null) [ 62.931949] IP: [<ffffffff812b3f30>] blk_rq_init+0x40/0x160^M [ 62.931949] PGD 0 ^M [ 62.931951] Oops: 0002 [#1] SMP
You didn't specify which kernel you're running. But this was fixed for
v3.15-rc6 via linux.git commit 7982e90c3a5 ("block: fix q->flush_rq NULL
pointer crash on dm-mpath flush"). And then there was the follow-on fix
from linux.git commit 708f04d2ab ("block: free q->flush_rq in
blk_init_allocated_queue error paths")
So all this is to say: Nack to your patch, we've already fixed the issue
differently.