|
@@ -238,11 +238,9 @@ uv_set_irq_affinity(struct irq_data *data, const struct cpumask *mask,
|
|
|
int uv_setup_irq(char *irq_name, int cpu, int mmr_blade,
|
|
|
unsigned long mmr_offset, int limit)
|
|
|
{
|
|
|
- int irq, ret;
|
|
|
+ int ret, irq = irq_alloc_hwirq(uv_blade_to_memory_nid(mmr_blade));
|
|
|
|
|
|
- irq = create_irq_nr(NR_IRQS_LEGACY, uv_blade_to_memory_nid(mmr_blade));
|
|
|
-
|
|
|
- if (irq <= 0)
|
|
|
+ if (!irq)
|
|
|
return -EBUSY;
|
|
|
|
|
|
ret = arch_enable_uv_irq(irq_name, irq, cpu, mmr_blade, mmr_offset,
|
|
@@ -250,7 +248,7 @@ int uv_setup_irq(char *irq_name, int cpu, int mmr_blade,
|
|
|
if (ret == irq)
|
|
|
uv_set_irq_2_mmr_info(irq, mmr_offset, mmr_blade);
|
|
|
else
|
|
|
- destroy_irq(irq);
|
|
|
+ irq_free_hwirq(irq);
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -285,6 +283,6 @@ void uv_teardown_irq(unsigned int irq)
|
|
|
n = n->rb_right;
|
|
|
}
|
|
|
spin_unlock_irqrestore(&uv_irq_lock, irqflags);
|
|
|
- destroy_irq(irq);
|
|
|
+ irq_free_hwirq(irq);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(uv_teardown_irq);
|