mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
efi_loader: Clean up file size calculations
We recently added a common function for calculating file size, instead of copy pasting the code around. Switch one of the occurences over to the common function Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviwed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
parent
5e21958c02
commit
ac30aad210
1 changed files with 1 additions and 15 deletions
|
@ -1876,7 +1876,6 @@ static
|
||||||
efi_status_t efi_load_image_from_file(struct efi_device_path *file_path,
|
efi_status_t efi_load_image_from_file(struct efi_device_path *file_path,
|
||||||
void **buffer, efi_uintn_t *size)
|
void **buffer, efi_uintn_t *size)
|
||||||
{
|
{
|
||||||
struct efi_file_info *info = NULL;
|
|
||||||
struct efi_file_handle *f;
|
struct efi_file_handle *f;
|
||||||
efi_status_t ret;
|
efi_status_t ret;
|
||||||
u64 addr;
|
u64 addr;
|
||||||
|
@ -1887,18 +1886,7 @@ efi_status_t efi_load_image_from_file(struct efi_device_path *file_path,
|
||||||
if (!f)
|
if (!f)
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
|
|
||||||
/* Get file size */
|
ret = efi_file_size(f, &bs);
|
||||||
bs = 0;
|
|
||||||
EFI_CALL(ret = f->getinfo(f, (efi_guid_t *)&efi_file_info_guid,
|
|
||||||
&bs, info));
|
|
||||||
if (ret != EFI_BUFFER_TOO_SMALL) {
|
|
||||||
ret = EFI_DEVICE_ERROR;
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
info = malloc(bs);
|
|
||||||
EFI_CALL(ret = f->getinfo(f, (efi_guid_t *)&efi_file_info_guid, &bs,
|
|
||||||
info));
|
|
||||||
if (ret != EFI_SUCCESS)
|
if (ret != EFI_SUCCESS)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
@ -1908,7 +1896,6 @@ efi_status_t efi_load_image_from_file(struct efi_device_path *file_path,
|
||||||
* allocate a buffer as EFI_BOOT_SERVICES_DATA. The caller has to
|
* allocate a buffer as EFI_BOOT_SERVICES_DATA. The caller has to
|
||||||
* update the reservation according to the image type.
|
* update the reservation according to the image type.
|
||||||
*/
|
*/
|
||||||
bs = info->file_size;
|
|
||||||
ret = efi_allocate_pages(EFI_ALLOCATE_ANY_PAGES,
|
ret = efi_allocate_pages(EFI_ALLOCATE_ANY_PAGES,
|
||||||
EFI_BOOT_SERVICES_DATA,
|
EFI_BOOT_SERVICES_DATA,
|
||||||
efi_size_in_pages(bs), &addr);
|
efi_size_in_pages(bs), &addr);
|
||||||
|
@ -1925,7 +1912,6 @@ efi_status_t efi_load_image_from_file(struct efi_device_path *file_path,
|
||||||
*size = bs;
|
*size = bs;
|
||||||
error:
|
error:
|
||||||
EFI_CALL(f->close(f));
|
EFI_CALL(f->close(f));
|
||||||
free(info);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue