git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
arch
/
sh
/
kernel
/
irq.c
diff --git
a/arch/sh/kernel/irq.c
b/arch/sh/kernel/irq.c
index
d78503d
..
73ec336
100644
(file)
--- a/
arch/sh/kernel/irq.c
+++ b/
arch/sh/kernel/irq.c
@@
-137,14
+137,16
@@
unlock:
int handle_IRQ_event(unsigned int irq, struct pt_regs * regs, struct irqaction * action)
{
int status = 1; /* Force the "do bottom halves" bit */
int handle_IRQ_event(unsigned int irq, struct pt_regs * regs, struct irqaction * action)
{
int status = 1; /* Force the "do bottom halves" bit */
- int retval = 0;
+ int ret
, ret
val = 0;
if (!(action->flags & SA_INTERRUPT))
local_irq_enable();
do {
if (!(action->flags & SA_INTERRUPT))
local_irq_enable();
do {
- status |= action->flags;
- retval |= action->handler(irq, action->dev_id, regs);
+ ret = action->handler(irq, action->dev_id, regs);
+ if (ret == IRQ_HANDLED)
+ status |= action->flags;
+ retval |= ret;
action = action->next;
} while (action);
action = action->next;
} while (action);