


 25-akpm/arch/um/kernel/time.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff -puN arch/um/kernel/time.c~um-do_settimeofday-update arch/um/kernel/time.c
--- 25/arch/um/kernel/time.c~um-do_settimeofday-update	Wed Jun 11 15:26:26 2003
+++ 25-akpm/arch/um/kernel/time.c	Wed Jun 11 15:26:26 2003
@@ -94,14 +94,21 @@ void do_gettimeofday(struct timeval *tv)
 	time_unlock(flags);
 }
 
-void do_settimeofday(struct timeval *tv)
+int do_settimeofday(struct timespec *tv)
 {
 	struct timeval now;
 	unsigned long flags;
+	struct timeval tv_in;
+
+	if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
+		return -EINVAL;
+
+	tv_in.tv_sec = tv->tv_sec;
+	tv_in.tv_usec = tv->tv_nsec / 1000;
 
 	flags = time_lock();
 	gettimeofday(&now, NULL);
-	timersub(tv, &now, &local_offset);
+	timersub(&tv_in, &now, &local_offset);
 	time_unlock(flags);
 }
 

_
