Add function to register irq info into kmemdump. Signed-off-by: Eugen Hristev <eugen.hristev@xxxxxxxxxx> --- include/linux/irqnr.h | 1 + kernel/irq/irqdesc.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/include/linux/irqnr.h b/include/linux/irqnr.h index e97206c721a0..136f0572ad78 100644 --- a/include/linux/irqnr.h +++ b/include/linux/irqnr.h @@ -9,6 +9,7 @@ unsigned int irq_get_nr_irqs(void) __pure; unsigned int irq_set_nr_irqs(unsigned int nr); extern struct irq_desc *irq_to_desc(unsigned int irq); unsigned int irq_get_next_irq(unsigned int offset); +void irq_kmemdump_register(void); #define for_each_irq_desc(irq, desc) \ for (unsigned int __nr_irqs__ = irq_get_nr_irqs(); __nr_irqs__; \ diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c index 287830739783..ae29165b1f1f 100644 --- a/kernel/irq/irqdesc.c +++ b/kernel/irq/irqdesc.c @@ -12,6 +12,7 @@ #include <linux/export.h> #include <linux/interrupt.h> #include <linux/kernel_stat.h> +#include <linux/kmemdump.h> #include <linux/maple_tree.h> #include <linux/irqdomain.h> #include <linux/sysfs.h> @@ -164,6 +165,12 @@ unsigned int irq_set_nr_irqs(unsigned int nr) } EXPORT_SYMBOL_GPL(irq_set_nr_irqs); +void irq_kmemdump_register(void) +{ + kmemdump_register("irq", (void *)&nr_irqs, sizeof(nr_irqs)); +} +EXPORT_SYMBOL_GPL(irq_kmemdump_register); + static DEFINE_MUTEX(sparse_irq_lock); static struct maple_tree sparse_irqs = MTREE_INIT_EXT(sparse_irqs, MT_FLAGS_ALLOC_RANGE | -- 2.43.0