--- zzzz-none-000/linux-4.4.271/arch/arm/kernel/smp.c 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/arch/arm/kernel/smp.c 2023-04-19 10:22:27.000000000 +0000 @@ -54,6 +54,12 @@ #define CREATE_TRACE_POINTS #include +#if defined(CONFIG_AVM_FASTIRQ) +// Fuer 'bool avm_trigger_all_cpu_backtrace(struct pt_regs *exception_regs);' +#include +#include +#endif + /* * as from 2.5, kernels no longer have an init_tasks structure * so we need some other way of telling a new secondary core @@ -536,6 +542,10 @@ seq_printf(p, " %s\n", ipi_types[i]); } + +#if defined(CONFIG_AVM_FASTIRQ) + avm_rte_ipi_show_list(p, prec, false); +#endif } u64 smp_irq_stat_cpu(unsigned int cpu) @@ -691,8 +701,11 @@ break; default: - pr_crit("CPU%u: Unknown IPI message 0x%x\n", - cpu, ipinr); +#if defined(CONFIG_AVM_FASTIRQ) + if (avm_rte_ipi_handle(ipinr, regs) != IRQ_HANDLED) + pr_crit("CPU%u: Unknown IPI message 0x%x\n", + cpu, ipinr); +#endif break; } @@ -800,6 +813,7 @@ #endif +#if !defined(CONFIG_AVM_FASTIRQ) static void raise_nmi(cpumask_t *mask) { /* @@ -813,8 +827,13 @@ smp_cross_call(mask, IPI_CPU_BACKTRACE); } +#endif void arch_trigger_all_cpu_backtrace(bool include_self) { - nmi_trigger_all_cpu_backtrace(include_self, raise_nmi); +#if defined(CONFIG_AVM_FASTIRQ) + (void)avm_trigger_all_cpu_backtrace(NULL, NULL); +#else + nmi_trigger_all_cpu_backtrace(include_self, raise_nmi); +#endif }