[Qemu-devel] [PATCH v2 0/4] qdev: remove all remaining cannot_destroy_with_object_finalize_yet

Laurent Vivier posted 4 patches 7 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170414083717.13641-1-lvivier@redhat.com
Test checkpatch passed
Test docker passed
Test s390x passed
hw/arm/allwinner-a10.c  |  6 ------
hw/arm/bcm2836.c        |  6 ------
hw/arm/digic.c          |  6 ------
hw/arm/fsl-imx25.c      |  5 -----
hw/arm/fsl-imx31.c      |  5 -----
hw/arm/fsl-imx6.c       |  5 -----
hw/arm/xlnx-zynqmp.c    |  6 ------
hw/pci-host/versatile.c | 35 ++++++++++++-----------------------
include/hw/qdev-core.h  | 13 -------------
qmp.c                   |  5 -----
target/ppc/kvm.c        | 10 ----------
11 files changed, 12 insertions(+), 90 deletions(-)
[Qemu-devel] [PATCH v2 0/4] qdev: remove all remaining cannot_destroy_with_object_finalize_yet
Posted by Laurent Vivier 7 years ago
This series removes all the remaining uses of
cannot_destroy_with_object_finalize_yet to finally remove
the flag itself.

The ARM patch has already been sent alone and reviewed by Markus.
I have tested the ppc one on ppc64 machine with KVM and using
QDM device-list-properties command.

For the versatile one, the flag allowed to workaround a problem
in the bus unparent function: the bus unparent is trying to
unparent all the children of the bus. To do that, it has a list
of the children of the bus, and calls object_unparent() for each
child, and object_unparent() calls object_property_del_child() if
obj->parent is not NULL.  As qdev_set_parent_bus() set only
parent_bus and the list of children, parent is NULL and the child
is never deleted.  We can avoid the problem by moving the
qdev_set_parent_bus() to the realize part.

I've tested all the changes with "make check" (including
device-introspect-test). I've booted a versatilepb machine
with a 3.16.0-4 debian installer kernel.

Laurent Vivier (4):
  arm: remove remaining cannot_destroy_with_object_finalize_yet
  ppc: remove cannot_destroy_with_object_finalize_yet
  versatile: remove cannot_destroy_with_object_finalize_yet
  qdev: remove cannot_destroy_with_object_finalize_yet

 hw/arm/allwinner-a10.c  |  6 ------
 hw/arm/bcm2836.c        |  6 ------
 hw/arm/digic.c          |  6 ------
 hw/arm/fsl-imx25.c      |  5 -----
 hw/arm/fsl-imx31.c      |  5 -----
 hw/arm/fsl-imx6.c       |  5 -----
 hw/arm/xlnx-zynqmp.c    |  6 ------
 hw/pci-host/versatile.c | 35 ++++++++++++-----------------------
 include/hw/qdev-core.h  | 13 -------------
 qmp.c                   |  5 -----
 target/ppc/kvm.c        | 10 ----------
 11 files changed, 12 insertions(+), 90 deletions(-)

-- 
2.9.3


Re: [Qemu-devel] [PATCH v2 0/4] qdev: remove all remaining cannot_destroy_with_object_finalize_yet
Posted by Peter Maydell 6 years, 12 months ago
On 14 April 2017 at 09:37, Laurent Vivier <lvivier@redhat.com> wrote:
> This series removes all the remaining uses of
> cannot_destroy_with_object_finalize_yet to finally remove
> the flag itself.
>
> The ARM patch has already been sent alone and reviewed by Markus.
> I have tested the ppc one on ppc64 machine with KVM and using
> QDM device-list-properties command.
>
> For the versatile one, the flag allowed to workaround a problem
> in the bus unparent function: the bus unparent is trying to
> unparent all the children of the bus. To do that, it has a list
> of the children of the bus, and calls object_unparent() for each
> child, and object_unparent() calls object_property_del_child() if
> obj->parent is not NULL.  As qdev_set_parent_bus() set only
> parent_bus and the list of children, parent is NULL and the child
> is never deleted.  We can avoid the problem by moving the
> qdev_set_parent_bus() to the realize part.
>
> I've tested all the changes with "make check" (including
> device-introspect-test). I've booted a versatilepb machine
> with a 3.16.0-4 debian installer kernel.
>
> Laurent Vivier (4):
>   arm: remove remaining cannot_destroy_with_object_finalize_yet
>   ppc: remove cannot_destroy_with_object_finalize_yet
>   versatile: remove cannot_destroy_with_object_finalize_yet
>   qdev: remove cannot_destroy_with_object_finalize_yet

Markus -- are you planning to take this whole series through
your tree? I'm happy with the ARM patches but I guess we
should keep the whole series together since patch 4 depends
on the other 3...

I guess that means
Acked-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM