Ver Fonte

[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>
Yasuaki Ishimatsu há 18 anos atrás
pai
commit
8f5ad1a822
1 ficheiros alterados com 2 adições e 3 exclusões
  1. 2 3
      arch/ia64/kernel/irq_ia64.c

+ 2 - 3
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);