David Gibson <da...@gibson.dropbear.id.au> writes: >> static void xics_kvm_class_init(ObjectClass *oc, void *data) >> diff --git a/hw/intc/xics_spapr.c b/hw/intc/xics_spapr.c >> index eda15a6..b03dd0d 100644 >> --- a/hw/intc/xics_spapr.c >> +++ b/hw/intc/xics_spapr.c >> @@ -113,10 +113,10 @@ static void rtas_set_xive(PowerPCCPU *cpu, >> sPAPRMachineState *spapr, >> uint32_t nargs, target_ulong args, >> uint32_t nret, target_ulong rets) >> { >> - ICSState *ics = spapr->xics->ics; >> + ICSState *ics = QLIST_FIRST(&spapr->xics->ics); >> uint32_t nr, server, priority; >> >> - if ((nargs != 3) || (nret != 1)) { >> + if ((nargs != 3) || (nret != 1) || !ics) { >> rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR); >> return; > > !ice should surely be an assert, or at least a HW_ERROR, not a PARAM_ERROR.
Sure, will make those changes Regards Nikunj