diff options
Diffstat (limited to 'kernel/futex.c')
| -rw-r--r-- | kernel/futex.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index 4cd5b4319b04..8af10027514b 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
| @@ -1296,10 +1296,14 @@ static int futex_wait(u32 __user *uaddr, struct rw_semaphore *fshared, | |||
| 1296 | if (!abs_time) | 1296 | if (!abs_time) |
| 1297 | schedule(); | 1297 | schedule(); |
| 1298 | else { | 1298 | else { |
| 1299 | unsigned long slack; | ||
| 1300 | slack = current->timer_slack_ns; | ||
| 1301 | if (rt_task(current)) | ||
| 1302 | slack = 0; | ||
| 1299 | hrtimer_init_on_stack(&t.timer, CLOCK_MONOTONIC, | 1303 | hrtimer_init_on_stack(&t.timer, CLOCK_MONOTONIC, |
| 1300 | HRTIMER_MODE_ABS); | 1304 | HRTIMER_MODE_ABS); |
| 1301 | hrtimer_init_sleeper(&t, current); | 1305 | hrtimer_init_sleeper(&t, current); |
| 1302 | hrtimer_set_expires(&t.timer, *abs_time); | 1306 | hrtimer_set_expires_range_ns(&t.timer, *abs_time, slack); |
| 1303 | 1307 | ||
| 1304 | hrtimer_start_expires(&t.timer, HRTIMER_MODE_ABS); | 1308 | hrtimer_start_expires(&t.timer, HRTIMER_MODE_ABS); |
| 1305 | if (!hrtimer_active(&t.timer)) | 1309 | if (!hrtimer_active(&t.timer)) |
