summaryrefslogtreecommitdiffstats
path: root/kernel/irq/manage.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r--kernel/irq/manage.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 30658e9827f0..ad0aac6d1248 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -353,10 +353,11 @@ static int setup_affinity(struct irq_desc *desc, struct cpumask *mask)
353 return 0; 353 return 0;
354 354
355 /* 355 /*
356 * Preserve an userspace affinity setup, but make sure that 356 * Preserve the managed affinity setting and an userspace affinity
357 * one of the targets is online. 357 * setup, but make sure that one of the targets is online.
358 */ 358 */
359 if (irqd_has_set(&desc->irq_data, IRQD_AFFINITY_SET)) { 359 if (irqd_affinity_is_managed(&desc->irq_data) ||
360 irqd_has_set(&desc->irq_data, IRQD_AFFINITY_SET)) {
360 if (cpumask_intersects(desc->irq_common_data.affinity, 361 if (cpumask_intersects(desc->irq_common_data.affinity,
361 cpu_online_mask)) 362 cpu_online_mask))
362 set = desc->irq_common_data.affinity; 363 set = desc->irq_common_data.affinity;