From 1376f6e9ef581b2d48c3f7a2353bdb847981c894 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Sun, 26 Apr 2026 22:13:41 +0100 Subject: [PATCH] virtio-devices: iommu: Return NOENT for UNMAP on unknown domain The virtio spec mandates VIRTIO_IOMMU_S_NOENT, not S_INVAL, when the target domain does not exist. Signed-off-by: Rob Bradford Assisted-by: Claude:claude-opus-4-7 --- virtio-devices/src/iommu.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/virtio-devices/src/iommu.rs b/virtio-devices/src/iommu.rs index 895b70800..61ed76773 100644 --- a/virtio-devices/src/iommu.rs +++ b/virtio-devices/src/iommu.rs @@ -621,7 +621,7 @@ impl Request { return Err(Error::InvalidUnmapRequestBypassDomain); } } else { - status = VIRTIO_IOMMU_S_INVAL; + status = VIRTIO_IOMMU_S_NOENT; return Err(Error::InvalidUnmapRequestMissingDomain); } @@ -641,7 +641,7 @@ impl Request { { let domains = mapping.domains.read().unwrap(); let Some(domain) = domains.get(&domain_id) else { - status = VIRTIO_IOMMU_S_INVAL; + status = VIRTIO_IOMMU_S_NOENT; return Err(Error::InvalidUnmapRequestMissingDomain); }; for (&start, m) in domain.mappings.iter() { @@ -678,7 +678,7 @@ impl Request { let mut domains = mapping.domains.write().unwrap(); let Some(domain) = domains.get_mut(&domain_id) else { - status = VIRTIO_IOMMU_S_INVAL; + status = VIRTIO_IOMMU_S_NOENT; return Err(Error::InvalidUnmapRequestMissingDomain); }; domain