Commit 7b53f294 authored by Christian Borntraeger's avatar Christian Borntraeger
Browse files

s390x/cpu hotplug: Fix memory leak



valgrind complains about the following:
==42117== 8 bytes in 1 blocks are definitely lost in loss record 88 of 833
==42117==    at 0x4031AFE: malloc (vg_replace_malloc.c:292)
==42117==    by 0x8022F855: malloc_and_trace (vl.c:2715)
==42117==    by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2)
==42117==    by 0x800F696D: qemu_extend_irqs (irq.c:51)
==42117==    by 0x800F6AF7: qemu_allocate_irqs (irq.c:68)
==42117==    by 0x8029FA4B: irq_cpu_hotplug_init (sclpcpu.c:84)
==42117==    by 0x80297C79: event_realize (event-facility.c:386)
==42117==    by 0x80105071: device_set_realized (qdev.c:693)
[...]

Right it is. Don't drop the pointer of the irq.

Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: default avatarJason J. Herne <jjherne@us.ibm.com>
parent 0a1bec8a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -25,13 +25,13 @@ typedef struct ConfigMgtData {
    uint8_t event_qualifier;
} QEMU_PACKED ConfigMgtData;

static qemu_irq irq_cpu_hotplug; /* Only used in this file */
static qemu_irq *irq_cpu_hotplug; /* Only used in this file */

#define EVENT_QUAL_CPU_CHANGE  1

void raise_irq_cpu_hotplug(void)
{
    qemu_irq_raise(irq_cpu_hotplug);
    qemu_irq_raise(*irq_cpu_hotplug);
}

static unsigned int send_mask(void)
@@ -81,7 +81,7 @@ static void trigger_signal(void *opaque, int n, int level)

static int irq_cpu_hotplug_init(SCLPEvent *event)
{
    irq_cpu_hotplug = *qemu_allocate_irqs(trigger_signal, event, 1);
    irq_cpu_hotplug = qemu_allocate_irqs(trigger_signal, event, 1);
    return 0;
}