qemu-arm
[Top][All Lists]
Advanced

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

Re: [Qemu-arm] [Qemu-devel] [PATCH] KVM: GIC: Fix memory leak due to cal


From: Auger Eric
Subject: Re: [Qemu-arm] [Qemu-devel] [PATCH] KVM: GIC: Fix memory leak due to calling kvm_init_irq_routing twice
Date: Thu, 31 May 2018 10:27:43 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0

Hi Shannon,

On 05/31/2018 10:04 AM, Shannon Zhao wrote:
> 
> 
> On 2018/5/31 15:54, Auger Eric wrote:
>> Hi Shannon,
>>
>> On 05/31/2018 09:16 AM, Shannon Zhao wrote:
>>> kvm_irqchip_create called by kvm_init will call kvm_init_irq_routing to
>>> initialize global capability variables. If we call kvm_init_irq_routing in
>>> GIC realize function, previous allocated memory will leak.
>>>
>>> Fix this by deleting the unnecessary call.
>>>
>>> Signed-off-by: Shannon Zhao <address@hidden>
>> openpic_kvm seems to suffer the same leak. Don't you want to fix it as
>> well?
>>
> I have a look at below patch of openpic_kvm which says on ppc it doesn't
> call kvm_irqchip_create. So no such issue for it.
> 
> commit d85937e683f6ff4d68293cb24c780fb1f6820d2c
> Author: Scott Wood <address@hidden>
> Date:   Wed Jun 12 15:32:51 2013 -0500
> 
>     kvm/openpic: in-kernel mpic support

Ah OK. Thanks for the pointer.

Eric
> 
>> Reviewed-by: Eric Auger <address@hidden>
>>
> Thanks.
> 
>> Thanks
>>
>> Eric
>>> ---
>>>  hw/intc/arm_gic_kvm.c   | 1 -
>>>  hw/intc/arm_gicv3_kvm.c | 1 -
>>>  2 files changed, 2 deletions(-)
>>>
>>> diff --git a/hw/intc/arm_gic_kvm.c b/hw/intc/arm_gic_kvm.c
>>> index 6f467e6..204369d 100644
>>> --- a/hw/intc/arm_gic_kvm.c
>>> +++ b/hw/intc/arm_gic_kvm.c
>>> @@ -572,7 +572,6 @@ static void kvm_arm_gic_realize(DeviceState *dev, Error 
>>> **errp)
>>>  
>>>      if (kvm_has_gsi_routing()) {
>>>          /* set up irq routing */
>>> -        kvm_init_irq_routing(kvm_state);
>>>          for (i = 0; i < s->num_irq - GIC_INTERNAL; ++i) {
>>>              kvm_irqchip_add_irq_route(kvm_state, i, 0, i);
>>>          }
>>> diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c
>>> index 001d82b..aa4c7c5 100644
>>> --- a/hw/intc/arm_gicv3_kvm.c
>>> +++ b/hw/intc/arm_gicv3_kvm.c
>>> @@ -813,7 +813,6 @@ static void kvm_arm_gicv3_realize(DeviceState *dev, 
>>> Error **errp)
>>>  
>>>      if (kvm_has_gsi_routing()) {
>>>          /* set up irq routing */
>>> -        kvm_init_irq_routing(kvm_state);
>>>          for (i = 0; i < s->num_irq - GIC_INTERNAL; ++i) {
>>>              kvm_irqchip_add_irq_route(kvm_state, i, 0, i);
>>>          }
>>>
>>
>> .
>>
> 



reply via email to

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