*** arch/i386/kernel/setup.c.sav Tue Mar 2 02:38:34 1999 --- arch/i386/kernel/setup.c Tue Mar 2 03:34:13 1999 *************** *** 245,250 **** --- 245,251 ---- char c = ' ', *to = command_line, *from = COMMAND_LINE; int len = 0; static unsigned char smptrap=0; + void disable_psn(void); if (smptrap) return; *************** *** 379,384 **** --- 380,390 ---- * Check the bugs that will bite us before we get booting */ + /* Nail the Pentium III's serial number */ + if(boot_cpu_data.x86_capability & (1<<18)){ + printk("Processor serial number disabled\n"); + disable_psn(); + } } __initfunc(static int amd_model(struct cpuinfo_x86 *c)) *************** *** 836,841 **** --- 842,848 ---- x86_cap_flags[14] = "mca"; x86_cap_flags[16] = "pat"; x86_cap_flags[17] = "pse36"; + x86_cap_flags[18] = "psn"; x86_cap_flags[24] = "osfxsr"; } *************** *** 872,875 **** --- 879,891 ---- ((c->loops_per_sec+2500)/5000) % 100); } return p - buffer; + } + /* Disable processor serial number on Intel Pentium III */ + static void disable_psn(void) + { + unsigned long lo,hi; + rdmsr(0x119,lo,hi); + lo |= 0x200000; + wrmsr(0x119,lo,hi); + }