From: Bodo Stroesser s390 has fast read access to realtime clock (nanosecond resolution). So it makes sense to have an arch-specific implementation not only of __delay, but __udelay also. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton --- arch/um/kernel/ksyms.c | 3 --- arch/um/kernel/time_kern.c | 18 ------------------ arch/um/sys-i386/delay.c | 18 ++++++++++++++++++ arch/um/sys-i386/ksyms.c | 5 +++++ arch/um/sys-x86_64/delay.c | 18 ++++++++++++++++++ include/asm-um/delay.h | 2 ++ 6 files changed, 43 insertions(+), 21 deletions(-) diff -puN arch/um/kernel/ksyms.c~uml-s390-preparation-delay-moved-to-arch arch/um/kernel/ksyms.c --- 25/arch/um/kernel/ksyms.c~uml-s390-preparation-delay-moved-to-arch Mon May 2 17:15:49 2005 +++ 25-akpm/arch/um/kernel/ksyms.c Mon May 2 17:15:49 2005 @@ -10,7 +10,6 @@ #include "linux/spinlock.h" #include "linux/highmem.h" #include "asm/current.h" -#include "asm/delay.h" #include "asm/processor.h" #include "asm/unistd.h" #include "asm/pgalloc.h" @@ -28,8 +27,6 @@ EXPORT_SYMBOL(uml_physmem); EXPORT_SYMBOL(set_signals); EXPORT_SYMBOL(get_signals); EXPORT_SYMBOL(kernel_thread); -EXPORT_SYMBOL(__const_udelay); -EXPORT_SYMBOL(__udelay); EXPORT_SYMBOL(sys_waitpid); EXPORT_SYMBOL(task_size); EXPORT_SYMBOL(flush_tlb_range); diff -puN arch/um/kernel/time_kern.c~uml-s390-preparation-delay-moved-to-arch arch/um/kernel/time_kern.c --- 25/arch/um/kernel/time_kern.c~uml-s390-preparation-delay-moved-to-arch Mon May 2 17:15:49 2005 +++ 25-akpm/arch/um/kernel/time_kern.c Mon May 2 17:15:49 2005 @@ -48,8 +48,6 @@ static unsigned long long prev_usecs; static long long delta; /* Deviation per interval */ #endif -#define MILLION 1000000 - void timer_irq(union uml_pt_regs *regs) { unsigned long long ticks = 0; @@ -136,22 +134,6 @@ long um_stime(int __user *tptr) return 0; } -void __udelay(unsigned long usecs) -{ - int i, n; - - n = (loops_per_jiffy * HZ * usecs) / MILLION; - for(i=0;i