On Mon, 23 Mar 2020 at 14:43, BALATON Zoltan <bala...@eik.bme.hu> wrote: > > On Mon, 23 Mar 2020, Peter Maydell wrote: > > On Mon, 23 Mar 2020 at 14:06, BALATON Zoltan <bala...@eik.bme.hu> wrote: > >> On Mon, 23 Mar 2020, Peter Maydell wrote: > >>> Coverity has flagged up a lot of leaks involving qemu_allocate_irqs(); > >>> most of them I've for the moment just set as "insignificant, fix > >>> required" because they're in called-once functions like board init. > >>> If this device can't be hot-unplugged and so we will only ever call > >>> realize once, it would fall in that category too. Otherwise I'd > >>> suggest conversion to qdev_init_gpio_in(). (This allocates arrays > >>> of IRQs under the hood too, but the device_finalize() function will > >>> automatically free them for you, so it's easier to use non-leakily.) > >> > >> I think I can't do that in sii3112 becuase I need to pass irq to this func: > >> > >> void ide_init2(IDEBus *bus, qemu_irq irq); > > > > ide_init2(bus, qdev_get_gpio_in(DEVICE(dev), i); > > > > should do what you want, I think. > > I don't understand what you mean.
I mean that if you allocate the IRQs with qdev_init_gpio_in() then the way to get a qemu_irq from within them to pass to another function is to call qdev_get_gpio_in(). So you just want to make your call to ide_init2() be the line I suggest above. > Sent a patch that I think might fix this > warning for now. I'd leave qdevifying ide code to someone else. There's no need to qdevify IDE for this. thanks -- PMM