[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 01/13] hw/i386/pc: Fix misusing qemu_allocate_irq
From: |
Shannon Zhao |
Subject: |
[Qemu-devel] [PATCH v2 01/13] hw/i386/pc: Fix misusing qemu_allocate_irqs for single irq |
Date: |
Fri, 29 May 2015 13:26:59 +0800 |
From: Shannon Zhao <address@hidden>
valgrind complains about:
==20308== 8 bytes in 1 blocks are definitely lost in loss record 622 of 3,474
==20308== at 0x4C2845D: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==20308== by 0x2EB687: malloc_and_trace (vl.c:2556)
==20308== by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
==20308== by 0x377C57: qemu_extend_irqs (irq.c:55)
==20308== by 0x377CE3: qemu_allocate_irqs (irq.c:64)
==20308== by 0x2522B8: pc_allocate_cpu_irq (pc.c:1350)
==20308== by 0x255AFF: pc_q35_init (pc_q35.c:233)
==20308== by 0x2EFA52: main (vl.c:4249)
==16440== 8 bytes in 1 blocks are definitely lost in loss record 599 of 3,443
==16440== at 0x4C2845D: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==16440== by 0x2EB687: malloc_and_trace (vl.c:2556)
==16440== by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
==16440== by 0x377C57: qemu_extend_irqs (irq.c:55)
==16440== by 0x377CE3: qemu_allocate_irqs (irq.c:64)
==16440== by 0x2522B8: pc_allocate_cpu_irq (pc.c:1350)
==16440== by 0x2546B6: pc_init1 (pc_piix.c:223)
==16440== by 0x254C16: pc_init_pci (pc_piix.c:311)
==16440== by 0x2EFA52: main (vl.c:4249)
Since pc_allocate_cpu_irq only requests one irq, so let it just call
qemu_allocate_irq.
Signed-off-by: Shannon Zhao <address@hidden>
Signed-off-by: Shannon Zhao <address@hidden>
---
hw/i386/pc.c | 4 ++--
hw/i386/pc_piix.c | 4 +---
hw/i386/pc_q35.c | 4 +---
include/hw/i386/pc.h | 2 +-
4 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 769eb25..bb59a04 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1345,9 +1345,9 @@ FWCfgState *pc_memory_init(MachineState *machine,
return fw_cfg;
}
-qemu_irq *pc_allocate_cpu_irq(void)
+qemu_irq pc_allocate_cpu_irq(void)
{
- return qemu_allocate_irqs(pic_irq_request, NULL, 1);
+ return qemu_allocate_irq(pic_irq_request, NULL, 0);
}
DeviceState *pc_vga_init(ISABus *isa_bus, PCIBus *pci_bus)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 5e4c0b8..f2b6ebd 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -86,7 +86,6 @@ static void pc_init1(MachineState *machine,
ISABus *isa_bus;
PCII440FXState *i440fx_state;
int piix3_devfn = -1;
- qemu_irq *cpu_irq;
qemu_irq *gsi;
qemu_irq *i8259;
qemu_irq smi_irq;
@@ -220,8 +219,7 @@ static void pc_init1(MachineState *machine,
} else if (xen_enabled()) {
i8259 = xen_interrupt_controller_init();
} else {
- cpu_irq = pc_allocate_cpu_irq();
- i8259 = i8259_init(isa_bus, cpu_irq[0]);
+ i8259 = i8259_init(isa_bus, pc_allocate_cpu_irq());
}
for (i = 0; i < ISA_NUM_IRQS; i++) {
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index e67f2de..f2e3cf7 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -79,7 +79,6 @@ static void pc_q35_init(MachineState *machine)
GSIState *gsi_state;
ISABus *isa_bus;
int pci_enabled = 1;
- qemu_irq *cpu_irq;
qemu_irq *gsi;
qemu_irq *i8259;
int i;
@@ -230,8 +229,7 @@ static void pc_q35_init(MachineState *machine)
} else if (xen_enabled()) {
i8259 = xen_interrupt_controller_init();
} else {
- cpu_irq = pc_allocate_cpu_irq();
- i8259 = i8259_init(isa_bus, cpu_irq[0]);
+ i8259 = i8259_init(isa_bus, pc_allocate_cpu_irq());
}
for (i = 0; i < ISA_NUM_IRQS; i++) {
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 1b35168..6c6a45e 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -195,7 +195,7 @@ FWCfgState *pc_memory_init(MachineState *machine,
MemoryRegion *rom_memory,
MemoryRegion **ram_memory,
PcGuestInfo *guest_info);
-qemu_irq *pc_allocate_cpu_irq(void);
+qemu_irq pc_allocate_cpu_irq(void);
DeviceState *pc_vga_init(ISABus *isa_bus, PCIBus *pci_bus);
void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
ISADevice **rtc_state,
--
2.0.4
- [Qemu-devel] [PATCH v2 00/13] use qemu_allocate_irq not _irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 02/13] hw/isa/lpc_ich9.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 03/13] hw/isa/i82378.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 01/13] hw/i386/pc: Fix misusing qemu_allocate_irqs for single irq,
Shannon Zhao <=
- [Qemu-devel] [PATCH v2 11/13] hw/alpha/typhoon.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 10/13] hw/unicore32/puv3.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 09/13] hw/lm32/milkymist.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 06/13] hw/sparc/sun4m.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 08/13] hw/lm32/lm32_boards.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 05/13] hw/intc/exynos4210_gic.c: Fix memory leak by adjusting order, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 04/13] hw/timer/arm_timer.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 07/13] hw/ppc/prep.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 12/13] hw/arm/nseries.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29
- [Qemu-devel] [PATCH v2 13/13] hw/display/tc6393xb.c: Fix misusing qemu_allocate_irqs for single irq, Shannon Zhao, 2015/05/29