Commit 0302899e144296d6ce8cb3679a9a42d5c6436910

Authored by Julia Lawall
Committed by David S. Miller
1 parent 89e9aad65f

drivers/ide/cy82c693.c: Add missing pci_dev_put

Pci_get_slot calls pci_dev_get, so pci_dev_put is needed before leaving the
function in the case where pci_get_slot is locally used.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
local idexpression x;
expression e;
@@

*x = pci_get_slot(...)
... when != true x == NULL
    when != pci_dev_put(x)
    when != e = x
    when != if (x != NULL) {<+... pci_dev_put(x); ...+>}
*return ...;
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 2 additions and 0 deletions Side-by-side Diff

drivers/ide/cy82c693.c
... ... @@ -141,6 +141,8 @@
141 141 pci_write_config_byte(dev, CY82_IDE_SLAVE_IOW, time_16);
142 142 pci_write_config_byte(dev, CY82_IDE_SLAVE_8BIT, time_8);
143 143 }
  144 + if (hwif->index > 0)
  145 + pci_dev_put(dev);
144 146 }
145 147  
146 148 static void __devinit init_iops_cy82c693(ide_hwif_t *hwif)