Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 43046
b: refs/heads/master
c: 5df0287
h: refs/heads/master
v: v3
  • Loading branch information
Yinghai Lu authored and Andi Kleen committed Dec 7, 2006
1 parent af3b55b commit 478f811
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3760dd6efa75c98e223643da2eb7040406433053
refs/heads/master: 5df0287ecc4f53e68bbd188fa8258b555e6b734f
18 changes: 17 additions & 1 deletion trunk/arch/x86_64/kernel/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,22 @@ static int assign_irq_vector(int irq, cpumask_t mask, cpumask_t *result)
return vector;
}

static void __clear_irq_vector(int irq)
{
cpumask_t mask;
int cpu, vector;

BUG_ON(!irq_vector[irq]);

vector = irq_vector[irq];
cpus_and(mask, irq_domain[irq], cpu_online_map);
for_each_cpu_mask(cpu, mask)
per_cpu(vector_irq, cpu)[vector] = -1;

irq_vector[irq] = 0;
irq_domain[irq] = CPU_MASK_NONE;
}

void __setup_vector_irq(int cpu)
{
/* Initialize vector_irq on a new cpu */
Expand Down Expand Up @@ -1837,7 +1853,7 @@ void destroy_irq(unsigned int irq)
dynamic_irq_cleanup(irq);

spin_lock_irqsave(&vector_lock, flags);
irq_vector[irq] = 0;
__clear_irq_vector(irq);
spin_unlock_irqrestore(&vector_lock, flags);
}

Expand Down

0 comments on commit 478f811

Please sign in to comment.