Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 irq fixes from Ingo Molnar: "Two changes: a cpu-hotplug/irq race fix, plus a HyperV related fix" * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/irq: Fix fixup_irqs() error handling x86, irq, pic: Probe for legacy PIC and set legacy_pic appropriately
This commit is contained in:
@@ -365,6 +365,7 @@ void fixup_irqs(void)
|
||||
struct irq_desc *desc;
|
||||
struct irq_data *data;
|
||||
struct irq_chip *chip;
|
||||
int ret;
|
||||
|
||||
for_each_irq_desc(irq, desc) {
|
||||
int break_affinity = 0;
|
||||
@@ -403,10 +404,14 @@ void fixup_irqs(void)
|
||||
if (!irqd_can_move_in_process_context(data) && chip->irq_mask)
|
||||
chip->irq_mask(data);
|
||||
|
||||
if (chip->irq_set_affinity)
|
||||
chip->irq_set_affinity(data, affinity, true);
|
||||
else if (!(warned++))
|
||||
set_affinity = 0;
|
||||
if (chip->irq_set_affinity) {
|
||||
ret = chip->irq_set_affinity(data, affinity, true);
|
||||
if (ret == -ENOSPC)
|
||||
pr_crit("IRQ %d set affinity failed because there are no available vectors. The device assigned to this IRQ is unstable.\n", irq);
|
||||
} else {
|
||||
if (!(warned++))
|
||||
set_affinity = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* We unmask if the irq was not marked masked by the
|
||||
|
Reference in New Issue
Block a user