|
From: | Philippe Mathieu-Daudé |
Subject: | Re: Coverity CID 1421984 |
Date: | Mon, 23 Mar 2020 16:28:13 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
On 3/23/20 3:46 PM, Peter Maydell wrote:
On Mon, 23 Mar 2020 at 14:43, BALATON Zoltan <address@hidden> wrote:On Mon, 23 Mar 2020, Peter Maydell wrote:On Mon, 23 Mar 2020 at 14:06, BALATON Zoltan <address@hidden> 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.
I understand Zoltan can have hard time understanding qdev_get_gpio_in() because it has no documentation. What would be the best example to follow?
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
[Prev in Thread] | Current Thread | [Next in Thread] |