x86: Clarify cpuid 64 bit check
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 27 Sep 2017 18:37:15 +0000 (14:37 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 29 Sep 2017 14:00:03 +0000 (10:00 -0400)
That bit wasn't checking FS/GS MSRs, it was checking for long mode
capability.  Long mode has those MSRs, so the check was working, but it
was confusing.  Since we only run on 64 bit x86, we can be more explicit
about what we're checking and why it failed.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/arch/x86/cpuinfo.c

index ef19f2d..c3c3bec 100644 (file)
@@ -165,9 +165,8 @@ void print_cpuinfo(void)
        /* Regardless, make sure userspace can access rdtsc (and rdtscp) */
        lcr4(rcr4() & ~CR4_TSD);
        printk("1 GB Jumbo pages %ssupported\n", edx & (1 << 26) ? "" : "not ");
-       printk("FS/GS MSRs %ssupported\n", edx & (1 << 29) ? "" : "not ");
        if (!(edx & (1 << 29))) {
-               printk("Can't handle no FS/GS MSRs!\n");
+               printk("Not 64 bit, refusing to boot!\n");
                while (1)
                        asm volatile ("hlt");
        }