dmaengine: hisilicon: Use struct_size() in devm_kzalloc()
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 17 Jun 2020 21:11:35 +0000 (16:11 -0500)
committerVinod Koul <vkoul@kernel.org>
Wed, 24 Jun 2020 05:56:23 +0000 (11:26 +0530)
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@kernel.org>
Reviewed-by: Zhou Wang <wangzhou1@hisilicon.com>
Link: https://lore.kernel.org/r/20200617211135.GA8660@embeddedor
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/hisi_dma.c

index ed36192..e1a958a 100644 (file)
@@ -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;