
On 06/03/2018 03:23 PM, Alexander Graf wrote:
On 27.05.18 16:47, Heinrich Schuchardt wrote:
Handles are not used at runtime. They are freed by the firmware when the last protocol interface is uninstalled. So there is no reason to use EFI memory when creating handles.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
I agree that efi object structs are supposed to be opaque and thus we can use any allocation mechanism we like.
What I also see is that efi_delete_handle() even calls free() on objects, so spawning them from efi memory rather than malloc memory is also just wrong.
The bit that is missing is to call efi_delete_handle() when the last protocol interface is uninstalled. Before doing so we must ensure that no static memory is used and the first element of the handles is an efi_obj. I did not yet check if we reached that point.
Best regards
Heinrich
In short, I think your patch is completely correct :).
Alex