Guard against corruption of top half of %esp during UNDI ISR
authorMichael Brown <mcb30@etherboot.org>
Wed, 13 Feb 2008 14:58:20 +0000 (14:58 +0000)
committerMichael Brown <mcb30@etherboot.org>
Wed, 13 Feb 2008 14:58:20 +0000 (14:58 +0000)
src/arch/i386/drivers/net/undiisr.S

index f1c9eb1..a6c6c38 100644 (file)
@@ -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