diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2010-10-08 16:31:46 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-10-12 10:53:39 -0400 |
commit | be5b7bf73802a9391158d9fcc0bc6b07670c73a5 (patch) | |
tree | 2160390dd1eb16fcaa22bac2023ad60ece3c420f /arch | |
parent | 0e09ddf2d71aeff92ff8055ac7600b85c255ee85 (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.c | 25 |
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 | ||
3649 | static int set_ht_irq_affinity(unsigned int irq, const struct cpumask *mask) | 3649 | static int |
3650 | ht_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 | ||
3667 | static struct irq_chip ht_irq_chip = { | 3664 | static 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 | ||
3678 | int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) | 3675 | int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) |