From 5f145faff88ac6a0951277142e8b4f8116ae79de Mon Sep 17 00:00:00 2001 From: Marc Jones Date: Thu, 6 Oct 2011 16:38:35 -0600 Subject: Don't do a call as the first instruction in libpayload. Doing a call before the payload has set up its stack is risky. The stack may not be in a favorable location. Normally this is not an issue with coreboot or other well behaved callers. Change-Id: Ie6f6748a471324b29ebad045c807dfc9f4b92034 Signed-off-by: Marc Jones Reviewed-on: http://review.coreboot.org/240 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- payloads/libpayload/arch/i386/head.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'payloads/libpayload') diff --git a/payloads/libpayload/arch/i386/head.S b/payloads/libpayload/arch/i386/head.S index 88db4124d5..3dd61336f9 100644 --- a/payloads/libpayload/arch/i386/head.S +++ b/payloads/libpayload/arch/i386/head.S @@ -38,10 +38,7 @@ * change anything. */ _entry: - call _init - - /* We're back - go back to the bootloader. */ - ret + jmp _init .align 4 @@ -66,6 +63,9 @@ _init: /* No interrupts, please. */ cli + /* There is a bunch of stuff missing here to take arguments on the stack + * See http://www.coreboot.org/Payload_API and exec.S. + */ /* Store current stack pointer. */ movl %esp, %esi -- cgit v1.2.3