From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicholas Mc Guire Subject: Re: [PATCH] wlcore: consolidate kmalloc + memset 0 into kzalloc Date: Tue, 22 Dec 2015 07:29:51 +0000 Message-ID: <20151222072951.GA31496@osadl.at> References: <1450716464-20759-1-git-send-email-hofrat@osadl.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Nicholas Mc Guire , Kalle Valo , Eliad Peller , Johannes Berg , Arik Nemtsov , Tony Lindgren , Luciano Coelho , Eyal Reizer , Emmanuel Grumbach , linux-wireless , netdev , "linux-kernel@vger.kernel.org" To: Julian Calaby Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Tue, Dec 22, 2015 at 09:56:10AM +1100, Julian Calaby wrote: > Hi, > > On Tue, Dec 22, 2015 at 3:47 AM, Nicholas Mc Guire wrote: > > This is an API consolidation only. The use of kmalloc + memset to 0 > > is equivalent to kzalloc. > > > > Signed-off-by: Nicholas Mc Guire > > --- > > > > Found by coccinelle script (relaxed version of > > scripts/coccinelle/api/alloc/kzalloc-simple.cocci) > > > > Patch was compile tested with: x86_64_defconfig + > > CONFIG_WL12XX=m (implies CONFIG_WLCORE=m) > > > > Patch is against linux-next (localversion-next is -next-20151221) > > > > drivers/net/wireless/ti/wlcore/main.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c > > index ec7f6af..dfc49bf 100644 > > --- a/drivers/net/wireless/ti/wlcore/main.c > > +++ b/drivers/net/wireless/ti/wlcore/main.c > > @@ -838,7 +838,7 @@ static void wl12xx_read_fwlog_panic(struct wl1271 *wl) > > > > wl1271_info("Reading FW panic log"); > > > > - block = kmalloc(wl->fw_mem_block_size, GFP_KERNEL); > > + block = kzalloc(wl->fw_mem_block_size, GFP_KERNEL); > > if (!block) > > return; > > > > @@ -885,7 +885,6 @@ static void wl12xx_read_fwlog_panic(struct wl1271 *wl) > > goto out; > > } > > - memset(block, 0, wl->fw_mem_block_size); > > I don't think you can't remove this line. It appears that the loop > this is part of resets block to be all zero, reads a chunk of data in, > then operates on it. I'm guessing that the code after the following > line expects that there isn't any data left over from previous runs > through the loop. > the rational for this being ok is thta the copy operation into block is: ret = wlcore_read_hwaddr(wl, addr, block, wl->fw_mem_block_size, false); this will end up in the .read methods where block should be completely overwritten (length == full block size), so within the loop if successful this should be correct - if not successful it would "goto out" witout using the content of block. Am I overlooking something here ? thx! hofrat