diff options
author | Bryan O'Donoghue <pure.logic@nexus-software.ie> | 2015-03-31 12:15:36 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-04-02 12:47:50 +0200 |
commit | a6fcb6d4804b51ffcae7881c7f99483f4981ddf1 (patch) | |
tree | ef25e75d86870eb538cf5329fc43f7bb6adee2f9 /arch/x86/platform/intel-quark | |
parent | e42391cd048809d903291d07f86ed3934ce138e9 (diff) | |
download | op-kernel-dev-a6fcb6d4804b51ffcae7881c7f99483f4981ddf1.zip op-kernel-dev-a6fcb6d4804b51ffcae7881c7f99483f4981ddf1.tar.gz |
x86/intel/quark: Run IMR self-test on IMR capble hw only
Automated testing with LKP shows IMR self test code running and
printing error messages on QEMU hardware lacking IMR support.
Update IMR self-test code to run only when IMR hardware should
be present. Tested on Quark X1000 and QEMU.
Signed-off-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Acked-by: Ong Boon Leong <boon.leong.ong@intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: andriy.shevchenko@intel.com
Cc: dvhart@linux.intel.com
Cc: huang.ying.caritas@gmail.com
Cc: ying.huang@intel.com
Link: http://lkml.kernel.org/r/1427800536-32339-1-git-send-email-pure.logic@nexus-software.ie
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/platform/intel-quark')
-rw-r--r-- | arch/x86/platform/intel-quark/imr_selftest.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/x86/platform/intel-quark/imr_selftest.c b/arch/x86/platform/intel-quark/imr_selftest.c index c9a0838..278e4da 100644 --- a/arch/x86/platform/intel-quark/imr_selftest.c +++ b/arch/x86/platform/intel-quark/imr_selftest.c @@ -11,6 +11,7 @@ */ #include <asm-generic/sections.h> +#include <asm/cpu_device_id.h> #include <asm/imr.h> #include <linux/init.h> #include <linux/mm.h> @@ -101,6 +102,12 @@ static void __init imr_self_test(void) } } +static const struct x86_cpu_id imr_ids[] __initconst = { + { X86_VENDOR_INTEL, 5, 9 }, /* Intel Quark SoC X1000. */ + {} +}; +MODULE_DEVICE_TABLE(x86cpu, imr_ids); + /** * imr_self_test_init - entry point for IMR driver. * @@ -108,7 +115,8 @@ static void __init imr_self_test(void) */ static int __init imr_self_test_init(void) { - imr_self_test(); + if (x86_match_cpu(imr_ids)) + imr_self_test(); return 0; } |