From b0adb6199f442353507f9fcd135e715390967e4f Mon Sep 17 00:00:00 2001 From: Arjan van de Ven Date: Mon, 8 Sep 2008 09:03:57 -0700 Subject: [PATCH] --- yaml --- r: 117618 b: refs/heads/master c: ae4b748e81b7e366f04f55229d5e372e372c33af h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/futex.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 565cc0a2a318..dfe539b67bb6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3bd012060f962567aadb52b27b2fc8fdc91102c7 +refs/heads/master: ae4b748e81b7e366f04f55229d5e372e372c33af diff --git a/trunk/kernel/futex.c b/trunk/kernel/futex.c index 4cd5b4319b04..8af10027514b 100644 --- a/trunk/kernel/futex.c +++ b/trunk/kernel/futex.c @@ -1296,10 +1296,14 @@ static int futex_wait(u32 __user *uaddr, struct rw_semaphore *fshared, if (!abs_time) schedule(); else { + unsigned long slack; + slack = current->timer_slack_ns; + if (rt_task(current)) + slack = 0; hrtimer_init_on_stack(&t.timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); hrtimer_init_sleeper(&t, current); - hrtimer_set_expires(&t.timer, *abs_time); + hrtimer_set_expires_range_ns(&t.timer, *abs_time, slack); hrtimer_start_expires(&t.timer, HRTIMER_MODE_ABS); if (!hrtimer_active(&t.timer))