]> git.sur5r.net Git - u-boot/blobdiff - lib/efi_loader/efi_boottime.c
efi_loader: Track size of pool allocations to allow freeing
[u-boot] / lib / efi_loader / efi_boottime.c
index 792db39f516c4d991b79924e231234f9d18eee79..6c8d93b26134cfb279ae485ec70d4af1bb08de28 100644 (file)
@@ -130,22 +130,23 @@ efi_status_t EFIAPI efi_get_memory_map_ext(unsigned long *memory_map_size,
        return EFI_EXIT(r);
 }
 
-static efi_status_t EFIAPI efi_allocate_pool(int pool_type, unsigned long size,
-                                            void **buffer)
+static efi_status_t EFIAPI efi_allocate_pool_ext(int pool_type,
+                                                unsigned long size,
+                                                void **buffer)
 {
        efi_status_t r;
 
        EFI_ENTRY("%d, %ld, %p", pool_type, size, buffer);
-       r = efi_allocate_pages(0, pool_type, (size + 0xfff) >> 12, (void*)buffer);
+       r = efi_allocate_pool(pool_type, size, buffer);
        return EFI_EXIT(r);
 }
 
-static efi_status_t EFIAPI efi_free_pool(void *buffer)
+static efi_status_t EFIAPI efi_free_pool_ext(void *buffer)
 {
        efi_status_t r;
 
        EFI_ENTRY("%p", buffer);
-       r = efi_free_pages((ulong)buffer, 0);
+       r = efi_free_pool(buffer);
        return EFI_EXIT(r);
 }
 
@@ -734,8 +735,8 @@ static const struct efi_boot_services efi_boot_services = {
        .allocate_pages = efi_allocate_pages_ext,
        .free_pages = efi_free_pages_ext,
        .get_memory_map = efi_get_memory_map_ext,
-       .allocate_pool = efi_allocate_pool,
-       .free_pool = efi_free_pool,
+       .allocate_pool = efi_allocate_pool_ext,
+       .free_pool = efi_free_pool_ext,
        .create_event = efi_create_event,
        .set_timer = efi_set_timer,
        .wait_for_event = efi_wait_for_event,