KVM: GIC: Fix memory leak due to calling kvm_init_irq_routing twice
authorShannon Zhao <zhaoshenglong@huawei.com>
Thu, 31 May 2018 07:16:34 +0000 (15:16 +0800)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 31 May 2018 15:32:35 +0000 (16:32 +0100)
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 <zhaoshenglong@huawei.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-id: 1527750994-14360-1-git-send-email-zhaoshenglong@huawei.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/intc/arm_gic_kvm.c
hw/intc/arm_gicv3_kvm.c

index 6f467e68a83188b06ac95cbd11cb14f9af4bc387..204369d0e2f8d9a74917fbc20262f458d8c14e1f 100644 (file)
@@ -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);
         }
index 353679550185175b153e7ddd362c9ad302ee2cd1..0279b86cd97021ca5b2f682adf4706132f86f600 100644 (file)
@@ -761,7 +761,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);
         }