lkml.org 
[lkml]   [2021]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
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);
\
 
 \ /
  Last update: 2021-06-06 14:45    [W:0.054 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site