From: VMware, Inc <> Date: Thu, 17 Dec 2009 21:29:12 +0000 (-0800) Subject: Use pci_io(un)map API's X-Git-Tag: 2009.12.16-217847~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=620fafbb47e74d30fa6563e9cca3223c1a2fc63d;p=thirdparty%2Fopen-vm-tools.git Use pci_io(un)map API's Use the standard iomap API's for PCI devices. Signed-off-by: Marcelo Vanzin --- diff --git a/open-vm-tools/modules/linux/pvscsi/pvscsi.c b/open-vm-tools/modules/linux/pvscsi/pvscsi.c index 41852d89b..c01fd52f4 100644 --- a/open-vm-tools/modules/linux/pvscsi/pvscsi.c +++ b/open-vm-tools/modules/linux/pvscsi/pvscsi.c @@ -1153,7 +1153,7 @@ static void pvscsi_release_resources(struct pvscsi_adapter *adapter) destroy_workqueue(adapter->workqueue); if (adapter->mmioBase) - iounmap(adapter->mmioBase); + pci_iounmap(adapter->dev, adapter->mmioBase); pci_release_regions(adapter->dev); @@ -1226,7 +1226,7 @@ static int __devinit pvscsi_probe(struct pci_dev *pdev, { struct pvscsi_adapter *adapter; struct Scsi_Host *host; - unsigned long base, i; + unsigned int i; int error; error = -ENODEV; @@ -1278,27 +1278,25 @@ static int __devinit pvscsi_probe(struct pci_dev *pdev, goto out_free_host; } - base = 0; for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { if ((pci_resource_flags(pdev, i) & PCI_BASE_ADDRESS_SPACE_IO)) continue; - if (pci_resource_len(pdev, i) < - PVSCSI_MEM_SPACE_NUM_PAGES * PAGE_SIZE) + if (pci_resource_len(pdev, i) < PVSCSI_MEM_SPACE_SIZE) continue; - base = pci_resource_start(pdev, i); break; } - if (base == 0) { + if (i == DEVICE_COUNT_RESOURCE) { printk(KERN_ERR "pvscsi: adapter has no suitable MMIO region\n"); goto out_release_resources; } - adapter->mmioBase = ioremap(base, PVSCSI_MEM_SPACE_SIZE); + adapter->mmioBase = pci_iomap(pdev, i, PVSCSI_MEM_SPACE_SIZE); if (!adapter->mmioBase) { - printk(KERN_ERR "pvscsi: can't ioremap 0x%lx\n", base); + printk(KERN_ERR "pvscsi: can't iomap for BAR %d memsize %lu\n", + i, PVSCSI_MEM_SPACE_SIZE); goto out_release_resources; }