diff options
Diffstat (limited to 'kernel/sched_rt.c')
| -rw-r--r-- | kernel/sched_rt.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index 88725c939e0b..10d018212bab 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c @@ -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 */ | 
