git.codelabs.ch
/
muen
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sparc: Several small VDSO vclock_gettime.c improvements.
[muen/linux.git]
/
arch
/
sparc
/
vdso
/
vclock_gettime.c
diff --git
a/arch/sparc/vdso/vclock_gettime.c
b/arch/sparc/vdso/vclock_gettime.c
index 7b5bf63fc0f52e5014547b00f81c4b2938da96a5..7b539ceebe13a189b6b09a877bae3d0cbacce0f3 100644
(file)
--- a/
arch/sparc/vdso/vclock_gettime.c
+++ b/
arch/sparc/vdso/vclock_gettime.c
@@
-138,7
+138,6
@@
notrace static __always_inline int do_realtime(struct vvar_data *vvar,
unsigned long seq;
u64 ns;
unsigned long seq;
u64 ns;
- ts->tv_nsec = 0;
do {
seq = vvar_read_begin(vvar);
ts->tv_sec = vvar->wall_time_sec;
do {
seq = vvar_read_begin(vvar);
ts->tv_sec = vvar->wall_time_sec;
@@
-147,7
+146,8
@@
notrace static __always_inline int do_realtime(struct vvar_data *vvar,
ns >>= vvar->clock.shift;
} while (unlikely(vvar_read_retry(vvar, seq)));
ns >>= vvar->clock.shift;
} while (unlikely(vvar_read_retry(vvar, seq)));
- timespec_add_ns(ts, ns);
+ ts->tv_sec += __iter_div_u64_rem(ns, NSEC_PER_SEC, &ns);
+ ts->tv_nsec = ns;
return 0;
}
return 0;
}
@@
-158,7
+158,6
@@
notrace static __always_inline int do_monotonic(struct vvar_data *vvar,
unsigned long seq;
u64 ns;
unsigned long seq;
u64 ns;
- ts->tv_nsec = 0;
do {
seq = vvar_read_begin(vvar);
ts->tv_sec = vvar->monotonic_time_sec;
do {
seq = vvar_read_begin(vvar);
ts->tv_sec = vvar->monotonic_time_sec;
@@
-167,7
+166,8
@@
notrace static __always_inline int do_monotonic(struct vvar_data *vvar,
ns >>= vvar->clock.shift;
} while (unlikely(vvar_read_retry(vvar, seq)));
ns >>= vvar->clock.shift;
} while (unlikely(vvar_read_retry(vvar, seq)));
- timespec_add_ns(ts, ns);
+ ts->tv_sec += __iter_div_u64_rem(ns, NSEC_PER_SEC, &ns);
+ ts->tv_nsec = ns;
return 0;
}
return 0;
}