* [PATCH] acpi_ged: Add ospm_status hook implementation
@ 2022-08-16 9:26 Keqian Zhu via
2022-08-16 9:30 ` Peter Maydell
0 siblings, 1 reply; 5+ messages in thread
From: Keqian Zhu via @ 2022-08-16 9:26 UTC (permalink / raw)
To: qemu-devel, qemu-arm, qemu-trivial
Cc: Philippe Mathieu-Daudé,
Peter Maydell, Eric Auger, Peter Xu, Igor Mammedov,
wanghaibin.wang
This fixes a bug that causes segmentation fault with following dumpstack:
#1 0x0000aaaaab64235c in qmp_query_acpi_ospm_status (errp=errp@entry=0xfffffffff030) at ../monitor/qmp-cmds.c:312
#2 0x0000aaaaabfc4e20 in qmp_marshal_query_acpi_ospm_status (args=<optimized out>, ret=0xffffea4ffe90, errp=0xffffea4ffe88) at qapi/qapi-commands-acpi.c:63
#3 0x0000aaaaabff8ba0 in do_qmp_dispatch_bh (opaque=0xffffea4ffe98) at ../qapi/qmp-dispatch.c:128
#4 0x0000aaaaac02e594 in aio_bh_call (bh=0xffffe0004d80) at ../util/async.c:150
#5 aio_bh_poll (ctx=ctx@entry=0xaaaaad0f6040) at ../util/async.c:178
#6 0x0000aaaaac00bd40 in aio_dispatch (ctx=ctx@entry=0xaaaaad0f6040) at ../util/aio-posix.c:421
#7 0x0000aaaaac02e010 in aio_ctx_dispatch (source=0xaaaaad0f6040, callback=<optimized out>, user_data=<optimized out>) at ../util/async.c:320
#8 0x0000fffff76f6884 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#9 0x0000aaaaac0452d4 in glib_pollfds_poll () at ../util/main-loop.c:297
#10 os_host_main_loop_wait (timeout=0) at ../util/main-loop.c:320
#11 main_loop_wait (nonblocking=nonblocking@entry=0) at ../util/main-loop.c:596
#12 0x0000aaaaab5c9e50 in qemu_main_loop () at ../softmmu/runstate.c:734
#13 0x0000aaaaab185370 in qemu_main (argc=argc@entry=47, argv=argv@entry=0xfffffffff518, envp=envp@entry=0x0) at ../softmmu/main.c:38
#14 0x0000aaaaab16f99c in main (argc=47, argv=0xfffffffff518) at ../softmmu/main.c:47
Fixes: ebb62075021a ("hw/acpi: Add ACPI Generic Event Device Support")
Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
---
hw/acpi/generic_event_device.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/acpi/generic_event_device.c b/hw/acpi/generic_event_device.c
index e28457a7d1..a3d31631fe 100644
--- a/hw/acpi/generic_event_device.c
+++ b/hw/acpi/generic_event_device.c
@@ -267,6 +267,13 @@ static void acpi_ged_unplug_cb(HotplugHandler *hotplug_dev,
}
}
+static void acpi_ged_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list)
+{
+ AcpiGedState *s = ACPI_GED(adev);
+
+ acpi_memory_ospm_status(&s->memhp_state, list);
+}
+
static void acpi_ged_send_event(AcpiDeviceIf *adev, AcpiEventStatusBits ev)
{
AcpiGedState *s = ACPI_GED(adev);
@@ -409,6 +416,7 @@ static void acpi_ged_class_init(ObjectClass *class, void *data)
hc->unplug_request = acpi_ged_unplug_request_cb;
hc->unplug = acpi_ged_unplug_cb;
+ adevc->ospm_status = acpi_ged_ospm_status;
adevc->send_event = acpi_ged_send_event;
}
--
2.33.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] acpi_ged: Add ospm_status hook implementation
2022-08-16 9:26 [PATCH] acpi_ged: Add ospm_status hook implementation Keqian Zhu via
@ 2022-08-16 9:30 ` Peter Maydell
2022-08-16 9:39 ` 答复: " zhukeqian via
0 siblings, 1 reply; 5+ messages in thread
From: Peter Maydell @ 2022-08-16 9:30 UTC (permalink / raw)
To: Keqian Zhu
Cc: qemu-devel, qemu-arm, qemu-trivial, Philippe Mathieu-Daudé,
Eric Auger, Peter Xu, Igor Mammedov, wanghaibin.wang
On Tue, 16 Aug 2022 at 10:26, Keqian Zhu <zhukeqian1@huawei.com> wrote:
>
> This fixes a bug that causes segmentation fault with following dumpstack:
> #1 0x0000aaaaab64235c in qmp_query_acpi_ospm_status (errp=errp@entry=0xfffffffff030) at ../monitor/qmp-cmds.c:312
> #2 0x0000aaaaabfc4e20 in qmp_marshal_query_acpi_ospm_status (args=<optimized out>, ret=0xffffea4ffe90, errp=0xffffea4ffe88) at qapi/qapi-commands-acpi.c:63
> #3 0x0000aaaaabff8ba0 in do_qmp_dispatch_bh (opaque=0xffffea4ffe98) at ../qapi/qmp-dispatch.c:128
> #4 0x0000aaaaac02e594 in aio_bh_call (bh=0xffffe0004d80) at ../util/async.c:150
> #5 aio_bh_poll (ctx=ctx@entry=0xaaaaad0f6040) at ../util/async.c:178
> #6 0x0000aaaaac00bd40 in aio_dispatch (ctx=ctx@entry=0xaaaaad0f6040) at ../util/aio-posix.c:421
> #7 0x0000aaaaac02e010 in aio_ctx_dispatch (source=0xaaaaad0f6040, callback=<optimized out>, user_data=<optimized out>) at ../util/async.c:320
> #8 0x0000fffff76f6884 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
> #9 0x0000aaaaac0452d4 in glib_pollfds_poll () at ../util/main-loop.c:297
> #10 os_host_main_loop_wait (timeout=0) at ../util/main-loop.c:320
> #11 main_loop_wait (nonblocking=nonblocking@entry=0) at ../util/main-loop.c:596
> #12 0x0000aaaaab5c9e50 in qemu_main_loop () at ../softmmu/runstate.c:734
> #13 0x0000aaaaab185370 in qemu_main (argc=argc@entry=47, argv=argv@entry=0xfffffffff518, envp=envp@entry=0x0) at ../softmmu/main.c:38
> #14 0x0000aaaaab16f99c in main (argc=47, argv=0xfffffffff518) at ../softmmu/main.c:47
What are the conditions required to trigger the segfault?
> Fixes: ebb62075021a ("hw/acpi: Add ACPI Generic Event Device Support")
> Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
> ---
> hw/acpi/generic_event_device.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/hw/acpi/generic_event_device.c b/hw/acpi/generic_event_device.c
> index e28457a7d1..a3d31631fe 100644
> --- a/hw/acpi/generic_event_device.c
> +++ b/hw/acpi/generic_event_device.c
> @@ -267,6 +267,13 @@ static void acpi_ged_unplug_cb(HotplugHandler *hotplug_dev,
> }
> }
>
> +static void acpi_ged_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list)
> +{
> + AcpiGedState *s = ACPI_GED(adev);
> +
> + acpi_memory_ospm_status(&s->memhp_state, list);
> +}
> +
> static void acpi_ged_send_event(AcpiDeviceIf *adev, AcpiEventStatusBits ev)
> {
> AcpiGedState *s = ACPI_GED(adev);
> @@ -409,6 +416,7 @@ static void acpi_ged_class_init(ObjectClass *class, void *data)
> hc->unplug_request = acpi_ged_unplug_request_cb;
> hc->unplug = acpi_ged_unplug_cb;
>
> + adevc->ospm_status = acpi_ged_ospm_status;
> adevc->send_event = acpi_ged_send_event;
> }
>
> --
thanks
-- PMM
^ permalink raw reply [flat|nested] 5+ messages in thread
* 答复: [PATCH] acpi_ged: Add ospm_status hook implementation
2022-08-16 9:30 ` Peter Maydell
@ 2022-08-16 9:39 ` zhukeqian via
2022-08-16 9:41 ` Peter Maydell
0 siblings, 1 reply; 5+ messages in thread
From: zhukeqian via @ 2022-08-16 9:39 UTC (permalink / raw)
To: Peter Maydell
Cc: qemu-devel, qemu-arm, qemu-trivial, Philippe Mathieu-Daudé,
Eric Auger, Peter Xu, Igor Mammedov, Wanghaibin (D)
Hi Peter,
Setup an ARM virtual machine of machine virt and execute qmp "query-acpi-ospm-status" can trigger this bug.
Thanks.
-----邮件原件-----
发件人: Qemu-devel [mailto:qemu-devel-bounces+zhukeqian1=huawei.com@nongnu.org] 代表 Peter Maydell
发送时间: 2022年8月16日 17:30
收件人: zhukeqian <zhukeqian1@huawei.com>
抄送: qemu-devel@nongnu.org; qemu-arm@nongnu.org; qemu-trivial@nongnu.org; Philippe Mathieu-Daudé <philmd@redhat.com>; Eric Auger <eric.auger@redhat.com>; Peter Xu <peterx@redhat.com>; Igor Mammedov <imammedo@redhat.com>; Wanghaibin (D) <wanghaibin.wang@huawei.com>
主题: Re: [PATCH] acpi_ged: Add ospm_status hook implementation
On Tue, 16 Aug 2022 at 10:26, Keqian Zhu <zhukeqian1@huawei.com> wrote:
>
> This fixes a bug that causes segmentation fault with following dumpstack:
> #1 0x0000aaaaab64235c in qmp_query_acpi_ospm_status
> (errp=errp@entry=0xfffffffff030) at ../monitor/qmp-cmds.c:312
> #2 0x0000aaaaabfc4e20 in qmp_marshal_query_acpi_ospm_status
> (args=<optimized out>, ret=0xffffea4ffe90, errp=0xffffea4ffe88) at
> qapi/qapi-commands-acpi.c:63
> #3 0x0000aaaaabff8ba0 in do_qmp_dispatch_bh (opaque=0xffffea4ffe98)
> at ../qapi/qmp-dispatch.c:128
> #4 0x0000aaaaac02e594 in aio_bh_call (bh=0xffffe0004d80) at
> ../util/async.c:150
> #5 aio_bh_poll (ctx=ctx@entry=0xaaaaad0f6040) at ../util/async.c:178
> #6 0x0000aaaaac00bd40 in aio_dispatch (ctx=ctx@entry=0xaaaaad0f6040)
> at ../util/aio-posix.c:421
> #7 0x0000aaaaac02e010 in aio_ctx_dispatch (source=0xaaaaad0f6040,
> callback=<optimized out>, user_data=<optimized out>) at
> ../util/async.c:320
> #8 0x0000fffff76f6884 in g_main_context_dispatch () at
> /usr/lib64/libglib-2.0.so.0
> #9 0x0000aaaaac0452d4 in glib_pollfds_poll () at
> ../util/main-loop.c:297
> #10 os_host_main_loop_wait (timeout=0) at ../util/main-loop.c:320
> #11 main_loop_wait (nonblocking=nonblocking@entry=0) at
> ../util/main-loop.c:596
> #12 0x0000aaaaab5c9e50 in qemu_main_loop () at
> ../softmmu/runstate.c:734
> #13 0x0000aaaaab185370 in qemu_main (argc=argc@entry=47,
> argv=argv@entry=0xfffffffff518, envp=envp@entry=0x0) at
> ../softmmu/main.c:38
> #14 0x0000aaaaab16f99c in main (argc=47, argv=0xfffffffff518) at
> ../softmmu/main.c:47
What are the conditions required to trigger the segfault?
> Fixes: ebb62075021a ("hw/acpi: Add ACPI Generic Event Device Support")
> Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
> ---
> hw/acpi/generic_event_device.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/hw/acpi/generic_event_device.c
> b/hw/acpi/generic_event_device.c index e28457a7d1..a3d31631fe 100644
> --- a/hw/acpi/generic_event_device.c
> +++ b/hw/acpi/generic_event_device.c
> @@ -267,6 +267,13 @@ static void acpi_ged_unplug_cb(HotplugHandler *hotplug_dev,
> }
> }
>
> +static void acpi_ged_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList
> +***list) {
> + AcpiGedState *s = ACPI_GED(adev);
> +
> + acpi_memory_ospm_status(&s->memhp_state, list); }
> +
> static void acpi_ged_send_event(AcpiDeviceIf *adev,
> AcpiEventStatusBits ev) {
> AcpiGedState *s = ACPI_GED(adev); @@ -409,6 +416,7 @@ static void
> acpi_ged_class_init(ObjectClass *class, void *data)
> hc->unplug_request = acpi_ged_unplug_request_cb;
> hc->unplug = acpi_ged_unplug_cb;
>
> + adevc->ospm_status = acpi_ged_ospm_status;
> adevc->send_event = acpi_ged_send_event; }
>
> --
thanks
-- PMM
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] acpi_ged: Add ospm_status hook implementation
2022-08-16 9:39 ` 答复: " zhukeqian via
@ 2022-08-16 9:41 ` Peter Maydell
2022-08-16 9:48 ` 答复: " zhukeqian via
0 siblings, 1 reply; 5+ messages in thread
From: Peter Maydell @ 2022-08-16 9:41 UTC (permalink / raw)
To: zhukeqian
Cc: qemu-devel, qemu-arm, qemu-trivial, Philippe Mathieu-Daudé,
Eric Auger, Peter Xu, Igor Mammedov, Wanghaibin (D)
On Tue, 16 Aug 2022 at 10:40, zhukeqian <zhukeqian1@huawei.com> wrote:
>
> Hi Peter,
>
> Setup an ARM virtual machine of machine virt and execute qmp "query-acpi-ospm-status" can trigger this bug.
Thanks. That is worth stating in the commit message, I think.
-- PMm
^ permalink raw reply [flat|nested] 5+ messages in thread
* 答复: [PATCH] acpi_ged: Add ospm_status hook implementation
2022-08-16 9:41 ` Peter Maydell
@ 2022-08-16 9:48 ` zhukeqian via
0 siblings, 0 replies; 5+ messages in thread
From: zhukeqian via @ 2022-08-16 9:48 UTC (permalink / raw)
To: Peter Maydell
Cc: qemu-devel, qemu-arm, qemu-trivial, Eric Auger, Peter Xu,
Igor Mammedov, Wanghaibin (D)
OK, I'll send v2 soon.
-----邮件原件-----
发件人: Peter Maydell [mailto:peter.maydell@linaro.org]
发送时间: 2022年8月16日 17:42
收件人: zhukeqian <zhukeqian1@huawei.com>
抄送: qemu-devel@nongnu.org; qemu-arm@nongnu.org; qemu-trivial@nongnu.org; Philippe Mathieu-Daudé <philmd@redhat.com>; Eric Auger <eric.auger@redhat.com>; Peter Xu <peterx@redhat.com>; Igor Mammedov <imammedo@redhat.com>; Wanghaibin (D) <wanghaibin.wang@huawei.com>
主题: Re: [PATCH] acpi_ged: Add ospm_status hook implementation
On Tue, 16 Aug 2022 at 10:40, zhukeqian <zhukeqian1@huawei.com> wrote:
>
> Hi Peter,
>
> Setup an ARM virtual machine of machine virt and execute qmp "query-acpi-ospm-status" can trigger this bug.
Thanks. That is worth stating in the commit message, I think.
-- PMm
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-08-16 10:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-16 9:26 [PATCH] acpi_ged: Add ospm_status hook implementation Keqian Zhu via
2022-08-16 9:30 ` Peter Maydell
2022-08-16 9:39 ` 答复: " zhukeqian via
2022-08-16 9:41 ` Peter Maydell
2022-08-16 9:48 ` 答复: " zhukeqian via
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.