aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>2007-07-24 22:09:09 +0900
committerTony Luck <tony.luck@intel.com>2007-07-25 11:05:48 -0700
commit8f5ad1a8227aa110d633b5ed04dde535381c16c7 (patch)
treef5f86d26c6225a48fa689a009db98a3cc6f46057 /arch
parentMerge branch 'for_paulus' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc (diff)
downloadlinux-dev-8f5ad1a8227aa110d633b5ed04dde535381c16c7.tar.xz
linux-dev-8f5ad1a8227aa110d633b5ed04dde535381c16c7.zip
[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>
Diffstat (limited to 'arch')
-rw-r--r--arch/ia64/kernel/irq_ia64.c5
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)
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);