diff options
| -rw-r--r-- | kernel/irq/cpuhotplug.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/irq/cpuhotplug.c b/kernel/irq/cpuhotplug.c index 6c8e154c7384..3dc1dbd9c166 100644 --- a/kernel/irq/cpuhotplug.c +++ b/kernel/irq/cpuhotplug.c @@ -40,6 +40,17 @@ static bool migrate_one_irq(struct irq_desc *desc) cpu_isolated_mask); if (cpumask_empty(affinity)) affinity = cpu_online_mask; + /* + * We are overriding the affinity with all online and + * un-isolated cpus. irq_set_affinity_locked() call + * below notify this mask to PM QOS affinity listener. + * That results in applying the CPU_DMA_LATENCY QOS + * to all the CPUs specified in the mask. But the low + * level irqchip driver sets the affinity of an irq + * to only one CPU. So pick only one CPU from the + * prepared mask while overriding the user affinity. + */ + affinity = cpumask_of(cpumask_any(affinity)); ret = true; } |
