target/arm: Use acpi_ghes_present() to see if we report ACPI memory errors
The virt_is_acpi_enabled() function is specific to the virt board, as is the check for its 'ras' property. Use the new acpi_ghes_present() function to check whether we should report memory errors via acpi_ghes_record_errors(). This avoids a link error if QEMU was built without support for the virt board, and provides a mechanism that can be used by any future board models that want to add ACPI memory error reporting support (they only need to call acpi_ghes_add_fw_cfg()). Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Dongjiu Geng <gengdongjiu1@gmail.com> Message-id: 20210603171259.27962-4-peter.maydell@linaro.org
This commit is contained in:
parent
1c81f5735a
commit
15613357ba
@ -1410,14 +1410,10 @@ void kvm_arch_on_sigbus_vcpu(CPUState *c, int code, void *addr)
|
|||||||
{
|
{
|
||||||
ram_addr_t ram_addr;
|
ram_addr_t ram_addr;
|
||||||
hwaddr paddr;
|
hwaddr paddr;
|
||||||
Object *obj = qdev_get_machine();
|
|
||||||
VirtMachineState *vms = VIRT_MACHINE(obj);
|
|
||||||
bool acpi_enabled = virt_is_acpi_enabled(vms);
|
|
||||||
|
|
||||||
assert(code == BUS_MCEERR_AR || code == BUS_MCEERR_AO);
|
assert(code == BUS_MCEERR_AR || code == BUS_MCEERR_AO);
|
||||||
|
|
||||||
if (acpi_enabled && addr &&
|
if (acpi_ghes_present() && addr) {
|
||||||
object_property_get_bool(obj, "ras", NULL)) {
|
|
||||||
ram_addr = qemu_ram_addr_from_host(addr);
|
ram_addr = qemu_ram_addr_from_host(addr);
|
||||||
if (ram_addr != RAM_ADDR_INVALID &&
|
if (ram_addr != RAM_ADDR_INVALID &&
|
||||||
kvm_physical_memory_addr_from_host(c->kvm_state, addr, &paddr)) {
|
kvm_physical_memory_addr_from_host(c->kvm_state, addr, &paddr)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user