Thread (5 messages) 5 messages, 4 authors, 2015-12-22

Re: [PATCH] wlcore: consolidate kmalloc + memset 0 into kzalloc

From: Nicholas Mc Guire <hidden>
Date: 2015-12-22 07:30:29
Also in: lkml, netdev

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 [off-list ref] wrote:
quoted
This is an API consolidation only. The use of kmalloc + memset to 0
is equivalent to kzalloc.

Signed-off-by: Nicholas Mc Guire <redacted>
---

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help