* [patch 2/3] x86_64: remove duplicated sys_time64
@ 2005-03-30 17:32 blaisorblade
2005-03-31 10:38 ` Andi Kleen
0 siblings, 1 reply; 6+ messages in thread
From: blaisorblade @ 2005-03-30 17:32 UTC (permalink / raw)
To: torvalds; +Cc: akpm, linux-kernel, blaisorblade, ak
CC: Andi Kleen <ak@suse.de>
Keeping this function does not makes sense because it's a copied (and buggy)
copy of sys_time. The only difference is that now.tv_sec (which is a time_t,
i.e. a 64-bit long) is copied (and truncated) into a int (32-bit).
The prototype is the same (they both take a long __user *), so let's drop this
and redirect it to sys_time (and make sure it exists by defining
__ARCH_WANT_SYS_TIME).
Only disadvantage is that the sys_stime definition is also compiled (may be
fixed if needed by adding a separate __ARCH_WANT_SYS_STIME macro, and defining
it for all arch's defining __ARCH_WANT_SYS_TIME except x86_64).
Not compile-tested, sorry.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
---
linux-2.6.11-paolo/arch/x86_64/kernel/sys_x86_64.c | 14 --------------
linux-2.6.11-paolo/include/asm-x86_64/unistd.h | 3 ++-
2 files changed, 2 insertions(+), 15 deletions(-)
diff -puN include/asm-x86_64/unistd.h~x86_64-remove-sys-time-x86-64 include/asm-x86_64/unistd.h
--- linux-2.6.11/include/asm-x86_64/unistd.h~x86_64-remove-sys-time-x86-64 2005-03-29 17:39:38.000000000 +0200
+++ linux-2.6.11-paolo/include/asm-x86_64/unistd.h 2005-03-29 17:47:36.000000000 +0200
@@ -462,7 +462,7 @@ __SYSCALL(__NR_fremovexattr, sys_fremove
#define __NR_tkill 200
__SYSCALL(__NR_tkill, sys_tkill)
#define __NR_time 201
-__SYSCALL(__NR_time, sys_time64)
+__SYSCALL(__NR_time, sys_time)
#define __NR_futex 202
__SYSCALL(__NR_futex, sys_futex)
#define __NR_sched_setaffinity 203
@@ -600,6 +600,7 @@ do { \
#define __ARCH_WANT_SYS_SIGPENDING
#define __ARCH_WANT_SYS_SIGPROCMASK
#define __ARCH_WANT_SYS_RT_SIGACTION
+#define __ARCH_WANT_SYS_TIME
#define __ARCH_WANT_COMPAT_SYS_TIME
#endif
diff -puN arch/x86_64/kernel/sys_x86_64.c~x86_64-remove-sys-time-x86-64 arch/x86_64/kernel/sys_x86_64.c
--- linux-2.6.11/arch/x86_64/kernel/sys_x86_64.c~x86_64-remove-sys-time-x86-64 2005-03-29 17:39:38.000000000 +0200
+++ linux-2.6.11-paolo/arch/x86_64/kernel/sys_x86_64.c 2005-03-29 17:40:30.000000000 +0200
@@ -158,17 +158,3 @@ asmlinkage long wrap_sys_shmat(int shmid
unsigned long raddr;
return do_shmat(shmid,shmaddr,shmflg,&raddr) ?: (long)raddr;
}
-
-asmlinkage long sys_time64(long __user * tloc)
-{
- struct timeval now;
- int i;
-
- do_gettimeofday(&now);
- i = now.tv_sec;
- if (tloc) {
- if (put_user(i,tloc))
- i = -EFAULT;
- }
- return i;
-}
_
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 2/3] x86_64: remove duplicated sys_time64
2005-03-30 17:32 [patch 2/3] x86_64: remove duplicated sys_time64 blaisorblade
@ 2005-03-31 10:38 ` Andi Kleen
2005-03-31 11:10 ` Stephen Rothwell
0 siblings, 1 reply; 6+ messages in thread
From: Andi Kleen @ 2005-03-31 10:38 UTC (permalink / raw)
To: blaisorblade; +Cc: torvalds, akpm, linux-kernel, ak
On Wed, Mar 30, 2005 at 07:32:16PM +0200, blaisorblade@yahoo.it wrote:
>
> CC: Andi Kleen <ak@suse.de>
>
> Keeping this function does not makes sense because it's a copied (and buggy)
> copy of sys_time. The only difference is that now.tv_sec (which is a time_t,
> i.e. a 64-bit long) is copied (and truncated) into a int (32-bit).
>
> The prototype is the same (they both take a long __user *), so let's drop this
> and redirect it to sys_time (and make sure it exists by defining
> __ARCH_WANT_SYS_TIME).
>
> Only disadvantage is that the sys_stime definition is also compiled (may be
> fixed if needed by adding a separate __ARCH_WANT_SYS_STIME macro, and defining
> it for all arch's defining __ARCH_WANT_SYS_TIME except x86_64).
>
> Not compile-tested, sorry.
Nack. The generic sys_time still writes to int, not long.
That is why x86-64 has a private one. Please keep that.
-Andi
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 2/3] x86_64: remove duplicated sys_time64
2005-03-31 10:38 ` Andi Kleen
@ 2005-03-31 11:10 ` Stephen Rothwell
2005-03-31 11:12 ` Andi Kleen
0 siblings, 1 reply; 6+ messages in thread
From: Stephen Rothwell @ 2005-03-31 11:10 UTC (permalink / raw)
To: Andi Kleen; +Cc: blaisorblade, torvalds, akpm, linux-kernel, ak
[-- Attachment #1: Type: text/plain, Size: 389 bytes --]
On Thu, 31 Mar 2005 12:38:34 +0200 Andi Kleen <ak@suse.de> wrote:
>
> Nack. The generic sys_time still writes to int, not long.
> That is why x86-64 has a private one. Please keep that.
It writes to a time_t which is a __kernel_time_t which is a long on
x86-64, isn't it?
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 2/3] x86_64: remove duplicated sys_time64
2005-03-31 11:10 ` Stephen Rothwell
@ 2005-03-31 11:12 ` Andi Kleen
2005-03-31 11:25 ` Stephen Rothwell
0 siblings, 1 reply; 6+ messages in thread
From: Andi Kleen @ 2005-03-31 11:12 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Andi Kleen, blaisorblade, torvalds, akpm, linux-kernel
On Thu, Mar 31, 2005 at 09:10:59PM +1000, Stephen Rothwell wrote:
> On Thu, 31 Mar 2005 12:38:34 +0200 Andi Kleen <ak@suse.de> wrote:
> >
> > Nack. The generic sys_time still writes to int, not long.
> > That is why x86-64 has a private one. Please keep that.
>
> It writes to a time_t which is a __kernel_time_t which is a long on
> x86-64, isn't it?
At least in 2.6.10 it writes to int.
-Andi
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 2/3] x86_64: remove duplicated sys_time64
2005-03-31 11:12 ` Andi Kleen
@ 2005-03-31 11:25 ` Stephen Rothwell
2005-03-31 11:36 ` Andi Kleen
0 siblings, 1 reply; 6+ messages in thread
From: Stephen Rothwell @ 2005-03-31 11:25 UTC (permalink / raw)
To: Andi Kleen; +Cc: ak, blaisorblade, torvalds, akpm, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 980 bytes --]
On Thu, 31 Mar 2005 13:12:35 +0200 Andi Kleen <ak@suse.de> wrote:
>
> On Thu, Mar 31, 2005 at 09:10:59PM +1000, Stephen Rothwell wrote:
> > On Thu, 31 Mar 2005 12:38:34 +0200 Andi Kleen <ak@suse.de> wrote:
> > >
> > > Nack. The generic sys_time still writes to int, not long.
> > > That is why x86-64 has a private one. Please keep that.
> >
> > It writes to a time_t which is a __kernel_time_t which is a long on
> > x86-64, isn't it?
>
> At least in 2.6.10 it writes to int.
I was looking at current bk where it looks like this:
asmlinkage long sys_time(time_t __user * tloc)
{
time_t i;
struct timeval tv;
do_gettimeofday(&tv);
i = tv.tv_sec;
if (tloc) {
if (put_user(i,tloc))
i = -EFAULT;
}
return i;
}
I have no idea when it changed.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 2/3] x86_64: remove duplicated sys_time64
2005-03-31 11:25 ` Stephen Rothwell
@ 2005-03-31 11:36 ` Andi Kleen
0 siblings, 0 replies; 6+ messages in thread
From: Andi Kleen @ 2005-03-31 11:36 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Andi Kleen, blaisorblade, torvalds, akpm, linux-kernel
On Thu, Mar 31, 2005 at 09:25:16PM +1000, Stephen Rothwell wrote:
> On Thu, 31 Mar 2005 13:12:35 +0200 Andi Kleen <ak@suse.de> wrote:
> >
> > On Thu, Mar 31, 2005 at 09:10:59PM +1000, Stephen Rothwell wrote:
> > > On Thu, 31 Mar 2005 12:38:34 +0200 Andi Kleen <ak@suse.de> wrote:
> > > >
> > > > Nack. The generic sys_time still writes to int, not long.
> > > > That is why x86-64 has a private one. Please keep that.
> > >
> > > It writes to a time_t which is a __kernel_time_t which is a long on
> > > x86-64, isn't it?
> >
> > At least in 2.6.10 it writes to int.
>
> I was looking at current bk where it looks like this:
>
> asmlinkage long sys_time(time_t __user * tloc)
Ok with that change the patch is ok.
> {
> time_t i;
> struct timeval tv;
>
> do_gettimeofday(&tv);
> i = tv.tv_sec;
>
> if (tloc) {
> if (put_user(i,tloc))
> i = -EFAULT;
> }
> return i;
> }
>
> I have no idea when it changed.
I was looking at an older tree, sorry.
-Andi
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-03-31 11:36 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-30 17:32 [patch 2/3] x86_64: remove duplicated sys_time64 blaisorblade
2005-03-31 10:38 ` Andi Kleen
2005-03-31 11:10 ` Stephen Rothwell
2005-03-31 11:12 ` Andi Kleen
2005-03-31 11:25 ` Stephen Rothwell
2005-03-31 11:36 ` Andi Kleen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.