[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 12/17] qdev: Clean up qdev_connect_gpio_out_named()
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 12/17] qdev: Clean up qdev_connect_gpio_out_named() |
Date: |
Tue, 05 May 2020 17:25:21 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Philippe Mathieu-Daudé <address@hidden> writes:
> On 4/28/20 6:34 PM, Markus Armbruster wrote:
>> Both qdev_connect_gpio_out_named() and device_set_realized() put
>> objects without a parent into the "/machine/unattached/" orphanage.
>>
>> qdev_connect_gpio_out_named() needs a lengthy comment to explain how
>> it works. It exploits that object_property_add_child() can fail only
>> when we got a parent already, and ignoring that error does what we
>> want. True. If it failed due to "duplicate property", we'd be in
>> trouble, but that would be a programming error.
>>
>> device_set_realized() is cleaner: it checks whether we need a parent,
>> then calls object_property_add_child(), aborting on failure. No need
>> for a comment, and programming errors get caught.
>
> I suppose it was not that obvious at the time of that comment :)
Safe guess :)
> commit 615c4895703164134379b68214130dd502721174
> Author: Andreas Färber <address@hidden>
> Date: Wed Jun 18 00:57:08 2014 -0700
>
> irq: Slim conversion of qemu_irq to QOM
>
> As a prequel to any big Pin refactoring plans,
> do an in-place conversion of qemu_irq to an Object,
> so that we can reference it in link<> properties.
>
>
> commit 02757df2ad2d5dfc96482e2cdfa046f439dafc3d
> Author: Peter Crosthwaite <address@hidden>
> Date: Thu Sep 25 22:20:25 2014 -0700
>
> qdev: gpio: Re-implement qdev_connect_gpio QOM style
>
> Re-implement as a link setter. This should allow the
> QOM framework to keep track of ref counts properly etc.
>
> We need to add a default parent for the connecting
> input in case it's coming from a non-qdev source.
> We simply parent the IRQ to the machine in this case.
>
>>
>> Change qdev_connect_gpio_out_named() to match.
>>
>> Cc: Peter Crosthwaite <address@hidden>
>> Signed-off-by: Markus Armbruster <address@hidden>
>
> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Thanks!