2020-09-20 12:11:06

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 00/14] drop double zeroing

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

---

block/bsg-lib.c | 2 +-
drivers/dma/sh/rcar-dmac.c | 2 +-
drivers/dma/sh/shdma-base.c | 2 +-
drivers/infiniband/hw/efa/efa_verbs.c | 2 +-
drivers/media/common/saa7146/saa7146_core.c | 2 +-
drivers/misc/mic/scif/scif_nodeqp.c | 2 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 2 +-
drivers/pci/p2pdma.c | 2 +-
drivers/spi/spi-topcliff-pch.c | 4 ++--
drivers/target/target_core_rd.c | 2 +-
drivers/tty/serial/pch_uart.c | 2 +-
net/rds/rdma.c | 2 +-
net/sunrpc/xprtrdma/frwr_ops.c | 2 +-
14 files changed, 15 insertions(+), 15 deletions(-)


2020-09-20 12:11:06

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 07/14] RDS: drop double zeroing

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]>

---
net/rds/rdma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/net/rds/rdma.c b/net/rds/rdma.c
--- a/net/rds/rdma.c
+++ b/net/rds/rdma.c
@@ -269,7 +269,7 @@ static int __rds_rdma_map(struct rds_soc
goto out;
} else {
nents = ret;
- sg = kcalloc(nents, sizeof(*sg), GFP_KERNEL);
+ sg = kmalloc_array(nents, sizeof(*sg), GFP_KERNEL);
if (!sg) {
ret = -ENOMEM;
goto out;

2020-09-20 12:11:06

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 05/14] RDMA/efa: drop double zeroing

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);

2020-09-20 12:11:06

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 04/14] dmaengine: sh: drop double zeroing

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/dma/sh/shdma-base.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c
--- a/drivers/dma/sh/shdma-base.c
+++ b/drivers/dma/sh/shdma-base.c
@@ -728,7 +728,7 @@ static struct dma_async_tx_descriptor *s
* Allocate the sg list dynamically as it would consumer too much stack
* space.
*/
- sgl = kcalloc(sg_len, sizeof(*sgl), GFP_KERNEL);
+ sgl = kmalloc_array(sg_len, sizeof(*sgl), GFP_KERNEL);
if (!sgl)
return NULL;


2020-09-20 12:11:06

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 01/14] pch_uart: drop double zeroing

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 <[email protected]>

---
drivers/tty/serial/pch_uart.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -981,7 +981,7 @@ static unsigned int dma_handle_tx(struct

priv->tx_dma_use = 1;

- priv->sg_tx_p = kcalloc(num, sizeof(struct scatterlist), GFP_ATOMIC);
+ priv->sg_tx_p = kmalloc_array(num, sizeof(struct scatterlist), GFP_ATOMIC);
if (!priv->sg_tx_p) {
dev_err(priv->port.dev, "%s:kzalloc Failed\n", __func__);
return 0;

2020-09-20 12:11:06

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 06/14] block: drop double zeroing

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;
@@

x =
- kzalloc
+ kmalloc
(...)
...
sg_init_table(x,...)
// </smpl>

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

---
block/bsg-lib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/block/bsg-lib.c b/block/bsg-lib.c
--- a/block/bsg-lib.c
+++ b/block/bsg-lib.c
@@ -207,7 +207,7 @@ static int bsg_map_buffer(struct bsg_buf

BUG_ON(!req->nr_phys_segments);

- buf->sg_list = kzalloc(sz, GFP_KERNEL);
+ buf->sg_list = kmalloc(sz, GFP_KERNEL);
if (!buf->sg_list)
return -ENOMEM;
sg_init_table(buf->sg_list, req->nr_phys_segments);

2020-09-20 12:11:06

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 03/14] dpaa2-eth: drop double zeroing

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 <[email protected]>

---
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;


2020-09-20 12:11:06

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 13/14] misc: mic: drop double zeroing

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 <[email protected]>

---
drivers/misc/mic/scif/scif_nodeqp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/misc/mic/scif/scif_nodeqp.c b/drivers/misc/mic/scif/scif_nodeqp.c
--- a/drivers/misc/mic/scif/scif_nodeqp.c
+++ b/drivers/misc/mic/scif/scif_nodeqp.c
@@ -363,7 +363,7 @@ scif_p2p_setsg(phys_addr_t pa, int page_
struct page *page;
int i;

- sg = kcalloc(page_cnt, sizeof(struct scatterlist), GFP_KERNEL);
+ sg = kmalloc_array(page_cnt, sizeof(struct scatterlist), GFP_KERNEL);
if (!sg)
return NULL;
sg_init_table(sg, page_cnt);

2020-09-20 12:11:10

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 11/14] spi/topcliff-pch: drop double zeroing

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/spi/spi-topcliff-pch.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff -u -p a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
--- a/drivers/spi/spi-topcliff-pch.c
+++ b/drivers/spi/spi-topcliff-pch.c
@@ -1002,7 +1002,7 @@ static void pch_spi_handle_dma(struct pc
spin_unlock_irqrestore(&data->lock, flags);

/* RX */
- dma->sg_rx_p = kcalloc(num, sizeof(*dma->sg_rx_p), GFP_ATOMIC);
+ dma->sg_rx_p = kmalloc_array(num, sizeof(*dma->sg_rx_p), GFP_ATOMIC);
if (!dma->sg_rx_p)
return;

@@ -1065,7 +1065,7 @@ static void pch_spi_handle_dma(struct pc
head = 0;
}

- dma->sg_tx_p = kcalloc(num, sizeof(*dma->sg_tx_p), GFP_ATOMIC);
+ dma->sg_tx_p = kmalloc_array(num, sizeof(*dma->sg_tx_p), GFP_ATOMIC);
if (!dma->sg_tx_p)
return;


2020-09-20 12:11:16

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 12/14] [media] saa7146: drop double zeroing

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 <[email protected]>

---
drivers/media/common/saa7146/saa7146_core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/media/common/saa7146/saa7146_core.c b/drivers/media/common/saa7146/saa7146_core.c
--- a/drivers/media/common/saa7146/saa7146_core.c
+++ b/drivers/media/common/saa7146/saa7146_core.c
@@ -140,7 +140,7 @@ static struct scatterlist* vmalloc_to_sg
struct page *pg;
int i;

- sglist = kcalloc(nr_pages, sizeof(struct scatterlist), GFP_KERNEL);
+ sglist = kmalloc_array(nr_pages, sizeof(struct scatterlist), GFP_KERNEL);
if (NULL == sglist)
return NULL;
sg_init_table(sglist, nr_pages);

2020-09-20 12:11:57

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 14/14] PCI/P2PDMA: drop double zeroing

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;
@@

x =
- kzalloc
+ kmalloc
(...)
...
sg_init_table(x,...)
// </smpl>

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

---
drivers/pci/p2pdma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c
--- a/drivers/pci/p2pdma.c
+++ b/drivers/pci/p2pdma.c
@@ -762,7 +762,7 @@ struct scatterlist *pci_p2pmem_alloc_sgl
struct scatterlist *sg;
void *addr;

- sg = kzalloc(sizeof(*sg), GFP_KERNEL);
+ sg = kmalloc(sizeof(*sg), GFP_KERNEL);
if (!sg)
return NULL;


2020-09-20 12:12:19

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 08/14] xprtrdma: drop double zeroing

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]>

---
net/sunrpc/xprtrdma/frwr_ops.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/net/sunrpc/xprtrdma/frwr_ops.c b/net/sunrpc/xprtrdma/frwr_ops.c
--- a/net/sunrpc/xprtrdma/frwr_ops.c
+++ b/net/sunrpc/xprtrdma/frwr_ops.c
@@ -124,7 +124,7 @@ int frwr_mr_init(struct rpcrdma_xprt *r_
if (IS_ERR(frmr))
goto out_mr_err;

- sg = kcalloc(depth, sizeof(*sg), GFP_NOFS);
+ sg = kmalloc_array(depth, sizeof(*sg), GFP_NOFS);
if (!sg)
goto out_list_err;


2020-09-20 12:13:38

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 02/14] target/rd: drop double zeroing

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/target/target_core_rd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c
--- a/drivers/target/target_core_rd.c
+++ b/drivers/target/target_core_rd.c
@@ -131,7 +131,7 @@ static int rd_allocate_sgl_table(struct
if (sg_per_table < total_sg_needed)
chain_entry = 1;

- sg = kcalloc(sg_per_table + chain_entry, sizeof(*sg),
+ sg = kmalloc_array(sg_per_table + chain_entry, sizeof(*sg),
GFP_KERNEL);
if (!sg)
return -ENOMEM;

2020-09-20 12:13:48

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 10/14] iwlwifi: dbg_ini: drop double zeroing

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/net/wireless/intel/iwlwifi/fw/dbg.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
--- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
+++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
@@ -631,7 +631,7 @@ static struct scatterlist *alloc_sgtable
struct scatterlist *table;

nents = DIV_ROUND_UP(size, PAGE_SIZE);
- table = kcalloc(nents, sizeof(*table), GFP_KERNEL);
+ table = kmalloc_array(nents, sizeof(*table), GFP_KERNEL);
if (!table)
return NULL;
sg_init_table(table, nents);

2020-09-20 12:13:48

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 09/14] dmaengine: rcar-dmac: drop double zeroing

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/dma/sh/rcar-dmac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c
--- a/drivers/dma/sh/rcar-dmac.c
+++ b/drivers/dma/sh/rcar-dmac.c
@@ -1227,7 +1227,7 @@ rcar_dmac_prep_dma_cyclic(struct dma_cha
* Allocate the sg list dynamically as it would consume too much stack
* space.
*/
- sgl = kcalloc(sg_len, sizeof(*sgl), GFP_NOWAIT);
+ sgl = kmalloc_array(sg_len, sizeof(*sgl), GFP_NOWAIT);
if (!sgl)
return NULL;


2020-09-20 12:16:30

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 01/14] pch_uart: drop double zeroing

On Sun, Sep 20, 2020 at 01:26:13PM +0200, Julia Lawall wrote:
> 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 <[email protected]>

It inits the first entry in the array, but what about all of the other
ones? Is that "safe" to have uninitialized data in them like your
change causes to happen?

thanks,

greg k-h

2020-09-20 12:51:24

by Julia Lawall

[permalink] [raw]
Subject: Re: [PATCH 01/14] pch_uart: drop double zeroing



On Sun, 20 Sep 2020, Greg Kroah-Hartman wrote:

> On Sun, Sep 20, 2020 at 01:26:13PM +0200, Julia Lawall wrote:
> > 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 <[email protected]>
>
> It inits the first entry in the array, but what about all of the other
> ones? Is that "safe" to have uninitialized data in them like your
> change causes to happen?

Sorry, I don't follow. The complete code is:

priv->sg_tx_p = kcalloc(num, sizeof(struct scatterlist), GFP_ATOMIC);
if (!priv->sg_tx_p) {
dev_err(priv->port.dev, "%s:kzalloc Failed\n", __func__);
return 0;
}

sg_init_table(priv->sg_tx_p, num); /* Initialize SG table */

and the definition of sg_init_table is:

void sg_init_table(struct scatterlist *sgl, unsigned int nents)
{
memset(sgl, 0, sizeof(*sgl) * nents);
sg_init_marker(sgl, nents);
}

It looks to me like it zeroes all of the elements? The same file does
contain a call:

sg_init_table(&priv->sg_rx, 1);

But that's not the one associated with the patch.

julia

2020-09-21 02:17:52

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 03/14] dpaa2-eth: drop double zeroing

From: Julia Lawall <[email protected]>
Date: Sun, 20 Sep 2020 13:26:15 +0200

> 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 <[email protected]>

Applied.

2020-09-21 02:21:36

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 07/14] RDS: drop double zeroing

From: Julia Lawall <[email protected]>
Date: Sun, 20 Sep 2020 13:26:19 +0200

> 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]>

Applied.

2020-09-21 07:15:28

by Gal Pressman

[permalink] [raw]
Subject: Re: [PATCH 05/14] RDMA/efa: drop double zeroing

On 20/09/2020 14:26, Julia Lawall wrote:
> 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]>

Thanks Julia,
Acked-by: Gal Pressman <[email protected]>

2020-09-23 00:04:01

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH 05/14] RDMA/efa: drop double zeroing

On Sun, Sep 20, 2020 at 01:26:17PM +0200, Julia Lawall wrote:
> 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]>
> Acked-by: Gal Pressman <[email protected]>
> ---
> drivers/infiniband/hw/efa/efa_verbs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Applied to rdma.git for-next, thanks

Jason

2020-09-23 15:22:00

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH 06/14] block: drop double zeroing

On 9/20/20 5:26 AM, Julia Lawall wrote:
> 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;
> @@
>
> x =
> - kzalloc
> + kmalloc
> (...)
> ...
> sg_init_table(x,...)
> // </smpl>

Applied for 5.10, thanks.

--
Jens Axboe

2020-09-27 12:14:43

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 01/14] pch_uart: drop double zeroing

On Sun, Sep 20, 2020 at 02:47:11PM +0200, Julia Lawall wrote:
>
>
> On Sun, 20 Sep 2020, Greg Kroah-Hartman wrote:
>
> > On Sun, Sep 20, 2020 at 01:26:13PM +0200, Julia Lawall wrote:
> > > 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 <[email protected]>
> >
> > It inits the first entry in the array, but what about all of the other
> > ones? Is that "safe" to have uninitialized data in them like your
> > change causes to happen?
>
> Sorry, I don't follow. The complete code is:
>
> priv->sg_tx_p = kcalloc(num, sizeof(struct scatterlist), GFP_ATOMIC);
> if (!priv->sg_tx_p) {
> dev_err(priv->port.dev, "%s:kzalloc Failed\n", __func__);
> return 0;
> }
>
> sg_init_table(priv->sg_tx_p, num); /* Initialize SG table */
>
> and the definition of sg_init_table is:
>
> void sg_init_table(struct scatterlist *sgl, unsigned int nents)
> {
> memset(sgl, 0, sizeof(*sgl) * nents);
> sg_init_marker(sgl, nents);
> }

Ah, missed the "* nents" thing there, sorry, my fault.

greg k-h

2020-09-28 23:45:27

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH 14/14] PCI/P2PDMA: drop double zeroing

On Sun, Sep 20, 2020 at 01:26:26PM +0200, Julia Lawall wrote:
> 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;
> @@
>
> x =
> - kzalloc
> + kmalloc
> (...)
> ...
> sg_init_table(x,...)
> // </smpl>
>
> Signed-off-by: Julia Lawall <[email protected]>

Applied to pci/misc for v5.10, thanks!

> ---
> drivers/pci/p2pdma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff -u -p a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c
> --- a/drivers/pci/p2pdma.c
> +++ b/drivers/pci/p2pdma.c
> @@ -762,7 +762,7 @@ struct scatterlist *pci_p2pmem_alloc_sgl
> struct scatterlist *sg;
> void *addr;
>
> - sg = kzalloc(sizeof(*sg), GFP_KERNEL);
> + sg = kmalloc(sizeof(*sg), GFP_KERNEL);
> if (!sg)
> return NULL;
>
>

2020-10-05 04:49:51

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH 04/14] dmaengine: sh: drop double zeroing

On 20-09-20, 13:26, Julia Lawall wrote:
> 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/)

Applied, thanks

--
~Vinod

2020-10-05 04:52:58

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH 09/14] dmaengine: rcar-dmac: drop double zeroing

On 20-09-20, 13:26, Julia Lawall wrote:
> 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/)

Applied, thanks

--
~Vinod

2020-10-08 02:34:07

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH 02/14] target/rd: drop double zeroing


Julia,

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

Applied to 5.10/scsi-staging, thanks!

--
Martin K. Petersen Oracle Linux Engineering