[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-trivial] [PATCH 21/29] hw/sh4/r2d.c: Fix memory leak spotted b
From: |
Shannon Zhao |
Subject: |
Re: [Qemu-trivial] [PATCH 21/29] hw/sh4/r2d.c: Fix memory leak spotted by valgrind |
Date: |
Fri, 29 May 2015 10:11:05 +0800 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 |
On 2015/5/28 20:46, Peter Maydell wrote:
> On 28 May 2015 at 13:08, Shannon Zhao <address@hidden> wrote:
>> > From: Shannon Zhao <address@hidden>
>> >
>> > valgrind complains about:
>> > ==29844== 1,364 (104 direct, 1,260 indirect) bytes in 1 blocks are
>> > definitely lost in loss record 2,143 of 2,205
>> > ==29844== at 0x4C2845D: malloc (in
>> > /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
>> > ==29844== by 0x25096F: malloc_and_trace (vl.c:2556)
>> > ==29844== by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
>> > ==29844== by 0x2C7CDB: qemu_extend_irqs (irq.c:55)
>> > ==29844== by 0x2C7D67: qemu_allocate_irqs (irq.c:64)
>> > ==29844== by 0x2167ED: r2d_fpga_init (r2d.c:191)
>> > ==29844== by 0x2169CC: r2d_init (r2d.c:263)
>> > ==29844== by 0x254D3A: main (vl.c:4249)
>> >
>> > Signed-off-by: Shannon Zhao <address@hidden>
>> > Signed-off-by: Shannon Zhao <address@hidden>
>> > ---
>> > hw/sh4/r2d.c | 10 ++++++++++
>> > 1 file changed, 10 insertions(+)
>> >
>> > diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c
>> > index 4221060..594c733 100644
>> > --- a/hw/sh4/r2d.c
>> > +++ b/hw/sh4/r2d.c
>> > @@ -287,6 +287,16 @@ static void r2d_init(MachineState *machine)
>> > sysbus_mmio_map(busdev, 1, 0x1400080c);
>> > mmio_ide_init_drives(dev, dinfo, NULL);
>> >
>> > + /* free unused irq */
>> > + qemu_free_irq(irq[CF_CD]);
>> > + qemu_free_irq(irq[KEY]);
>> > + qemu_free_irq(irq[RTC_A]);
>> > + qemu_free_irq(irq[RTC_T]);
>> > + qemu_free_irq(irq[SDCARD]);
>> > + qemu_free_irq(irq[EXT]);
>> > + qemu_free_irq(irq[TP]);
>> > + g_free(irq);
>> > +
> Yuck. We should just save the irq pointer in some state structure
> and g_free_irqs() it all in deinit.
Ok, will try to use this way for those which allocate a few irqs. But
the modifications for the ones which only allocate one irq are ok I
guess, I use qemu_allocate_irq to replace qemu_allocate_irqs.
--
Shannon
- [Qemu-trivial] [PATCH 11/29] hw/ppc/mac_oldworld.c: Fix memory leak spotted by valgrind, (continued)
- [Qemu-trivial] [PATCH 11/29] hw/ppc/mac_oldworld.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 22/29] hw/alpha/typhoon.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 19/29] hw/openrisc/pic_cpu.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 20/29] hw/unicore32/puv3.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 25/29] hw/arm/palm.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 26/29] hw/arm/spitz.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 24/29] hw/arm/omap_sx1.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 23/29] hw/arm/nseries.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 21/29] hw/sh4/r2d.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 29/29] hw/s390x/sclpcpu.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 27/29] hw/arm/tosa.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 28/29] hw/display/tc6393xb.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 03/29] hw/i386/pc: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28
- [Qemu-trivial] [PATCH 02/29] hw/ide/cmd646.c: Fix memory leak spotted by valgrind, Shannon Zhao, 2015/05/28