diff options
author | Jacob Pan <jacob.jun.pan@linux.intel.com> | 2010-04-19 14:23:43 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-04-20 17:38:28 -0400 |
commit | ae7c9b70dcb4313ea3dbcc9a2f240dae6c2b50c0 (patch) | |
tree | e8b514e4e9de1236f3c370788d85beb21affe9d2 | |
parent | 05ce7bfe547c9fa967d9cab6c37867a9cb6fb3fa (diff) |
x86, mrst: Conditionally register cpu hotplug notifier for apbt
APB timer is used on Moorestown platforms but not on a standard PC.
If APB timer code is compiled in but not initialized at run-time due
to lack of FW reported SFI table, kernel would panic when the non-boot
CPUs are offlined and notifier is called.
https://bugzilla.kernel.org/show_bug.cgi?id=15786
This patch ensures CPU hotplug notifier for APB timer is only registered
when the APBT timer block is initialized.
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
LKML-Reference: <1271701423-1162-1-git-send-email-jacob.jun.pan@linux.intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | arch/x86/kernel/apb_timer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/apb_timer.c b/arch/x86/kernel/apb_timer.c index ff469e470059..a35347501d36 100644 --- a/arch/x86/kernel/apb_timer.c +++ b/arch/x86/kernel/apb_timer.c | |||
@@ -429,7 +429,7 @@ static int apbt_cpuhp_notify(struct notifier_block *n, | |||
429 | 429 | ||
430 | static __init int apbt_late_init(void) | 430 | static __init int apbt_late_init(void) |
431 | { | 431 | { |
432 | if (disable_apbt_percpu) | 432 | if (disable_apbt_percpu || !apb_timer_block_enabled) |
433 | return 0; | 433 | return 0; |
434 | /* This notifier should be called after workqueue is ready */ | 434 | /* This notifier should be called after workqueue is ready */ |
435 | hotcpu_notifier(apbt_cpuhp_notify, -20); | 435 | hotcpu_notifier(apbt_cpuhp_notify, -20); |