diff options
| author | Michael Brown | 2007-06-29 00:37:49 +0200 |
|---|---|---|
| committer | Michael Brown | 2007-06-29 00:37:49 +0200 |
| commit | d71b116f54de13983ea3310c7a58219089bd3f46 (patch) | |
| tree | 0cefcbf5040fb51c36137fcb2f9ed61805e3c810 | |
| parent | Use internal real-mode stack from non-returnable prefixes (diff) | |
| download | ipxe-d71b116f54de13983ea3310c7a58219089bd3f46.tar.gz ipxe-d71b116f54de13983ea3310c7a58219089bd3f46.tar.xz ipxe-d71b116f54de13983ea3310c7a58219089bd3f46.zip | |
Fix stack on return from PXE NBP so that we can return properly.
| -rw-r--r-- | src/arch/i386/image/pxe_image.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/arch/i386/image/pxe_image.c b/src/arch/i386/image/pxe_image.c index 8db34d5f6..60711edc0 100644 --- a/src/arch/i386/image/pxe_image.c +++ b/src/arch/i386/image/pxe_image.c @@ -63,7 +63,8 @@ static int pxe_exec ( struct image *image __unused ) { __asm__ __volatile__ ( REAL_CODE ( "pushw %%cx\n\t" "pushw %%ax\n\t" "movw %%cx, %%es\n\t" - "lcall $0, $0x7c00\n\t" ) + "lcall $0, $0x7c00\n\t" + "addw $4, %%sp\n\t" ) : "=a" ( rc ), "=b" ( discard_b ), "=c" ( discard_c ) : "a" ( & __from_text16 ( ppxe ) ), |
