From: "Andi Kleen" <ak@suse.de>

Fix NMI RTC access race

This patch fixes a race between the CMOS clock setting and the NMI code.  The
NMI code indiscriminatly sets index registers and values in the same place the
CMOS clock is set.  If you are setting the CMOS clock and an NMI occurs, Bad
values could be written to or read from the CMOS RAM, or the NMI operation
might not occur correctly.

Resetting the NMI is not required on x86_64 (in fact, it should not be done
according to the ICH5 documentation).  This patch simply removes the useless
code.

Signed-off-by: Corey Minyard <minyard@acm.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/x86_64/kernel/traps.c |    9 ---------
 1 files changed, 9 deletions(-)

diff -puN arch/x86_64/kernel/traps.c~x86_64-fix-nmi-rtc-access-race arch/x86_64/kernel/traps.c
--- 25/arch/x86_64/kernel/traps.c~x86_64-fix-nmi-rtc-access-race	Wed Mar 23 15:38:55 2005
+++ 25-akpm/arch/x86_64/kernel/traps.c	Wed Mar 23 15:38:55 2005
@@ -617,15 +617,6 @@ asmlinkage void default_do_nmi(struct pt
 		mem_parity_error(reason, regs);
 	if (reason & 0x40)
 		io_check_error(reason, regs);
-
-	/*
-	 * Reassert NMI in case it became active meanwhile
-	 * as it's edge-triggered.
-	 */
-	outb(0x8f, 0x70);
-	inb(0x71);		/* dummy */
-	outb(0x0f, 0x70);
-	inb(0x71);		/* dummy */
 }
 
 asmlinkage void do_int3(struct pt_regs * regs, long error_code)
_