xen: Fix xen-legacy-backend qdev types
commit104a7f4e1355493175b0ad6f49c524ee449c16f7
authorJason Andryuk <jandryuk@gmail.com>
Wed, 24 Jun 2020 12:19:39 +0000 (24 08:19 -0400)
committerAnthony PERARD <anthony.perard@citrix.com>
Fri, 10 Jul 2020 12:49:16 +0000 (10 13:49 +0100)
tree70aaee3751b228e00ee6e2fc3ffc9b782f6a8cfe
parentb6d7e9b66f59ca6ebc6e9b830cd5e7bf849d31cf
xen: Fix xen-legacy-backend qdev types

xen-sysdev is a TYPE_SYS_BUS_DEVICE.  bus_type should not be changed so
that it can plug into the System bus.  Otherwise this assert triggers:
qemu-system-i386: hw/core/qdev.c:102: qdev_set_parent_bus: Assertion
`dc->bus_type && object_dynamic_cast(OBJECT(bus), dc->bus_type)'
failed.

TYPE_XENBACKEND attaches to TYPE_XENSYSBUS, so its class_init needs to
be set accordingly to attach the qdev.  Otherwise the following assert
triggers:
qemu-system-i386: hw/core/qdev.c:102: qdev_set_parent_bus: Assertion
`dc->bus_type && object_dynamic_cast(OBJECT(bus), dc->bus_type)'
failed.

TYPE_XENBACKEND is not a subclass of XEN_XENSYSDEV, so it's parent
is just TYPE_DEVICE.  Change that.

Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Acked-by: Paul Durrant <pdurrant@amazon.com>
Fixes: 81cb05732efb ("qdev: Assert devices are plugged into a bus that can take them")
Message-Id: <20200624121939.10282-1-jandryuk@gmail.com>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
hw/xen/xen-legacy-backend.c