diff options
author | 2017-06-24 11:45:03 -0700 | |
---|---|---|
committer | 2017-06-25 21:58:46 -0400 | |
commit | d5b7ffbfbdacc29e4db035f90665951668fa9c58 (patch) | |
tree | dcea264738eabb691f4239f7981040739230f683 /kernel/time/time.c | |
parent | time: add get_timespec64 and put_timespec64 (diff) | |
download | linux-d5b7ffbfbdacc29e4db035f90665951668fa9c58.tar.gz linux-d5b7ffbfbdacc29e4db035f90665951668fa9c58.tar.bz2 linux-d5b7ffbfbdacc29e4db035f90665951668fa9c58.zip |
time: introduce {get,put}_itimerspec64
As we change the user space type for the timerfd and posix timer
functions to newer data types, we need some form of conversion
helpers to avoid duplicating that logic.
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'kernel/time/time.c')
-rw-r--r-- | kernel/time/time.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/kernel/time/time.c b/kernel/time/time.c index adb9853ca6b0..44a8c1402133 100644 --- a/kernel/time/time.c +++ b/kernel/time/time.c @@ -918,3 +918,33 @@ int put_timespec64(const struct timespec64 *ts, return copy_to_user(uts, &kts, sizeof(kts)) ? -EFAULT : 0; } EXPORT_SYMBOL_GPL(put_timespec64); + +int get_itimerspec64(struct itimerspec64 *it, + const struct itimerspec __user *uit) +{ + int ret; + + ret = get_timespec64(&it->it_interval, &uit->it_interval); + if (ret) + return ret; + + ret = get_timespec64(&it->it_value, &uit->it_value); + + return ret; +} +EXPORT_SYMBOL_GPL(get_itimerspec64); + +int put_itimerspec64(const struct itimerspec64 *it, + struct itimerspec __user *uit) +{ + int ret; + + ret = put_timespec64(&it->it_interval, &uit->it_interval); + if (ret) + return ret; + + ret = put_timespec64(&it->it_value, &uit->it_value); + + return ret; +} +EXPORT_SYMBOL_GPL(put_itimerspec64); |