[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] xen/amd/iommu: Don't swap the IVMD read and write permissions
- To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Stefano Stabellini <stefano.stabellini@xxxxxxx>
- Date: Tue, 20 Oct 2026 15:08:21 -0700
- 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=2XFgylyY5lCQI8u54Xl+Lijc4iEF4EWHbGduJ1YJbxQ=; b=sgnU4k5JRvTy8P3WFdqpQD287xZKP5bTEmkeVupyV/HyMfFQrCqIJewP2mKsRm9yPgVkR41+aYdh2XqKxwpD7o5sNjuispq3xIFEUaHdOlwodHz+o5iDASAp2il7G4wauzRVUHXtEAPAHCYuXtYZ0+J0qnHnVdfUr2it0AbYnUzljgCPE4S1WnhKHE81/o3aqTjWBfcZgl0tsW66H/LtGltJzDpK7GOnYTtNr8nWb5hQVFtb6BX/ZGKqWPqMK3TIzmT8yvDsV/pgKA00ZFyO2z9UwR8HF/CPs2nnkqCNZBkWQSDE/67EgeMtoLtJB+LdOuJ2YF5WYHn6utAfzdq7vQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xjjv2jLpxXhIcXeZtgGvESP5yoDQqTVBR6lRKUKAKR1cIY62FgX4C383A19qeB71Z5AUp8nO/excsTdzAYfkFDEUq0ElSW2O4NCITZKy79z80U6GJn2fkHCXA1mLzPa8oCLwVv0CDMQyf+PqJ3p9OvjdFL+YaJtPETQf6IAZ1IHABJXbCX6/8x+hRSh0FgxezbXjfGR1azf8mtLxffMDhBp6vQ+p8r4j3kMcI+cq9dvwAIsS3+s49uIPxwD6Vzedmtiecs8TZmEEBScDUH1DRLyhzbULKLpJu69n4ErzoTOQlNAUcelREL1j4MEQI2y2cvIeR/lgr/GdG+ol8NLSzg==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Cc: <jbeulich@xxxxxxxx>, <andrew.cooper3@xxxxxxxxxx>, <roger@xxxxxxxxxxxxxx>, <jason.andryuk@xxxxxxx>, <teddy.astie@xxxxxxxxxx>, <stefano.stabellini@xxxxxxx>
- Delivery-date: Tue, 20 Oct 2026 22:08:38 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
Per the IVMD Flags definition, bit 1 is IR and bit 2 is IW, matching
ACPI_IVMD_READ and ACPI_IVMD_WRITE. parse_ivmd_block() takes iw from
the former and ir from the latter, so a unity range firmware declares
read-only is mapped write-only, and vice versa.
Ranges with both permissions, including Xen's own, are unaffected.
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxx>
---
xen/drivers/passthrough/amd/iommu_acpi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c
b/xen/drivers/passthrough/amd/iommu_acpi.c
index 4688908824..fe3dee872c 100644
--- a/xen/drivers/passthrough/amd/iommu_acpi.c
+++ b/xen/drivers/passthrough/amd/iommu_acpi.c
@@ -414,8 +414,8 @@ static int __init parse_ivmd_block(const struct
acpi_ivrs_memory *ivmd_block)
exclusion = true;
else if ( ivmd_block->header.flags & ACPI_IVMD_UNITY )
{
- iw = ivmd_block->header.flags & ACPI_IVMD_READ;
- ir = ivmd_block->header.flags & ACPI_IVMD_WRITE;
+ iw = ivmd_block->header.flags & ACPI_IVMD_WRITE;
+ ir = ivmd_block->header.flags & ACPI_IVMD_READ;
}
else
{
--
2.43.0
|