On Sat, Feb 09, 2013 at 12:52:01PM -0800, H. Peter Anvin wrote:However... DF should have been cleared long before this...
How about we do this at the beginning of default_entry where we clear
EFLAGS too:
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index fc56613224c3..8b2a8a824fc6 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -322,10 +322,11 @@ default_entry:
* debugger if this code is traced. Best to initialize before switching to
* protected mode.
*/
-
pushl $0
popfl
+ cld # GCC wants DF=0 at all times
+