>>> @@ -592,10 +593,11 @@ static void ics_simple_reset(DeviceState *dev)
>>>
>>> static int ics_simple_post_load(ICSState *ics, int version_id)
>>> {
>>> + XICSInterface *xi = XICS_INTERFACE(qdev_get_machine());
>>> int i;
>>>
>>> for (i = 0; i < ics->xics->nr_servers; i++) {
>>> - icp_resend(&ics->xics->ss[i]);
>>> + icp_resend(xi, &ics->xics->ss[i]);
>>> }
>>
>> This resend triggering needs to get moved to the xics interface
>> implementor - i.e. the machine. It's actually already broken right
>> now, since it incorrectly relies on the ordering of the ics and icp
>> restore during migration.
>
> I'm adding a icp_resend() handler in patch 12 and using it patch 14.
> Maybe we can move the post_load() handler out of ICS simple now ?
Could you give me a little more info on what should be done ? I lack
context on this problem.
So should we call :
ICPState *ss = opaque;
ICPStateClass *info = ICP_GET_CLASS(ss);
if (info->post_load) {
return info->post_load(ss, version_id);
}
and then
ICSState *ics = opaque;
ICSStateClass *info = ICS_BASE_GET_CLASS(ics);
if (info->post_load) {
return info->post_load(ics, version_id);
}
from spapr_post_load() ?
Thanks,
C.