aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* [PATCH] i386: Remove extern declaration from mm/discontig.c, put in header.Rusty Russell2007-02-13
| | | | | | | | | Extern declarations belong in headers. Times, they are a'changin. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Andi Kleen <ak@suse.de> ===================================================================
* [PATCH] i386: Rename cpu_gdt_descr and remove extern declaration from smpboot.cRusty Russell2007-02-13
| | | | | | | | | | | | | | | | When I implemented the DECLARE_PER_CPU(var) macros, I was careful that people couldn't use "var" in a non-percpu context, by prepending percpu__. I never considered that this would allow them to overload the same name for a per-cpu and a non-percpu variable. It is only one of many horrors in the i386 boot code, but let's rename the non-perpcu cpu_gdt_descr to early_gdt_descr (not boot_gdt_descr, that's something else...) Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Andi Kleen <ak@suse.de> ===================================================================
* [PATCH] i386: Move mce_disabled to asm/mce.hRusty Russell2007-02-13
| | | | | | | | | Allows external actors to disable mce. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Andi Kleen <ak@suse.de> ===================================================================
* [PATCH] i386: paravirt unhandled fallthroughRusty Russell2007-02-13
| | | | | | | | | | | | | | | The current code simply calls "start_kernel" directly if we're under a hypervisor and no paravirt_ops backend wants us, because paravirt.c registers that as a backend. This was always a vain hope; start_kernel won't get far without setup. It's also impossible for paravirt_ops backends which don't sit in the arch/i386/kernel directory: they can't link before paravirt.o anyway. Keep it simple: if we pass all the registered paravirt probes, BUG(). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86_64: Wire up compat epoll_pwaitRalf Baechle2007-02-13
| | | | | | | | | | | > Which remembers me that I think that MIPS is using the non-compat version > of sys_epoll_pwait for compat syscalls. But maybe MIPS doesn't need a compat > syscall for some reason. Dunno. Which reminds me that x86_64 i386 compat doesn't wire up sys_epoll_pwait ;-) Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: Don't require the vDSO for handling a.out signalsAndi Kleen2007-02-13
| | | | | | and in other strange binfmts. vDSO is not necessarily mapped there. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: Fix Cyrix MediaGX detectionAlan2007-02-13
| | | | | | | | | | | | | | | | | | | | | | | The old Cyrix 5520 CPU detection code relied upon the PCI layer setup being done earlier than the CPU setup, which is no longer true. Fortunately we know that if the processor is a MediaGX we can do type 1 pci config accesses to check the companion chip. We thus do those directly and from this find the 5520 and implement the workarounds for the timer problem Original report from takada@mbf.nifty.com, I sent a proposed patch which Takara then corrected, tested and sent back to the list on 10th January. Submitting for merging as it seems to have been missed AK: Changed to use pci-direct.h and fix warning for !CONFIG_PCI (later AK: originally from akpm) Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@suse.de> Cc: <takada@mbf.nifty.com> Cc: Jordan Crouse <jordan.crouse@amd.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] i386: Fix warning in cpu initializationAndi Kleen2007-02-13
| | | | | | | | Fix bogus warning linux/arch/i386/kernel/cpu/transmeta.c:12: warning: ‘cpu_freq’ may be used uninitialized in this function Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: Fix warning in microcode.cAndi Kleen2007-02-13
| | | | | | | | Fix bogus gcc warning linux/arch/i386/kernel/microcode.c:387: warning: ‘new_mc’ may be used uninitialized in this function Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: Enable NMI watchdog for AMD Family 0x10 CPUsAndi Kleen2007-02-13
| | | | | | | | For i386/x86-64. Straight forward -- just reuse the Family 0xf code. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: Add new CPUID bits for AMD Family 10 CPUs in /proc/cpuinfoAndi Kleen2007-02-13
| | | | | | | | | | | | Just various new acronyms. The new popcnt bit is in the middle of Intel space. This looks a little weird, but I've been assured it's ok. Also I fixed RDTSCP for i386 which was at the wrong place. For i386 and x86-64. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: Remove fastcall in paravirt.[ch]Andi Kleen2007-02-13
| | | | | | Not needed because fastcall is always default now Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Fix wrong gcc check in bitops.hAndi Kleen2007-02-13
| | | | | gcc 5.0 will likely not have the constraint problem Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: survive having no irq mapping for a vectorEric W. Biederman2007-02-13
| | | | | | | | | | | | | | | | Occasionally the kernel has bugs that result in no irq being found for a given cpu vector. If we acknowledge the irq the system has a good chance of continuing even though we dropped an irq message. If we continue to simply print a message and not acknowledge the irq the system is likely to become non-responsive shortly there after. AK: Fixed compilation for UP kernels Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: "Luigi Genoni" <luigi.genoni@pirelli.com> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] i386: geode configuration fixesTAKADA Yoshihito2007-02-13
| | | | | | | | | | | Original code doesn't write back to CCR4 register. This patch reflects a value of a register. Cc: Jordan Crouse <jordan.crouse@amd.com> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: add option to show more code in oops reportsChuck Ebbert2007-02-13
| | | | | | | | | | | | Sometimes developers need to see more object code in an oops report, e.g. when kernel may be corrupted at runtime. Add the "code_bytes" option for this. Signed-off-by: Chuck Ebbert <cebbert@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] x86-64: Minor patch for compilation warning in x86_64 signal codeEvgeniy Polyakov2007-02-13
| | | | | | | | | | | | If DEBUG_SIG is enbaled in source code, ia32_signal.c compiles with warning due to wrong format string. Attached patch fixes that. It is quite minor update, since by default DEBUG_SIG is not enabled and can not be turned on without code modification. Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] x86-64: avoid warning message livelockRoland Dreier2007-02-13
| | | | | | | | | | | | | | | | | | I've seen my box paralyzed by an endless spew of rtc: lost some interrupts at 1024Hz. messages on the serial console. What seems to be happening is that something real causes an interrupt to be lost and triggers the message. But then printing the message to the serial console (from the hpet interrupt handler) takes more than 1/1024th of a second, and then some more interrupts are lost, so the message triggers again.... Fix this by adding a printk_ratelimit() before printing the warning. Signed-off-by: Roland Dreier <rolandd@cisco.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: update IO-APIC dest field to 8-bit for xAPICBenjamin Romer2007-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | On the Unisys ES7000/ONE system, we encountered a problem where performing a kexec reboot or dump on any cell other than cell 0 causes the system timer to stop working, resulting in a hang during timer calibration in the new kernel. We traced the problem to one line of code in disable_IO_APIC(), which needs to restore the timer's IO-APIC configuration before rebooting. The code is currently using the 4-bit physical destination field, rather than using the 8-bit logical destination field, and it cuts off the upper 4 bits of the timer's APIC ID. If we change this to use the logical destination field, the timer works and we can kexec on the upper cells. This was tested on two different cells (0 and 2) in an ES7000/ONE system. For reference, the relevant Intel xAPIC spec is kept at ftp://download.intel.com/design/chipsets/e8501/datashts/30962001.pdf, specifically on page 334. Signed-off-by: Benjamin M Romer <benjamin.romer@unisys.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@suse.de> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] i386: Remove unused kernel config option X86_XADDRobert P. J. Day2007-02-13
| | | | | | | | | | Remove the unused kernel config option X86_XADD, which is unused in any source or header file. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] x86-64: clean up sparsemem memory_present callBob Picco2007-02-13
| | | | | | | | | | | Eliminate arch specific memory_present call x86_64 NUMA by utilizing sparse_memory_present_with_active_regions. Acked-by: Mel Gorman <mel@csn.ul.ie> Signed-off-by: Bob Picco <bob.picco@hp.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] i386: entry.S END/ENDPROC annotationsJan Beulich2007-02-13
| | | | | | | | | | Annotate i386/kernel/entry.S with END/ENDPROC to assist disassemblers and other analysis tools. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] i386: support Classic MediaGXmtakada2007-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | I hope to support "classic" MediaGXm in kernel. The DIR1 register of MediaGXm( or Geode) shows the following values for identify CPU. For example, My MediaGXm shows 0x42. We can read National Semiconductor's datasheet without any NDAs. http://www.national.com/pf/GX/GXLV.html from datasheets: DIR1 0x30 - 0x33 GXm rev. 1.0 - 2.3 0x34 - 0x4f GXm rev. 2.4 - 3.x 0x5x GXm rev. 5.0 - 5.4 0x6x GXLV 0x7x (unknow) 0x8x Gx1 In nsc driver of X, accept 0x30 through 0x82. What will 0x7x mean? Cc: Jordan Crouse <jordan.crouse@amd.com> Cc: Andi Kleen <ak@suse.de> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: avoid gcc extensionRandy Dunlap2007-02-13
| | | | | | | | | | | | | | setcc() in math-emu is written as a gcc extension statement expression macro that returns a value. However, it's not used that way and it's not needed like that, so just make it a inline function so that we don't use an extension when it's not needed. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@suse.de> Cc: Christoph Hellwig <hch@infradead.org> Cc: Segher Boessenkool <segher@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] i386: All Transmeta CPUs have constant TSCsH. Peter Anvin2007-02-13
| | | | | | | | | All Transmeta CPUs ever produced have constant-rate TSCs. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] x86: fix laptop bootup hang in init_acpi()Ingo Molnar2007-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During kernel bootup, a new T60 laptop (CoreDuo, 32-bit) hangs about 10%-20% of the time in acpi_init(): Calling initcall 0xc055ce1a: topology_init+0x0/0x2f() Calling initcall 0xc055d75e: mtrr_init_finialize+0x0/0x2c() Calling initcall 0xc05664f3: param_sysfs_init+0x0/0x175() Calling initcall 0xc014cb65: pm_sysrq_init+0x0/0x17() Calling initcall 0xc0569f99: init_bio+0x0/0xf4() Calling initcall 0xc056b865: genhd_device_init+0x0/0x50() Calling initcall 0xc056c4bd: fbmem_init+0x0/0x87() Calling initcall 0xc056dd74: acpi_init+0x0/0x1ee() It's a hard hang that not even an NMI could punch through! Frustratingly, adding printks or function tracing to the ACPI code made the hangs go away ... After some time an additional detail emerged: disabling the NMI watchdog made these occasional hangs go away. So i spent the better part of today trying to debug this and trying out various theories when i finally found the likely reason for the hang: if acpi_ns_initialize_devices() executes an _INI AML method and an NMI happens to hit that AML execution in the wrong moment, the machine would hang. (my theory is that this must be some sort of chipset setup method doing stores to chipset mmio registers?) Unfortunately given the characteristics of the hang it was sheer impossible to figure out which of the numerous AML methods is impacted by this problem. As a workaround i wrote an interface to disable chipset-based NMIs while executing _INI sections - and indeed this fixed the hang. I did a boot-loop of 100 separate reboots and none hung - while without the patch it would hang every 5-10 attempts. Out of caution i did not touch the nmi_watchdog=2 case (it's not related to the chipset anyway and didnt hang). I implemented this for both x86_64 and i686, tested the i686 laptop both with nmi_watchdog=1 [which triggered the hangs] and nmi_watchdog=2, and tested an Athlon64 box with the 64-bit kernel as well. Everything builds and works with the patch applied. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@suse.de> Cc: Len Brown <lenb@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* [PATCH] x86-64: robustify bad_dma_address handlingMuli Ben-Yehuda2007-02-13
| | | | | | | | | | | | | - set bad_dma_address explicitly to 0x0 - reserve 32 pages from bad_dma_address and up - WARN_ON() a driver feeding us bad_dma_address Thanks to Leo Duran <leo.duran@amd.com> for the suggestion. Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Leo Duran <leo.duran@amd.com> Cc: Job Mason <jdmason@kudzu.us>
* [PATCH] x86-64: define dma noncoherent API functionsJeff Garzik2007-02-13
| | | | | | | x86-64 is missing these: Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Don't reserve ROMsAndi Kleen2007-02-13
| | | | | | | We trust the e820 table, so explicitely reserving ROMs shouldn't be needed. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Fix off by one error in IOMMU boundary checkingAndi Kleen2007-02-13
| | | | | | | | | Should be harmless because there is normally no memory there, but technically it was incorrect. Pointed out by Leo Duran Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: x86_64 - Fix FS/GS registers for VT executionZachary Amsden2007-02-13
| | | | | | | | | | | | | | | Initialize FS and GS to __KERNEL_DS as well. The actual value of them is not important, but it is important to reload them in protected mode. At this time, they still retain the real mode values from initial boot. VT disallows execution of code under such conditions, which means hardware virtualization can not be used to boot the kernel on Intel platforms, making the boot time painfully slow. This requires moving the GS load before the load of GS_BASE, so just move all the segments loads there to keep them together in the code. Signed-off-by: Zachary Amsden <zach@vmware.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Unexport __supported_pte_maskAndi Kleen2007-02-13
| | | | | | | | | The symbol is needed to manipulate page tables, and modules shouldn't do that. Leftover from 2.4, but no in tree module should need it now. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Check return value of putreg in PTRACE_SETREGSAndi Kleen2007-02-13
| | | | | | | | This means if an illegal value is set for the segment registers there ptrace will error out now with an errno instead of silently ignoring it. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: - Ignore long SMI interrupts in clock calibration code - ↵Jack Steiner2007-02-13
| | | | | | | | | | | | | update 1 Add failsafe mechanism to HPET/TSC clock calibration. Signed-off-by: Jack Steiner <steiner@sgi.com> Updated to include failsafe mechanism & additional community feedback. Patch built on latest 2.6.20-rc4-mm1 tree. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: fix size_or_mask and size_and_maskAndreas Herrmann2007-02-13
| | | | | | | | | | | | | | | | mtrr: fix size_or_mask and size_and_mask This fixes two bugs in /proc/mtrr interface: o If physical address size crosses the 44 bit boundary size_or_mask is evaluated wrong. o size_and_mask limits width of physical base address for an MTRR to be less than 44 bits. TBD: later patch had one more change, but I think that was bogus. TBD: need to double check Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: Convert /proc/apm to seqfileAlexey Dobriyan2007-02-13
| | | | | | | Byte-to-byte identical /proc/apm here. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Fix preprocessor conditionJosef 'Jeff' Sipek2007-02-13
| | | | | | | Old code was legal standard C, but apparently not sparse-C. Signed-off-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: use smp_call_function_single()Alexey Dobriyan2007-02-13
| | | | | | | It will execure cpuid only on the cpu we need. Signed-off-by: Alexey Dobriyan <adobriyan@openvz.org> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: use smp_call_function_single()Alexey Dobriyan2007-02-13
| | | | | | | It will execute rdmsr and wrmsr only on the cpu we need. Signed-off-by: Alexey Dobriyan <adobriyan@openvz.org> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Kconfig typosNicolas Kaiser2007-02-13
| | | | | | | Some typos in Kconfig. Signed-off-by: Nicolas Kaiser <nikai@nikai.net> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: Small cleanup to TLB flush codeAndi Kleen2007-02-13
| | | | | | | - Remove outdated comment - Use cpu_relax() in a busy loop Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: remove get_pmd()Jan Beulich2007-02-13
| | | | | | | Function is dead. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Allow to run a program when a machine check event is detectedAndi Kleen2007-02-13
| | | | | | | | | | | | | | | | | | When a machine check event is detected (including a AMD RevF threshold overflow event) allow to run a "trigger" program. This allows user space to react to such events sooner. The trigger is configured using a new trigger entry in the machinecheck sysfs interface. It is currently shared between all CPUs. I also fixed the AMD threshold handler to run the machine check polling code immediately to actually log any events that might have caused the threshold interrupt. Also added some documentation for the mce sysfs interface. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Tighten mce_amd driver MSR readsJan Beulich2007-02-13
| | | | | | | | | | | | | | | | | | while debugging an unrelated problem in Xen, I noticed odd reads from non-existent MSRs. Having now found time to look why these happen, I came up with below patch, which - prevents accessing MCi_MISCj with j > 0 when the block pointer in MCi_MISC0 is zero - accesses only contiguous MCi_MISCj until a non-implemented one is found - doesn't touch unimplemented blocks in mce_threshold_interrupt at all - gives names to two bits previously derived from MASK_VALID_HI (it took me some time to understand the code without this) The first three items, besides being apparently closer to the spec, should namely help cutting down on the time mce_threshold_interrupt() takes. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: simplify notify_page_fault()Jan Beulich2007-02-13
| | | | | | | Remove all parameters from this function that aren't really variable. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: list x86_64 quilt treeRandy Dunlap2007-02-13
| | | | | | | List x86_64 quilt tree in MAINTAINERS. Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: cleanup Doc/x86_64/ filesRandy Dunlap2007-02-13
| | | | | | | | Fix typos. Lots of whitespace changes for readability and consistency. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: Handle 32 bit PerfMon Counter writes cleanly in oprofileVenkatesh Pallipadi2007-02-13
| | | | | | | Handle these 32 bit perfmon counter MSR writes cleanly in oprofile. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386: Handle 32 bit PerfMon Counter writes cleanly in i386 nmi_watchdogVenkatesh Pallipadi2007-02-13
| | | | | | | Change i386 nmi handler to handle 32 bit perfmon counter MSR writes cleanly. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86-64: Handle 32 bit PerfMon Counter writes cleanly in x86_64 ↵Venkatesh Pallipadi2007-02-13
| | | | | | | | | | | | | | | | nmi_watchdog P6 CPUs and Core/Core 2 CPUs which has 'architectural perf mon' feature, only supports write of low 32 bits in Performance Monitoring Counters. Bits 32..39 are sign extended based on bit 31 and bits 40..63 are reserved and should be zero. This patch: Change x86_64 nmi handler to handle this case cleanly. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Andi Kleen <ak@suse.de>