|
@@ -519,6 +519,7 @@ SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,
|
|
|
it_id_set = IT_ID_SET;
|
|
|
new_timer->it_id = (timer_t) new_timer_id;
|
|
|
new_timer->it_clock = which_clock;
|
|
|
+ new_timer->kclock = kc;
|
|
|
new_timer->it_overrun = -1;
|
|
|
|
|
|
if (timer_event_spec) {
|
|
@@ -679,7 +680,7 @@ SYSCALL_DEFINE2(timer_gettime, timer_t, timer_id,
|
|
|
if (!timr)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- kc = clockid_to_kclock(timr->it_clock);
|
|
|
+ kc = timr->kclock;
|
|
|
if (WARN_ON_ONCE(!kc || !kc->timer_get))
|
|
|
ret = -EINVAL;
|
|
|
else
|
|
@@ -798,7 +799,7 @@ retry:
|
|
|
if (!timr)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- kc = clockid_to_kclock(timr->it_clock);
|
|
|
+ kc = timr->kclock;
|
|
|
if (WARN_ON_ONCE(!kc || !kc->timer_set))
|
|
|
error = -EINVAL;
|
|
|
else
|
|
@@ -829,7 +830,7 @@ static int common_timer_del(struct k_itimer *timer)
|
|
|
|
|
|
static inline int timer_delete_hook(struct k_itimer *timer)
|
|
|
{
|
|
|
- const struct k_clock *kc = clockid_to_kclock(timer->it_clock);
|
|
|
+ const struct k_clock *kc = timer->kclock;
|
|
|
|
|
|
if (WARN_ON_ONCE(!kc || !kc->timer_del))
|
|
|
return -EINVAL;
|