iommu/amd: Fix DTE_IRQ_PHYS_ADDR_MASK macro
authorVasant Hegde <vasant.hegde@amd.com>
Fri, 9 Jun 2023 09:03:27 +0000 (09:03 +0000)
committerJoerg Roedel <jroedel@suse.de>
Fri, 16 Jun 2023 14:30:59 +0000 (16:30 +0200)
Interrupt Table Root Pointer is 52 bit and table must be aligned to start
on a 128-byte boundary. Hence first 6 bits are ignored.

Current code uses address mask as 45 instead of 46bit. Use GENMASK_ULL
macro instead of manually generating address mask.

Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Link: https://lore.kernel.org/r/20230609090327.5923-1-vasant.hegde@amd.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd/amd_iommu_types.h

index 5a4e044..7d95786 100644 (file)
 #define AMD_IOMMU_PGSIZES_V2   (PAGE_SIZE | (1ULL << 21) | (1ULL << 30))
 
 /* Bit value definition for dte irq remapping fields*/
-#define DTE_IRQ_PHYS_ADDR_MASK (((1ULL << 45)-1) << 6)
+#define DTE_IRQ_PHYS_ADDR_MASK         GENMASK_ULL(51, 6)
 #define DTE_IRQ_REMAP_INTCTL_MASK      (0x3ULL << 60)
 #define DTE_IRQ_REMAP_INTCTL    (2ULL << 60)
 #define DTE_IRQ_REMAP_ENABLE    1ULL