Hide Forgot
Description of problem: We disabled vfio-platform in RHEL 7.3. However, removing it in QEMU 2.7.0 will cause qemu-kvm on ppc64 to fail. Version-Release number of selected component (if applicable): qemu-kvm-rhev (2.7.0 based) How reproducible: Can be reproduced using upstream QEMU with applying commit e305bb4 (remove platform.o from hw/vfio/Makefile.objs) Steps to Reproduce: 1. 2. 3. Actual results: qemu-kvm fails to start Expected results: qemu-kvm works correctly Additional info:
ERROR: qom/object.c:168:type_get_parent: assertion failed: (type->parent_type != NULL) ... #4 0x0000555555a636d9 in type_get_parent (type=<optimized out>, type=<optimized out>) at qom/object.c:168 #5 0x0000555555a63a71 in type_initialize (ti=ti@entry=0x555556e27300) at qom/object.c:278 #6 0x0000555555a6429d in type_initialize (ti=0x555556e27300) at qom/object.c:812 #7 object_class_foreach_tramp (key=<optimized out>, value=0x555556e27300, opaque=0x7fffffffd9f0) at qom/object.c:799 ... #11 0x0000555555901a8f in find_default_machine () at /home/lvivier/Projects/qemu-upstream-2/vl.c:1510 #12 0x0000555555780c74 in select_machine () at /home/lvivier/Projects/qemu-upstream-2/vl.c:2776 #13 main (argc=1, argv=<optimized out>, envp=<optimized out>) at /home/lvivier/Projects/qemu-upstream-2/vl.c:4052 ... #5 0x0000555555a63a71 in type_initialize (ti=ti@entry=0x555556e27300) at qom/object.c:278 278 parent = type_get_parent(ti); (gdb) p *ti $3 = {name = 0x555556e13be0 "vfio-calxeda-xgmac", class_size = 224, instance_size = 952, class_init = 0x55555581a960 <vfio_calxeda_xgmac_class_init>, class_base_init = 0x0, class_finalize = 0x0, class_data = 0x0, instance_init = 0x0, instance_post_init = 0x0, instance_finalize = 0x0, abstract = false, parent = 0x555556d940a0 "vfio-platform", parent_type = 0x0, class = 0x555556e84380, num_interfaces = 0, interfaces = {{ typename = 0x0} <repeats 32 times>}} If you remove platform, you must also remove children of platform: diff --git a/hw/vfio/Makefile.objs b/hw/vfio/Makefile.objs index c25e32b..e78d433 100644 --- a/hw/vfio/Makefile.objs +++ b/hw/vfio/Makefile.objs @@ -1,8 +1,5 @@ ifeq ($(CONFIG_LINUX), y) obj-$(CONFIG_SOFTMMU) += common.o obj-$(CONFIG_PCI) += pci.o pci-quirks.o -obj-$(CONFIG_SOFTMMU) += platform.o -obj-$(CONFIG_SOFTMMU) += calxeda-xgmac.o -obj-$(CONFIG_SOFTMMU) += amd-xgbe.o obj-$(CONFIG_SOFTMMU) += spapr.o endif So you must also backport: 81b2836 Remove unsupported VFIO devices from QEMU
Not a bug, just missing patch during early stage of rebase.