[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH-for-5.0 06/12] hw/openrisc/pic_cpu: Use qdev gpio rather than qem
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH-for-5.0 06/12] hw/openrisc/pic_cpu: Use qdev gpio rather than qemu_allocate_irqs() |
Date: |
Tue, 14 Apr 2020 15:30:46 +0200 |
From: Philippe Mathieu-Daudé <address@hidden>
Coverity points out (CID 1421934) that we are leaking the
memory returned by qemu_allocate_irqs(). We can avoid this
leak by switching to using qdev_init_gpio_in(); the base
class finalize will free the irqs that this allocates under
the hood.
Patch created mechanically using spatch with this script
inspired from commit d6ef883d9d7:
@@
typedef qemu_irq;
identifier irqs, handler;
expression opaque, count, i;
@@
- qemu_irq *irqs;
...
- irqs = qemu_allocate_irqs(handler, opaque, count);
+ qdev_init_gpio_in(DEVICE(opaque), handler, count);
<+...
- irqs[i]
+ qdev_get_gpio_in(DEVICE(opaque), i)
...+>
?- g_free(irqs);
Reported-by: Coverity (CID 1421934 Resource leak)
Inspired-by: Peter Maydell <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
hw/openrisc/pic_cpu.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/hw/openrisc/pic_cpu.c b/hw/openrisc/pic_cpu.c
index 36f9350830..4b0c92f842 100644
--- a/hw/openrisc/pic_cpu.c
+++ b/hw/openrisc/pic_cpu.c
@@ -52,10 +52,9 @@ static void openrisc_pic_cpu_handler(void *opaque, int irq,
int level)
void cpu_openrisc_pic_init(OpenRISCCPU *cpu)
{
int i;
- qemu_irq *qi;
- qi = qemu_allocate_irqs(openrisc_pic_cpu_handler, cpu, NR_IRQS);
+ qdev_init_gpio_in(DEVICE(cpu), openrisc_pic_cpu_handler, NR_IRQS);
for (i = 0; i < NR_IRQS; i++) {
- cpu->env.irq[i] = qi[i];
+ cpu->env.irq[i] = qdev_get_gpio_in(DEVICE(cpu), i);
}
}
--
2.21.1
- [PATCH-for-5.0 09/12] hw/display/sm501: Avoid heap overflow in sm501_2d_operation(), (continued)
- [PATCH-for-5.0 09/12] hw/display/sm501: Avoid heap overflow in sm501_2d_operation(), Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 07/12] hw/misc/grlib_ahb_apb_pnp: Avoid crash when writing to AHB PnP registers, Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 08/12] hw/misc/grlib_ahb_apb_pnp: Fix AHB PnP 8-bit accesses, Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 10/12] hw/block/pflash: Check return value of blk_pwrite(), Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 04/12] qga: Restrict guest-file-read count to 48 MB to avoid crashes, Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 06/12] hw/openrisc/pic_cpu: Use qdev gpio rather than qemu_allocate_irqs(),
Philippe Mathieu-Daudé <=
- [PATCH-for-5.0 03/12] qga: Extract qmp_guest_file_read() to common commands.c, Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 05/12] vhost-user-gpu: Release memory returned by vu_queue_pop() with free(), Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 02/12] qga: Extract guest_file_handle_find() to commands-common.h, Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 11/12] gdbstub: Do not use memset() on GByteArray, Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 01/12] Revert "prevent crash when executing guest-file-read with large count", Philippe Mathieu-Daudé, 2020/04/14
- [PATCH-for-5.0 12/12] gdbstub: Introduce gdb_get_freg32() to get float32 registers, Philippe Mathieu-Daudé, 2020/04/14
- Re: [PATCH-for-5.0 00/12] various bugfixes, Michael S. Tsirkin, 2020/04/17