From: Michael Brown Date: Wed, 13 Feb 2008 14:58:20 +0000 (+0000) Subject: Guard against corruption of top half of %esp during UNDI ISR X-Git-Tag: v0.9.3~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=385b7a623d33bf7a2f2f9c1f1cace57feb17082a;p=thirdparty%2Fipxe.git Guard against corruption of top half of %esp during UNDI ISR --- diff --git a/src/arch/i386/drivers/net/undiisr.S b/src/arch/i386/drivers/net/undiisr.S index f1c9eb154..a6c6c381e 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