diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c
index a286e726eb4b857d12f2a03b2cadfa07d0df9e52..42c40cfdf83630be349949e5498bd16522405461 100644
--- a/kernel/sched/cpupri.c
+++ b/kernel/sched/cpupri.c
@@ -101,6 +101,7 @@ static inline int __cpupri_find(struct cpupri *cp, struct task_struct *p,
 
 	if (lowest_mask) {
 		cpumask_and(lowest_mask, &p->cpus_mask, vec->mask);
+		cpumask_and(lowest_mask, lowest_mask, cpu_active_mask);
 
 		/*
 		 * We have to ensure that we have at least one bit