[IA64] vector-domain - handle assign_irq_vector(AUTO_ASSIGN)
This change fixes a panic when assign_irq_vector(irq) is called with irq = AUTO_ASSIGN. Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
committed by
Tony Luck
parent
0de085bb47
commit
8f5ad1a822
@@ -212,9 +212,6 @@ assign_irq_vector (int irq)
|
|||||||
vector = -ENOSPC;
|
vector = -ENOSPC;
|
||||||
|
|
||||||
spin_lock_irqsave(&vector_lock, flags);
|
spin_lock_irqsave(&vector_lock, flags);
|
||||||
if (irq < 0) {
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
for_each_online_cpu(cpu) {
|
for_each_online_cpu(cpu) {
|
||||||
domain = vector_allocation_domain(cpu);
|
domain = vector_allocation_domain(cpu);
|
||||||
vector = find_unassigned_vector(domain);
|
vector = find_unassigned_vector(domain);
|
||||||
@@ -223,6 +220,8 @@ assign_irq_vector (int irq)
|
|||||||
}
|
}
|
||||||
if (vector < 0)
|
if (vector < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
if (irq == AUTO_ASSIGN)
|
||||||
|
irq = vector;
|
||||||
BUG_ON(__bind_irq_vector(irq, vector, domain));
|
BUG_ON(__bind_irq_vector(irq, vector, domain));
|
||||||
out:
|
out:
|
||||||
spin_unlock_irqrestore(&vector_lock, flags);
|
spin_unlock_irqrestore(&vector_lock, flags);
|
||||||
|
Reference in New Issue
Block a user