Revert "genirq/irqdomain: Don't try to free an interrupt that has no mapping"

* This is retard. An interrupt does not have a permanent virq. The virq of an irq may be changed
after the free of other irqs.

* This is causing problems for msm_msi_irq_domain to free all the irqs that it allocated.

* Fix unrecoverable modem crash.

This reverts commit d1874e36cb3d00ba53f9e7bc3ca58d3058659cee.

Change-Id: I831083118d6a7c12d43f2fa2ef01bdd27159dac8
Signed-off-by: LibXZR <xzr467706992@163.com>
Signed-off-by: Richard Raya <rdxzv.dev@gmail.com>
This commit is contained in:
LibXZR 2021-05-22 14:06:24 +08:00 committed by Richard Raya
parent 5351ae2d91
commit 0e27242ef3

View File

@ -1375,15 +1375,8 @@ static void irq_domain_free_irqs_hierarchy(struct irq_domain *domain,
unsigned int irq_base,
unsigned int nr_irqs)
{
unsigned int i;
if (!domain->ops->free)
return;
for (i = 0; i < nr_irqs; i++) {
if (irq_domain_get_irq_data(domain, irq_base + i))
domain->ops->free(domain, irq_base + i, 1);
}
if (domain->ops->free)
domain->ops->free(domain, irq_base, nr_irqs);
}
int irq_domain_alloc_irqs_hierarchy(struct irq_domain *domain,