]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
intel_iommu: fix FRCD construction macro
authorClément Mathieu--Drif <clement.mathieu--drif@eviden.com>
Tue, 9 Jul 2024 14:26:08 +0000 (14:26 +0000)
committerMichael S. Tsirkin <mst@redhat.com>
Sun, 21 Jul 2024 18:45:40 +0000 (14:45 -0400)
The constant must be unsigned, otherwise the two's complement
overrides the other fields when a PASID is present.

Fixes: 1b2b12376c8a ("intel-iommu: PASID support")
Signed-off-by: Clément Mathieu--Drif <clement.mathieu--drif@eviden.com>
Reviewed-by: Yi Liu <yi.l.liu@intel.com>
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Minwoo Im <minwoo.im@samsung.com>
Message-Id: <20240709142557.317271-2-clement.mathieu--drif@eviden.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/i386/intel_iommu_internal.h

index f8cf99bddfec791c4c322fdbd8ff7de3824f7e6f..cbc4030031e8c87fc8529a9930617fa9b3e3508f 100644 (file)
 /* For the low 64-bit of 128-bit */
 #define VTD_FRCD_FI(val)        ((val) & ~0xfffULL)
 #define VTD_FRCD_PV(val)        (((val) & 0xffffULL) << 40)
-#define VTD_FRCD_PP(val)        (((val) & 0x1) << 31)
+#define VTD_FRCD_PP(val)        (((val) & 0x1ULL) << 31)
 #define VTD_FRCD_IR_IDX(val)    (((val) & 0xffffULL) << 48)
 
 /* DMA Remapping Fault Conditions */