{
  }
  
-       /*
-        * do nothing, since it all was about calling re-schedule
-        * routine called by interrupt return code.
-        */
 +void arch_send_call_function_single_ipi(int cpu)
 +{
 +      /* trigger one IPI single call on one CPU */
 +      BTFIXUP_CALL(smp_ipi_single)(cpu);
 +}
 +
 +void arch_send_call_function_ipi_mask(const struct cpumask *mask)
 +{
 +      int cpu;
 +
 +      /* trigger IPI mask call on each CPU */
 +      for_each_cpu(cpu, mask)
 +              BTFIXUP_CALL(smp_ipi_mask_one)(cpu);
 +}
 +
 +void smp_resched_interrupt(void)
 +{
++      irq_enter();
++      scheduler_ipi();
 +      local_cpu_data().irq_resched_count++;
++      irq_exit();
++      /* re-schedule routine called by interrupt return code. */
 +}
 +
 +void smp_call_function_single_interrupt(void)
 +{
 +      irq_enter();
 +      generic_smp_call_function_single_interrupt();
 +      local_cpu_data().irq_call_count++;
 +      irq_exit();
 +}
 +
 +void smp_call_function_interrupt(void)
 +{
 +      irq_enter();
 +      generic_smp_call_function_interrupt();
 +      local_cpu_data().irq_call_count++;
 +      irq_exit();
 +}
 +
  void smp_flush_cache_all(void)
  {
        xc0((smpfunc_t) BTFIXUP_CALL(local_flush_cache_all));