提交 e7cca3e9 编写于 作者: G Greg Kurz 提交者: David Gibson

spapr_cpu_core: rewrite machine type sanity check

This makes the code easier to understand and it is consistent with what
we already do for PHBs.
Signed-off-by: NGreg Kurz <groug@kaod.org>
Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
上级 f7d6bfcd
...@@ -137,7 +137,12 @@ error: ...@@ -137,7 +137,12 @@ error:
static void spapr_cpu_core_realize(DeviceState *dev, Error **errp) static void spapr_cpu_core_realize(DeviceState *dev, Error **errp)
{ {
sPAPRMachineState *spapr; /* We don't use SPAPR_MACHINE() in order to exit gracefully if the user
* tries to add a sPAPR CPU core to a non-pseries machine.
*/
sPAPRMachineState *spapr =
(sPAPRMachineState *) object_dynamic_cast(qdev_get_machine(),
TYPE_SPAPR_MACHINE);
sPAPRCPUCore *sc = SPAPR_CPU_CORE(OBJECT(dev)); sPAPRCPUCore *sc = SPAPR_CPU_CORE(OBJECT(dev));
sPAPRCPUCoreClass *scc = SPAPR_CPU_CORE_GET_CLASS(OBJECT(dev)); sPAPRCPUCoreClass *scc = SPAPR_CPU_CORE_GET_CLASS(OBJECT(dev));
CPUCore *cc = CPU_CORE(OBJECT(dev)); CPUCore *cc = CPU_CORE(OBJECT(dev));
...@@ -146,9 +151,8 @@ static void spapr_cpu_core_realize(DeviceState *dev, Error **errp) ...@@ -146,9 +151,8 @@ static void spapr_cpu_core_realize(DeviceState *dev, Error **errp)
void *obj; void *obj;
int i, j; int i, j;
spapr = (sPAPRMachineState *) qdev_get_machine(); if (!spapr) {
if (!object_dynamic_cast((Object *) spapr, TYPE_SPAPR_MACHINE)) { error_setg(errp, TYPE_SPAPR_CPU_CORE " needs a pseries machine");
error_setg(errp, "spapr-cpu-core needs a pseries machine");
return; return;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册