diff options
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 5b570050b9b6..9ec34a2a6638 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -393,6 +393,9 @@ int irq_setup_affinity(struct irq_desc *desc) | |||
393 | } | 393 | } |
394 | 394 | ||
395 | cpumask_and(&mask, cpu_online_mask, set); | 395 | cpumask_and(&mask, cpu_online_mask, set); |
396 | if (cpumask_empty(&mask)) | ||
397 | cpumask_copy(&mask, cpu_online_mask); | ||
398 | |||
396 | if (node != NUMA_NO_NODE) { | 399 | if (node != NUMA_NO_NODE) { |
397 | const struct cpumask *nodemask = cpumask_of_node(node); | 400 | const struct cpumask *nodemask = cpumask_of_node(node); |
398 | 401 | ||
@@ -760,6 +763,7 @@ int __irq_set_trigger(struct irq_desc *desc, unsigned long flags) | |||
760 | case IRQ_SET_MASK_OK_DONE: | 763 | case IRQ_SET_MASK_OK_DONE: |
761 | irqd_clear(&desc->irq_data, IRQD_TRIGGER_MASK); | 764 | irqd_clear(&desc->irq_data, IRQD_TRIGGER_MASK); |
762 | irqd_set(&desc->irq_data, flags); | 765 | irqd_set(&desc->irq_data, flags); |
766 | /* fall through */ | ||
763 | 767 | ||
764 | case IRQ_SET_MASK_OK_NOCOPY: | 768 | case IRQ_SET_MASK_OK_NOCOPY: |
765 | flags = irqd_get_trigger_type(&desc->irq_data); | 769 | flags = irqd_get_trigger_type(&desc->irq_data); |