Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f97586b610dc87a6494236118321e56ffc13319c
Commit:     f97586b610dc87a6494236118321e56ffc13319c
Parent:     3fb450a327fc098efe6c9f000d470abac354cfcc
Author:     Ingo Molnar <[EMAIL PROTECTED]>
AuthorDate: Wed Oct 17 18:04:34 2007 +0200
Committer:  Thomas Gleixner <[EMAIL PROTECTED]>
CommitDate: Wed Oct 17 20:15:37 2007 +0200

    x86: do not crash on non-Geode PCs in TSC probe
    
    with this fix Geode kernels can be booted (and QA-ed) on generic PCs.
    
    otherwise it crashes and burns during early bootup:
    
    Detected 2160.212 MHz processor.
    general protection fault: 0000 [#1]
    PREEMPT SMP
    Modules linked in:
    CPU:    0
    EIP:    0060:[<c09071f6>]    Not tainted VLI
    EFLAGS: 00010002   (2.6.23-rc9 #90)
    EIP is at tsc_init+0xa6/0x150
    eax: 00000001   ebx: c1dce000   ecx: 00001900   edx: 00000001
    esi: 00051000   edi: 00051000   ebp: c08fdfc4   esp: c08fdfa4
    ds: 007b   es: 007b   fs: 00d8  gs: 0000  ss: 0068
    Process swapper (pid: 0, ti=c08fc000 task=c082a180 task.ti=c08fc000)
    Stack: c076b870 00000870 000000d4 0000001d c0831e80 c1dce000 00051000 
00051000
           c08fdfcc c09053f8 c08fdff8 c09045ff 000001e2 c09040a0 00051000 
00000020
           0004e500 c0932140 00020800 00099800 c08ed000 01409007 00000000
    Call Trace:
     [<c010517a>] show_trace_log_lvl+0x1a/0x30
     [<c0105246>] show_stack_log_lvl+0xb6/0x100
     [<c0105732>] show_registers+0x212/0x3a0
     [<c0105aa4>] die+0x104/0x220
     [<c0105f5f>] do_general_protection+0x1ef/0x2b0
     [<c06699f2>] error_code+0x72/0x78
     [<c09053f8>] time_init+0x8/0x20
     [<c09045ff>] start_kernel+0x1af/0x320
     [<00000000>] 0x0
     =======================
    Code: 31 d2 b8 00 00 09 3d f7 35 2c 70 9b c0 a3 04 95 8f c0 e8 ce 4e 99 ff 
b8 e0 45 93 c0 e8 94 b1 c5 ff e8 7f 3d 80 ff b9 00 19 00 00 <0f> 32 f6 c4 01 74 
07 83 25 24 ce 82 c0 fd 8b 0d 20 ce 82 c0 b8
    EIP: [<c09071f6>] tsc_init+0xa6/0x150 SS:ESP 0068:c08fdfa4
    Kernel panic - not syncing: Attempted to kill the idle task!
    
    Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
---
 arch/x86/kernel/tsc_32.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/tsc_32.c b/arch/x86/kernel/tsc_32.c
index b85ad75..e87a393 100644
--- a/arch/x86/kernel/tsc_32.c
+++ b/arch/x86/kernel/tsc_32.c
@@ -349,10 +349,10 @@ __cpuinit int unsynchronized_tsc(void)
 
 static void __init check_geode_tsc_reliable(void)
 {
-       unsigned long val;
+       unsigned long res_low, res_high;
 
-       rdmsrl(MSR_GEODE_BUSCONT_CONF0, val);
-       if ((val & RTSC_SUSP))
+       rdmsr_safe(MSR_GEODE_BUSCONT_CONF0, &res_low, &res_high);
+       if (res_low & RTSC_SUSP)
                clocksource_tsc.flags &= ~CLOCK_SOURCE_MUST_VERIFY;
 }
 #else
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to