diff -Naurp -X /home/jbarnes/dontdiff 190-disable-linkstats.patch/include/asm-ia64/delay.h 200-udelay-preempt-fix.patch/include/asm-ia64/delay.h --- 190-disable-linkstats.patch/include/asm-ia64/delay.h Thu Jan 8 22:59:04 2004 +++ 200-udelay-preempt-fix.patch/include/asm-ia64/delay.h Mon Jan 12 10:16:41 2004 @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -81,11 +82,14 @@ __delay (unsigned long loops) static __inline__ void udelay (unsigned long usecs) { - unsigned long start = ia64_get_itc(); - unsigned long cycles = usecs*local_cpu_data->cyc_per_usec; + unsigned long start, cycles; + preempt_disable(); + start = ia64_get_itc(); + cycles = usecs*local_cpu_data->cyc_per_usec; while (ia64_get_itc() - start < cycles) /* skip */; + preempt_enable(); } #endif /* _ASM_IA64_DELAY_H */