[patch] small fix to espfix code

From: Stas Sergeev
Date: Mon Feb 23 2009 - 11:33:56 EST


Hi.

The attached patch fixes a tiny
bug introduced by this patch:
http://lkml.org/lkml/2006/9/30/134
The patch was changing the espfix
stack to be 32bit instead of 16bit,
but this place seems to have been
overlooked.
The code was like this:
---
pushl %esp
movzwl %sp, %esp
addw $4, (%esp)
---
and the patch did:
---
pushl %esp
CFI_ADJUST_CFA_OFFSET 4
- movzwl %sp, %esp
addw $4, (%esp)
---
but the addw was forgotten to adjust.

The bug is mostly theoretical, I can't
really test the effect of this patch.
So, it is completely untested.

---
Fix tiny bug in the espfix NMI handling
code. The bug was inroduced by this patch:
http://lkml.org/lkml/2006/9/30/134
and can practically never be triggered.

Signed-off-by: Stas Sergeev <stsp@xxxxxxxx>
CC: Zachary Amsden <zach@xxxxxxxxxx>
CC: Chuck Ebbert <76306.1226@xxxxxxxxxxxxxx>
--- a/arch/x86/kernel/entry_32.S 2009-01-10 21:03:16.000000000 +0300
+++ b/arch/x86/kernel/entry_32.S 2009-02-15 22:34:23.000000000 +0300
@@ -881,7 +881,7 @@
CFI_ADJUST_CFA_OFFSET 4
pushl %esp
CFI_ADJUST_CFA_OFFSET 4
- addw $4, (%esp)
+ addl $4, (%esp)
/* copy the iret frame of 12 bytes */
.rept 3
pushl 16(%esp)