diff options
Diffstat (limited to 'arch/x86/kernel/irq.c')
| -rw-r--r-- | arch/x86/kernel/irq.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c index 1cb0b9fc78d..6c0802eb2f7 100644 --- a/arch/x86/kernel/irq.c +++ b/arch/x86/kernel/irq.c @@ -249,7 +249,7 @@ void fixup_irqs(void)  		data = irq_desc_get_irq_data(desc);  		affinity = data->affinity; -		if (!irq_has_action(irq) || +		if (!irq_has_action(irq) || irqd_is_per_cpu(data) ||  		    cpumask_subset(affinity, cpu_online_mask)) {  			raw_spin_unlock(&desc->lock);  			continue; @@ -276,7 +276,8 @@ void fixup_irqs(void)  		else if (!(warned++))  			set_affinity = 0; -		if (!irqd_can_move_in_process_context(data) && chip->irq_unmask) +		if (!irqd_can_move_in_process_context(data) && +		    !irqd_irq_disabled(data) && chip->irq_unmask)  			chip->irq_unmask(data);  		raw_spin_unlock(&desc->lock);  |