Messages in this thread Patch in this message | | | Date | Sun, 06 Jun 2021 12:43:48 -0000 | From | "irqchip-bot for Marc Zyngier" <> | Subject | [irqchip: irq/irqchip-next] irqdomain: Implement irq_domain_clear_mapping() with irq_domain_set_mapping() |
| |
The following commit has been merged into the irq/irqchip-next branch of irqchip:
Commit-ID: ee1a2bc868c73578ae8bbe1107e62af078510c47 Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/ee1a2bc868c73578ae8bbe1107e62af078510c47 Author: Marc Zyngier <maz@kernel.org> AuthorDate: Mon, 05 Apr 2021 12:56:12 +01:00 Committer: Marc Zyngier <maz@kernel.org> CommitterDate: Wed, 02 Jun 2021 14:34:49 +01:00
irqdomain: Implement irq_domain_clear_mapping() with irq_domain_set_mapping()
Now that we only deal with irq_data pointers, it is pretty obvious that irq_domain_clear_mapping() and irq_domain_set_mapping() are almost the exact same thing.
Implement one it terms of the other.
Signed-off-by: Marc Zyngier <maz@kernel.org> --- kernel/irq/irqdomain.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-)
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c index 7a4e388..ed2ffff 100644 --- a/kernel/irq/irqdomain.c +++ b/kernel/irq/irqdomain.c @@ -498,21 +498,6 @@ static bool irq_domain_is_nomap(struct irq_domain *domain) (domain->flags & IRQ_DOMAIN_FLAG_NO_MAP); } -static void irq_domain_clear_mapping(struct irq_domain *domain, - irq_hw_number_t hwirq) -{ - if (irq_domain_is_nomap(domain)) - return; - - if (hwirq < domain->revmap_size) { - domain->revmap[hwirq] = NULL; - } else { - mutex_lock(&domain->revmap_tree_mutex); - radix_tree_delete(&domain->revmap_tree, hwirq); - mutex_unlock(&domain->revmap_tree_mutex); - } -} - static void irq_domain_set_mapping(struct irq_domain *domain, irq_hw_number_t hwirq, struct irq_data *irq_data) @@ -529,6 +514,12 @@ static void irq_domain_set_mapping(struct irq_domain *domain, } } +static void irq_domain_clear_mapping(struct irq_domain *domain, + irq_hw_number_t hwirq) +{ + irq_domain_set_mapping(domain, hwirq, NULL); +} + static void irq_domain_disassociate(struct irq_domain *domain, unsigned int irq) { struct irq_data *irq_data = irq_get_irq_data(irq);
| |