net: mvneta: Use devm_kmalloc_array() in mvneta_init()
authorMarkus Elfring <elfring@users.sourceforge.net>
Sun, 16 Apr 2017 19:23:19 +0000 (21:23 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Apr 2017 17:55:06 +0000 (13:55 -0400)
* A multiplication for the size determination of a memory allocation
  indicated that an array data structure should be processed.
  Thus use the corresponding function "devm_kmalloc_array".

  This issue was detected by using the Coccinelle software.

* Replace the specification of a data type by a pointer dereference
  to make the corresponding size determination a bit safer according to
  the Linux coding style convention.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvneta.c

index 0992db47070fd647576709a88928807c974c172b..652e7ab4b70895c7e2861c02862ca422263885e2 100644 (file)
@@ -4027,9 +4027,11 @@ static int mvneta_init(struct device *dev, struct mvneta_port *pp)
                rxq->size = pp->rx_ring_size;
                rxq->pkts_coal = MVNETA_RX_COAL_PKTS;
                rxq->time_coal = MVNETA_RX_COAL_USEC;
-               rxq->buf_virt_addr = devm_kmalloc(pp->dev->dev.parent,
-                                                 rxq->size * sizeof(void *),
-                                                 GFP_KERNEL);
+               rxq->buf_virt_addr
+                       = devm_kmalloc_array(pp->dev->dev.parent,
+                                            rxq->size,
+                                            sizeof(*rxq->buf_virt_addr),
+                                            GFP_KERNEL);
                if (!rxq->buf_virt_addr)
                        return -ENOMEM;
        }