Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 234719
b: refs/heads/master
c: 0877d66
h: refs/heads/master
i:
  234717: 1479d88
  234715: 1fc20c5
  234711: d8f5037
  234703: 5e6c294
  234687: 6c9ff4c
v: v3
  • Loading branch information
Thomas Gleixner committed Feb 19, 2011
1 parent 7bdd2cc commit a051864
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 13 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: 849f061c25f8951d11c7dd88f44950ccde296392
refs/heads/master: 0877d66257082ce86fca8f9826b91870575b272c
21 changes: 9 additions & 12 deletions trunk/kernel/irq/spurious.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,14 @@ bool irq_wait_for_poll(struct irq_desc *desc)
#endif
}


/*
* Recovery handler for misrouted interrupts.
*/
static int try_one_irq(int irq, struct irq_desc *desc, bool force)
{
irqreturn_t ret = IRQ_NONE;
struct irqaction *action;
int ok = 0;

raw_spin_lock(&desc->lock);

Expand Down Expand Up @@ -96,21 +97,17 @@ static int try_one_irq(int irq, struct irq_desc *desc, bool force)
goto out;
}

/* Honour the normal IRQ locking and mark it poll in progress */
desc->status |= IRQ_INPROGRESS | IRQ_POLL_INPROGRESS;
/* Mark it poll in progress */
desc->status |= IRQ_POLL_INPROGRESS;
do {
desc->status &= ~IRQ_PENDING;
raw_spin_unlock(&desc->lock);
if (handle_IRQ_event(irq, action) != IRQ_NONE)
ok = 1;
raw_spin_lock(&desc->lock);
if (handle_irq_event(desc) == IRQ_HANDLED)
ret = IRQ_HANDLED;
action = desc->action;
} while ((desc->status & IRQ_PENDING) && action);

desc->status &= ~(IRQ_INPROGRESS | IRQ_POLL_INPROGRESS);
} while ((desc->status & IRQ_PENDING) && action);
desc->status &= ~IRQ_POLL_INPROGRESS;
out:
raw_spin_unlock(&desc->lock);
return ok;
return ret == IRQ_HANDLED;
}

static int misrouted_irq(int irq)
Expand Down

0 comments on commit a051864

Please sign in to comment.