>>> @@ -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.

Reply via email to