Messages in this thread Patch in this message | | | Date | Sat, 3 Nov 2007 16:16:21 +0100 (CET) | From | Julia Lawall <> | Subject | [PATCH] drivers/misc: Move misplaced pci_dev_put's. |
| |
From: Julia Lawall <julia@diku.dk>
Move pci_dev_put outside the loops in which it occurs. Within the loop, pci_dev_put is done implicitly by pci_get_device.
The problem was detected using the following semantic patch, and corrected by hand.
@@ expression dev; expression E; @@
- pci_dev_put(dev) ... when != dev = E - pci_get_device(...,dev)
Signed-off-by: Julia Lawall <julia@diku.dk>
---
diff -up a/drivers/misc/ioc4.c b/drivers/misc/ioc4.c --- a/drivers/misc/ioc4.c 2007-06-02 22:32:17.000000000 +0200 +++ b/drivers/misc/ioc4.c 2007-11-03 15:42:48.000000000 +0100 @@ -244,10 +244,11 @@ ioc4_variant(struct ioc4_driver_data *id idd->idd_pdev->bus->number == pdev->bus->number && 3 == PCI_SLOT(pdev->devfn)) found = 1; - pci_dev_put(pdev); } while (pdev && !found); - if (NULL != pdev) + if (NULL != pdev) { + pci_dev_put(pdev); return IOC4_VARIANT_IO9; + }
/* IO10: Look for a Vitesse VSC 7174 at the same bus and slot 3. */ pdev = NULL; @@ -258,10 +259,11 @@ ioc4_variant(struct ioc4_driver_data *id idd->idd_pdev->bus->number == pdev->bus->number && 3 == PCI_SLOT(pdev->devfn)) found = 1; - pci_dev_put(pdev); } while (pdev && !found); - if (NULL != pdev) + if (NULL != pdev) { + pci_dev_put(pdev); return IOC4_VARIANT_IO10; + }
/* PCI-RT: No SCSI/SATA controller will be present */ return IOC4_VARIANT_PCI_RT; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |