On 05/09/2014 05:04 PM, liu ping fan wrote:
> On Wed, May 7, 2014 at 3:20 PM, Alexey Kardashevskiy <a...@ozlabs.ru> wrote:
>> On 05/07/2014 04:51 PM, Liu Ping Fan wrote:
>>> In current code, we use phb->msi_table[ndev].nvec to indicate whether
>>> this msi entries are used by a device or not. So when unplug a pci
>>> device, we should reset nvec to zero.
>>>
>>> Signed-off-by: Liu Ping Fan <pingf...@linux.vnet.ibm.com>
>>> ---
>>>  hw/ppc/spapr_pci.c | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
>>> index cbef095..7b1dfe1 100644
>>> --- a/hw/ppc/spapr_pci.c
>>> +++ b/hw/ppc/spapr_pci.c
>>> @@ -316,6 +316,7 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, 
>>> sPAPREnvironment *spapr,
>>>              rtas_st(rets, 0, RTAS_OUT_HW_ERROR);
>>>              return;
>>>          }
>>> +        phb->msi_table[ndev].nvec = 0;
>>>          trace_spapr_pci_msi("Released MSIs", ndev, config_addr);
>>>          rtas_st(rets, 0, RTAS_OUT_SUCCESS);
>>>          rtas_st(rets, 1, 0);
>>
>>
>> ibm,change-msi is called with 0 to disable MSIs. If later the guest decides
>> to reenable MSI on the same device (rmmod + modprobe in the guest can do
>> that I suppose), new block will be allocated because of this patch which is
>> bad.
>>
>> And there is no PCI hotplug for SPAPR in upstream QEMU so this patch cannot
>> possibly fix it :)
>>
> I saw your patch [PATCH 0/6] move interrupts from spapr to xics. And
> it is great to consider the reclaim of irq.  So if I call something to
> free the irq after "phb->msi_table[ndev].nvec = 0", can it work ?


Yes, then it should work but I am actually planning more than just that so
we will see how it goes.


-- 
Alexey

Reply via email to