Re: [PATCH 4/6] efi/libstub: Use efi_exit_boot_services() in FDT

From: Ingo Molnar
Date: Mon Aug 22 2016 - 12:59:47 EST



* Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx> wrote:

> From: Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx>
>
> The FDT code directly calls ExitBootServices. This is inadvisable as the
> UEFI spec details a complex set of errors, race conditions, and API
> interactions that the caller of ExitBootServices must get correct. The
> FDT code does not handle EFI_INVALID_PARAMETER as required by the spec,
> which causes intermittent boot failures on the Qualcomm Technologies
> QDF2432. The efi_exit_boot_services() helper handles the
> EFI_INVALID_PARAMETER scenario.

So I had to look twice to understand what this commit tries to do.

Had it ended with this sentence:

> Call the efi_exit_boot_services() helper intead, which handles the
> EFI_INVALID_PARAMETER scenario properly.

I wouldn't have looked twice! ;-)

> + /*
> + * Update the memory map with virtual addresses. The function will also
> + * populate @runtime_map with copies of just the EFI_MEMORY_RUNTIME
> + * entries so that we can pass it straight into SetVirtualAddressMap()

s/straight to

?

Thanks,

Ingo