diff options
Diffstat (limited to 'kernel/irq/affinity.c')
| -rw-r--r-- | kernel/irq/affinity.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c index f7ff8919dc9b..fdf170404650 100644 --- a/kernel/irq/affinity.c +++ b/kernel/irq/affinity.c @@ -269,8 +269,9 @@ static int __irq_build_affinity_masks(unsigned int startvec,  	 */  	if (numvecs <= nodes) {  		for_each_node_mask(n, nodemsk) { -			cpumask_or(&masks[curvec].mask, &masks[curvec].mask, -				   node_to_cpumask[n]); +			/* Ensure that only CPUs which are in both masks are set */ +			cpumask_and(nmsk, cpu_mask, node_to_cpumask[n]); +			cpumask_or(&masks[curvec].mask, &masks[curvec].mask, nmsk);  			if (++curvec == last_affv)  				curvec = firstvec;  		}  | 
