[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] virtio-ccw: remove qdev_unparent in unplug
From: |
Christian Borntraeger |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] virtio-ccw: remove qdev_unparent in unplug routing |
Date: |
Mon, 25 Feb 2013 12:10:59 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 |
On 25/02/13 11:44, Paolo Bonzini wrote:
> Il 25/02/2013 09:09, Christian Borntraeger ha scritto:
>> Hmm, the old sequence was
>>
>> object_unparent(OBJECT(dev));
>> qdev_free(dev) ---+
>> |
>> V
>> ...
>> object_unparent(OBJECT(dev)); now the last reference is gone,
>> object is freed
>> object_unref(OBJECT(dev)); now the reference of a deleted
>> object becomes -1
>> ...
>>
>> Isnt that a problem in itself that we modify a reference counter in an
>> deleted object?
>
> The second object_unparent should do nothing. So before you had:
>
> object_unparent(OBJECT(dev)); leaves refcount=1
> qdev_free(dev) ---+
> |
> V
> object_unparent(OBJECT(dev)); do nothing
> object_unref(OBJECT(dev)); refcount=0, object freed
>
> After the object_unref was removed you had:
>
> object_unparent(OBJECT(dev)); refcount=0, object freed
> qdev_free(dev) ---+
> |
> V
> object_unparent(OBJECT(dev)); dangling pointer!
>
Got it. Thanks
[Qemu-devel] [PATCH 3/3] s390/virtio-ccw: remove redundant call to blockdev_mark_auto_del, Jens Freimann, 2013/02/22
[Qemu-devel] [PATCH 2/3] s390/css: Fix subchannel detection, Jens Freimann, 2013/02/22