Linus, please pull the latest x86 git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-x86.git
two kexec related hpet fixes from Ogawa Hirofumi. (the #ifdefs will be
eliminated later on, these are the tested patches for -rc4)
Thanks!
Ingo
------------------>
OGAWA Hirofumi (2):
x86: disable hpet on shutdown
x86: disable hpet legacy replacement for kdump
arch/x86/kernel/crash.c | 4 ++++
arch/x86/kernel/hpet.c | 14 ++++++++++++++
arch/x86/kernel/reboot_32.c | 4 ++++
arch/x86/kernel/reboot_64.c | 4 ++++
include/asm-x86/hpet.h | 1 +
5 files changed, 27 insertions(+)
Index: linux-x86.q/arch/x86/kernel/crash.c
===================================================================
--- linux-x86.q.orig/arch/x86/kernel/crash.c
+++ linux-x86.q/arch/x86/kernel/crash.c
@@ -22,6 +22,7 @@
#include <asm/nmi.h>
#include <asm/hw_irq.h>
#include <asm/apic.h>
+#include <asm/hpet.h>
#include <linux/kdebug.h>
#include <asm/smp.h>
@@ -140,5 +141,8 @@ void machine_crash_shutdown(struct pt_re
#if defined(CONFIG_X86_IO_APIC)
disable_IO_APIC();
#endif
+#ifdef CONFIG_HPET_TIMER
+ hpet_disable();
+#endif
crash_save_cpu(regs, safe_smp_processor_id());
}
Index: linux-x86.q/arch/x86/kernel/hpet.c
===================================================================
--- linux-x86.q.orig/arch/x86/kernel/hpet.c
+++ linux-x86.q/arch/x86/kernel/hpet.c
@@ -446,6 +446,20 @@ static __init int hpet_late_init(void)
}
fs_initcall(hpet_late_init);
+void hpet_disable(void)
+{
+ if (is_hpet_capable()) {
+ unsigned long cfg = hpet_readl(HPET_CFG);
+
+ if (hpet_legacy_int_enabled) {
+ cfg &= ~HPET_CFG_LEGACY;
+ hpet_legacy_int_enabled = 0;
+ }
+ cfg &= ~HPET_CFG_ENABLE;
+ hpet_writel(cfg, HPET_CFG);
+ }
+}
+
#ifdef CONFIG_HPET_EMULATE_RTC
/* HPET in LegacyReplacement Mode eats up RTC interrupt line. When, HPET
Index: ...hm, i found the reason - a wrong URI made it into the pull request. The
correct uri is to the shared x86 tree:
git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git
NOTE: i've meanwhile finished the testing of another fixlet so it's 3
patches - i've re-pushed the whole tree because i first thought i forgot
the pull. The pull request email is below.
Ingo
---------------------------->
Linus, please pull the latest x86 git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git
Thanks!
Ingo
------------------>
Eric W. Biederman (1):
x86: fix x86-32 early fixmap initialization.
OGAWA Hirofumi (2):
x86: disable hpet on shutdown
x86: disable hpet legacy replacement for kdump
arch/x86/kernel/crash.c | 4 ++++
arch/x86/kernel/head_32.S | 12 ++++++------
arch/x86/kernel/hpet.c | 14 ++++++++++++++
arch/x86/kernel/reboot_32.c | 4 ++++
arch/x86/kernel/reboot_64.c | 4 ++++
include/asm-x86/hpet.h | 1 +
6 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index 8bb482f..9a5fa0a 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -22,6 +22,7 @@
#include <asm/nmi.h>
#include <asm/hw_irq.h>
#include <asm/apic.h>
+#include <asm/hpet.h>
#include <linux/kdebug.h>
#include <asm/smp.h>
@@ -140,5 +141,8 @@ void machine_crash_shutdown(struct pt_regs *regs)
#if defined(CONFIG_X86_IO_APIC)
disable_IO_APIC();
#endif
+#ifdef CONFIG_HPET_TIMER
+ hpet_disable();
+#endif
crash_save_cpu(regs, safe_smp_processor_id());
}
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index 374b7ec..ac0637a 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -193,6 +193,12 @@ default_entry:
jb 10b
movl %edi,(init_pg_tables_end - __PAGE_OFFSET)
+ /* Do an early initialization of the fixmap area */
+ movl $(swapper_pg_dir - __PAGE_OFFSET), ...| Greg KH | Og dreams of kernels |
| Jens Axboe | [PATCH 31/33] Fusion: sg chaining support |
| Arnd Bergmann | Re: finding your own dead "CONFIG_" variables |
| Mark Brown | [PATCH 2/2] Subject: natsemi: Allow users to disable workaround for DspCfg reset |
| Tony Breeds | [LGUEST] Look in object dir for .config |
git: | |
| Brian Downing | Re: Git in a Nutshell guide |
| John Benes |
