be2iscsi : Fix the PCI request region reserving.
Reserve device PCI I/O and Memory resources. Signed-off-by: John Soni Jose <sony.john-n@emulex.com> Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Odin.com>
This commit is contained in:
parent
3efde86222
commit
e307f3ac12
@ -668,14 +668,20 @@ static int beiscsi_enable_pci(struct pci_dev *pcidev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = pci_request_regions(pcidev, DRV_NAME);
|
||||
if (ret) {
|
||||
dev_err(&pcidev->dev,
|
||||
"beiscsi_enable_pci - request region failed\n");
|
||||
goto pci_dev_disable;
|
||||
}
|
||||
|
||||
pci_set_master(pcidev);
|
||||
ret = pci_set_dma_mask(pcidev, DMA_BIT_MASK(64));
|
||||
if (ret) {
|
||||
ret = pci_set_dma_mask(pcidev, DMA_BIT_MASK(32));
|
||||
if (ret) {
|
||||
dev_err(&pcidev->dev, "Could not set PCI DMA Mask\n");
|
||||
pci_disable_device(pcidev);
|
||||
return ret;
|
||||
goto pci_region_release;
|
||||
} else {
|
||||
ret = pci_set_consistent_dma_mask(pcidev,
|
||||
DMA_BIT_MASK(32));
|
||||
@ -684,11 +690,17 @@ static int beiscsi_enable_pci(struct pci_dev *pcidev)
|
||||
ret = pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(64));
|
||||
if (ret) {
|
||||
dev_err(&pcidev->dev, "Could not set PCI DMA Mask\n");
|
||||
pci_disable_device(pcidev);
|
||||
return ret;
|
||||
goto pci_region_release;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
pci_region_release:
|
||||
pci_release_regions(pcidev);
|
||||
pci_dev_disable:
|
||||
pci_disable_device(pcidev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int be_ctrl_init(struct beiscsi_hba *phba, struct pci_dev *pdev)
|
||||
@ -5275,6 +5287,7 @@ static void beiscsi_remove(struct pci_dev *pcidev)
|
||||
iscsi_host_free(phba->shost);
|
||||
pci_disable_pcie_error_reporting(pcidev);
|
||||
pci_set_drvdata(pcidev, NULL);
|
||||
pci_release_regions(pcidev);
|
||||
pci_disable_device(pcidev);
|
||||
}
|
||||
|
||||
@ -5755,6 +5768,7 @@ hba_free:
|
||||
iscsi_host_free(phba->shost);
|
||||
pci_set_drvdata(pcidev, NULL);
|
||||
disable_pci:
|
||||
pci_release_regions(pcidev);
|
||||
pci_disable_device(pcidev);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user