From 6ada35e3ac64961a990b347a52f52c4ea18689d5 Mon Sep 17 00:00:00 2001
From: Daniel J Blueman <daniel@numascale.com>
Date: Sun, 1 Mar 2015 16:51:31 +0800
Subject: [PATCH 1/2] APIC

Signed-off-by: Daniel J Blueman <daniel@numascale.com>
---
 arch/x86/include/asm/apicdef.h | 3 ++-
 arch/x86/mm/srat.c             | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/apicdef.h b/arch/x86/include/asm/apicdef.h
index c46bb99..e70f489 100644
--- a/arch/x86/include/asm/apicdef.h
+++ b/arch/x86/include/asm/apicdef.h
@@ -152,7 +152,8 @@
 # define MAX_LOCAL_APIC 256
 #else
 # define MAX_IO_APICS 128
-# define MAX_LOCAL_APIC 32768
+/* Allow for structured x2APIC ID space, as per Intel spec */
+# define MAX_LOCAL_APIC 1048576
 #endif
 
 /*
diff --git a/arch/x86/mm/srat.c b/arch/x86/mm/srat.c
index 66338a6..d3845bf 100644
--- a/arch/x86/mm/srat.c
+++ b/arch/x86/mm/srat.c
@@ -98,7 +98,7 @@ acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa)
 		return;
 	}
 
-	if (apic_id >= MAX_LOCAL_APIC) {
+	if (apic_id > MAX_LOCAL_APIC) {
 		printk(KERN_INFO "SRAT: PXM %u -> APIC 0x%04x -> Node %u skipped apicid that is too big\n", pxm, apic_id, node);
 		return;
 	}
-- 
2.1.0

