qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-ppc] [PATCH v2 08/22] ppc/xics: use the QOM inter


From: Cédric Le Goater
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH v2 08/22] ppc/xics: use the QOM interface to resend irqs
Date: Fri, 24 Feb 2017 18:34:06 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0

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

[Prev in Thread] Current Thread [Next in Thread]