aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-12-29 14:22:46 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-12-29 14:22:46 +0000
commit0fcafc5fdbdb5579accee3e9e12df3297e5db035 (patch)
treeae894f6129e7c4a5d9f9b84fefe2f700050565e7
parent6913eb35433fce5edb62bf8736dc77f3adc47ffa (diff)
downloadxen-0fcafc5fdbdb5579accee3e9e12df3297e5db035.tar.gz
xen-0fcafc5fdbdb5579accee3e9e12df3297e5db035.tar.bz2
xen-0fcafc5fdbdb5579accee3e9e12df3297e5db035.zip
bitkeeper revision 1.1159.170.69 (41d2bdb6hidiL3KNy73HpTZ89WedqQ)
Fix NMI handler.
-rw-r--r--xen/arch/x86/nmi.c2
-rw-r--r--xen/arch/x86/x86_32/entry.S10
2 files changed, 3 insertions, 9 deletions
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index bd8760fade..ed597aec0c 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -99,7 +99,7 @@ int __init check_nmi_watchdog (void)
for ( j = 0; j < smp_num_cpus; j++ )
{
cpu = cpu_logical_map(j);
- prev_nmi_count[cpu] = irq_stat[cpu].__nmi_count;
+ prev_nmi_count[cpu] = nmi_count(cpu);
}
__sti();
mdelay((10*1000)/nmi_hz); /* wait 10 ticks */
diff --git a/xen/arch/x86/x86_32/entry.S b/xen/arch/x86/x86_32/entry.S
index d3df231fbb..7eb7c9075c 100644
--- a/xen/arch/x86/x86_32/entry.S
+++ b/xen/arch/x86/x86_32/entry.S
@@ -495,16 +495,10 @@ ENTRY(nmi)
movb XREGS_cs(%esp),%al
testl $(3|X86_EFLAGS_VM),%eax
jnz do_watchdog_tick
- movl XREGS_ds(%esp),%eax
+ movl %ds,%eax
cmpw $(__HYPERVISOR_DS),%ax
jne restore_all_xen
- movl XREGS_es(%esp),%eax
- cmpw $(__HYPERVISOR_DS),%ax
- jne restore_all_xen
- movl XREGS_fs(%esp),%eax
- cmpw $(__HYPERVISOR_DS),%ax
- jne restore_all_xen
- movl XREGS_gs(%esp),%eax
+ movl %es,%eax
cmpw $(__HYPERVISOR_DS),%ax
jne restore_all_xen