Commit 5346b2a7 authored by Thomas Gleixner's avatar Thomas Gleixner

x86: Convert msi affinity setting to new chip functions

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarIngo Molnar <mingo@elte.hu>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
parent f7e909ea
...@@ -3301,26 +3301,24 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, ...@@ -3301,26 +3301,24 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq,
} }
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
static int set_msi_irq_affinity(unsigned int irq, const struct cpumask *mask) static int
msi_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force)
{ {
struct irq_desc *desc = irq_to_desc(irq); struct irq_cfg *cfg = data->chip_data;
struct irq_cfg *cfg;
struct msi_msg msg; struct msi_msg msg;
unsigned int dest; unsigned int dest;
if (__ioapic_set_affinity(&desc->irq_data, mask, &dest)) if (__ioapic_set_affinity(data, mask, &dest))
return -1; return -1;
cfg = get_irq_desc_chip_data(desc); __get_cached_msi_msg(data->msi_desc, &msg);
__get_cached_msi_msg(desc->irq_data.msi_desc, &msg);
msg.data &= ~MSI_DATA_VECTOR_MASK; msg.data &= ~MSI_DATA_VECTOR_MASK;
msg.data |= MSI_DATA_VECTOR(cfg->vector); msg.data |= MSI_DATA_VECTOR(cfg->vector);
msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK; msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK;
msg.address_lo |= MSI_ADDR_DEST_ID(dest); msg.address_lo |= MSI_ADDR_DEST_ID(dest);
__write_msi_msg(desc->irq_data.msi_desc, &msg); __write_msi_msg(data->msi_desc, &msg);
return 0; return 0;
} }
...@@ -3375,7 +3373,7 @@ static struct irq_chip msi_chip = { ...@@ -3375,7 +3373,7 @@ static struct irq_chip msi_chip = {
.irq_mask = mask_msi_irq, .irq_mask = mask_msi_irq,
.irq_ack = ack_apic_edge, .irq_ack = ack_apic_edge,
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
.set_affinity = set_msi_irq_affinity, .irq_set_affinity = msi_set_affinity,
#endif #endif
.irq_retrigger = ioapic_retrigger_irq, .irq_retrigger = ioapic_retrigger_irq,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment