Re: [Qemu-devel] [PATCH 1/4] Introduce a new hotplug state: Force eject.

Michael S. Tsirkin
2012-05-16T13:20:17Z

On Wed, May 16, 2012 at 12:37:54PM +0100, Anthony PERARD
wrote:
> On Wed, May 16, 2012 at 12:23 PM, Paolo Bonzini <pbonzini@redhat.com>
wrote:
> > Il 16/05/2012 13:15, Anthony PERARD ha scritto:
> >>> >         qdev_unplug(&(d->qdev), NULL);
> >>> > +        qdev_free(&(d->qdev));
> >>> >     }
> >>> >  }
> >>> >
> >>> >
> >>> > Anthony, can you confirm that this solves the problem for
you?
> >> This work until I try to hotplug a new device to the guest at wish
> >> point I have this:
> >>
ERROR:/local/home/anthony/work/qemu/qom/object.c:389:object_delete:
> >> assertion failed: (obj->ref == 0)
> >>
> >> This is because there is still a pending request of the hotunplug
in
> >> the acpi piix4.
> >> If I call qdev_free without qdev_unplug, I hit the same assert,
but
> >> rigth away. This is way something new.
> >
> > Because it''s missing the object_unparent done by qdev_unplug.
 Does
> > object_unparent+qdev_free work?  (I believe object_unparent should be
> > done by qdev_free rather than qdev_unplug, but that''s
something for 1.2).
>
> Cool, this seems to work fine. Thanks.
>
> I''ll test a bit more and resend a patch with only
object_unparent+qdev_free.

Separately it was suggested to make qdev_free do object_unparent
automatically. Anthony is yet to respond.

> --
> Anthony PERARD