|
@@ -52,11 +52,9 @@ static enum hrtimer_restart timerfd_tmrproc(struct hrtimer *htmr)
|
|
|
|
|
|
static ktime_t timerfd_get_remaining(struct timerfd_ctx *ctx)
|
|
static ktime_t timerfd_get_remaining(struct timerfd_ctx *ctx)
|
|
{
|
|
{
|
|
- ktime_t now, remaining;
|
|
|
|
-
|
|
|
|
- now = ctx->tmr.base->get_time();
|
|
|
|
- remaining = ktime_sub(ctx->tmr.expires, now);
|
|
|
|
|
|
+ ktime_t remaining;
|
|
|
|
|
|
|
|
+ remaining = hrtimer_expires_remaining(&ctx->tmr);
|
|
return remaining.tv64 < 0 ? ktime_set(0, 0): remaining;
|
|
return remaining.tv64 < 0 ? ktime_set(0, 0): remaining;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -74,7 +72,7 @@ static void timerfd_setup(struct timerfd_ctx *ctx, int flags,
|
|
ctx->ticks = 0;
|
|
ctx->ticks = 0;
|
|
ctx->tintv = timespec_to_ktime(ktmr->it_interval);
|
|
ctx->tintv = timespec_to_ktime(ktmr->it_interval);
|
|
hrtimer_init(&ctx->tmr, ctx->clockid, htmode);
|
|
hrtimer_init(&ctx->tmr, ctx->clockid, htmode);
|
|
- ctx->tmr.expires = texp;
|
|
|
|
|
|
+ hrtimer_set_expires(&ctx->tmr, texp);
|
|
ctx->tmr.function = timerfd_tmrproc;
|
|
ctx->tmr.function = timerfd_tmrproc;
|
|
if (texp.tv64 != 0)
|
|
if (texp.tv64 != 0)
|
|
hrtimer_start(&ctx->tmr, texp, htmode);
|
|
hrtimer_start(&ctx->tmr, texp, htmode);
|