--- zzzz-none-000/linux-4.1.52/kernel/time/timer.c 2018-05-28 02:26:45.000000000 +0000 +++ bcm63-7530ax-731/linux-4.1.52/kernel/time/timer.c 2022-03-02 11:37:13.000000000 +0000 @@ -42,6 +42,9 @@ #include #include #include +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#include +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ #include #include @@ -1216,13 +1219,27 @@ base->running_timer = timer; detach_expired_timer(timer, base); + if (fn == NULL) pr_warn("timer callback NULL %pS %08lx\n", timer, data); + if (irqsafe) { spin_unlock(&base->lock); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_timer_begin, (unsigned int)fn, (unsigned int)data); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ call_timer_fn(timer, fn, data); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_timer_end, (unsigned int)fn, (unsigned int)data); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ spin_lock(&base->lock); } else { spin_unlock_irq(&base->lock); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_timer_begin, (unsigned int)fn, (unsigned int)data); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ call_timer_fn(timer, fn, data); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_timer_end, (unsigned int)fn, (unsigned int)data); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ spin_lock_irq(&base->lock); } }