diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 5055eee43..b136dadf1 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -409,10 +409,9 @@ void *of_flatten_dtb(struct device_node *node) fdt.dt_nextofs = dt_next_ofs(fdt.dt_nextofs, sizeof(struct fdt_node_header)); header.size_dt_strings = cpu_to_fdt32(fdt.str_nextofs); - header.size_dt_struct = cpu_to_fdt32(fdt.dt_nextofs); + header.size_dt_struct = cpu_to_fdt32(fdt.dt_nextofs - ofs); header.off_dt_struct = cpu_to_fdt32(ofs); - header.off_dt_strings = cpu_to_fdt32(fdt.dt_nextofs); if (fdt.dt_size - fdt.dt_nextofs < fdt.str_nextofs) {