Hi

This patch makes Emulex lpfc driver legacy I/O port free.
It has already been acked quite long time ago.
So I resubmit the patch.
http://lkml.org/lkml/2006/11/22/28

Current lpfc driver is already using pci_select_bars()
and pci_enable_device_bars() when the PCI bus has been reset.
So I think this patch should also be acked.

Tomohiro Kusumi

Signed-off-by: Tomohiro Kusumi <[EMAIL PROTECTED]>

---
diff -Nurp linux-2.6.22.org/drivers/scsi/lpfc/lpfc_init.c 
linux-2.6.22/drivers/scsi/lpfc/lpfc_init.c
--- linux-2.6.22.org/drivers/scsi/lpfc/lpfc_init.c      2007-07-09 
08:32:17.000000000 +0900
+++ linux-2.6.22/drivers/scsi/lpfc/lpfc_init.c  2007-08-10 17:11:55.000000000 
+0900
@@ -1356,6 +1356,7 @@ lpfc_scsi_free(struct lpfc_hba * phba)
 void lpfc_remove_device(struct lpfc_hba *phba)
 {
        unsigned long iflag;
+       int bars = pci_select_bars(phba->pcidev, IORESOURCE_MEM);

        lpfc_free_sysfs_attr(phba);

@@ -1400,7 +1401,7 @@ void lpfc_remove_device(struct lpfc_hba
        iounmap(phba->ctrl_regs_memmap_p);
        iounmap(phba->slim_memmap_p);

-       pci_release_regions(phba->pcidev);
+       pci_release_selected_regions(phba->pcidev, bars);
        pci_disable_device(phba->pcidev);

        idr_remove(&lpfc_hba_index, phba->brd_no);
@@ -1515,10 +1516,11 @@ lpfc_pci_probe_one(struct pci_dev *pdev,
        int error = -ENODEV, retval;
        int i;
        uint16_t iotag;
+       int bars = pci_select_bars(pdev, IORESOURCE_MEM);

-       if (pci_enable_device(pdev))
+       if (pci_enable_device_bars(pdev, bars))
                goto out;
-       if (pci_request_regions(pdev, LPFC_DRIVER_NAME))
+       if (pci_request_selected_regions(pdev, bars, LPFC_DRIVER_NAME))
                goto out_disable_device;

        host = scsi_host_alloc(&lpfc_template, sizeof (struct lpfc_hba));
@@ -1748,7 +1750,7 @@ out_put_host:
        phba->host = NULL;
        scsi_host_put(host);
 out_release_regions:
-       pci_release_regions(pdev);
+       pci_release_selected_regions(pdev, bars);
 out_disable_device:
        pci_disable_device(pdev);

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to