--- zzzz-none-000/linux-2.6.39.4/arch/x86/kernel/irq_work.c 2011-08-03 19:43:28.000000000 +0000 +++ puma6-arm-6490-729/linux-2.6.39.4/arch/x86/kernel/irq_work.c 2021-11-10 13:23:10.000000000 +0000 @@ -8,13 +8,33 @@ #include #include #include +#if defined(CONFIG_AVM_POWER) +#include +#endif/*--- #if defined(CONFIG_AVM_POWER) ---*/ +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#include +#endif/*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ void smp_irq_work_interrupt(struct pt_regs *regs) { irq_enter(); ack_APIC_irq(); +#if defined(CONFIG_AVM_POWER) + avm_cpu_wait_end(); /*--- auch wenn es wait_irqoff gibt: trotzdem aufrufen, um system-load-Ausgabe zu triggern ---*/ +#endif/*--- #if defined(CONFIG_AVM_POWER) ---*/ +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#if defined(avm_simple_profiling_enter_irq_context) + avm_simple_profiling_enter_irq_context((unsigned int)instruction_pointer(regs), regs->bp); +#else/*--- #if defined(avm_simple_profiling_enter_irq_context) ---*/ + avm_simple_profiling_enter_irqcontext((unsigned int)instruction_pointer(regs)); +#endif/*--- #else ---*//*--- #if defined(avm_simple_profiling_enter_irq_context) ---*/ + avm_simple_profiling_log(avm_profile_data_type_hw_irq_begin, (unsigned int)smp_irq_work_interrupt, 0x103); +#endif/*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ inc_irq_stat(apic_irq_work_irqs); irq_work_run(); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hw_irq_end, (unsigned int)smp_irq_work_interrupt, 0x103); +#endif/*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ irq_exit(); }