Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 654c9adb authored by Zenghui Yu's avatar Zenghui Yu Committed by Greg Kroah-Hartman
Browse files

irqchip/mbigen: Free msi_desc on device teardown



commit edfc23f6f9fdbd7825d50ac1f380243cde19b679 upstream.

Using irq_domain_free_irqs_common() on the irqdomain free path will
leave the MSI descriptor unfreed when platform devices get removed.
Properly free it by MSI domain free function.

Fixes: 9650c60e ("irqchip/mbigen: Create irq domain for each mbigen device")
Signed-off-by: default avatarZenghui Yu <yuzenghui@huawei.com>
Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20200408114352.1604-1-yuzenghui@huawei.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 79f784c9
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -231,10 +231,16 @@ static int mbigen_irq_domain_alloc(struct irq_domain *domain,
	return 0;
}

static void mbigen_irq_domain_free(struct irq_domain *domain, unsigned int virq,
				   unsigned int nr_irqs)
{
	platform_msi_domain_free(domain, virq, nr_irqs);
}

static const struct irq_domain_ops mbigen_domain_ops = {
	.translate	= mbigen_domain_translate,
	.alloc		= mbigen_irq_domain_alloc,
	.free		= irq_domain_free_irqs_common,
	.free		= mbigen_irq_domain_free,
};

static int mbigen_of_create_domain(struct platform_device *pdev,