diff options
| -rw-r--r-- | arch/ia64/kernel/irq_ia64.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 91797c111162..158eafb5f1aa 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
| @@ -212,9 +212,6 @@ assign_irq_vector (int irq) | |||
| 212 | vector = -ENOSPC; | 212 | vector = -ENOSPC; |
| 213 | 213 | ||
| 214 | spin_lock_irqsave(&vector_lock, flags); | 214 | spin_lock_irqsave(&vector_lock, flags); |
| 215 | if (irq < 0) { | ||
| 216 | goto out; | ||
| 217 | } | ||
| 218 | for_each_online_cpu(cpu) { | 215 | for_each_online_cpu(cpu) { |
| 219 | domain = vector_allocation_domain(cpu); | 216 | domain = vector_allocation_domain(cpu); |
| 220 | vector = find_unassigned_vector(domain); | 217 | vector = find_unassigned_vector(domain); |
| @@ -223,6 +220,8 @@ assign_irq_vector (int irq) | |||
| 223 | } | 220 | } |
| 224 | if (vector < 0) | 221 | if (vector < 0) |
| 225 | goto out; | 222 | goto out; |
| 223 | if (irq == AUTO_ASSIGN) | ||
| 224 | irq = vector; | ||
| 226 | BUG_ON(__bind_irq_vector(irq, vector, domain)); | 225 | BUG_ON(__bind_irq_vector(irq, vector, domain)); |
| 227 | out: | 226 | out: |
| 228 | spin_unlock_irqrestore(&vector_lock, flags); | 227 | spin_unlock_irqrestore(&vector_lock, flags); |
