Message ID | 20210603171259.27962-4-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | hw/acpi, arm: Provide and use acpi_ghes_present() | expand |
On 6/3/21 10:12 AM, Peter Maydell wrote: > 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> > --- > target/arm/kvm64.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On Fri, 4 Jun 2021 at 01:13, Peter Maydell <peter.maydell@linaro.org> wrote: > > 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> > --- > target/arm/kvm64.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c > index 37ceadd9a9d..59982d470d3 100644 > --- a/target/arm/kvm64.c > +++ b/target/arm/kvm64.c > @@ -1410,14 +1410,10 @@ void kvm_arch_on_sigbus_vcpu(CPUState *c, int code, void *addr) > { > ram_addr_t ram_addr; > 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); > > - if (acpi_enabled && addr && > - object_property_get_bool(obj, "ras", NULL)) { > + if (acpi_ghes_present() && addr) { > ram_addr = qemu_ram_addr_from_host(addr); > if (ram_addr != RAM_ADDR_INVALID && > kvm_physical_memory_addr_from_host(c->kvm_state, addr, &paddr)) { > -- > 2.20.1 > Reviewed-by: Dongjiu Geng <gengdongjiu1@gmail.com>
diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c index 37ceadd9a9d..59982d470d3 100644 --- a/target/arm/kvm64.c +++ b/target/arm/kvm64.c @@ -1410,14 +1410,10 @@ void kvm_arch_on_sigbus_vcpu(CPUState *c, int code, void *addr) { ram_addr_t ram_addr; 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); - if (acpi_enabled && addr && - object_property_get_bool(obj, "ras", NULL)) { + if (acpi_ghes_present() && addr) { ram_addr = qemu_ram_addr_from_host(addr); if (ram_addr != RAM_ADDR_INVALID && kvm_physical_memory_addr_from_host(c->kvm_state, addr, &paddr)) {
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> --- target/arm/kvm64.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) -- 2.20.1