Disable parsing of the HMAT for debug, to workaround broken platform
instances, or cases where it is otherwise not wanted.

Cc: [email protected]
Cc: "Rafael J. Wysocki" <[email protected]>
Cc: Dave Hansen <[email protected]>
Cc: Andy Lutomirski <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: "H. Peter Anvin" <[email protected]>
Signed-off-by: Dan Williams <[email protected]>
---
 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);
_______________________________________________
Linux-nvdimm mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to