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(struct scatterlist),flags)
...
sg_init_table(x,n)
// </smpl>

Signed-off-by: Julia Lawall <julia.law...@inria.fr>

---
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c 
b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -607,7 +607,7 @@ static int dpaa2_eth_build_sg_fd(struct
        if (unlikely(PAGE_SIZE / sizeof(struct scatterlist) < nr_frags + 1))
                return -EINVAL;
 
-       scl = kcalloc(nr_frags + 1, sizeof(struct scatterlist), GFP_ATOMIC);
+       scl = kmalloc_array(nr_frags + 1, sizeof(struct scatterlist), 
GFP_ATOMIC);
        if (unlikely(!scl))
                return -ENOMEM;
 

Reply via email to