genirq/generic-chip: Fix the irq_chip name for /proc/interrupts
authorKeguang Zhang <keguang.zhang@gmail.com>
Mon, 25 Sep 2023 12:17:34 +0000 (20:17 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 13 Oct 2023 10:25:31 +0000 (12:25 +0200)
irq_init_generic_chip() only sets the name for the first chip type, which
leads to empty names for other chip types.  Eventually, these names will be
shown as "-" /proc/interrupts.

Set the name for all chip types by default.

Signed-off-by: Keguang Zhang <keguang.zhang@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20230925121734.93017-1-keguang.zhang@gmail.com
kernel/irq/generic-chip.c

index c653cd31548d03ee01c1d146e02a5570fef61071..81ecca08caad11ad5b9c6e032273bd5545f39cef 100644 (file)
@@ -219,11 +219,15 @@ void irq_init_generic_chip(struct irq_chip_generic *gc, const char *name,
                           int num_ct, unsigned int irq_base,
                           void __iomem *reg_base, irq_flow_handler_t handler)
 {
+       struct irq_chip_type *ct = gc->chip_types;
+       int i;
+
        raw_spin_lock_init(&gc->lock);
        gc->num_ct = num_ct;
        gc->irq_base = irq_base;
        gc->reg_base = reg_base;
-       gc->chip_types->chip.name = name;
+       for (i = 0; i < num_ct; i++)
+               ct[i].chip.name = name;
        gc->chip_types->handler = handler;
 }