[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?
From: |
Paolo Bonzini |
Subject: |
Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse? |
Date: |
Mon, 4 May 2020 16:58:54 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 |
On 04/05/20 16:38, Markus Armbruster wrote:
> makes no progreess because OBJECT(dev)->parent is still null, and
> therefore object_unparent() does nothing.
>
> Possible culprit: qdev_try_create() calls qdev_set_parent_bus(), which
> adds the device to the bus, but leaves ->parent null. If this isn't
> wrong outright, it's at least a dangerous state.
>
> Work-around: call qdev_set_id(dev, NULL) right after qdev_create().
> This sets ->parent.
That's a good one, and especially a safe one, since it matches
qdev_device_add. It has the disadvantage of having to touch all
qdev_create() calls.
Even better however would be to move the bus argument (and thus
qdev_set_parent_bus) to qdev_init, and likewise in qdev_device_add move
qdev_set_id after qemu_opt_foreach. I looked at the property setters
and couldn't find anything suspicious (somewhat to my surprise), but I
haven't honestly tried.
Paolo
- Infinite loop in bus_unparent(), qdev bug or qdev misuse?, Markus Armbruster, 2020/05/04
- Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?,
Paolo Bonzini <=
- Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?, Peter Maydell, 2020/05/04
- Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?, Markus Armbruster, 2020/05/05
- Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?, Paolo Bonzini, 2020/05/05
- Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?, Markus Armbruster, 2020/05/06
- Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?, Markus Armbruster, 2020/05/12
- Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?, Paolo Bonzini, 2020/05/12
Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?, no-reply, 2020/05/05
Re: Infinite loop in bus_unparent(), qdev bug or qdev misuse?, no-reply, 2020/05/05