projects
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
fa3236a
)
armv7m_systick: delay timer_new to avoid memleaks
author
Pan Nengyuan
<pannengyuan@huawei.com>
Fri, 7 Feb 2020 14:04:28 +0000
(14:04 +0000)
committer
Peter Maydell
<peter.maydell@linaro.org>
Fri, 7 Feb 2020 14:04:28 +0000
(14:04 +0000)
There is a memory leak when we call 'device_list_properties' with typename = armv7m_systick. It's easy to reproduce as follow:
virsh qemu-monitor-command vm1 --pretty '{"execute": "device-list-properties", "arguments": {"typename": "armv7m_systick"}}'
This patch delay timer_new to fix this memleaks.
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Message-id:
20200205070659
.22488-2-pannengyuan@huawei.com
Cc: qemu-arm@nongnu.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/timer/armv7m_systick.c
patch
|
blob
|
history
diff --git
a/hw/timer/armv7m_systick.c
b/hw/timer/armv7m_systick.c
index 85d122dbcbc7420b286329717ce317de80e596a4..74c58bcf245338e70fde5f8935b8bd7e3ed8eb94 100644
(file)
--- a/
hw/timer/armv7m_systick.c
+++ b/
hw/timer/armv7m_systick.c
@@
-216,6
+216,11
@@
static void systick_instance_init(Object *obj)
memory_region_init_io(&s->iomem, obj, &systick_ops, s, "systick", 0xe0);
sysbus_init_mmio(sbd, &s->iomem);
sysbus_init_irq(sbd, &s->irq);
+}
+
+static void systick_realize(DeviceState *dev, Error **errp)
+{
+ SysTickState *s = SYSTICK(dev);
s->timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, systick_timer_tick, s);
}
@@
-238,6
+243,7
@@
static void systick_class_init(ObjectClass *klass, void *data)
dc->vmsd = &vmstate_systick;
dc->reset = systick_reset;
+ dc->realize = systick_realize;
}
static const TypeInfo armv7m_systick_info = {