mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 21:54:06 +08:00
hpsa: always call pci_set_master after pci_enable_device
If the kernel is booted with the reset_device parameter, which is done for kdump, then the driver needs to call pci_set_master after pci_enable_device to reenable bus mastering (since the preceding pci_disable_device call disables bus mastering). Also, place that after pci_request_regions both in the kdump code and the normal pci_init code. Remove the comment summarizing what pci_set_master does, with the incomplete commentary on the impact of pci_disable_device. Signed-off-by: Robert Elliott <elliott@hp.com> Signed-off-by: Don Brace <don.brace@pmcs.com> Reviewed-by: Don Brace <don.brace@pmcs.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
763aadbf50
commit
4fa604e13b
@ -6363,15 +6363,15 @@ static int hpsa_pci_init(struct ctlr_info *h)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enable bus mastering (pci_disable_device may disable this) */
|
|
||||||
pci_set_master(h->pdev);
|
|
||||||
|
|
||||||
err = pci_request_regions(h->pdev, HPSA);
|
err = pci_request_regions(h->pdev, HPSA);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(&h->pdev->dev,
|
dev_err(&h->pdev->dev,
|
||||||
"cannot obtain PCI resources, aborting\n");
|
"cannot obtain PCI resources, aborting\n");
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pci_set_master(h->pdev);
|
||||||
|
|
||||||
hpsa_interrupt_mode(h);
|
hpsa_interrupt_mode(h);
|
||||||
err = hpsa_pci_find_memory_BAR(h->pdev, &h->paddr);
|
err = hpsa_pci_find_memory_BAR(h->pdev, &h->paddr);
|
||||||
if (err)
|
if (err)
|
||||||
@ -6451,7 +6451,9 @@ static int hpsa_init_reset_devices(struct pci_dev *pdev)
|
|||||||
dev_warn(&pdev->dev, "failed to enable device.\n");
|
dev_warn(&pdev->dev, "failed to enable device.\n");
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
pci_set_master(pdev);
|
pci_set_master(pdev);
|
||||||
|
|
||||||
/* Reset the controller with a PCI power-cycle or via doorbell */
|
/* Reset the controller with a PCI power-cycle or via doorbell */
|
||||||
rc = hpsa_kdump_hard_reset_controller(pdev);
|
rc = hpsa_kdump_hard_reset_controller(pdev);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user