spapr: Allow dynamic creation of PHB
Now that we finally check for presence of dangling sysbus devices, make check started complaining that the sPAPR PHB is one such device. However, it really isn't. The spapr PHB is not really a traditional sysbus device, but much more a special spapr pv device which is already able to get created dynamically. Move spapr to its own dynamic sysbus check handling and allow PHB devices to get allocated dynamically. Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
abe60a439b
commit
9e3f973335
@ -850,11 +850,31 @@ static void spapr_reset_htab(sPAPREnvironment *spapr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int find_unknown_sysbus_device(SysBusDevice *sbdev, void *opaque)
|
||||||
|
{
|
||||||
|
bool matched = false;
|
||||||
|
|
||||||
|
if (object_dynamic_cast(OBJECT(sbdev), TYPE_SPAPR_PCI_HOST_BRIDGE)) {
|
||||||
|
matched = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!matched) {
|
||||||
|
error_report("Device %s is not supported by this machine yet.",
|
||||||
|
qdev_fw_name(DEVICE(sbdev)));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void ppc_spapr_reset(void)
|
static void ppc_spapr_reset(void)
|
||||||
{
|
{
|
||||||
PowerPCCPU *first_ppc_cpu;
|
PowerPCCPU *first_ppc_cpu;
|
||||||
uint32_t rtas_limit;
|
uint32_t rtas_limit;
|
||||||
|
|
||||||
|
/* Check for unknown sysbus devices */
|
||||||
|
foreach_dynamic_sysbus_device(find_unknown_sysbus_device, NULL);
|
||||||
|
|
||||||
/* Reset the hash table & recalc the RMA */
|
/* Reset the hash table & recalc the RMA */
|
||||||
spapr_reset_htab(spapr);
|
spapr_reset_htab(spapr);
|
||||||
|
|
||||||
@ -1667,6 +1687,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data)
|
|||||||
mc->no_parallel = 1;
|
mc->no_parallel = 1;
|
||||||
mc->default_boot_order = NULL;
|
mc->default_boot_order = NULL;
|
||||||
mc->kvm_type = spapr_kvm_type;
|
mc->kvm_type = spapr_kvm_type;
|
||||||
|
mc->has_dynamic_sysbus = true;
|
||||||
|
|
||||||
fwc->get_dev_path = spapr_get_fw_dev_path;
|
fwc->get_dev_path = spapr_get_fw_dev_path;
|
||||||
nc->nmi_monitor_handler = spapr_nmi;
|
nc->nmi_monitor_handler = spapr_nmi;
|
||||||
|
Loading…
Reference in New Issue
Block a user