summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2008-02-13 15:58:20 +0100
committerMichael Brown2008-02-13 15:58:20 +0100
commit385b7a623d33bf7a2f2f9c1f1cace57feb17082a (patch)
treee0ce85f552e6b50f1d18b7a9178d8c689eb81b5e
parentIf no shell was requested via Ctrl-B, exit immediately if boot fails. (diff)
downloadipxe-385b7a623d33bf7a2f2f9c1f1cace57feb17082a.tar.gz
ipxe-385b7a623d33bf7a2f2f9c1f1cace57feb17082a.tar.xz
ipxe-385b7a623d33bf7a2f2f9c1f1cace57feb17082a.zip
Guard against corruption of top half of %esp during UNDI ISR
-rw-r--r--src/arch/i386/drivers/net/undiisr.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/arch/i386/drivers/net/undiisr.S b/src/arch/i386/drivers/net/undiisr.S
index f1c9eb15..a6c6c381 100644
--- a/src/arch/i386/drivers/net/undiisr.S
+++ b/src/arch/i386/drivers/net/undiisr.S
@@ -64,7 +64,10 @@ chain: /* Chain to next handler */
lcall *undiisr_next_handler
exit: /* Restore registers and return */
+ cli
popal
+ movzwl %sp, %esp
+ addr32 movl -20(%esp), %esp /* %esp isn't restored by popal */
popfl
popw %gs
popw %fs