mirror of https://gitee.com/openkylin/qemu.git
spapr: Initialize reserved areas list in FDT in H_CAS handler
At the moment the device tree produced by the H_CAS handler has no reserved map initialized at all which is not correct as at least one empty record is required to be present as a marker of the end. This does not cause problems now as the only consumer is SLOF which does not look at the reserved map area. However when DTC's "Improve libfdt's memory safety" changeset hits the QEMU upstream, there will be errors reported and crashes observed. This fixes the problem by adding an empty entry to the reserved map, just like create_device_tree() does already. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
efb7db250a
commit
127f03e442
|
@ -865,6 +865,7 @@ int spapr_h_cas_compose_response(sPAPRMachineState *spapr,
|
||||||
/* Create skeleton */
|
/* Create skeleton */
|
||||||
fdt_skel = g_malloc0(size);
|
fdt_skel = g_malloc0(size);
|
||||||
_FDT((fdt_create(fdt_skel, size)));
|
_FDT((fdt_create(fdt_skel, size)));
|
||||||
|
_FDT((fdt_finish_reservemap(fdt_skel)));
|
||||||
_FDT((fdt_begin_node(fdt_skel, "")));
|
_FDT((fdt_begin_node(fdt_skel, "")));
|
||||||
_FDT((fdt_end_node(fdt_skel)));
|
_FDT((fdt_end_node(fdt_skel)));
|
||||||
_FDT((fdt_finish(fdt_skel)));
|
_FDT((fdt_finish(fdt_skel)));
|
||||||
|
|
Loading…
Reference in New Issue