|
@@ -1096,7 +1096,7 @@ static void check_preempt_curr_rt(struct rq *rq, struct task_struct *p, int flag
|
|
|
* to move current somewhere else, making room for our non-migratable
|
|
|
* task.
|
|
|
*/
|
|
|
- if (p->prio == rq->curr->prio && !need_resched())
|
|
|
+ if (p->prio == rq->curr->prio && !test_tsk_need_resched(rq->curr))
|
|
|
check_preempt_equal_prio(rq, p);
|
|
|
#endif
|
|
|
}
|
|
@@ -1239,6 +1239,10 @@ static int find_lowest_rq(struct task_struct *task)
|
|
|
int this_cpu = smp_processor_id();
|
|
|
int cpu = task_cpu(task);
|
|
|
|
|
|
+ /* Make sure the mask is initialized first */
|
|
|
+ if (unlikely(!lowest_mask))
|
|
|
+ return -1;
|
|
|
+
|
|
|
if (task->rt.nr_cpus_allowed == 1)
|
|
|
return -1; /* No other targets possible */
|
|
|
|