This series contains some low-hanging fruit fixes I came up with when
investigating Rust for QEMU, especially QOM object lifecycle vs. the Drop trait.

I noticed that no finalize methods were called in Rust sysbus devices when QEMU
quits, and neither are its C variants. What is probably missing in the first
place is a

  object_unref(object_get_root());

at the end of qemu_cleanup() in runstate.c (see TODO there). Adding it before
this series won't clean up machines since their refcount won't reach zero. With
this series applied this additional line will cause various issues when quitting
QEMU, allowing the problem to be investigated. Fixing it is beyond the scope of
this series (and my time budget).

Testing done:
* `make check`
* Run imx8mp-evk with a Buildroot image

Bernhard Beschow (5):
  hw/arm/fsl-imx8mp: Do not create redundant unimplemented devices
  hw/arm/fsl-imx8mp: Fix parent of ocram memory region
  hw/arm/imx8mp-evk: Fix reference count of SoC object
  system/vl: Fix reference count of machine object
  Revert "sysbus: add irq_routing_notifier"

 include/hw/core/sysbus.h | 1 -
 hw/arm/fsl-imx8mp.c      | 3 ++-
 hw/arm/imx8mp-evk.c      | 4 ++--
 hw/core/sysbus.c         | 6 ------
 system/vl.c              | 1 +
 5 files changed, 5 insertions(+), 10 deletions(-)

-- 
2.53.0


Reply via email to