summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/transitions/librm.S
diff options
context:
space:
mode:
authorMichael Brown2007-07-17 14:46:37 +0200
committerMichael Brown2007-07-17 14:46:37 +0200
commit013d381e3ce3708c9cdf4978706066909b9947b1 (patch)
tree6afe4df679acd7c191533891a91caaaa34c90efe /src/arch/i386/transitions/librm.S
parentMove .zinfo to libprefix.S; it doesn't belong with the decompression code. (diff)
downloadipxe-013d381e3ce3708c9cdf4978706066909b9947b1.tar.gz
ipxe-013d381e3ce3708c9cdf4978706066909b9947b1.tar.xz
ipxe-013d381e3ce3708c9cdf4978706066909b9947b1.zip
Real-mode code might set the direction flag, which would cause carnage.
Diffstat (limited to 'src/arch/i386/transitions/librm.S')
-rw-r--r--src/arch/i386/transitions/librm.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/arch/i386/transitions/librm.S b/src/arch/i386/transitions/librm.S
index e916ba57..2072ee3e 100644
--- a/src/arch/i386/transitions/librm.S
+++ b/src/arch/i386/transitions/librm.S
@@ -472,6 +472,9 @@ real_call:
call *rc_function
pushal
+ /* For sanity's sake, clear the direction flag as soon as possible */
+ cld
+
/* Switch to protected mode and move register dump back to PM stack */
movl $RC_OFFSET_RETADDR, %ecx
pushl $1f