aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq/migration.c
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2011-04-26 04:22:15 -0400
committerJiri Kosina <jkosina@suse.cz>2011-04-26 04:22:59 -0400
commit07f9479a40cc778bc1462ada11f95b01360ae4ff (patch)
tree0676cf38df3844004bb3ebfd99dfa67a4a8998f5 /kernel/irq/migration.c
parent9d5e6bdb3013acfb311ab407eeca0b6a6a3dedbf (diff)
parentcd2e49e90f1cae7726c9a2c54488d881d7f1cd1c (diff)
Merge branch 'master' into for-next
Fast-forwarded to current state of Linus' tree as there are patches to be applied for files that didn't exist on the old branch.
Diffstat (limited to 'kernel/irq/migration.c')
-rw-r--r--kernel/irq/migration.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c
index ec4806d4778b..47420908fba0 100644
--- a/kernel/irq/migration.c
+++ b/kernel/irq/migration.c
@@ -35,7 +35,7 @@ void irq_move_masked_irq(struct irq_data *idata)
35 * do the disable, re-program, enable sequence. 35 * do the disable, re-program, enable sequence.
36 * This is *not* particularly important for level triggered 36 * This is *not* particularly important for level triggered
37 * but in a edge trigger case, we might be setting rte 37 * but in a edge trigger case, we might be setting rte
38 * when an active trigger is comming in. This could 38 * when an active trigger is coming in. This could
39 * cause some ioapics to mal-function. 39 * cause some ioapics to mal-function.
40 * Being paranoid i guess! 40 * Being paranoid i guess!
41 * 41 *
@@ -53,20 +53,14 @@ void irq_move_masked_irq(struct irq_data *idata)
53 cpumask_clear(desc->pending_mask); 53 cpumask_clear(desc->pending_mask);
54} 54}
55 55
56void move_masked_irq(int irq)
57{
58 irq_move_masked_irq(irq_get_irq_data(irq));
59}
60
61void irq_move_irq(struct irq_data *idata) 56void irq_move_irq(struct irq_data *idata)
62{ 57{
63 struct irq_desc *desc = irq_data_to_desc(idata);
64 bool masked; 58 bool masked;
65 59
66 if (likely(!irqd_is_setaffinity_pending(idata))) 60 if (likely(!irqd_is_setaffinity_pending(idata)))
67 return; 61 return;
68 62
69 if (unlikely(desc->istate & IRQS_DISABLED)) 63 if (unlikely(irqd_irq_disabled(idata)))
70 return; 64 return;
71 65
72 /* 66 /*
@@ -74,15 +68,10 @@ void irq_move_irq(struct irq_data *idata)
74 * threaded interrupt with ONESHOT set, we can end up with an 68 * threaded interrupt with ONESHOT set, we can end up with an
75 * interrupt storm. 69 * interrupt storm.
76 */ 70 */
77 masked = desc->istate & IRQS_MASKED; 71 masked = irqd_irq_masked(idata);
78 if (!masked) 72 if (!masked)
79 idata->chip->irq_mask(idata); 73 idata->chip->irq_mask(idata);
80 irq_move_masked_irq(idata); 74 irq_move_masked_irq(idata);
81 if (!masked) 75 if (!masked)
82 idata->chip->irq_unmask(idata); 76 idata->chip->irq_unmask(idata);
83} 77}
84
85void move_native_irq(int irq)
86{
87 irq_move_irq(irq_get_irq_data(irq));
88}