[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 6/6] pc: Support firmware configuration with
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [RFC PATCH 6/6] pc: Support firmware configuration with -blockdev |
Date: |
Tue, 5 Mar 2019 18:08:11 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 03/04/19 18:50, Markus Armbruster wrote:
> Alright, we can call object_get_class(dev_obj)->unparent(dev_obj).
>
> Final complication: if I call just that, the device's reference counter
> goes down to zero in the middle of device_unparent(), and we use after
> free. So I bracket he call with object_ref() and object_unref().
I don't think that requiring such a bracketing is necessarily a problem.
I vaguely remember reviewing a kernel patch 6 or so years ago where the
patch used the same idea, with those "get" and "put" functions (the bug
the patch was fixing was that the last reference was "temporarily" lost
mid-operation).
So perhaps this can be addressed, for the general case, by extending the
documentation of device_unparent(). (The function has no documentation
at all, at the moment.)
Thanks
Laszlo