Thomas Gleixner
72199320d4
timekeeping: Add the new CLOCK_MONOTONIC_ACTIVE clock
...
The planned change to unify the behaviour of the MONOTONIC and BOOTTIME
clocks vs. suspend removes the ability to retrieve the active
non-suspended time of a system.
Provide a new CLOCK_MONOTONIC_ACTIVE clock which returns the active
non-suspended time of the system via clock_gettime().
This preserves the old behaviour of CLOCK_MONOTONIC before the
BOOTTIME/MONOTONIC unification.
This new clock also allows applications to detect programmatically that
the MONOTONIC and BOOTTIME clocks are identical.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Kevin Easton <kevin@guarana.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mark Salyzyn <salyzyn@android.com >
Cc: Michael Kerrisk <mtk.manpages@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Petr Mladek <pmladek@suse.com >
Cc: Prarit Bhargava <prarit@redhat.com >
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Link: http://lkml.kernel.org/r/20180301165149.965235774@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2018-03-13 07:34:21 +01:00
Arnd Bergmann
fe46042343
posix-stubs: Use get_timespec64() and put_timespec64()
...
This is a follow-up to commit 5c4994102f ("posix-timers: Use
get_timespec64() and put_timespec64()"), which left two system call using
copy_from_user()/copy_to_user().
Change them as well for consistency.
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org >
Cc: y2038@lists.linaro.org
Cc: John Stultz <john.stultz@linaro.org >
Cc: Al Viro <viro@zeniv.linux.org.uk >
Cc: Deepa Dinamani <deepa.kernel@gmail.com >
Link: https://lkml.kernel.org/r/20171013183009.3442318-1-arnd@arndb.de
2017-10-17 17:22:27 +02:00
Deepa Dinamani
5c4994102f
posix-timers: Use get_timespec64() and put_timespec64()
...
Usage of these apis and their compat versions makes
the syscalls: clock_gettime, clock_settime, clock_getres
and their compat implementations simpler.
This is a preparatory patch to isolate data conversions to
struct timespec64 at userspace boundaries. This helps contain
the changes needed to transition to new y2038 safe types.
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com >
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
2017-06-30 04:13:19 -04:00
Deepa Dinamani
63a766a178
posix-stubs: Conditionally include COMPAT_SYS_NI defines
...
These apis only need to be defined if CONFIG_COMPAT is
enabled.
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com >
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
2017-06-25 21:58:46 -04:00
Al Viro
2482097c6c
posix-timers: Move compat_timer_create() to native, get rid of set_fs()
...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20170607084241.28657-14-viro@ZenIV.linux.org.uk
2017-06-14 00:00:45 +02:00
Al Viro
d822cdcce4
posix-timers: Move compat versions of clock_gettime/settime/getres
...
Move them to the native implementations and get rid of the set_fs() hackery.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20170607084241.28657-13-viro@ZenIV.linux.org.uk
2017-06-14 00:00:44 +02:00
Al Viro
54ad9c46c2
itimers: Move compat itimer syscalls to native ones
...
get rid of set_fs(), sanitize compat copyin/copyout.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20170607084241.28657-12-viro@ZenIV.linux.org.uk
2017-06-14 00:00:44 +02:00
Al Viro
b0dc12426e
posix-timers: Take compat timer_gettime(2) to native one
...
... and get rid of set_fs() in there
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20170607084241.28657-11-viro@ZenIV.linux.org.uk
2017-06-14 00:00:43 +02:00
Al Viro
1acbe7708b
posix-timers: Take compat timer_settime(2) to native one
...
... and get rid of set_fs() in there
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20170607084241.28657-10-viro@ZenIV.linux.org.uk
2017-06-14 00:00:43 +02:00
Al Viro
3a4d44b616
ntp: Move adjtimex related compat syscalls to native counterparts
...
Get rid of set_fs() mess and sanitize compat_{get,put}_timex(),
while we are at it.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20170607084241.28657-9-viro@ZenIV.linux.org.uk
2017-06-14 00:00:43 +02:00
Al Viro
edbeda4632
time/posix-timers: Move the compat copyouts to the nanosleep implementations
...
Turn restart_block.nanosleep.{rmtp,compat_rmtp} into a tagged union (kind =
1 -> native, kind = 2 -> compat, kind = 0 -> nothing) and make the places
doing actual copyout handle compat as well as native (that will become a
helper in the next commit). Result: compat wrappers, messing with
reassignments, etc. are gone.
[ tglx: Folded in a variant of Peter Zijlstras enum patch ]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20170607084241.28657-6-viro@ZenIV.linux.org.uk
2017-06-14 00:00:42 +02:00
Al Viro
192a82f900
hrtimer_nanosleep(): Pass rmtp in restart_block
...
Store the pointer to the timespec which gets updated with the remaining
time in the restart block and remove the function argument.
[ tglx: Added changelog ]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20170607084241.28657-3-viro@ZenIV.linux.org.uk
2017-06-14 00:00:40 +02:00
Deepa Dinamani
ad19638463
time: Change k_clock nsleep() to use timespec64
...
struct timespec is not y2038 safe on 32 bit machines. Replace uses of
struct timespec with struct timespec64 in the kernel.
The syscall interfaces themselves will be changed in a separate series.
Note that the restart_block parameter for nanosleep has also been left
unchanged and will be part of syscall series noted above.
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com >
Cc: y2038@lists.linaro.org
Cc: john.stultz@linaro.org
Cc: arnd@arndb.de
Link: http://lkml.kernel.org/r/1490555058-4603-8-git-send-email-deepa.kernel@gmail.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2017-04-14 21:49:56 +02:00
Deepa Dinamani
3c9c12f4b4
time: Change k_clock clock_get() to use timespec64
...
struct timespec is not y2038 safe on 32 bit machines. Replace uses of
struct timespec with struct timespec64 in the kernel.
The syscall interfaces themselves will be changed in a separate series.
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com >
Cc: y2038@lists.linaro.org
Cc: john.stultz@linaro.org
Cc: arnd@arndb.de
Link: http://lkml.kernel.org/r/1490555058-4603-4-git-send-email-deepa.kernel@gmail.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2017-04-14 21:49:55 +02:00
Deepa Dinamani
2ac00f17b2
time: Delete do_sys_setimeofday()
...
struct timespec is not y2038 safe on 32 bit machines and needs to be
replaced with struct timespec64.
do_sys_timeofday() is just a wrapper function. Replace all calls to this
function with direct calls to do_sys_timeofday64() instead and delete
do_sys_timeofday().
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com >
Cc: y2038@lists.linaro.org
Cc: john.stultz@linaro.org
Cc: arnd@arndb.de
Cc: linux-alpha@vger.kernel.org
Link: http://lkml.kernel.org/r/1490555058-4603-2-git-send-email-deepa.kernel@gmail.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2017-04-14 21:49:54 +02:00
Nicolas Pitre
baa73d9e47
posix-timers: Make them configurable
...
Some embedded systems have no use for them. This removes about
25KB from the kernel binary size when configured out.
Corresponding syscalls are routed to a stub logging the attempt to
use those syscalls which should be enough of a clue if they were
disabled without proper consideration. They are: timer_create,
timer_gettime: timer_getoverrun, timer_settime, timer_delete,
clock_adjtime, setitimer, getitimer, alarm.
The clock_settime, clock_gettime, clock_getres and clock_nanosleep
syscalls are replaced by simple wrappers compatible with CLOCK_REALTIME,
CLOCK_MONOTONIC and CLOCK_BOOTTIME only which should cover the vast
majority of use cases with very little code.
Signed-off-by: Nicolas Pitre <nico@linaro.org >
Acked-by: Richard Cochran <richardcochran@gmail.com >
Acked-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: John Stultz <john.stultz@linaro.org >
Reviewed-by: Josh Triplett <josh@joshtriplett.org >
Cc: Paul Bolle <pebolle@tiscali.nl >
Cc: linux-kbuild@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: Michal Marek <mmarek@suse.com >
Cc: Edward Cree <ecree@solarflare.com >
Link: http://lkml.kernel.org/r/1478841010-28605-7-git-send-email-nicolas.pitre@linaro.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2016-11-16 09:26:35 +01:00