|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 2/2] xen/arm: smmuv3: fix xl pci-assignable-remove
On Wed, Jul 23, 2025 at 06:54:20PM -0400, Stewart Hildebrand wrote:
> When attempting to xl pci-assignable-remove a PCI device, we encounter:
>
> $ xl pci-assignable-remove 00:01.0
> (XEN) SMMUv3: <no-node>: not attached to domain 32753
> (XEN) d[IO]: deassign (0000:00:01.0) failed (-3)
> libxl: error: libxl_pci.c:910:libxl__device_pci_assignable_remove: failed to
> de-quarantine 0000:00:01.0
>
> When a PCI device is being deassigned from domIO,
> arm_smmu_deassign_dev() should return before checking the smmu domain.
>
> Fixes: 63919fc4d1ca ("xen/arm: smmuv3: Add PCI devices support for SMMUv3")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
> ---
> xen/drivers/passthrough/arm/smmu-v3.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c
> b/xen/drivers/passthrough/arm/smmu-v3.c
> index db08d3c04269..9312bb3c72d8 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.c
> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> @@ -2747,11 +2747,6 @@ static int arm_smmu_deassign_dev(struct domain *d,
> uint8_t devfn, struct device
> struct arm_smmu_domain *smmu_domain = to_smmu_domain(io_domain);
> struct arm_smmu_master *master = dev_iommu_priv_get(dev);
>
> - if (!smmu_domain || smmu_domain->d != d) {
> - dev_err(dev, " not attached to domain %d\n", d->domain_id);
> - return -ESRCH;
> - }
> -
> #ifdef CONFIG_HAS_PCI
> if ( dev_is_pci(dev) )
> {
> @@ -2767,6 +2762,11 @@ static int arm_smmu_deassign_dev(struct domain *d,
> uint8_t devfn, struct device
> }
> #endif
>
> + if (!smmu_domain || smmu_domain->d != d) {
> + dev_err(dev, " not attached to domain %d\n", d->domain_id);
Use %pd?
dev_err(dev, " not attached to %pd\n", d);
> + return -ESRCH;
> + }
> +
> spin_lock(&xen_domain->lock);
>
> arm_smmu_detach_dev(master);
> --
> 2.50.1
>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |