Switch to using the qdev gpio API which is preferred over qemu_allocate_irqs(). One step to eventually deprecate and remove qemu_allocate_irqs() one day.
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); Inspired-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- hw/ide/ahci.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 13d91e109a..ef0a0a22ee 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1534,19 +1534,18 @@ void ahci_init(AHCIState *s, DeviceState *qdev) void ahci_realize(AHCIState *s, DeviceState *qdev, AddressSpace *as, int ports) { - qemu_irq *irqs; int i; s->as = as; s->ports = ports; s->dev = g_new0(AHCIDevice, ports); ahci_reg_init(s); - irqs = qemu_allocate_irqs(ahci_irq_set, s, s->ports); + qdev_init_gpio_in(DEVICE(s), ahci_irq_set, s->ports); for (i = 0; i < s->ports; i++) { AHCIDevice *ad = &s->dev[i]; ide_bus_new(&ad->port, sizeof(ad->port), qdev, i, 1); - ide_init2(&ad->port, irqs[i]); + ide_init2(&ad->port, qdev_get_gpio_in(DEVICE(s), i)); ad->hba = s; ad->port_no = i; @@ -1554,7 +1553,6 @@ void ahci_realize(AHCIState *s, DeviceState *qdev, AddressSpace *as, int ports) ad->port.dma->ops = &ahci_dma_ops; ide_register_restart_cb(&ad->port); } - g_free(irqs); } void ahci_uninit(AHCIState *s) -- 2.21.1