@@ -1061,6 +1061,16 @@ static int spapr_check_htab_fd(sPAPRMachineState *spapr)
return rc;
}
+static int spapr_drc_reset(Object *child, void *opaque)
+{
+ DeviceState *d = (DeviceState *) object_dynamic_cast(child, TYPE_DEVICE);
+
+ if (d) {
+ device_reset(d);
+ }
+ return 0;
+}
+
static void ppc_spapr_reset(void)
{
sPAPRMachineState *spapr = SPAPR_MACHINE(qdev_get_machine());
@@ -1073,6 +1083,8 @@ static void ppc_spapr_reset(void)
/* Reset the hash table & recalc the RMA */
spapr_reset_htab(spapr);
+ object_child_foreach(qdev_get_machine(), spapr_drc_reset, NULL);
+
qemu_devices_reset();
/*