Re: [OOPS] Linux 2.2.21pre[23]

From: Dave Jones (davej@suse.de)
Date: Thu Mar 07 2002 - 12:11:36 EST


On Thu, Mar 07, 2002 at 06:06:09PM +0100, Luca Montecchiani wrote:
> > Ok, this doesn't make any sense at all.
> You're right x86_serial_nr_setup() is c0278bc8
> while c0278bc1 didn't exist in my system.map sorry!

 So we died in squash_the_stupid_serial_number()

static void __init squash_the_stupid_serial_number(struct cpuinfo_x86 *c)
{
    if (c->x86_capability&(X86_FEATURE_PN) && disable_x86_serial_nr) {
        /* Disable processor serial number */
        unsigned long lo,hi;
        rdmsr(0x119,lo,hi);
        lo |= 0x200000;
        wrmsr(0x119,lo,hi);
        printk(KERN_NOTICE "CPU serial number disabled.\n");
        c->x86_capability &= ~X86_FEATURE_PN;
        c->cpuid_level = cpuid_eax(0);
    }
}

Given that you see the printk, its one of the last two lines.
I can't see how this can happen.
Although the cpuid_eax function in include/asm-i386/processor.h
needs updating.

2.2 has
extern inline unsigned int cpuid_eax(unsigned int op)
{
    unsigned int eax, ebx, ecx, edx;

    __asm__("cpuid"
        : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
        : "a" (op));
    return eax;
}

2.4 has
    unsigned int eax;
    
    __asm__("cpuid"
        : "=a" (eax)
        : "0" (op)
        : "bx", "cx", "dx");
    return eax;

Though, that shouldn't make any noticable difference unless.

-- 
| Dave Jones.        http://www.codemonkey.org.uk
| SuSE Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Mar 07 2002 - 21:01:05 EST