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

From: Zhou Wang
Date: Mon Jun 22 2020 - 01:24:25 EST


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 <gustavoars@xxxxxxxxxx>

Looks good to me, thanks!

Reviewed-by: Zhou Wang <wangzhou1@xxxxxxxxxxxxx>

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