* Handles clock_nanosleep calls against _ALARM clockids
*/
static int alarm_timer_nsleep(const clockid_t which_clock, int flags,
- struct timespec64 *tsreq,
- struct timespec __user *rmtp)
+ struct timespec64 *tsreq)
{
enum alarmtimer_type type = clock2alarm(which_clock);
struct restart_block *restart = ¤t->restart_block;
ktime_t exp;
int ret = 0;
- if (flags & TIMER_ABSTIME)
- rmtp = NULL;
-
- restart->nanosleep.rmtp = rmtp;
-
if (!alarmtimer_get_rtcdev())
return -ENOTSUPP;
static long posix_cpu_nsleep_restart(struct restart_block *restart_block);
static int posix_cpu_nsleep(const clockid_t which_clock, int flags,
- struct timespec64 *rqtp, struct timespec __user *rmtp)
+ struct timespec64 *rqtp)
{
struct restart_block *restart_block = ¤t->restart_block;
int error;
- if (flags & TIMER_ABSTIME)
- rmtp = NULL;
-
- restart_block->nanosleep.rmtp = rmtp;
-
/*
* Diagnose required errors first.
*/
return posix_cpu_timer_create(timer);
}
static int process_cpu_nsleep(const clockid_t which_clock, int flags,
- struct timespec64 *rqtp,
- struct timespec __user *rmtp)
+ struct timespec64 *rqtp)
{
- return posix_cpu_nsleep(PROCESS_CLOCK, flags, rqtp, rmtp);
+ return posix_cpu_nsleep(PROCESS_CLOCK, flags, rqtp);
}
static long process_cpu_nsleep_restart(struct restart_block *restart_block)
{
* nanosleep for monotonic and realtime clocks
*/
static int common_nsleep(const clockid_t which_clock, int flags,
- struct timespec64 *tsave, struct timespec __user *rmtp)
+ struct timespec64 *tsave)
{
- if (flags & TIMER_ABSTIME)
- rmtp = NULL;
- current->restart_block.nanosleep.rmtp = rmtp;
return hrtimer_nanosleep(tsave, flags & TIMER_ABSTIME ?
HRTIMER_MODE_ABS : HRTIMER_MODE_REL,
which_clock);
t64 = timespec_to_timespec64(t);
if (!timespec64_valid(&t64))
return -EINVAL;
+ if (flags & TIMER_ABSTIME)
+ rmtp = NULL;
+ current->restart_block.nanosleep.rmtp = rmtp;
- return kc->nsleep(which_clock, flags, &t64, rmtp);
+ return kc->nsleep(which_clock, flags, &t64);
}
/*
int (*clock_adj)(const clockid_t which_clock, struct timex *tx);
int (*timer_create)(struct k_itimer *timer);
int (*nsleep)(const clockid_t which_clock, int flags,
- struct timespec64 *, struct timespec __user *);
+ struct timespec64 *);
long (*nsleep_restart)(struct restart_block *restart_block);
int (*timer_set)(struct k_itimer *timr, int flags,
struct itimerspec64 *new_setting,