]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
riscv: Register IPI IRQs with unique names
authorSamuel Holland <samuel.holland@sifive.com>
Thu, 16 Oct 2025 00:32:05 +0000 (17:32 -0700)
committerPaul Walmsley <pjw@kernel.org>
Sat, 18 Oct 2025 04:00:29 +0000 (22:00 -0600)
This allows different IPIs to be distinguished in tracing output.

Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://lore.kernel.org/r/20251016003244.3910332-1-samuel.holland@sifive.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
arch/riscv/kernel/smp.c

index e650dec448176ba00f43cb250431c32ec4a174e3..5ed5095320e66ab8f9e528aecbdcb7520ec89cb3 100644 (file)
@@ -40,6 +40,17 @@ enum ipi_message_type {
        IPI_MAX
 };
 
+static const char * const ipi_names[] = {
+       [IPI_RESCHEDULE]        = "Rescheduling interrupts",
+       [IPI_CALL_FUNC]         = "Function call interrupts",
+       [IPI_CPU_STOP]          = "CPU stop interrupts",
+       [IPI_CPU_CRASH_STOP]    = "CPU stop (for crash dump) interrupts",
+       [IPI_IRQ_WORK]          = "IRQ work interrupts",
+       [IPI_TIMER]             = "Timer broadcast interrupts",
+       [IPI_CPU_BACKTRACE]     = "CPU backtrace interrupts",
+       [IPI_KGDB_ROUNDUP]      = "KGDB roundup interrupts",
+};
+
 unsigned long __cpuid_to_hartid_map[NR_CPUS] __ro_after_init = {
        [0 ... NR_CPUS-1] = INVALID_HARTID
 };
@@ -199,7 +210,7 @@ void riscv_ipi_set_virq_range(int virq, int nr)
        /* Request IPIs */
        for (i = 0; i < nr_ipi; i++) {
                err = request_percpu_irq(ipi_virq_base + i, handle_IPI,
-                                        "IPI", &ipi_dummy_dev);
+                                        ipi_names[i], &ipi_dummy_dev);
                WARN_ON(err);
 
                ipi_desc[i] = irq_to_desc(ipi_virq_base + i);
@@ -210,17 +221,6 @@ void riscv_ipi_set_virq_range(int virq, int nr)
        riscv_ipi_enable();
 }
 
-static const char * const ipi_names[] = {
-       [IPI_RESCHEDULE]        = "Rescheduling interrupts",
-       [IPI_CALL_FUNC]         = "Function call interrupts",
-       [IPI_CPU_STOP]          = "CPU stop interrupts",
-       [IPI_CPU_CRASH_STOP]    = "CPU stop (for crash dump) interrupts",
-       [IPI_IRQ_WORK]          = "IRQ work interrupts",
-       [IPI_TIMER]             = "Timer broadcast interrupts",
-       [IPI_CPU_BACKTRACE]     = "CPU backtrace interrupts",
-       [IPI_KGDB_ROUNDUP]      = "KGDB roundup interrupts",
-};
-
 void show_ipi_stats(struct seq_file *p, int prec)
 {
        unsigned int cpu, i;