diff --git a/cmd/bootefi.c b/cmd/bootefi.c index 0f6d0f7750..ac713cad1b 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -189,16 +189,19 @@ static void efi_carve_out_dt_rsv(void *fdt) if (nodeoffset >= 0) { subnode = fdt_first_subnode(fdt, nodeoffset); while (subnode >= 0) { + fdt_addr_t fdt_addr, fdt_size; + /* check if this subnode has a reg property */ - addr = fdtdec_get_addr_size(fdt, subnode, "reg", - (fdt_size_t *)&size); + fdt_addr = fdtdec_get_addr_size_auto_parent( + fdt, nodeoffset, subnode, + "reg", 0, &fdt_size, false); /* * The /reserved-memory node may have children with * a size instead of a reg property. */ if (addr != FDT_ADDR_T_NONE && fdtdec_get_is_enabled(fdt, subnode)) - efi_reserve_memory(addr, size); + efi_reserve_memory(fdt_addr, fdt_size); subnode = fdt_next_subnode(fdt, subnode); } }