@@ -46,10 +46,11 @@ static void efi_printk(efi_system_table_t *sys_table_arg, char *str)
}
-static efi_status_t __get_map(efi_system_table_t *sys_table_arg,
- efi_memory_desc_t **map,
- unsigned long *map_size,
- unsigned long *desc_size)
+static efi_status_t efi_get_memory_map(efi_system_table_t *sys_table_arg,
+ efi_memory_desc_t **map,
+ unsigned long *map_size,
+ unsigned long *desc_size,
+ unsigned long *key_ptr)
{
efi_memory_desc_t *m = NULL;
efi_status_t status;
@@ -77,6 +78,8 @@ again:
if (status != EFI_SUCCESS)
efi_call_phys1(sys_table_arg->boottime->free_pool, m);
+ if (key_ptr && status == EFI_SUCCESS)
+ *key_ptr = key;
fail:
*map = m;
@@ -97,7 +100,8 @@ static efi_status_t efi_high_alloc(efi_system_table_t *sys_table_arg,
u64 max_addr = 0;
int i;
- status = __get_map(sys_table_arg, &map, &map_size, &desc_size);
+ status = efi_get_memory_map(sys_table_arg, &map, &map_size, &desc_size,
+ NULL);
if (status != EFI_SUCCESS)
goto fail;
@@ -175,7 +179,8 @@ static efi_status_t efi_low_alloc(efi_system_table_t *sys_table_arg,
unsigned long nr_pages;
int i;
- status = __get_map(sys_table_arg, &map, &map_size, &desc_size);
+ status = efi_get_memory_map(sys_table_arg, &map, &map_size, &desc_size,
+ NULL);
if (status != EFI_SUCCESS)
goto fail;
Signed-off-by: Roy Franz <roy.franz@linaro.org> --- drivers/firmware/efi/efi-stub-helper.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)