aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-09-04 16:15:37 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-09-04 16:15:37 -0700
commitebef1cd107b7034056309bf49f92a2b9e92b9fe0 (patch)
treefbfbbcf923fa6bde9ef02743794393c53b5dcc7f
parent4d5ca62c83c6c75d8ff28549cd8e620ce127deff (diff)
downloadlwip-fsc.tar.gz
lwip-fsc.tar.xz
lwip-fsc.zip
core: pxe: need to save/restore es around EFI CSM hacksyslinux-4.00-pre6fsc
Unlike in the Syslinux 3.x branch, we need to save/restore es around the PXE EFI CSM localboot hack. This really should be moved to C, anyway, at the same time USE_PXE_PROVIDED_STACK is finally killed off. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r--core/pxelinux.asm2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/pxelinux.asm b/core/pxelinux.asm
index 1ebd2b5e..93ef8b4a 100644
--- a/core/pxelinux.asm
+++ b/core/pxelinux.asm
@@ -176,6 +176,7 @@ _start1:
; if we want to reset", so that chainloading other NBPs will work.
;
efi_csm_workaround:
+ push es
les bp,[InitStack] ; GS:SP -> original stack
les bx,[es:bp+44] ; Return address
cmp word [es:bx],18CDh ; Already pointing to INT 18h?
@@ -229,6 +230,7 @@ efi_csm_workaround:
rep movsb
.skip:
+ pop es ; Restore CS == DS == ES
section .data16
alignz 4