diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-01-28 09:20:18 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-28 17:20:30 -0500 |
commit | debccb3e77be52cfc26c5a99e123c114c5c72aeb (patch) | |
tree | 27c015b45085b2042737d94a3fbd3c62fe143c37 /arch/x86/kernel/io_apic.c | |
parent | 94af18755266edf46803564414d74f9621aaded8 (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.c | 21 |
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 | |||
563 | assign_irq_vector(int irq, struct irq_cfg *cfg, const struct cpumask *mask); | 563 | assign_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 | */ |
569 | static unsigned int | 570 | static unsigned int |
570 | set_desc_affinity(struct irq_desc *desc, const struct cpumask *mask) | 571 | set_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 | ||
588 | static void | 590 | static 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); |