diff options
author | Marc Zyngier <maz@kernel.org> | 2021-04-05 11:46:53 +0100 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2021-06-10 13:09:18 +0100 |
commit | 48b15a7921d60680babe59f64e127816585a585c (patch) | |
tree | f98cf345ef64188bfa4e05f235acbbdf49c56ecc /include/linux/irqdomain.h | |
parent | 426fa316148bccabf48f9c91a13c387ee911eadc (diff) | |
download | linux-stable-48b15a7921d60680babe59f64e127816585a585c.tar.gz linux-stable-48b15a7921d60680babe59f64e127816585a585c.tar.bz2 linux-stable-48b15a7921d60680babe59f64e127816585a585c.zip |
irqdomain: Cache irq_data instead of a virq number in the revmap
Caching a virq number in the revmap is pretty inefficient, as
it means we will need to convert it back to either an irq_data
or irq_desc to do anything with it.
It is also a bit odd, as the radix tree does cache irq_data
pointers.
Change the revmap type to be an irq_data pointer instead of
an unsigned int, and preserve the current API for now.
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'include/linux/irqdomain.h')
-rw-r--r-- | include/linux/irqdomain.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index 0916cf9c6e20..340cc04611dd 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h @@ -151,7 +151,7 @@ struct irq_domain_chip_generic; * Revmap data, used internally by irq_domain * @revmap_size: Size of the linear map table @revmap[] * @revmap_tree: Radix map tree for hwirqs that don't fit in the linear map - * @revmap: Linear table of hwirq->virq reverse mappings + * @revmap: Linear table of irq_data pointers */ struct irq_domain { struct list_head link; @@ -174,7 +174,7 @@ struct irq_domain { unsigned int revmap_size; struct radix_tree_root revmap_tree; struct mutex revmap_tree_mutex; - unsigned int revmap[]; + struct irq_data *revmap[]; }; /* Irq domain flags */ |