aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/io_apic.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-28 09:20:18 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-28 17:20:30 -0500
commitdebccb3e77be52cfc26c5a99e123c114c5c72aeb (patch)
tree27c015b45085b2042737d94a3fbd3c62fe143c37 /arch/x86/kernel/io_apic.c
parent94af18755266edf46803564414d74f9621aaded8 (diff)
x86, apic: refactor ->cpu_mask_to_apicid*()
- spread out the namespace on a per driver basis - clean up the functions - get rid of macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/io_apic.c')
-rw-r--r--arch/x86/kernel/io_apic.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index 3d85d3d810b2..01a2505d7275 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -563,8 +563,9 @@ static int
563assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask); 563assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask);
564 564
565/* 565/*
566 * Either sets desc->affinity to a valid value, and returns cpu_mask_to_apicid 566 * Either sets desc->affinity to a valid value, and returns
567 * of that, or returns BAD_APICID and leaves desc->affinity untouched. 567 * ->cpu_mask_to_apicid of that, or returns BAD_APICID and
568 * leaves desc->affinity untouched.
568 */ 569 */
569static unsigned int 570static unsigned int
570set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask) 571set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask)
@@ -582,7 +583,8 @@ set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask)
582 583
583 cpumask_and(desc->affinity, cfg->domain, mask); 584 cpumask_and(desc->affinity, cfg->domain, mask);
584 set_extra_move_desc(desc, mask); 585 set_extra_move_desc(desc, mask);
585 return cpu_mask_to_apicid_and(desc->affinity, cpu_online_mask); 586
587 return apic->cpu_mask_to_apicid_and(desc->affinity, cpu_online_mask);
586} 588}
587 589
588static void 590static void
@@ -1562,7 +1564,7 @@ static void setup_IO_APIC_irq(int apic_id, int pin, unsigned int irq, struct irq
1562 if (assign_irq_vector(irq, cfg, apic->target_cpus())) 1564 if (assign_irq_vector(irq, cfg, apic->target_cpus()))
1563 return; 1565 return;
1564 1566
1565 dest = cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus()); 1567 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus());
1566 1568
1567 apic_printk(APIC_VERBOSE,KERN_DEBUG 1569 apic_printk(APIC_VERBOSE,KERN_DEBUG
1568 "IOAPIC[%d]: Set routing entry (%d-%d -> 0x%x -> " 1570 "IOAPIC[%d]: Set routing entry (%d-%d -> 0x%x -> "
@@ -1666,7 +1668,7 @@ static void __init setup_timer_IRQ0_pin(unsigned int apic_id, unsigned int pin,
1666 */ 1668 */
1667 entry.dest_mode = apic->irq_dest_mode; 1669 entry.dest_mode = apic->irq_dest_mode;
1668 entry.mask = 1; /* mask IRQ now */ 1670 entry.mask = 1; /* mask IRQ now */
1669 entry.dest = cpu_mask_to_apicid(apic->target_cpus()); 1671 entry.dest = apic->cpu_mask_to_apicid(apic->target_cpus());
1670 entry.delivery_mode = apic->irq_delivery_mode; 1672 entry.delivery_mode = apic->irq_delivery_mode;
1671 entry.polarity = 0; 1673 entry.polarity = 0;
1672 entry.trigger = 0; 1674 entry.trigger = 0;
@@ -2367,7 +2369,7 @@ migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2367 2369
2368 set_extra_move_desc(desc, mask); 2370 set_extra_move_desc(desc, mask);
2369 2371
2370 dest = cpu_mask_to_apicid_and(cfg->domain, mask); 2372 dest = apic->cpu_mask_to_apicid_and(cfg->domain, mask);
2371 2373
2372 modify_ioapic_rte = desc->status & IRQ_LEVEL; 2374 modify_ioapic_rte = desc->status & IRQ_LEVEL;
2373 if (modify_ioapic_rte) { 2375 if (modify_ioapic_rte) {
@@ -3270,7 +3272,7 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3270 if (err) 3272 if (err)
3271 return err; 3273 return err;
3272 3274
3273 dest = cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus()); 3275 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus());
3274 3276
3275#ifdef CONFIG_INTR_REMAP 3277#ifdef CONFIG_INTR_REMAP
3276 if (irq_remapped(irq)) { 3278 if (irq_remapped(irq)) {
@@ -3708,7 +3710,8 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
3708 struct ht_irq_msg msg; 3710 struct ht_irq_msg msg;
3709 unsigned dest; 3711 unsigned dest;
3710 3712
3711 dest = cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus()); 3713 dest = apic->cpu_mask_to_apicid_and(cfg->domain,
3714 apic->target_cpus());
3712 3715
3713 msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest); 3716 msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest);
3714 3717
@@ -3773,7 +3776,7 @@ int arch_enable_uv_irq(char *irq_name, unsigned int irq, int cpu, int mmr_blade,
3773 entry->polarity = 0; 3776 entry->polarity = 0;
3774 entry->trigger = 0; 3777 entry->trigger = 0;
3775 entry->mask = 0; 3778 entry->mask = 0;
3776 entry->dest = cpu_mask_to_apicid(eligible_cpu); 3779 entry->dest = apic->cpu_mask_to_apicid(eligible_cpu);
3777 3780
3778 mmr_pnode = uv_blade_to_pnode(mmr_blade); 3781 mmr_pnode = uv_blade_to_pnode(mmr_blade);
3779 uv_write_global_mmr64(mmr_pnode, mmr_offset, mmr_value); 3782 uv_write_global_mmr64(mmr_pnode, mmr_offset, mmr_value);