Commit 002ec58e authored by Anton Blanchard's avatar Anton Blanchard Committed by Paul Mackerras

[PATCH] ppc64: fix time syscall

ppc64 has its own version of sys_time. It looks pretty scary, touching
a whole bunch of variables without any locking or memory ordering.

In fact, a recent bugreport has shown it can actually go backwards. Time
to remove it and just use the generic sys_time, which is implemented on
top of do_gettimeofday.
Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent aed9c6cc
...@@ -43,9 +43,6 @@ ...@@ -43,9 +43,6 @@
#include <asm/time.h> #include <asm/time.h>
#include <asm/unistd.h> #include <asm/unistd.h>
extern unsigned long wall_jiffies;
/* /*
* sys_ipc() is the de-multiplexer for the SysV IPC calls.. * sys_ipc() is the de-multiplexer for the SysV IPC calls..
* *
...@@ -311,31 +308,6 @@ int sys_olduname(struct oldold_utsname __user *name) ...@@ -311,31 +308,6 @@ int sys_olduname(struct oldold_utsname __user *name)
return error? -EFAULT: 0; return error? -EFAULT: 0;
} }
#ifdef CONFIG_PPC64
time_t sys64_time(time_t __user * tloc)
{
time_t secs;
time_t usecs;
long tb_delta = tb_ticks_since(tb_last_stamp);
tb_delta += (jiffies - wall_jiffies) * tb_ticks_per_jiffy;
secs = xtime.tv_sec;
usecs = (xtime.tv_nsec/1000) + tb_delta / tb_ticks_per_usec;
while (usecs >= USEC_PER_SEC) {
++secs;
usecs -= USEC_PER_SEC;
}
if (tloc) {
if (put_user(secs,tloc))
secs = -EFAULT;
}
return secs;
}
#endif
long ppc_fadvise64_64(int fd, int advice, u32 offset_high, u32 offset_low, long ppc_fadvise64_64(int fd, int advice, u32 offset_high, u32 offset_low,
u32 len_high, u32 len_low) u32 len_high, u32 len_low)
{ {
......
...@@ -54,7 +54,7 @@ SYSCALL(link) ...@@ -54,7 +54,7 @@ SYSCALL(link)
SYSCALL(unlink) SYSCALL(unlink)
COMPAT_SYS(execve) COMPAT_SYS(execve)
SYSCALL(chdir) SYSCALL(chdir)
SYSX(sys64_time,compat_sys_time,sys_time) COMPAT_SYS(time)
SYSCALL(mknod) SYSCALL(mknod)
SYSCALL(chmod) SYSCALL(chmod)
SYSCALL(lchown) SYSCALL(lchown)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment