From mboxrd@z Thu Jan 1 00:00:00 1970 From: Asias He Subject: Re: [patch] virtio-blk: fix NULL checking in virtblk_alloc_req() Date: Thu, 06 Sep 2012 11:04:15 +0800 Message-ID: <504812AF.5060607@redhat.com> References: <20120905123252.GE6128@elgon.mountain> <871uifj1vr.fsf@rustcorp.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <871uifj1vr.fsf@rustcorp.com.au> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Rusty Russell Cc: virtualization@lists.linux-foundation.org, kernel-janitors@vger.kernel.org, Dan Carpenter , "Michael S. Tsirkin" List-Id: virtualization@lists.linuxfoundation.org On 09/06/2012 10:55 AM, Rusty Russell wrote: > Dan Carpenter writes: > >> Smatch complains about the inconsistent NULL checking here. Fix it to >> return NULL on failure. >> >> Signed-off-by: Dan Carpenter >> --- >> This is only needed in linux-next. > > Nice! > >> diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c >> index 2edfb5c..457db0c 100644 >> --- a/drivers/block/virtio_blk.c >> +++ b/drivers/block/virtio_blk.c >> @@ -90,10 +90,11 @@ static inline struct virtblk_req *virtblk_alloc_req(struct virtio_blk *vblk, >> struct virtblk_req *vbr; >> >> vbr = mempool_alloc(vblk->pool, gfp_mask); >> - if (vbr && use_bio) >> - sg_init_table(vbr->sg, vblk->sg_elems); >> + if (!vbr) >> + return NULL; >> >> - vbr->vblk = vblk; >> + if (use_bio) >> + sg_init_table(vbr->sg, vblk->sg_elems); >> >> return vbr; >> } > > But it turns out that "vbr->vblk = vblk;" assignment is important :) I was just replying ;-) > Fixed and applied, Thanks Rusty! -- Asias