thunderbolt: Correct the size argument to devm_kzalloc
authorHimangi Saraogi <himangi774@gmail.com>
Sun, 6 Jul 2014 16:13:42 +0000 (21:43 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Jul 2014 01:56:20 +0000 (18:56 -0700)
nhi->rx_rings does not have type as struct tb_ring *, as it is a
double pointer so the elements of the array should have pointer type,
not structure type.

The Coccinelle semantic patch that makes this change is as follows:

// <smpl>
@disable sizeof_type_expr@
type T;
T **x;
@@

  x =
  <+...sizeof(
- T
+ *x
  )...+>
// </smpl>

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Cc: Andreas Noever <andreas.noever@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/thunderbolt/nhi.c

index 2054fbf..ce72f31 100644 (file)
@@ -570,10 +570,10 @@ static int nhi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        INIT_WORK(&nhi->interrupt_work, nhi_interrupt_work);
 
        nhi->tx_rings = devm_kzalloc(&pdev->dev,
-                                    nhi->hop_count * sizeof(struct tb_ring),
+                                    nhi->hop_count * sizeof(*nhi->tx_rings),
                                     GFP_KERNEL);
        nhi->rx_rings = devm_kzalloc(&pdev->dev,
-                                    nhi->hop_count * sizeof(struct tb_ring),
+                                    nhi->hop_count * sizeof(*nhi->rx_rings),
                                     GFP_KERNEL);
        if (!nhi->tx_rings || !nhi->rx_rings)
                return -ENOMEM;