|
@@ -2224,7 +2224,10 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
|
|
* yield - it could be a while.
|
|
* yield - it could be a while.
|
|
*/
|
|
*/
|
|
if (unlikely(on_rq)) {
|
|
if (unlikely(on_rq)) {
|
|
- schedule_timeout_uninterruptible(1);
|
|
|
|
|
|
+ ktime_t to = ktime_set(0, NSEC_PER_SEC/HZ);
|
|
|
|
+
|
|
|
|
+ set_current_state(TASK_UNINTERRUPTIBLE);
|
|
|
|
+ schedule_hrtimeout(&to, HRTIMER_MODE_REL);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|