}
}
for (n = 0; n < NR_IPI; n++) {
+#define S(x,s) [x] = s
+#ifdef CONFIG_ARM
enum ipi_msg_type {
IPI_WAKEUP,
IPI_TIMER,
IPI_CPU_BACKTRACE,
};
static const char *ipi_types[NR_IPI] = {
-#define S(x,s) [x] = s
S(IPI_WAKEUP, "CPU wakeup"),
S(IPI_TIMER, "Timer broadcast"),
S(IPI_RESCHEDULE, "Rescheduling"),
S(IPI_CPU_STOP, "CPU stop"),
S(IPI_COMPLETION, "Completion"),
S(IPI_CPU_BACKTRACE, "CPU backtrace"),
-#undef S
};
+#elif defined(CONFIG_ARM64)
+ enum ipi_msg_type {
+ IPI_RESCHEDULE,
+ IPI_CALL_FUNC,
+ IPI_CALL_FUNC_SINGLE,
+ IPI_CPU_STOP,
+ IPI_TIMER,
+ };
+ static const char *ipi_types[NR_IPI] = {
+ S(IPI_RESCHEDULE, "Rescheduling"),
+ S(IPI_CALL_FUNC, "Function call"),
+ S(IPI_CALL_FUNC_SINGLE, "Single function call"),
+ S(IPI_CPU_STOP, "CPU stop"),
+ S(IPI_TIMER, "Timer broadcast"),
+ };
+#endif
+#undef S
for (cpu = 0; cpu < NR_CPUS; cpu++) {
unsigned int irqs = __get_irq_stat(cpu, ipi_irqs[n]);
if (irqs == 0)