iommu/vt-d: Make DMAR_UNITS_SUPPORTED default 1024
authorLu Baolu <baolu.lu@linux.intel.com>
Tue, 12 Jul 2022 00:09:08 +0000 (08:09 +0800)
committerJoerg Roedel <jroedel@suse.de>
Fri, 15 Jul 2022 08:21:43 +0000 (10:21 +0200)
If the available hardware exceeds DMAR_UNITS_SUPPORTED (previously set
to MAX_IO_APICS, or 128), it causes these messages: "DMAR: Failed to
allocate seq_id", "DMAR: Parse DMAR table failure.", and "x2apic: IRQ
remapping doesn't support X2APIC mode x2apic disabled"; and the system
fails to boot properly.

To support up to 64 sockets with 10 DMAR units each (640), make the
value of DMAR_UNITS_SUPPORTED default 1024.

Signed-off-by: Steve Wahl<steve.wahl@hpe.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Steve Wahl <steve.wahl@hpe.com>
Link: https://lore.kernel.org/linux-iommu/20220615183650.32075-1-steve.wahl@hpe.com/
Link: https://lore.kernel.org/r/20220702015610.2849494-7-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
include/linux/dmar.h

index cbd714a..d81a519 100644 (file)
 
 struct acpi_dmar_header;
 
-#ifdef CONFIG_X86
-# define       DMAR_UNITS_SUPPORTED    MAX_IO_APICS
-#else
-# define       DMAR_UNITS_SUPPORTED    64
-#endif
+#define DMAR_UNITS_SUPPORTED   1024
 
 /* DMAR Flags */
 #define DMAR_INTR_REMAP                0x1