All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86: Do not try to disable hpet if it hasn't been initialized before
@ 2010-07-21 17:32 Stefano Stabellini
  2010-07-23 10:54 ` [tip:x86/urgent] " tip-bot for Stefano Stabellini
  0 siblings, 1 reply; 2+ messages in thread
From: Stefano Stabellini @ 2010-07-21 17:32 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, Ingo Molnar, Thomas Gleixner, Venkatesh Pallipadi (Venki)

hpet_disable is called unconditionally on machine reboot if hpet support
is compiled in the kernel.
hpet_disable only checks if the machine is hpet capable but doesn't make
sure that hpet has been initialized.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Venkatesh Pallipadi <venki@google.com>
---
 arch/x86/kernel/hpet.c |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index a198b7c..9e90dac 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -964,16 +964,18 @@ fs_initcall(hpet_late_init);
 
 void hpet_disable(void)
 {
-	if (is_hpet_capable()) {
-		unsigned int cfg = hpet_readl(HPET_CFG);
+	unsigned int cfg;
 
-		if (hpet_legacy_int_enabled) {
-			cfg &= ~HPET_CFG_LEGACY;
-			hpet_legacy_int_enabled = 0;
-		}
-		cfg &= ~HPET_CFG_ENABLE;
-		hpet_writel(cfg, HPET_CFG);
+	if (!is_hpet_capable() || !hpet_address || !hpet_virt_address)
+		return;
+
+	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
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [tip:x86/urgent] x86: Do not try to disable hpet if it hasn't been initialized before
  2010-07-21 17:32 [PATCH] x86: Do not try to disable hpet if it hasn't been initialized before Stefano Stabellini
@ 2010-07-23 10:54 ` tip-bot for Stefano Stabellini
  0 siblings, 0 replies; 2+ messages in thread
From: tip-bot for Stefano Stabellini @ 2010-07-23 10:54 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, tglx, venki, stefano.stabellini

Commit-ID:  ff4878089e1eaeac79d57878ad4ea32910fb4037
Gitweb:     http://git.kernel.org/tip/ff4878089e1eaeac79d57878ad4ea32910fb4037
Author:     Stefano Stabellini <stefano.stabellini@eu.citrix.com>
AuthorDate: Wed, 21 Jul 2010 18:32:37 +0100
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Fri, 23 Jul 2010 12:53:00 +0200

x86: Do not try to disable hpet if it hasn't been initialized before

hpet_disable is called unconditionally on machine reboot if hpet support
is compiled in the kernel.
hpet_disable only checks if the machine is hpet capable but doesn't make
sure that hpet has been initialized.

[ tglx: Made it a one liner and removed the redundant hpet_address check ]

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Venkatesh Pallipadi <venki@google.com>
LKML-Reference: <alpine.DEB.2.00.1007211726240.22235@kaball-desktop>
Cc: stable@kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/kernel/hpet.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index a198b7c..ba390d7 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -964,7 +964,7 @@ fs_initcall(hpet_late_init);
 
 void hpet_disable(void)
 {
-	if (is_hpet_capable()) {
+	if (is_hpet_capable() && hpet_virt_address) {
 		unsigned int cfg = hpet_readl(HPET_CFG);
 
 		if (hpet_legacy_int_enabled) {

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-07-23 10:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-21 17:32 [PATCH] x86: Do not try to disable hpet if it hasn't been initialized before Stefano Stabellini
2010-07-23 10:54 ` [tip:x86/urgent] " tip-bot for Stefano Stabellini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.