--- /dev/null
+From a0bf284bfedd6dc95bbee7ebf5ccf3b5f753a008 Mon Sep 17 00:00:00 2001
+From: Len Brown <len.brown@intel.com>
+Date: Fri, 15 May 2009 01:29:31 -0400
+Subject: ACPI: Idle C-states disabled by max_cstate should not disable the TSC
+
+From: Len Brown <len.brown@intel.com>
+
+commit a0bf284bfedd6dc95bbee7ebf5ccf3b5f753a008 upstream.
+
+Processor idle power states C2 and C3 stop the TSC on many machines.
+Linux recognizes this situation and marks the TSC as unstable:
+
+Marking TSC unstable due to TSC halts in idle
+
+But if those same machines are booted with "processor.max_cstate=1",
+then there is no need to validate C2 and C3, and no need to
+disable the TSC, which can be reliably used as a clocksource.
+
+Signed-off-by: Len Brown <len.brown@intel.com>
+Acked-by: Thomas Gleixner <tglx@linutronix.de>
+Cc: Youquan Song <youquan.song@linux.intel.com>
+Cc: S.Çağlar Onur <caglar@CS.Princeton.EDU>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/acpi/processor_idle.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/acpi/processor_idle.c
++++ b/drivers/acpi/processor_idle.c
+@@ -1158,7 +1158,7 @@ static int acpi_processor_power_verify(s
+
+ pr->power.timer_broadcast_on_state = INT_MAX;
+
+- for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) {
++ for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) {
+ struct acpi_processor_cx *cx = &pr->power.states[i];
+
+ switch (cx->type) {