aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/hrtimer.c9
-rw-r--r--kernel/posix-timers.c9
-rw-r--r--kernel/sys_ni.c7
3 files changed, 14 insertions, 11 deletions
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index 1069998fe25f..668f3967eb39 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -306,7 +306,7 @@ EXPORT_SYMBOL_GPL(ktime_sub_ns);
306/* 306/*
307 * Divide a ktime value by a nanosecond value 307 * Divide a ktime value by a nanosecond value
308 */ 308 */
309unsigned long ktime_divns(const ktime_t kt, s64 div) 309u64 ktime_divns(const ktime_t kt, s64 div)
310{ 310{
311 u64 dclc, inc, dns; 311 u64 dclc, inc, dns;
312 int sft = 0; 312 int sft = 0;
@@ -321,7 +321,7 @@ unsigned long ktime_divns(const ktime_t kt, s64 div)
321 dclc >>= sft; 321 dclc >>= sft;
322 do_div(dclc, (unsigned long) div); 322 do_div(dclc, (unsigned long) div);
323 323
324 return (unsigned long) dclc; 324 return dclc;
325} 325}
326#endif /* BITS_PER_LONG >= 64 */ 326#endif /* BITS_PER_LONG >= 64 */
327 327
@@ -656,10 +656,9 @@ void unlock_hrtimer_base(const struct hrtimer *timer, unsigned long *flags)
656 * Forward the timer expiry so it will expire in the future. 656 * Forward the timer expiry so it will expire in the future.
657 * Returns the number of overruns. 657 * Returns the number of overruns.
658 */ 658 */
659unsigned long 659u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
660hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
661{ 660{
662 unsigned long orun = 1; 661 u64 orun = 1;
663 ktime_t delta; 662 ktime_t delta;
664 663
665 delta = ktime_sub(now, timer->expires); 664 delta = ktime_sub(now, timer->expires);
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c
index 36d563fd9e3b..122d5c787fe2 100644
--- a/kernel/posix-timers.c
+++ b/kernel/posix-timers.c
@@ -256,8 +256,9 @@ static void schedule_next_timer(struct k_itimer *timr)
256 if (timr->it.real.interval.tv64 == 0) 256 if (timr->it.real.interval.tv64 == 0)
257 return; 257 return;
258 258
259 timr->it_overrun += hrtimer_forward(timer, timer->base->get_time(), 259 timr->it_overrun += (unsigned int) hrtimer_forward(timer,
260 timr->it.real.interval); 260 timer->base->get_time(),
261 timr->it.real.interval);
261 262
262 timr->it_overrun_last = timr->it_overrun; 263 timr->it_overrun_last = timr->it_overrun;
263 timr->it_overrun = -1; 264 timr->it_overrun = -1;
@@ -386,7 +387,7 @@ static enum hrtimer_restart posix_timer_fn(struct hrtimer *timer)
386 now = ktime_add(now, kj); 387 now = ktime_add(now, kj);
387 } 388 }
388#endif 389#endif
389 timr->it_overrun += 390 timr->it_overrun += (unsigned int)
390 hrtimer_forward(timer, now, 391 hrtimer_forward(timer, now,
391 timr->it.real.interval); 392 timr->it.real.interval);
392 ret = HRTIMER_RESTART; 393 ret = HRTIMER_RESTART;
@@ -662,7 +663,7 @@ common_timer_get(struct k_itimer *timr, struct itimerspec *cur_setting)
662 */ 663 */
663 if (iv.tv64 && (timr->it_requeue_pending & REQUEUE_PENDING || 664 if (iv.tv64 && (timr->it_requeue_pending & REQUEUE_PENDING ||
664 (timr->it_sigev_notify & ~SIGEV_THREAD_ID) == SIGEV_NONE)) 665 (timr->it_sigev_notify & ~SIGEV_THREAD_ID) == SIGEV_NONE))
665 timr->it_overrun += hrtimer_forward(timer, now, iv); 666 timr->it_overrun += (unsigned int) hrtimer_forward(timer, now, iv);
666 667
667 remaining = ktime_sub(timer->expires, now); 668 remaining = ktime_sub(timer->expires, now);
668 /* Return 0 only, when the timer is expired and not pending */ 669 /* Return 0 only, when the timer is expired and not pending */
diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c
index beee5b3b68a2..5b9b467de070 100644
--- a/kernel/sys_ni.c
+++ b/kernel/sys_ni.c
@@ -154,7 +154,10 @@ cond_syscall(sys_ioprio_get);
154 154
155/* New file descriptors */ 155/* New file descriptors */
156cond_syscall(sys_signalfd); 156cond_syscall(sys_signalfd);
157cond_syscall(sys_timerfd);
158cond_syscall(compat_sys_signalfd); 157cond_syscall(compat_sys_signalfd);
159cond_syscall(compat_sys_timerfd); 158cond_syscall(sys_timerfd_create);
159cond_syscall(sys_timerfd_settime);
160cond_syscall(sys_timerfd_gettime);
161cond_syscall(compat_sys_timerfd_settime);
162cond_syscall(compat_sys_timerfd_gettime);
160cond_syscall(sys_eventfd); 163cond_syscall(sys_eventfd);