aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2010-10-08 16:31:46 -0400
committerThomas Gleixner <tglx@linutronix.de>2010-10-12 10:53:39 -0400
commitbe5b7bf73802a9391158d9fcc0bc6b07670c73a5 (patch)
tree2160390dd1eb16fcaa22bac2023ad60ece3c420f /arch
parent0e09ddf2d71aeff92ff8055ac7600b85c255ee85 (diff)
x86: Convert ht set_affinity to new chip function
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Ingo Molnar <mingo@elte.hu> Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/apic/io_apic.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 0b9ec3cb311f..b144f7a95970 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -3646,33 +3646,30 @@ static void target_ht_irq(unsigned int irq, unsigned int dest, u8 vector)
3646 write_ht_irq_msg(irq, &msg); 3646 write_ht_irq_msg(irq, &msg);
3647} 3647}
3648 3648
3649static int set_ht_irq_affinity(unsigned int irq, const struct cpumask *mask) 3649static int
3650ht_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force)
3650{ 3651{
3651 struct irq_desc *desc = irq_to_desc(irq); 3652 struct irq_cfg *cfg = data->chip_data;
3652 struct irq_cfg *cfg;
3653 unsigned int dest; 3653 unsigned int dest;
3654 3654
3655 if (__ioapic_set_affinity(&desc->irq_data, mask, &dest)) 3655 if (__ioapic_set_affinity(data, mask, &dest))
3656 return -1; 3656 return -1;
3657 3657
3658 cfg = get_irq_desc_chip_data(desc); 3658 target_ht_irq(data->irq, dest, cfg->vector);
3659
3660 target_ht_irq(irq, dest, cfg->vector);
3661
3662 return 0; 3659 return 0;
3663} 3660}
3664 3661
3665#endif 3662#endif
3666 3663
3667static struct irq_chip ht_irq_chip = { 3664static struct irq_chip ht_irq_chip = {
3668 .name = "PCI-HT", 3665 .name = "PCI-HT",
3669 .irq_mask = mask_ht_irq, 3666 .irq_mask = mask_ht_irq,
3670 .irq_unmask = unmask_ht_irq, 3667 .irq_unmask = unmask_ht_irq,
3671 .irq_ack = ack_apic_edge, 3668 .irq_ack = ack_apic_edge,
3672#ifdef CONFIG_SMP 3669#ifdef CONFIG_SMP
3673 .set_affinity = set_ht_irq_affinity, 3670 .irq_set_affinity = ht_set_affinity,
3674#endif 3671#endif
3675 .irq_retrigger = ioapic_retrigger_irq, 3672 .irq_retrigger = ioapic_retrigger_irq,
3676}; 3673};
3677 3674
3678int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) 3675int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)