Loading arch/x86/kernel/irq.c +13 −10 Original line number Diff line number Diff line Loading @@ -293,6 +293,7 @@ void fixup_irqs(void) static int warned; struct irq_desc *desc; struct irq_data *data; struct irq_chip *chip; for_each_irq_desc(irq, desc) { int break_affinity = 0; Loading @@ -307,7 +308,7 @@ void fixup_irqs(void) /* interrupt's are disabled at this point */ raw_spin_lock(&desc->lock); data = &desc->irq_data; data = irq_desc_get_irq_data(desc); affinity = data->affinity; if (!irq_has_action(irq) || cpumask_subset(affinity, cpu_online_mask)) { Loading @@ -327,16 +328,17 @@ void fixup_irqs(void) affinity = cpu_all_mask; } if (!(desc->status & IRQ_MOVE_PCNTXT) && data->chip->irq_mask) data->chip->irq_mask(data); chip = irq_data_get_irq_chip(data); if (!irqd_can_move_in_process_context(data) && chip->irq_mask) chip->irq_mask(data); if (data->chip->irq_set_affinity) data->chip->irq_set_affinity(data, affinity, true); if (chip->irq_set_affinity) chip->irq_set_affinity(data, affinity, true); else if (!(warned++)) set_affinity = 0; if (!(desc->status & IRQ_MOVE_PCNTXT) && data->chip->irq_unmask) data->chip->irq_unmask(data); if (!irqd_can_move_in_process_context(data) && chip->irq_unmask) chip->irq_unmask(data); raw_spin_unlock(&desc->lock); Loading Loading @@ -368,10 +370,11 @@ void fixup_irqs(void) irq = __this_cpu_read(vector_irq[vector]); desc = irq_to_desc(irq); data = &desc->irq_data; data = irq_desc_get_irq_data(desc); chip = irq_data_get_irq_chip(data); raw_spin_lock(&desc->lock); if (data->chip->irq_retrigger) data->chip->irq_retrigger(data); if (chip->irq_retrigger) chip->irq_retrigger(data); raw_spin_unlock(&desc->lock); } } Loading Loading
arch/x86/kernel/irq.c +13 −10 Original line number Diff line number Diff line Loading @@ -293,6 +293,7 @@ void fixup_irqs(void) static int warned; struct irq_desc *desc; struct irq_data *data; struct irq_chip *chip; for_each_irq_desc(irq, desc) { int break_affinity = 0; Loading @@ -307,7 +308,7 @@ void fixup_irqs(void) /* interrupt's are disabled at this point */ raw_spin_lock(&desc->lock); data = &desc->irq_data; data = irq_desc_get_irq_data(desc); affinity = data->affinity; if (!irq_has_action(irq) || cpumask_subset(affinity, cpu_online_mask)) { Loading @@ -327,16 +328,17 @@ void fixup_irqs(void) affinity = cpu_all_mask; } if (!(desc->status & IRQ_MOVE_PCNTXT) && data->chip->irq_mask) data->chip->irq_mask(data); chip = irq_data_get_irq_chip(data); if (!irqd_can_move_in_process_context(data) && chip->irq_mask) chip->irq_mask(data); if (data->chip->irq_set_affinity) data->chip->irq_set_affinity(data, affinity, true); if (chip->irq_set_affinity) chip->irq_set_affinity(data, affinity, true); else if (!(warned++)) set_affinity = 0; if (!(desc->status & IRQ_MOVE_PCNTXT) && data->chip->irq_unmask) data->chip->irq_unmask(data); if (!irqd_can_move_in_process_context(data) && chip->irq_unmask) chip->irq_unmask(data); raw_spin_unlock(&desc->lock); Loading Loading @@ -368,10 +370,11 @@ void fixup_irqs(void) irq = __this_cpu_read(vector_irq[vector]); desc = irq_to_desc(irq); data = &desc->irq_data; data = irq_desc_get_irq_data(desc); chip = irq_data_get_irq_chip(data); raw_spin_lock(&desc->lock); if (data->chip->irq_retrigger) data->chip->irq_retrigger(data); if (chip->irq_retrigger) chip->irq_retrigger(data); raw_spin_unlock(&desc->lock); } } Loading