Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5bf0f4f authored by Sinan Kaya's avatar Sinan Kaya Committed by Bjorn Helgaas
Browse files

iommu/amd: Deprecate pci_get_bus_and_slot()



pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
where a PCI device is present. This restricts the device drivers to be
reused for other domain numbers.

Getting ready to remove pci_get_bus_and_slot() function in favor of
pci_get_domain_bus_and_slot().

Hard-code the domain number as 0 for the AMD IOMMU driver.

Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
Signed-off-by: default avatarBjorn Helgaas <helgaas@kernel.org>
Reviewed-by: default avatarGary R Hook <gary.hook@amd.com>
Acked-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 8c016394
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -527,7 +527,8 @@ static void amd_iommu_report_page_fault(u16 devid, u16 domain_id,
	struct iommu_dev_data *dev_data = NULL;
	struct pci_dev *pdev;

	pdev = pci_get_bus_and_slot(PCI_BUS_NUM(devid), devid & 0xff);
	pdev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(devid),
					   devid & 0xff);
	if (pdev)
		dev_data = get_dev_data(&pdev->dev);

+5 −4
Original line number Diff line number Diff line
@@ -1697,7 +1697,7 @@ static int iommu_init_pci(struct amd_iommu *iommu)
	u32 range, misc, low, high;
	int ret;

	iommu->dev = pci_get_bus_and_slot(PCI_BUS_NUM(iommu->devid),
	iommu->dev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(iommu->devid),
						 iommu->devid & 0xff);
	if (!iommu->dev)
		return -ENODEV;
@@ -1764,7 +1764,8 @@ static int iommu_init_pci(struct amd_iommu *iommu)
	if (is_rd890_iommu(iommu->dev)) {
		int i, j;

		iommu->root_pdev = pci_get_bus_and_slot(iommu->dev->bus->number,
		iommu->root_pdev =
			pci_get_domain_bus_and_slot(0, iommu->dev->bus->number,
						    PCI_DEVFN(0, 0));

		/*
+2 −1
Original line number Diff line number Diff line
@@ -564,7 +564,8 @@ static int ppr_notifier(struct notifier_block *nb, unsigned long e, void *data)
	finish      = (iommu_fault->tag >> 9) & 1;

	devid = iommu_fault->device_id;
	pdev = pci_get_bus_and_slot(PCI_BUS_NUM(devid), devid & 0xff);
	pdev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(devid),
					   devid & 0xff);
	if (!pdev)
		return -ENODEV;
	dev_data = get_dev_data(&pdev->dev);