Disable parsing of the HMAT for debug, to workaround broken platform instances, or cases where it is otherwise not wanted. Cc: x86@xxxxxxxxxx Cc: "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx> Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> Cc: Andy Lutomirski <luto@xxxxxxxxxx> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Cc: Borislav Petkov <bp@xxxxxxxxx> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> --- arch/x86/mm/numa.c | 4 ++++ drivers/acpi/numa/hmat.c | 3 ++- include/acpi/acpi_numa.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c index 59ba008504dc..22de2e2610c1 100644 --- a/arch/x86/mm/numa.c +++ b/arch/x86/mm/numa.c @@ -44,6 +44,10 @@ static __init int numa_setup(char *opt) #ifdef CONFIG_ACPI_NUMA if (!strncmp(opt, "noacpi", 6)) acpi_numa = -1; +#ifdef CONFIG_ACPI_HMAT + if (!strncmp(opt, "nohmat", 6)) + hmat_disable = 1; +#endif #endif return 0; } diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c index 2c32cfb72370..d3db121e393a 100644 --- a/drivers/acpi/numa/hmat.c +++ b/drivers/acpi/numa/hmat.c @@ -26,6 +26,7 @@ #include <linux/sysfs.h> static u8 hmat_revision; +int hmat_disable __initdata; static LIST_HEAD(targets); static LIST_HEAD(initiators); @@ -814,7 +815,7 @@ static __init int hmat_init(void) enum acpi_hmat_type i; acpi_status status; - if (srat_disabled()) + if (srat_disabled() || hmat_disable) return 0; status = acpi_get_table(ACPI_SIG_SRAT, 0, &tbl); diff --git a/include/acpi/acpi_numa.h b/include/acpi/acpi_numa.h index fdebcfc6c8df..48ca468e9b61 100644 --- a/include/acpi/acpi_numa.h +++ b/include/acpi/acpi_numa.h @@ -18,6 +18,7 @@ extern int node_to_pxm(int); extern int acpi_map_pxm_to_node(int); extern unsigned char acpi_srat_revision; extern int acpi_numa __initdata; +extern int hmat_disable __initdata; extern void bad_srat(void); extern int srat_disabled(void);