ATM-iphase: Use kmalloc_array() in tx_init()
authorMarkus Elfring <elfring@users.sourceforge.net>
Fri, 9 Sep 2016 18:40:16 +0000 (20:40 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 10 Sep 2016 04:00:16 +0000 (21:00 -0700)
* Multiplications for the size determination of memory allocations
  indicated that array data structures should be processed.
  Thus use the corresponding function "kmalloc_array".

  This issue was detected by using the Coccinelle software.

* Replace the specification of data types by pointer dereferences
  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/atm/iphase.c

index 809dd1e0209154b5fba68c4b9955834a709a4b0d..9d8807e76639b85f2437b6702cc0da4b66b009a5 100644 (file)
@@ -1975,7 +1975,9 @@ static int tx_init(struct atm_dev *dev)
                buf_desc_ptr++;           
                tx_pkt_start += iadev->tx_buf_sz;  
        }  
-        iadev->tx_buf = kmalloc(iadev->num_tx_desc*sizeof(struct cpcs_trailer_desc), GFP_KERNEL);
+       iadev->tx_buf = kmalloc_array(iadev->num_tx_desc,
+                                     sizeof(*iadev->tx_buf),
+                                     GFP_KERNEL);
         if (!iadev->tx_buf) {
             printk(KERN_ERR DEV_LABEL " couldn't get mem\n");
            goto err_free_dle;
@@ -1995,8 +1997,9 @@ static int tx_init(struct atm_dev *dev)
                                                       sizeof(*cpcs),
                                                       DMA_TO_DEVICE);
         }
-        iadev->desc_tbl = kmalloc(iadev->num_tx_desc *
-                                   sizeof(struct desc_tbl_t), GFP_KERNEL);
+       iadev->desc_tbl = kmalloc_array(iadev->num_tx_desc,
+                                       sizeof(*iadev->desc_tbl),
+                                       GFP_KERNEL);
        if (!iadev->desc_tbl) {
                printk(KERN_ERR DEV_LABEL " couldn't get mem\n");
                goto err_free_all_tx_bufs;
@@ -2124,7 +2127,9 @@ static int tx_init(struct atm_dev *dev)
        memset((caddr_t)(iadev->seg_ram+i),  0, iadev->num_vc*4);
        vc = (struct main_vc *)iadev->MAIN_VC_TABLE_ADDR;  
        evc = (struct ext_vc *)iadev->EXT_VC_TABLE_ADDR;  
-        iadev->testTable = kmalloc(sizeof(long)*iadev->num_vc, GFP_KERNEL); 
+       iadev->testTable = kmalloc_array(iadev->num_vc,
+                                        sizeof(*iadev->testTable),
+                                        GFP_KERNEL);
         if (!iadev->testTable) {
            printk("Get freepage  failed\n");
           goto err_free_desc_tbl;