ACPI: Avoid infinite recursion when dump-vmstate

There is a field with vmstate_ghes_state as vmsd in vmstate_ghes_state,
which will lead to infinite recursion in dump_vmstate_vmsd.

Fixes: a08a64627b ("ACPI: Record the Generic Error Status Block address")
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Peng Liang <liangpeng10@huawei.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20201112020638.874515-1-liangpeng10@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
Peng Liang 2020-11-12 10:06:38 +08:00 committed by Dr. David Alan Gilbert
parent af3bbbe984
commit 136fc6aa2c
1 changed files with 11 additions and 1 deletions

View File

@ -322,6 +322,16 @@ static const VMStateDescription vmstate_ged_state = {
} }
}; };
static const VMStateDescription vmstate_ghes = {
.name = "acpi-ghes",
.version_id = 1,
.minimum_version_id = 1,
.fields = (VMStateField[]) {
VMSTATE_UINT64(ghes_addr_le, AcpiGhesState),
VMSTATE_END_OF_LIST()
},
};
static bool ghes_needed(void *opaque) static bool ghes_needed(void *opaque)
{ {
AcpiGedState *s = opaque; AcpiGedState *s = opaque;
@ -335,7 +345,7 @@ static const VMStateDescription vmstate_ghes_state = {
.needed = ghes_needed, .needed = ghes_needed,
.fields = (VMStateField[]) { .fields = (VMStateField[]) {
VMSTATE_STRUCT(ghes_state, AcpiGedState, 1, VMSTATE_STRUCT(ghes_state, AcpiGedState, 1,
vmstate_ghes_state, AcpiGhesState), vmstate_ghes, AcpiGhesState),
VMSTATE_END_OF_LIST() VMSTATE_END_OF_LIST()
} }
}; };