Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 23564
b: refs/heads/master
c: 501f249
h: refs/heads/master
v: v3
  • Loading branch information
Bryan Holty authored and Linus Torvalds committed Mar 25, 2006
1 parent a414601 commit ba6cf8c
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 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: c777ac5594f772ac760e02c3ac71d067616b579d
refs/heads/master: 501f2499b897ca4be68b1acc7a4bc8cf66f5fd24
21 changes: 17 additions & 4 deletions trunk/kernel/irq/migration.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,17 @@ void move_native_irq(int irq)
cpumask_t tmp;
irq_desc_t *desc = irq_descp(irq);

if (likely (!desc->move_irq))
if (likely(!desc->move_irq))
return;

/*
* Paranoia: cpu-local interrupts shouldn't be calling in here anyway.
*/
if (CHECK_IRQ_PER_CPU(desc->status)) {
WARN_ON(1);
return;
}

desc->move_irq = 0;

if (likely(cpus_empty(pending_irq_cpumask[irq])))
Expand All @@ -29,7 +37,8 @@ void move_native_irq(int irq)
if (!desc->handler->set_affinity)
return;

/* note - we hold the desc->lock */
assert_spin_locked(&desc->lock);

cpus_and(tmp, pending_irq_cpumask[irq], cpu_online_map);

/*
Expand All @@ -42,9 +51,13 @@ void move_native_irq(int irq)
* Being paranoid i guess!
*/
if (unlikely(!cpus_empty(tmp))) {
desc->handler->disable(irq);
if (likely(!(desc->status & IRQ_DISABLED)))
desc->handler->disable(irq);

desc->handler->set_affinity(irq,tmp);
desc->handler->enable(irq);

if (likely(!(desc->status & IRQ_DISABLED)))
desc->handler->enable(irq);
}
cpus_clear(pending_irq_cpumask[irq]);
}
Expand Down

0 comments on commit ba6cf8c

Please sign in to comment.