diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-12-31 02:31:57 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-31 02:31:57 -0500 |
commit | a9de18eb761f7c1c860964b2e5addc1a35c7e861 (patch) | |
tree | 886e75fdfd09690cd262ca69cb7f5d1d42b48602 /kernel/irq/migration.c | |
parent | b2aaf8f74cdc84a9182f6cabf198b7763bcb9d40 (diff) | |
parent | 6a94cb73064c952255336cc57731904174b2c58f (diff) |
Merge branch 'linus' into stackprotector
Conflicts:
arch/x86/include/asm/pda.h
kernel/fork.c
Diffstat (limited to 'kernel/irq/migration.c')
-rw-r--r-- | kernel/irq/migration.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c index 77b7acc875c5..9db681d95814 100644 --- a/kernel/irq/migration.c +++ b/kernel/irq/migration.c | |||
@@ -1,20 +1,9 @@ | |||
1 | 1 | ||
2 | #include <linux/irq.h> | 2 | #include <linux/irq.h> |
3 | 3 | ||
4 | void set_pending_irq(unsigned int irq, cpumask_t mask) | ||
5 | { | ||
6 | struct irq_desc *desc = irq_desc + irq; | ||
7 | unsigned long flags; | ||
8 | |||
9 | spin_lock_irqsave(&desc->lock, flags); | ||
10 | desc->status |= IRQ_MOVE_PENDING; | ||
11 | irq_desc[irq].pending_mask = mask; | ||
12 | spin_unlock_irqrestore(&desc->lock, flags); | ||
13 | } | ||
14 | |||
15 | void move_masked_irq(int irq) | 4 | void move_masked_irq(int irq) |
16 | { | 5 | { |
17 | struct irq_desc *desc = irq_desc + irq; | 6 | struct irq_desc *desc = irq_to_desc(irq); |
18 | cpumask_t tmp; | 7 | cpumask_t tmp; |
19 | 8 | ||
20 | if (likely(!(desc->status & IRQ_MOVE_PENDING))) | 9 | if (likely(!(desc->status & IRQ_MOVE_PENDING))) |
@@ -30,7 +19,7 @@ void move_masked_irq(int irq) | |||
30 | 19 | ||
31 | desc->status &= ~IRQ_MOVE_PENDING; | 20 | desc->status &= ~IRQ_MOVE_PENDING; |
32 | 21 | ||
33 | if (unlikely(cpus_empty(irq_desc[irq].pending_mask))) | 22 | if (unlikely(cpus_empty(desc->pending_mask))) |
34 | return; | 23 | return; |
35 | 24 | ||
36 | if (!desc->chip->set_affinity) | 25 | if (!desc->chip->set_affinity) |
@@ -38,7 +27,7 @@ void move_masked_irq(int irq) | |||
38 | 27 | ||
39 | assert_spin_locked(&desc->lock); | 28 | assert_spin_locked(&desc->lock); |
40 | 29 | ||
41 | cpus_and(tmp, irq_desc[irq].pending_mask, cpu_online_map); | 30 | cpus_and(tmp, desc->pending_mask, cpu_online_map); |
42 | 31 | ||
43 | /* | 32 | /* |
44 | * If there was a valid mask to work with, please | 33 | * If there was a valid mask to work with, please |
@@ -55,12 +44,12 @@ void move_masked_irq(int irq) | |||
55 | if (likely(!cpus_empty(tmp))) { | 44 | if (likely(!cpus_empty(tmp))) { |
56 | desc->chip->set_affinity(irq,tmp); | 45 | desc->chip->set_affinity(irq,tmp); |
57 | } | 46 | } |
58 | cpus_clear(irq_desc[irq].pending_mask); | 47 | cpus_clear(desc->pending_mask); |
59 | } | 48 | } |
60 | 49 | ||
61 | void move_native_irq(int irq) | 50 | void move_native_irq(int irq) |
62 | { | 51 | { |
63 | struct irq_desc *desc = irq_desc + irq; | 52 | struct irq_desc *desc = irq_to_desc(irq); |
64 | 53 | ||
65 | if (likely(!(desc->status & IRQ_MOVE_PENDING))) | 54 | if (likely(!(desc->status & IRQ_MOVE_PENDING))) |
66 | return; | 55 | return; |