Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 119423
b: refs/heads/master
c: 6c2e940
h: refs/heads/master
i:
  119421: 08aea01
  119419: 4cf20a7
  119415: 973c84a
  119407: ec55759
  119391: f9a319e
  119359: e5a961e
  119295: 94b6e5a
v: v3
  • Loading branch information
Thomas Gleixner authored and Ingo Molnar committed Nov 9, 2008
1 parent 3023df3 commit 66b6d25
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 612e3684c1b7752d2890510e4f90115fd1eb2afb
refs/heads/master: 6c2e94033df5ca11149e52dd179b8dde3172e9bf
26 changes: 21 additions & 5 deletions trunk/arch/x86/kernel/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -3761,7 +3761,9 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
void __init setup_ioapic_dest(void)
{
int pin, ioapic, irq, irq_entry;
struct irq_desc *desc;
struct irq_cfg *cfg;
cpumask_t mask;

if (skip_ioapic_setup == 1)
return;
Expand All @@ -3778,16 +3780,30 @@ void __init setup_ioapic_dest(void)
* cpu is online.
*/
cfg = irq_cfg(irq);
if (!cfg->vector)
if (!cfg->vector) {
setup_IO_APIC_irq(ioapic, pin, irq,
irq_trigger(irq_entry),
irq_polarity(irq_entry));
continue;

}

/*
* Honour affinities which have been set in early boot
*/
desc = irq_to_desc(irq);
if (desc->status &
(IRQ_NO_BALANCING | IRQ_AFFINITY_SET))
mask = desc->affinity;
else
mask = TARGET_CPUS;

#ifdef CONFIG_INTR_REMAP
else if (intr_remapping_enabled)
set_ir_ioapic_affinity_irq(irq, TARGET_CPUS);
#endif
if (intr_remapping_enabled)
set_ir_ioapic_affinity_irq(irq, mask);
else
set_ioapic_affinity_irq(irq, TARGET_CPUS);
#endif
set_ioapic_affinity_irq(irq, mask);
}

}
Expand Down

0 comments on commit 66b6d25

Please sign in to comment.