All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gan Qixin <ganqixin@huawei.com>
To: <qemu-arm@nongnu.org>, <qemu-devel@nongnu.org>
Cc: peter.maydell@linaro.org, zhang.zhanghailiang@huawei.com,
	Jan Kiszka <jan.kiszka@web.de>, Gan Qixin <ganqixin@huawei.com>,
	Euler Robot <euler.robot@huawei.com>,
	kuhn.chenqun@huawei.com
Subject: [PATCH 7/7] musicpal: Use ptimer_free() in the finalize function to avoid memleaks
Date: Fri, 27 Nov 2020 15:18:03 +0800	[thread overview]
Message-ID: <20201127071803.2479462-8-ganqixin@huawei.com> (raw)
In-Reply-To: <20201127071803.2479462-1-ganqixin@huawei.com>

When running device-introspect-test, a memory leak occurred in the mv88w8618_pit_init
function, so use ptimer_free() in the finalize function to avoid it.

ASAN shows memory leak stack:

Indirect leak of 192 byte(s) in 4 object(s) allocated from:
    #0 0xffffab97e1f0 in __interceptor_calloc (/lib64/libasan.so.5+0xee1f0)
    #1 0xffffab256800 in g_malloc0 (/lib64/libglib-2.0.so.0+0x56800)
    #2 0xaaabf555db84 in timer_new_full /qemu/include/qemu/timer.h:523
    #3 0xaaabf555db84 in timer_new /qemu/include/qemu/timer.h:544
    #4 0xaaabf555db84 in timer_new_ns /qemu/include/qemu/timer.h:562
    #5 0xaaabf555db84 in ptimer_init /qemu/hw/core/ptimer.c:433
    #6 0xaaabf5bb2290 in mv88w8618_timer_init /qemu/hw/arm/musicpal.c:862
    #7 0xaaabf5bb2290 in mv88w8618_pit_init /qemu/hw/arm/musicpal.c:954
    #8 0xaaabf6339f6c in object_initialize_with_type /qemu/qom/object.c:515
    #9 0xaaabf633a1e0 in object_new_with_type /qemu/qom/object.c:729
    #10 0xaaabf6375e40 in qmp_device_list_properties /qemu/qom/qom-qmp-cmds.c:153
    #11 0xaaabf5a95540 in qdev_device_help /qemu/softmmu/qdev-monitor.c:283
    #12 0xaaabf5a96940 in qmp_device_add /qemu/softmmu/qdev-monitor.c:801

Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Gan Qixin <ganqixin@huawei.com>
---
Cc: Jan Kiszka <jan.kiszka@web.de>
---
 hw/arm/musicpal.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c
index 458b1cbeb7..0e77082e52 100644
--- a/hw/arm/musicpal.c
+++ b/hw/arm/musicpal.c
@@ -959,6 +959,17 @@ static void mv88w8618_pit_init(Object *obj)
     sysbus_init_mmio(dev, &s->iomem);
 }
 
+static void mv88w8618_pit_finalize(Object *obj)
+{
+    SysBusDevice *dev = SYS_BUS_DEVICE(obj);
+    mv88w8618_pit_state *s = MV88W8618_PIT(dev);
+    int i;
+
+    for (i = 0; i < 4; i++) {
+        ptimer_free(s->timer[i].ptimer);
+    }
+}
+
 static const VMStateDescription mv88w8618_timer_vmsd = {
     .name = "timer",
     .version_id = 1,
@@ -990,11 +1001,12 @@ static void mv88w8618_pit_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo mv88w8618_pit_info = {
-    .name          = TYPE_MV88W8618_PIT,
-    .parent        = TYPE_SYS_BUS_DEVICE,
-    .instance_size = sizeof(mv88w8618_pit_state),
-    .instance_init = mv88w8618_pit_init,
-    .class_init    = mv88w8618_pit_class_init,
+    .name              = TYPE_MV88W8618_PIT,
+    .parent            = TYPE_SYS_BUS_DEVICE,
+    .instance_size     = sizeof(mv88w8618_pit_state),
+    .instance_init     = mv88w8618_pit_init,
+    .instance_finalize = mv88w8618_pit_finalize,
+    .class_init        = mv88w8618_pit_class_init,
 };
 
 /* Flash config register offsets */
-- 
2.23.0



  parent reply	other threads:[~2020-11-27  7:29 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-27  7:17 [PATCH 0/7] Fix some memleaks caused by ptimer_init Gan Qixin
2020-11-27  7:17 ` [PATCH 1/7] allwinner-a10-pit: Use ptimer_free() in the finalize function to avoid memleaks Gan Qixin
2020-12-14 16:02   ` Peter Maydell
2020-12-14 16:20     ` Peter Maydell
2020-12-15  2:38       ` ganqixin
2020-12-15 11:35         ` Peter Maydell
2020-11-27  7:17 ` [PATCH 2/7] digic-timer: " Gan Qixin
2020-11-27  7:17 ` [PATCH 3/7] exynos4210_mct: " Gan Qixin
2020-11-27  7:18 ` [PATCH 4/7] exynos4210_pwm: " Gan Qixin
2020-11-27  7:18 ` [PATCH 5/7] exynos4210_rtc: " Gan Qixin
2020-11-27  7:18 ` [PATCH 6/7] mss-timer: " Gan Qixin
2020-11-27  7:18 ` Gan Qixin [this message]
2020-12-09  8:07 ` [PATCH 0/7] Fix some memleaks caused by ptimer_init ganqixin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201127071803.2479462-8-ganqixin@huawei.com \
    --to=ganqixin@huawei.com \
    --cc=euler.robot@huawei.com \
    --cc=jan.kiszka@web.de \
    --cc=kuhn.chenqun@huawei.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=zhang.zhanghailiang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.