mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 01:10:04 +00:00
[SCSI] lpfc 8.2.4 : Make lpfc legacy I/O port free
This is a patch written by Tomohiro Kusumi and submitted to linux-scsi: http://marc.info/?l=linux-scsi&m=118673720712152&w=2 The original patch comment: 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. Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@jp.fujitsu.com> Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
0937282036
commit
8a4df120b0
1 changed files with 7 additions and 4 deletions
|
@ -1892,10 +1892,11 @@ lpfc_pci_probe_one(struct pci_dev *pdev, const struct pci_device_id *pid)
|
|||
int error = -ENODEV, retval;
|
||||
int i, hbq_count;
|
||||
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;
|
||||
|
||||
phba = kzalloc(sizeof (struct lpfc_hba), GFP_KERNEL);
|
||||
|
@ -2167,7 +2168,7 @@ lpfc_pci_probe_one(struct pci_dev *pdev, const struct pci_device_id *pid)
|
|||
out_free_phba:
|
||||
kfree(phba);
|
||||
out_release_regions:
|
||||
pci_release_regions(pdev);
|
||||
pci_release_selected_regions(pdev, bars);
|
||||
out_disable_device:
|
||||
pci_disable_device(pdev);
|
||||
out:
|
||||
|
@ -2183,6 +2184,8 @@ lpfc_pci_remove_one(struct pci_dev *pdev)
|
|||
struct Scsi_Host *shost = pci_get_drvdata(pdev);
|
||||
struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
|
||||
struct lpfc_hba *phba = vport->phba;
|
||||
int bars = pci_select_bars(pdev, IORESOURCE_MEM);
|
||||
|
||||
spin_lock_irq(&phba->hbalock);
|
||||
vport->load_flag |= FC_UNLOADING;
|
||||
spin_unlock_irq(&phba->hbalock);
|
||||
|
@ -2241,7 +2244,7 @@ lpfc_pci_remove_one(struct pci_dev *pdev)
|
|||
|
||||
kfree(phba);
|
||||
|
||||
pci_release_regions(pdev);
|
||||
pci_release_selected_regions(pdev, bars);
|
||||
pci_disable_device(pdev);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue