diff options
Diffstat (limited to 'kernel/irq/spurious.c')
-rw-r--r-- | kernel/irq/spurious.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c index ec5a4bef3054..dd364c11e56e 100644 --- a/kernel/irq/spurious.c +++ b/kernel/irq/spurious.c | |||
@@ -26,8 +26,7 @@ static DEFINE_TIMER(poll_spurious_irq_timer, poll_spurious_irqs, 0, 0); | |||
26 | static int try_one_irq(int irq, struct irq_desc *desc) | 26 | static int try_one_irq(int irq, struct irq_desc *desc) |
27 | { | 27 | { |
28 | struct irqaction *action; | 28 | struct irqaction *action; |
29 | int ok = 0; | 29 | int ok = 0, work = 0; |
30 | int work = 0; /* Did we do work for a real IRQ */ | ||
31 | 30 | ||
32 | spin_lock(&desc->lock); | 31 | spin_lock(&desc->lock); |
33 | /* Already running on another processor */ | 32 | /* Already running on another processor */ |
@@ -88,9 +87,8 @@ static int try_one_irq(int irq, struct irq_desc *desc) | |||
88 | 87 | ||
89 | static int misrouted_irq(int irq) | 88 | static int misrouted_irq(int irq) |
90 | { | 89 | { |
91 | int i; | ||
92 | int ok = 0; | ||
93 | struct irq_desc *desc; | 90 | struct irq_desc *desc; |
91 | int i, ok = 0; | ||
94 | 92 | ||
95 | for_each_irq_desc(i, desc) { | 93 | for_each_irq_desc(i, desc) { |
96 | if (!i) | 94 | if (!i) |
@@ -108,8 +106,8 @@ static int misrouted_irq(int irq) | |||
108 | 106 | ||
109 | static void poll_spurious_irqs(unsigned long dummy) | 107 | static void poll_spurious_irqs(unsigned long dummy) |
110 | { | 108 | { |
111 | int i; | ||
112 | struct irq_desc *desc; | 109 | struct irq_desc *desc; |
110 | int i; | ||
113 | 111 | ||
114 | for_each_irq_desc(i, desc) { | 112 | for_each_irq_desc(i, desc) { |
115 | unsigned int status; | 113 | unsigned int status; |
@@ -126,7 +124,8 @@ static void poll_spurious_irqs(unsigned long dummy) | |||
126 | try_one_irq(i, desc); | 124 | try_one_irq(i, desc); |
127 | } | 125 | } |
128 | 126 | ||
129 | mod_timer(&poll_spurious_irq_timer, jiffies + POLL_SPURIOUS_IRQ_INTERVAL); | 127 | mod_timer(&poll_spurious_irq_timer, |
128 | jiffies + POLL_SPURIOUS_IRQ_INTERVAL); | ||
130 | } | 129 | } |
131 | 130 | ||
132 | /* | 131 | /* |
@@ -177,7 +176,9 @@ report_bad_irq(unsigned int irq, struct irq_desc *desc, irqreturn_t action_ret) | |||
177 | } | 176 | } |
178 | } | 177 | } |
179 | 178 | ||
180 | static inline int try_misrouted_irq(unsigned int irq, struct irq_desc *desc, irqreturn_t action_ret) | 179 | static inline int |
180 | try_misrouted_irq(unsigned int irq, struct irq_desc *desc, | ||
181 | irqreturn_t action_ret) | ||
181 | { | 182 | { |
182 | struct irqaction *action; | 183 | struct irqaction *action; |
183 | 184 | ||
@@ -253,7 +254,8 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc, | |||
253 | desc->depth++; | 254 | desc->depth++; |
254 | desc->chip->disable(irq); | 255 | desc->chip->disable(irq); |
255 | 256 | ||
256 | mod_timer(&poll_spurious_irq_timer, jiffies + POLL_SPURIOUS_IRQ_INTERVAL); | 257 | mod_timer(&poll_spurious_irq_timer, |
258 | jiffies + POLL_SPURIOUS_IRQ_INTERVAL); | ||
257 | } | 259 | } |
258 | desc->irqs_unhandled = 0; | 260 | desc->irqs_unhandled = 0; |
259 | } | 261 | } |