[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 2/2] xen/arm: smmuv3: fix xl pci-assignable-remove


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
  • Date: Fri, 25 Jul 2025 13:45:51 -0400
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CtJVGoCCDiGIX2Ur810mgMZOl0UP4MONen2Bnm/KhZU=; b=GvCMTvf3xHoRbaNzH4IDxFwtdLMkHYODQ1urC8UOirpvVTBnY92LoxCAELAAkc5cemN5j4IxLZWQwXtFWp1617Ka1QbhAonTDzSbn218Y57fzePhoEGr8XYnzuQsjw5nMK1kKpy0QrDKvd9A2tv1iMg1i19CPCHVl/Jhi9/uQR4ahPomjNueDSj5QCJoyfhf6jOI6otV9silCpxwygUNjnilZkZXaowtf/vf4wBQ5l0hcVNhHucrl5vO86FvRlYeFVVYMueDbjwao8aoJ4ZaxijGOyzAkq6wtx63AAWZ7PtZcCpVxBNq0s3zHbjJP44nZFKG/v4pj4pZoEV6OFYqbw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DO2XoOLepif8npNG1okleX46IAAhsESjFZuLe5Zz9EMQJsayYXKNzxP7RKw+W4RCW1AmgJQFHPyFdzRnQUWihyjVRlaYhOn8cvYgu3Im40zbyhLj549i22Z0+c6wBICT9v1GqBiHAfFdVY7aAigMTZVk5E4SuqDqzGaElIqi7V+nOHEhSxt+0F9Co3WaqH5w0CLlo4YtIMQNQMUDsvpl6yApT9LsaBB+OA/kb2unWJWS9dWHzogqqu+EUy45zFOEjwZRI26DfyQhfm+8D8k2usZu7d1rooYqQyLzcb0WNSHigfY3Jf6V/INhm+MJH+13C6qGQSJP8QoZBhwQAGesBw==
  • Cc: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Rahul Singh <rahul.singh@xxxxxxx>, "Stefano Stabellini" <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, "Michal Orzel" <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Fri, 25 Jul 2025 17:46:16 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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>
Acked-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
---
v1->v2:
* use %pd in print format
* add Bertrand's A-b
---
 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..5e9e3e048e34 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 %pd\n", d);
+               return -ESRCH;
+       }
+
        spin_lock(&xen_domain->lock);
 
        arm_smmu_detach_dev(master);
-- 
2.50.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.