summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2016-02-17 00:37:46 +0100
committerMichael Brown2016-02-17 00:37:46 +0100
commit079b98b63a43b48c15677ff92cd784b59ea4b6f1 (patch)
treed8e854ec2fb49765c641d91db5c3eab25c2c6756
parent[librm] Discard argument as part of return from prot_call() (diff)
downloadipxe-079b98b63a43b48c15677ff92cd784b59ea4b6f1.tar.gz
ipxe-079b98b63a43b48c15677ff92cd784b59ea4b6f1.tar.xz
ipxe-079b98b63a43b48c15677ff92cd784b59ea4b6f1.zip
[librm] Discard argument as part of return from real_call()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-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 44d931ea0..379e085a2 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 bf79637a8..a3b78c784 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