From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39692) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YyCqC-0006PD-BE for qemu-devel@nongnu.org; Fri, 29 May 2015 01:28:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YyCq6-0005Dp-UF for qemu-devel@nongnu.org; Fri, 29 May 2015 01:28:20 -0400 From: Shannon Zhao Date: Fri, 29 May 2015 13:27:02 +0800 Message-ID: <1432877231-5136-5-git-send-email-zhaoshenglong@huawei.com> In-Reply-To: <1432877231-5136-1-git-send-email-zhaoshenglong@huawei.com> References: <1432877231-5136-1-git-send-email-zhaoshenglong@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [PATCH v2 04/13] hw/timer/arm_timer.c: Fix misusing qemu_allocate_irqs for single irq List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: qemu-trivial@nongnu.org, pbonzini@redhat.com, mjt@tls.msk.ru, shannon.zhao@linaro.org, peter.maydell@linaro.org From: Shannon Zhao 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 Signed-off-by: Shannon Zhao --- 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