From: Yasuaki Ishimatsu Date: Tue, 24 Jul 2007 13:09:09 +0000 (+0900) Subject: [IA64] vector-domain - handle assign_irq_vector(AUTO_ASSIGN) X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=8f5ad1a8227aa110d633b5ed04dde535381c16c7;p=deliverable%2Flinux.git [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 Signed-off-by: Tony Luck --- 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) vector = -ENOSPC; spin_lock_irqsave(&vector_lock, flags); - if (irq < 0) { - goto out; - } for_each_online_cpu(cpu) { domain = vector_allocation_domain(cpu); vector = find_unassigned_vector(domain); @@ -223,6 +220,8 @@ assign_irq_vector (int irq) } if (vector < 0) goto out; + if (irq == AUTO_ASSIGN) + irq = vector; BUG_ON(__bind_irq_vector(irq, vector, domain)); out: spin_unlock_irqrestore(&vector_lock, flags);