On Tue, Jan 17, 2023 at 3:35 AM Daniel Henrique Barboza <dbarb...@ventanamicro.com> wrote: > > fdt_pack() can change the fdt size, meaning that fdt_totalsize() can > contain a now deprecated (bigger) value. > > Signed-off-by: Daniel Henrique Barboza <dbarb...@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > hw/riscv/boot.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c > index 2594276223..dc14d8cd14 100644 > --- a/hw/riscv/boot.c > +++ b/hw/riscv/boot.c > @@ -253,8 +253,13 @@ uint64_t riscv_load_fdt(hwaddr dram_base, uint64_t > mem_size, void *fdt) > { > uint64_t temp, fdt_addr; > hwaddr dram_end = dram_base + mem_size; > - int ret, fdtsize = fdt_totalsize(fdt); > + int ret = fdt_pack(fdt); > + int fdtsize; > > + /* Should only fail if we've built a corrupted tree */ > + g_assert(ret == 0); > + > + fdtsize = fdt_totalsize(fdt); > if (fdtsize <= 0) { > error_report("invalid device-tree"); > exit(1); > -- > 2.39.0 > >