The instance_init function of the xtensa CPUs creates a memory region,
but does not set an owner, so the memory region is not destroyed
correctly when the CPU object is removed. This can happen when
introspecting the CPU devices, so introspecting the CPU device will
leave a dangling memory region object in the QOM tree. Make sure to
set the right owner here to fix this issue.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
target/xtensa/cpu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c
index b50c840..590813d 100644
--- a/target/xtensa/cpu.c
+++ b/target/xtensa/cpu.c
@@ -149,7 +149,7 @@ static void xtensa_cpu_initfn(Object *obj)
#ifndef CONFIG_USER_ONLY
env->address_space_er = g_malloc(sizeof(*env->address_space_er));
env->system_er = g_malloc(sizeof(*env->system_er));
- memory_region_init_io(env->system_er, NULL, NULL, env, "er",
+ memory_region_init_io(env->system_er, obj, NULL, env, "er",
UINT64_C(0x100000000));
address_space_init(env->address_space_er, env->system_er, "ER");
#endif
--
1.8.3.1
On Thu, Jul 19, 2018 at 6:02 AM, Thomas Huth <thuth@redhat.com> wrote: > The instance_init function of the xtensa CPUs creates a memory region, > but does not set an owner, so the memory region is not destroyed > correctly when the CPU object is removed. This can happen when > introspecting the CPU devices, so introspecting the CPU device will > leave a dangling memory region object in the QOM tree. Make sure to > set the right owner here to fix this issue. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > target/xtensa/cpu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Acked-by: Max Filippov <jcmvbkbc@gmail.com> -- Thanks. -- Max
On 19 July 2018 at 14:02, Thomas Huth <thuth@redhat.com> wrote: > The instance_init function of the xtensa CPUs creates a memory region, > but does not set an owner, so the memory region is not destroyed > correctly when the CPU object is removed. This can happen when > introspecting the CPU devices, so introspecting the CPU device will > leave a dangling memory region object in the QOM tree. Make sure to > set the right owner here to fix this issue. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > target/xtensa/cpu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c > index b50c840..590813d 100644 > --- a/target/xtensa/cpu.c > +++ b/target/xtensa/cpu.c > @@ -149,7 +149,7 @@ static void xtensa_cpu_initfn(Object *obj) > #ifndef CONFIG_USER_ONLY > env->address_space_er = g_malloc(sizeof(*env->address_space_er)); > env->system_er = g_malloc(sizeof(*env->system_er)); > - memory_region_init_io(env->system_er, NULL, NULL, env, "er", > + memory_region_init_io(env->system_er, obj, NULL, env, "er", > UINT64_C(0x100000000)); > address_space_init(env->address_space_er, env->system_er, "ER"); > #endif > -- Applied to master for rc4, thanks. -- PMM
© 2016 - 2024 Red Hat, Inc.