diff options
Diffstat (limited to 'arch/x86/kernel/irq.c')
| -rw-r--r-- | arch/x86/kernel/irq.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c index 7943e0c21bd..3dafc6003b7 100644 --- a/arch/x86/kernel/irq.c +++ b/arch/x86/kernel/irq.c @@ -282,8 +282,13 @@ void fixup_irqs(void)  		else if (!(warned++))  			set_affinity = 0; +		/* +		 * We unmask if the irq was not marked masked by the +		 * core code. That respects the lazy irq disable +		 * behaviour. +		 */  		if (!irqd_can_move_in_process_context(data) && -		    !irqd_irq_disabled(data) && chip->irq_unmask) +		    !irqd_irq_masked(data) && chip->irq_unmask)  			chip->irq_unmask(data);  		raw_spin_unlock(&desc->lock);  |