[PATCH 4/4] pmc551 pci cleanup

Jiri Slaby jirislaby at gmail.com
Mon Sep 18 18:47:45 EDT 2006


pmc551 pci cleanup

use pci_get_device -- refcounting, release it by pci_dev_put. Use
pci_resource_start for getting start of regions.

Signed-off-by: Jiri Slaby <jirislaby at gmail.com>

---
commit 6fe18c54c93d38eec34ca0776da60fc355968f6b
tree 5bf3cf8fe213de770c7c7a1279eafb3937f4c386
parent 912ff3e53f760cb166988fcd46fc173f8e4c22e7
author Jiri Slaby <xslaby at anemoi.localdomain> Tue, 19 Sep 2006 00:39:08 +0200
committer Jiri Slaby <xslaby at anemoi.localdomain> Tue, 19 Sep 2006 00:39:08 +0200

 drivers/mtd/devices/pmc551.c |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/mtd/devices/pmc551.c b/drivers/mtd/devices/pmc551.c
index 5f5de9c..d1ba4b9 100644
--- a/drivers/mtd/devices/pmc551.c
+++ b/drivers/mtd/devices/pmc551.c
@@ -563,7 +563,7 @@ #ifdef CONFIG_MTD_PMC551_DEBUG
 		size >> 10 : size >> 20,
 		(size < 1024) ? 'B' : (size < 1048576) ? 'K' : 'M', size,
 		((dcmd & (0x1 << 3)) == 0) ? "non-" : "",
-		(unsigned long long)((dev->resource[0].start) &
+		(unsigned long long)(pci_resource_start(dev, 0) &
 				    PCI_BASE_ADDRESS_MEM_MASK));
 
 	/*
@@ -693,13 +693,13 @@ static int __init init_pmc551(void)
 	 */
 	for (count = 0; count < MAX_MTD_DEVICES; count++) {
 
-		if ((PCI_Device = pci_find_device(PCI_VENDOR_ID_V3_SEMI,
-						  PCI_DEVICE_ID_V3_SEMI_V370PDC,
-						  PCI_Device)) == NULL)
+		if ((PCI_Device = pci_get_device(PCI_VENDOR_ID_V3_SEMI,
+				PCI_DEVICE_ID_V3_SEMI_V370PDC,
+				PCI_Device)) == NULL)
 			break;
 
 		printk(KERN_NOTICE "pmc551: Found PCI V370PDC at 0x%llx\n",
-			(unsigned long long)PCI_Device->resource[0].start);
+			(unsigned long long)pci_resource_start(PCI_Device, 0));
 
 		/*
 		 * The PMC551 device acts VERY weird if you don't init it
@@ -711,6 +711,7 @@ static int __init init_pmc551(void)
 		 */
 		if ((length = fixup_pmc551(PCI_Device)) <= 0) {
 			printk(KERN_NOTICE "pmc551: Cannot init SDRAM\n");
+			pci_dev_put(PCI_Device);
 			break;
 		}
 
@@ -729,6 +730,7 @@ static int __init init_pmc551(void)
 		if (!mtd) {
 			printk(KERN_NOTICE "pmc551: Cannot allocate new MTD "
 				"device.\n");
+			pci_dev_put(PCI_Device);
 			break;
 		}
 
@@ -737,6 +739,7 @@ static int __init init_pmc551(void)
 			printk(KERN_NOTICE "pmc551: Cannot allocate new MTD "
 				"device.\n");
 			kfree(mtd);
+			pci_dev_put(PCI_Device);
 			break;
 		}
 		mtd->priv = priv;
@@ -755,14 +758,14 @@ static int __init init_pmc551(void)
 				"size %dM\n", asize >> 20);
 			priv->asize = asize;
 		}
-		priv->start = ioremap(((PCI_Device->resource[0].start)
-					& PCI_BASE_ADDRESS_MEM_MASK),
-				      priv->asize);
+		priv->start = ioremap(pci_resource_start(PCI_Device, 0) &
+				PCI_BASE_ADDRESS_MEM_MASK, priv->asize);
 
 		if (!priv->start) {
 			printk(KERN_NOTICE "pmc551: Unable to map IO space\n");
 			kfree(mtd->priv);
 			kfree(mtd);
+			pci_dev_put(PCI_Device);
 			break;
 		}
 #ifdef CONFIG_MTD_PMC551_DEBUG
@@ -801,6 +804,7 @@ #endif
 			iounmap(priv->start);
 			kfree(mtd->priv);
 			kfree(mtd);
+			pci_dev_put(PCI_Device);
 			break;
 		}
 		printk(KERN_NOTICE "Registered pmc551 memory device.\n");
@@ -844,6 +848,7 @@ static void __exit cleanup_pmc551(void)
 			iounmap(priv->start);
 		}
 
+		pci_dev_put(priv->dev);
 		kfree(mtd->priv);
 		del_mtd_device(mtd);
 		kfree(mtd);




More information about the linux-mtd mailing list