aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorAlok Kataria <akataria@vmware.com>2008-11-03 14:18:47 -0500
committerIngo Molnar <mingo@elte.hu>2008-11-04 03:55:26 -0500
commit70de9a97049e0ba79dc040868564408d5ce697f9 (patch)
treea1bad7a88e347ecac20313e0a852ae1e4c82b63e /arch/x86/kernel
parent73557af5bf32c3db973050de1fb73423e8fc873e (diff)
x86: don't use tsc_khz to calculate lpj if notsc is passed
Impact: fix udelay when "notsc" boot parameter is passed With notsc passed on commandline, tsc may not be used for udelays, make sure that we do not use tsc_khz to calculate the lpj value in such cases. Reported-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Alok N Kataria <akataria@vmware.com> Cc: <stable@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/tsc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 62348e4fd8d1..2ef80e301925 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -813,10 +813,6 @@ void __init tsc_init(void)
813 cpu_khz = calibrate_cpu(); 813 cpu_khz = calibrate_cpu();
814#endif 814#endif
815 815
816 lpj = ((u64)tsc_khz * 1000);
817 do_div(lpj, HZ);
818 lpj_fine = lpj;
819
820 printk("Detected %lu.%03lu MHz processor.\n", 816 printk("Detected %lu.%03lu MHz processor.\n",
821 (unsigned long)cpu_khz / 1000, 817 (unsigned long)cpu_khz / 1000,
822 (unsigned long)cpu_khz % 1000); 818 (unsigned long)cpu_khz % 1000);
@@ -836,6 +832,10 @@ void __init tsc_init(void)
836 /* now allow native_sched_clock() to use rdtsc */ 832 /* now allow native_sched_clock() to use rdtsc */
837 tsc_disabled = 0; 833 tsc_disabled = 0;
838 834
835 lpj = ((u64)tsc_khz * 1000);
836 do_div(lpj, HZ);
837 lpj_fine = lpj;
838
839 use_tsc_delay(); 839 use_tsc_delay();
840 /* Check and install the TSC clocksource */ 840 /* Check and install the TSC clocksource */
841 dmi_check_system(bad_tsc_dmi_table); 841 dmi_check_system(bad_tsc_dmi_table);