diff options
Diffstat (limited to 'kernel/rtmutex.c')
-rw-r--r-- | kernel/rtmutex.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/rtmutex.c b/kernel/rtmutex.c index 0deef71ff8d2..6522ae5b14a2 100644 --- a/kernel/rtmutex.c +++ b/kernel/rtmutex.c | |||
@@ -630,9 +630,12 @@ rt_mutex_slowlock(struct rt_mutex *lock, int state, | |||
630 | set_current_state(state); | 630 | set_current_state(state); |
631 | 631 | ||
632 | /* Setup the timer, when timeout != NULL */ | 632 | /* Setup the timer, when timeout != NULL */ |
633 | if (unlikely(timeout)) | 633 | if (unlikely(timeout)) { |
634 | hrtimer_start(&timeout->timer, timeout->timer.expires, | 634 | hrtimer_start(&timeout->timer, timeout->timer.expires, |
635 | HRTIMER_MODE_ABS); | 635 | HRTIMER_MODE_ABS); |
636 | if (!hrtimer_active(&timeout->timer)) | ||
637 | timeout->task = NULL; | ||
638 | } | ||
636 | 639 | ||
637 | for (;;) { | 640 | for (;;) { |
638 | /* Try to acquire the lock: */ | 641 | /* Try to acquire the lock: */ |