sg_init_table zeroes its first argument, so the allocation of that argument
doesn't have to.

the semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
expression x,n,flags;
@@

x = 
- kcalloc
+ kmalloc_array
  (n,sizeof(*x),flags)
...
sg_init_table(x,n)
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>

---
 drivers/infiniband/hw/efa/efa_verbs.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/infiniband/hw/efa/efa_verbs.c 
b/drivers/infiniband/hw/efa/efa_verbs.c
--- a/drivers/infiniband/hw/efa/efa_verbs.c
+++ b/drivers/infiniband/hw/efa/efa_verbs.c
@@ -1157,7 +1157,7 @@ static struct scatterlist *efa_vmalloc_b
        struct page *pg;
        int i;
 
-       sglist = kcalloc(page_cnt, sizeof(*sglist), GFP_KERNEL);
+       sglist = kmalloc_array(page_cnt, sizeof(*sglist), GFP_KERNEL);
        if (!sglist)
                return NULL;
        sg_init_table(sglist, page_cnt);

Reply via email to