aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2016-02-16 23:37:46 +0000
committerMichael Brown <mcb30@ipxe.org>2016-02-16 23:37:46 +0000
commit079b98b63a43b48c15677ff92cd784b59ea4b6f1 (patch)
treed8e854ec2fb49765c641d91db5c3eab25c2c6756 /src
parent9dc340d73538ecac72851407b4865e2a778589f8 (diff)
downloadipxe-079b98b63a43b48c15677ff92cd784b59ea4b6f1.zip
ipxe-079b98b63a43b48c15677ff92cd784b59ea4b6f1.tar.gz
ipxe-079b98b63a43b48c15677ff92cd784b59ea4b6f1.tar.bz2
[librm] Discard argument as part of return from real_call()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
-rw-r--r--src/arch/x86/include/librm.h1
-rw-r--r--src/arch/x86/transitions/librm.S2
2 files changed, 1 insertions, 2 deletions
diff --git a/src/arch/x86/include/librm.h b/src/arch/x86/include/librm.h
index 44d931e..379e085 100644
--- a/src/arch/x86/include/librm.h
+++ b/src/arch/x86/include/librm.h
@@ -192,7 +192,6 @@ extern void remove_user_from_rm_stack ( userptr_t data, size_t size );
#define REAL_CODE( asm_code_str ) \
"push $1f\n\t" \
"call real_call\n\t" \
- "addl $4, %%esp\n\t" \
TEXT16_CODE ( "\n1:\n\t" \
asm_code_str \
"\n\t" \
diff --git a/src/arch/x86/transitions/librm.S b/src/arch/x86/transitions/librm.S
index bf79637..a3b78c7 100644
--- a/src/arch/x86/transitions/librm.S
+++ b/src/arch/x86/transitions/librm.S
@@ -518,7 +518,7 @@ rc_rmode:
rc_pmode:
/* Restore registers and return */
popal
- ret
+ ret $4
/* Function vector, used because "call xx(%sp)" is not a valid