[U-Boot] [PATCH 0/2] efi_loader: Fix inconsistencies in efi_add_memory_map usage

Bryan O'Donoghue pure.logic at nexus-software.ie
Tue Jul 9 08:18:29 UTC 2019


On 09/07/2019 07:02, Heinrich Schuchardt wrote:
> On 7/9/19 1:10 AM, Bryan O'Donoghue wrote:
>> These two patches fix some inconsistent usage around 
>> efi_add_memory_map().
>>
>> The first patch fixes the case where there is a mapping for an address
>> starting at 0 as is the case on RPI3. We should not print an error for
>> this. efi_add_memory_map(start = 0, ...) succeeds but
>> efi_carve_out_dt_rsv() does not properly parse the result code.
>>
>> The second patch fixes the result code returned by 
>> efi_add_memory_map() in
>> two instances. Returing zero is the same as returning EFI_SUCCESS, we
>> should return one of the error codes from include/efi.h only, not zero to
>> indicate failure.
>>
>> Bryan O'Donoghue (2):
>>    efi_loader: Check the result of efi_add_memory_map against input addr
>>    efi_loader: Return non-zero for error in efi_add_memory_map()
>>
>>   cmd/bootefi.c               | 4 ++--
>>   lib/efi_loader/efi_memory.c | 4 ++--
>>   2 files changed, 4 insertions(+), 4 deletions(-)
>>
> Hello Bryon,
> 
> thanks for pointing out this design error.
> 
> I found no instance in our code where the return value of
> efi_add_memory_map() is used for anything else but checking if the
> operation was successful. It seems appropriate to change the signature
> of the function to
> 
> efi_status_t efi_add_memory_map(uint64_t start, uint64_t pages,
>                  int memory_type, bool overlap_only_ram);
> 
> and return EFI_SUCCESS or an error code. It would be very kind if you
> could send an updated patch.
> 
> Best regards
> 
> Heinrich

sure np


More information about the U-Boot mailing list