diff -Naurp -X /home/jbarnes/dontdiff 180-tg3-hack.patch/arch/ia64/sn/kernel/sn2/sn_proc_fs.c 200-udelay-preempt-fix.patch/arch/ia64/sn/kernel/sn2/sn_proc_fs.c --- 180-tg3-hack.patch/arch/ia64/sn/kernel/sn2/sn_proc_fs.c Mon Feb 9 19:01:23 2004 +++ 200-udelay-preempt-fix.patch/arch/ia64/sn/kernel/sn2/sn_proc_fs.c Thu Feb 12 10:27:43 2004 @@ -165,7 +165,7 @@ register_sn_procfs(void) { register_sn_partition_id(); register_sn_serial_numbers(); register_sn_force_interrupt(); - register_sn_linkstats(); + /* register_sn_linkstats(); */ } #endif /* CONFIG_PROC_FS */ diff -Naurp -X /home/jbarnes/dontdiff 180-tg3-hack.patch/include/asm-ia64/delay.h 200-udelay-preempt-fix.patch/include/asm-ia64/delay.h --- 180-tg3-hack.patch/include/asm-ia64/delay.h Mon Feb 9 19:00:01 2004 +++ 200-udelay-preempt-fix.patch/include/asm-ia64/delay.h Thu Feb 12 10:27:53 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 */