From: Shannon Zhao <shannon.z...@linaro.org> valgrind complains about: ==16356== 32 bytes in 2 blocks are definitely lost in loss record 1,689 of 2,802 ==16356== at 0x4C2845D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==16356== by 0x35478F: malloc_and_trace (vl.c:2556) ==16356== by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3) ==16356== by 0x3ED94B: qemu_extend_irqs (irq.c:55) ==16356== by 0x3ED9D7: qemu_allocate_irqs (irq.c:64) ==16356== by 0x4BA8D1: sp804_init (arm_timer.c:285) ==16356== by 0x3EEE1D: sysbus_device_init (sysbus.c:204) ==16356== by 0x3E838D: device_realize (qdev.c:247) ==16356== by 0x3EA48C: device_set_realized (qdev.c:1058) ==16356== by 0x516CD2: property_set_bool (object.c:1514) ==16356== by 0x5155CC: object_property_set (object.c:837) ==16356== by 0x5178EE: object_property_set_qobject (qom-qobject.c:24)
Signed-off-by: Shannon Zhao <zhaoshengl...@huawei.com> Signed-off-by: Shannon Zhao <shannon.z...@linaro.org> --- hw/timer/arm_timer.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/timer/arm_timer.c b/hw/timer/arm_timer.c index 1452910..d53f39a 100644 --- a/hw/timer/arm_timer.c +++ b/hw/timer/arm_timer.c @@ -280,14 +280,12 @@ static int sp804_init(SysBusDevice *sbd) { DeviceState *dev = DEVICE(sbd); SP804State *s = SP804(dev); - qemu_irq *qi; - qi = qemu_allocate_irqs(sp804_set_irq, s, 2); sysbus_init_irq(sbd, &s->irq); s->timer[0] = arm_timer_init(s->freq0); s->timer[1] = arm_timer_init(s->freq1); - s->timer[0]->irq = qi[0]; - s->timer[1]->irq = qi[1]; + s->timer[0]->irq = qemu_allocate_irq(sp804_set_irq, s, 0); + s->timer[1]->irq = qemu_allocate_irq(sp804_set_irq, s, 1); memory_region_init_io(&s->iomem, OBJECT(s), &sp804_ops, s, "sp804", 0x1000); sysbus_init_mmio(sbd, &s->iomem); -- 2.0.4