diff -Naur linux-2.3.23-org/arch/i386/kernel/time.c linux-2.3.23/arch/i386/kernel/time.c --- linux-2.3.23-org/arch/i386/kernel/time.c 2007-10-26 19:16:38.000000000 +0530 +++ linux-2.3.23/arch/i386/kernel/time.c 2007-10-26 19:17:49.000000000 +0530 @@ -150,6 +150,10 @@ } EXPORT_SYMBOL(profile_pc); +/* Interrupt latency pointer */ +irqlatptr irq_lat_ptr = NULL; +EXPORT_SYMBOL(irq_lat_ptr); + /* * This is the same as the above, except we _also_ save the current * Time Stamp Counter value at the time of the timer interrupt, so that @@ -173,6 +177,10 @@ } #endif + /* Interrupt latency pointer */ + if (irq_lat_ptr) + irq_lat_ptr(); + do_timer_interrupt_hook(); if (MCA_bus) { diff -Naur linux-2.3.23-org/include/asm-i386/time.h linux-2.3.23/include/asm-i386/time.h --- linux-2.3.23-org/include/asm-i386/time.h 2007-10-26 19:16:38.000000000 +0530 +++ linux-2.3.23/include/asm-i386/time.h 2007-10-26 19:18:10.000000000 +0530 @@ -28,6 +28,10 @@ return retval; } +/* interrupt latency pointer */ +typedef void (*irqlatptr)(void); +extern irqlatptr irq_lat_ptr; + extern void (*late_time_init)(void); extern void hpet_time_init(void);