2020-06-17 21:08:44

by Gustavo A. R. Silva

[permalink] [raw]
Subject: [PATCH][next] dmaengine: hisilicon: Use struct_size() in devm_kzalloc()

Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes.

This code was detected with the help of Coccinelle and, audited and
fixed manually.

Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
drivers/dma/hisi_dma.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/dma/hisi_dma.c b/drivers/dma/hisi_dma.c
index ed3619266a48..e1a958ae7925 100644
--- a/drivers/dma/hisi_dma.c
+++ b/drivers/dma/hisi_dma.c
@@ -511,7 +511,6 @@ static int hisi_dma_probe(struct pci_dev *pdev, const struct pci_device_id *id)
struct device *dev = &pdev->dev;
struct hisi_dma_dev *hdma_dev;
struct dma_device *dma_dev;
- size_t dev_size;
int ret;

ret = pcim_enable_device(pdev);
@@ -534,9 +533,7 @@ static int hisi_dma_probe(struct pci_dev *pdev, const struct pci_device_id *id)
if (ret)
return ret;

- dev_size = sizeof(struct hisi_dma_chan) * HISI_DMA_CHAN_NUM +
- sizeof(*hdma_dev);
- hdma_dev = devm_kzalloc(dev, dev_size, GFP_KERNEL);
+ hdma_dev = devm_kzalloc(dev, struct_size(hdma_dev, chan, HISI_DMA_CHAN_NUM), GFP_KERNEL);
if (!hdma_dev)
return -EINVAL;

--
2.27.0


2020-06-22 05:26:31

by Zhou Wang

[permalink] [raw]
Subject: Re: [PATCH][next] dmaengine: hisilicon: Use struct_size() in devm_kzalloc()

On 2020/6/18 5:11, Gustavo A. R. Silva wrote:
> Make use of the struct_size() helper instead of an open-coded version
> in order to avoid any potential type mistakes.
>
> This code was detected with the help of Coccinelle and, audited and
> fixed manually.
>
> Signed-off-by: Gustavo A. R. Silva <[email protected]>

Looks good to me, thanks!

Reviewed-by: Zhou Wang <[email protected]>

> ---
> drivers/dma/hisi_dma.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/dma/hisi_dma.c b/drivers/dma/hisi_dma.c
> index ed3619266a48..e1a958ae7925 100644
> --- a/drivers/dma/hisi_dma.c
> +++ b/drivers/dma/hisi_dma.c
> @@ -511,7 +511,6 @@ static int hisi_dma_probe(struct pci_dev *pdev, const struct pci_device_id *id)
> struct device *dev = &pdev->dev;
> struct hisi_dma_dev *hdma_dev;
> struct dma_device *dma_dev;
> - size_t dev_size;
> int ret;
>
> ret = pcim_enable_device(pdev);
> @@ -534,9 +533,7 @@ static int hisi_dma_probe(struct pci_dev *pdev, const struct pci_device_id *id)
> if (ret)
> return ret;
>
> - dev_size = sizeof(struct hisi_dma_chan) * HISI_DMA_CHAN_NUM +
> - sizeof(*hdma_dev);
> - hdma_dev = devm_kzalloc(dev, dev_size, GFP_KERNEL);
> + hdma_dev = devm_kzalloc(dev, struct_size(hdma_dev, chan, HISI_DMA_CHAN_NUM), GFP_KERNEL);
> if (!hdma_dev)
> return -EINVAL;
>
>

2020-06-24 05:59:37

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH][next] dmaengine: hisilicon: Use struct_size() in devm_kzalloc()

On 17-06-20, 16:11, Gustavo A. R. Silva wrote:
> Make use of the struct_size() helper instead of an open-coded version
> in order to avoid any potential type mistakes.
>
> This code was detected with the help of Coccinelle and, audited and
> fixed manually.

Applied, thanks

--
~Vinod