[U-Boot] [PATCH v9 13/18] efi: Add a call to exit() along with why we can't use it

Alexander Graf agraf at suse.de
Sun Aug 26 17:13:09 UTC 2018



On 23.08.18 22:37, Heinrich Schuchardt wrote:
> On 08/08/2018 11:54 AM, Simon Glass wrote:
>> The test should exit like any other EFI application, by calling exit()
>> in the boot services API. But this crashes at present on sandbox. For now,
>> add in the placeholder code.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>> Changes in v9: None
>> Changes in v8: None
>> Changes in v7: None
>> Changes in v6: None
>> Changes in v5: None
>> Changes in v4: None
>> Changes in v3: None
>> Changes in v2: None
>>
>>  lib/efi_loader/efi_test.c | 12 +++++++++++-
>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/efi_loader/efi_test.c b/lib/efi_loader/efi_test.c
>> index 4b8d49f324b..5401a0f4715 100644
>> --- a/lib/efi_loader/efi_test.c
>> +++ b/lib/efi_loader/efi_test.c
>> @@ -9,8 +9,18 @@
>>  int efi_test(efi_handle_t image_handle, struct efi_system_table *systable)
>>  {
>>  	struct efi_simple_text_output_protocol *con_out = systable->con_out;
>> +	struct efi_boot_services *boottime = systable->boottime;
>> +	int ret;
>>  
>> -	con_out->output_string(con_out, L"Hello, world!\n");
>> +	ret = con_out->output_string(con_out, L"Hello, world!\n");
>> +
>> +	/*
>> +	 * We should really call EFI's exit() here but this crashes at present
>> +	 * on sandbox due to the incorrect use of setjmp() and longjmp(). Once
> 
> What makes you think that setjmp and longjmp are incorrectly used?
> Couldn't the sandbox implementation of both create the problem?

I agree, last time we tracked exit problems down to incorrect
setjmp/longjmp implementations in sandbox.


Alex


More information about the U-Boot mailing list