undiisr.S: save/restore upper half of %eflags
authorH. Peter Anvin <hpa@zytor.com>
Mon, 11 Feb 2008 02:13:06 +0000 (18:13 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Mon, 11 Feb 2008 02:13:39 +0000 (18:13 -0800)
Since we don't know what the UNDI code does, it is safest to
save/restore %eflags even though the lower half of %eflags is
automatically saved by the interrupt itself.

src/arch/i386/drivers/net/undiisr.S

index 15e1a63..f1c9eb1 100644 (file)
@@ -23,6 +23,7 @@ undiisr:
        pushw   %es
        pushw   %fs
        pushw   %gs
+       pushfl
        pushal
 
        /* Set up our segment registers */
@@ -64,6 +65,7 @@ chain:        /* Chain to next handler */
        
 exit:  /* Restore registers and return */
        popal
+       popfl
        popw    %gs
        popw    %fs
        popw    %es