android_kernel_xiaomi_sm7250/arch
Steven Rostedt cd3716ab40 [PATCH] Mobil Pentium 4 HT and the NMI
I'm trying to get the nmi working with my laptop (IBM ThinkPad G41) and after
debugging it a while, I found that the nmi code doesn't want to set it up for
this particular CPU.

Here I have:

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Mobile Intel(R) Pentium(R) 4 CPU 3.33GHz
stepping        : 1
cpu MHz         : 3320.084
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 3
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni
monitor ds_cpl est tm2 cid xtpr
bogomips        : 6642.39

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Mobile Intel(R) Pentium(R) 4 CPU 3.33GHz
stepping        : 1
cpu MHz         : 3320.084
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 3
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni
monitor ds_cpl est tm2 cid xtpr
bogomips        : 6637.46

And the following code shows:

$ cat linux-2.6.13-rc6/arch/i386/kernel/nmi.c

[...]

void setup_apic_nmi_watchdog (void)
{
        switch (boot_cpu_data.x86_vendor) {
        case X86_VENDOR_AMD:
                if (boot_cpu_data.x86 != 6 && boot_cpu_data.x86 != 15)
                        return;
                setup_k7_watchdog();
                break;
        case X86_VENDOR_INTEL:
                 switch (boot_cpu_data.x86) {
                case 6:
                        if (boot_cpu_data.x86_model > 0xd)
                                return;

                        setup_p6_watchdog();
                        break;
                case 15:
                        if (boot_cpu_data.x86_model > 0x3)
                                return;

Here I get boot_cpu_data.x86_model == 0x4.  So I decided to change it and
reboot.  I now seem to have a working NMI.  So, unless there's something know
to be bad about this processor and the NMI.  I'm submitting the following
patch.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Zwane Mwaikambo <zwane@arm.linux.org.uk>
Acked-by: Mikael Pettersson <mikpe@csd.uu.se>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-19 18:44:56 -07:00
..
alpha [PATCH] pci and yenta: pcibios_bus_to_resource 2005-08-04 21:32:46 -07:00
arm [ARM] 2850/1: Remove duplicate UART I/O mapping from s3c2410_iodesc 2005-08-17 13:01:19 +01:00
arm26 It wasn't just x86-64 that had hardcoded VM_FAULT_xxx numbers 2005-08-04 08:33:38 -07:00
cris It wasn't just x86-64 that had hardcoded VM_FAULT_xxx numbers 2005-08-04 08:33:38 -07:00
frv It wasn't just x86-64 that had hardcoded VM_FAULT_xxx numbers 2005-08-04 08:33:38 -07:00
h8300 [PATCH] Don't export machine_restart, machine_halt, or machine_power_off. 2005-07-26 14:35:42 -07:00
i386 [PATCH] Mobil Pentium 4 HT and the NMI 2005-08-19 18:44:56 -07:00
ia64 [IA64] Updated tiger defconfig 2005-08-17 10:24:17 -07:00
m32r [PATCH] m32r: Fix local-timer event handling 2005-08-01 21:37:59 -07:00
m68k It wasn't just x86-64 that had hardcoded VM_FAULT_xxx numbers 2005-08-04 08:33:38 -07:00
m68knommu [PATCH] Don't export machine_restart, machine_halt, or machine_power_off. 2005-07-26 14:35:42 -07:00
mips [PATCH] mips: remove obsolete GIU driver for vr41xx 2005-07-27 16:25:58 -07:00
parisc It wasn't just x86-64 that had hardcoded VM_FAULT_xxx numbers 2005-08-04 08:33:38 -07:00
ppc [PATCH] ppc32: fix ppc4xx stb03xxx dma build 2005-08-18 12:53:58 -07:00
ppc64 [PATCH] ppc64: iommu vmerge fix 2005-08-17 14:41:22 -07:00
s390 [PATCH] s390: ioprio & inotify system calls. 2005-08-01 21:37:59 -07:00
sh [PATCH] SH: inotify and ioprio syscalls 2005-08-18 12:53:57 -07:00
sh64 [PATCH] SH64: inotify and ioprio syscalls 2005-08-18 12:53:57 -07:00
sparc [SPARC]: Add inotify syscall entries. 2005-07-27 14:14:39 -07:00
sparc64 [SPARC64]: Fix 2 bugs in cpufreq drivers. 2005-08-18 14:35:38 -07:00
um [PATCH] uml: fix a crash under screen 2005-08-18 12:53:58 -07:00
v850 [PATCH] v850: Update PCI support 2005-07-27 16:26:03 -07:00
x86_64 [PATCH] x86_64: Fix apicid versus cpu# confusion. 2005-08-12 09:22:04 -07:00
xtensa [PATCH] xtensa: use ssleep() instead of schedule_timeout() 2005-07-12 16:01:01 -07:00