diff mbox

[U-Boot] efi_loader: Add check for fallback fdt memory reservation

Message ID 1499081555-19639-1-git-send-email-agraf@suse.de
State Accepted
Commit 85a6e9b3c9d16ec062a6da3129448f39aad94fc9
Headers show

Commit Message

Alexander Graf July 3, 2017, 11:32 a.m. UTC
When running bootefi, we allocate new space but never check whether
the allocation succeeded. This patch adds a check so that in case
things go wrong, we at least know they did.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 cmd/bootefi.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Alexander Graf July 3, 2017, 1:57 p.m. UTC | #1
> When running bootefi, we allocate new space but never check whether
> the allocation succeeded. This patch adds a check so that in case
> things go wrong, we at least know they did.
> 
> Signed-off-by: Alexander Graf <agraf@suse.de>

Thanks, applied to efi-next

Alex
diff mbox

Patch

diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index a0a5434..771300e 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -133,7 +133,13 @@  static void *copy_fdt(void *fdt)
 			       &new_fdt_addr) != EFI_SUCCESS) {
 		/* If we can't put it there, put it somewhere */
 		new_fdt_addr = (ulong)memalign(4096, fdt_size);
+		if (efi_allocate_pages(1, EFI_BOOT_SERVICES_DATA, fdt_pages,
+				       &new_fdt_addr) != EFI_SUCCESS) {
+			printf("ERROR: Failed to reserve space for FDT\n");
+			return NULL;
+		}
 	}
+
 	new_fdt = (void*)(ulong)new_fdt_addr;
 	memcpy(new_fdt, fdt, fdt_totalsize(fdt));
 	fdt_set_totalsize(new_fdt, fdt_size);