From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752308AbbKIAch (ORCPT ); Sun, 8 Nov 2015 19:32:37 -0500 Received: from mail-pa0-f53.google.com ([209.85.220.53]:32950 "EHLO mail-pa0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751973AbbKIAcg (ORCPT ); Sun, 8 Nov 2015 19:32:36 -0500 Date: Mon, 9 Nov 2015 09:33:32 +0900 From: Sergey Senozhatsky To: Geliang Tang Cc: Minchan Kim , Andrew Morton , Sergey Senozhatsky , linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] zram: fix memory freeing in zram_meta_alloc Message-ID: <20151109003332.GA471@swordfish> References: <325e5c0cbcc756b88dfc78b6d9388c07be7aa8f1.1446996521.git.geliangtang@163.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <325e5c0cbcc756b88dfc78b6d9388c07be7aa8f1.1446996521.git.geliangtang@163.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On (11/08/15 23:32), Geliang Tang wrote: > When meta->table is NULL, there is no need to vfree it. > Hi, So what's the benefit? It's ok to pass a NULL pointer to vfree(). Why would we add another label? To avoid a valid call on error path? -ss > Signed-off-by: Geliang Tang > --- > drivers/block/zram/zram_drv.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c > index 81a557c..197a7ad 100644 > --- a/drivers/block/zram/zram_drv.c > +++ b/drivers/block/zram/zram_drv.c > @@ -511,7 +511,7 @@ static struct zram_meta *zram_meta_alloc(char *pool_name, u64 disksize) > meta->table = vzalloc(num_pages * sizeof(*meta->table)); > if (!meta->table) { > pr_err("Error allocating zram address table\n"); > - goto out_error; > + goto out_free; > } > > meta->mem_pool = zs_create_pool(pool_name, GFP_NOIO | __GFP_HIGHMEM); > @@ -524,6 +524,7 @@ static struct zram_meta *zram_meta_alloc(char *pool_name, u64 disksize) > > out_error: > vfree(meta->table); > +out_free: > kfree(meta); > return NULL; > } > -- > 2.5.0 > >