Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 234697
b: refs/heads/master
c: 569bda8
h: refs/heads/master
i:
  234695: 251c15b
v: v3
  • Loading branch information
Thomas Gleixner committed Feb 19, 2011
1 parent 9a9b44b commit 6338852
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 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: b008207cbd0d5ce606a1a2ac52826e0ab37d0b99
refs/heads/master: 569bda8df11effa03e618729293c7961696abb10
12 changes: 6 additions & 6 deletions trunk/kernel/irq/manage.c
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,8 @@ EXPORT_SYMBOL_GPL(irq_set_affinity_notifier);
*/
static int setup_affinity(unsigned int irq, struct irq_desc *desc)
{
struct cpumask *set = irq_default_affinity;

/* Excludes PER_CPU and NO_BALANCE interrupts */
if (!irq_can_set_affinity(irq))
return 0;
Expand All @@ -265,15 +267,13 @@ static int setup_affinity(unsigned int irq, struct irq_desc *desc)
* one of the targets is online.
*/
if (desc->status & (IRQ_AFFINITY_SET)) {
if (cpumask_any_and(desc->irq_data.affinity, cpu_online_mask)
< nr_cpu_ids)
goto set_affinity;
if (cpumask_intersects(desc->irq_data.affinity,
cpu_online_mask))
set = desc->irq_data.affinity;
else
desc->status &= ~IRQ_AFFINITY_SET;
}

cpumask_and(desc->irq_data.affinity, cpu_online_mask, irq_default_affinity);
set_affinity:
cpumask_and(desc->irq_data.affinity, cpu_online_mask, set);
desc->irq_data.chip->irq_set_affinity(&desc->irq_data, desc->irq_data.affinity, false);

return 0;
Expand Down

0 comments on commit 6338852

Please sign in to comment.