[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] IOMMU: log appropriate SBDF
commit e509b5f932608e74deac96048b28a5e9b210c647 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Wed Apr 13 12:36:03 2022 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Wed Apr 13 12:36:03 2022 +0200 IOMMU: log appropriate SBDF To handle phantom devices, several functions are passed separate "devfn" arguments besides a PCI device. In such cases we want to log the phantom device's coordinates instead of the main one's. (Note that not all of the instances being changed are fallout from the referenced commit.) Fixes: 1ee1441835f4 ("print: introduce a format specifier for pci_sbdf_t") Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- xen/drivers/passthrough/amd/iommu_cmd.c | 3 ++- xen/drivers/passthrough/amd/pci_amd_iommu.c | 14 +++++++------- xen/drivers/passthrough/pci.c | 5 +++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/xen/drivers/passthrough/amd/iommu_cmd.c b/xen/drivers/passthrough/amd/iommu_cmd.c index 000ae1bf59..c26ad9e7d7 100644 --- a/xen/drivers/passthrough/amd/iommu_cmd.c +++ b/xen/drivers/passthrough/amd/iommu_cmd.c @@ -291,7 +291,8 @@ void amd_iommu_flush_iotlb(u8 devfn, const struct pci_dev *pdev, if ( !iommu ) { - AMD_IOMMU_WARN("can't find IOMMU for %pp\n", &pdev->sbdf); + AMD_IOMMU_WARN("can't find IOMMU for %pp\n", + &PCI_SBDF3(pdev->seg, pdev->bus, devfn)); return; } diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c index 84858dea1f..3430e39a29 100644 --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c @@ -461,7 +461,7 @@ static int cf_check reassign_device( if ( !iommu ) { AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be assigned to %pd\n", - &pdev->sbdf, target); + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), target); return -ENODEV; } @@ -497,8 +497,8 @@ static int cf_check reassign_device( return rc; } - AMD_IOMMU_DEBUG("Re-assign %pp from dom%d to dom%d\n", - &pdev->sbdf, source->domain_id, target->domain_id); + AMD_IOMMU_DEBUG("Re-assign %pp from %pd to %pd\n", + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), source, target); return 0; } @@ -575,7 +575,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev) } AMD_IOMMU_WARN("no IOMMU for %pp; cannot be handed to %pd\n", - &pdev->sbdf, pdev->domain); + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), pdev->domain); return -ENODEV; } @@ -618,7 +618,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev) ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map, 0) ) AMD_IOMMU_WARN("%pd: unity mapping failed for %pp\n", - pdev->domain, &pdev->sbdf); + pdev->domain, &PCI_SBDF2(pdev->seg, bdf)); if ( iommu_quarantine && pdev->arch.pseudo_domid == DOMID_INVALID ) { @@ -651,7 +651,7 @@ static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev) if ( !iommu ) { AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be removed from %pd\n", - &pdev->sbdf, pdev->domain); + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), pdev->domain); return -ENODEV; } @@ -664,7 +664,7 @@ static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev) pdev->domain, ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map) ) AMD_IOMMU_WARN("%pd: unity unmapping failed for %pp\n", - pdev->domain, &pdev->sbdf); + pdev->domain, &PCI_SBDF2(pdev->seg, bdf)); amd_iommu_quarantine_teardown(pdev); diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c index d86ae67ae2..136cc8ae3d 100644 --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -1406,7 +1406,7 @@ static int iommu_add_device(struct pci_dev *pdev) rc = iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(pdev)); if ( rc ) printk(XENLOG_WARNING "IOMMU: add %pp failed (%d)\n", - &pdev->sbdf, rc); + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), rc); } } @@ -1451,7 +1451,8 @@ static int iommu_remove_device(struct pci_dev *pdev) if ( !rc ) continue; - printk(XENLOG_ERR "IOMMU: remove %pp failed (%d)\n", &pdev->sbdf, rc); + printk(XENLOG_ERR "IOMMU: remove %pp failed (%d)\n", + &PCI_SBDF3(pdev->seg, pdev->bus, devfn), rc); return rc; } -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |