Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 54818
b: refs/heads/master
c: d85a60d
h: refs/heads/master
v: v3
  • Loading branch information
Bernhard Walle authored and Linus Torvalds committed May 8, 2007
1 parent e1e1f88 commit b7102b6
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 2 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: 951744fea0aea9adbd7c8cacb3605f2d69a66f96
refs/heads/master: d85a60d85ea5b7c597508c1510c88e657773d378
4 changes: 4 additions & 0 deletions trunk/include/linux/interrupt.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@
* IRQF_TIMER - Flag to mark this interrupt as timer interrupt
* IRQF_PERCPU - Interrupt is per cpu
* IRQF_NOBALANCING - Flag to exclude this interrupt from irq balancing
* IRQF_IRQPOLL - Interrupt is used for polling (only the interrupt that is
* registered first in an shared interrupt is considered for
* performance reasons)
*/
#define IRQF_DISABLED 0x00000020
#define IRQF_SAMPLE_RANDOM 0x00000040
Expand All @@ -52,6 +55,7 @@
#define IRQF_TIMER 0x00000200
#define IRQF_PERCPU 0x00000400
#define IRQF_NOBALANCING 0x00000800
#define IRQF_IRQPOLL 0x00001000

/*
* Migration helpers. Scheduled for removal in 9/2007
Expand Down
2 changes: 2 additions & 0 deletions trunk/kernel/irq/handle.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,8 @@ fastcall unsigned int __do_IRQ(unsigned int irq)
if (desc->chip->ack)
desc->chip->ack(irq);
action_ret = handle_IRQ_event(irq, desc->action);
if (!noirqdebug)
note_interrupt(irq, desc, action_ret);
desc->chip->end(irq);
return 1;
}
Expand Down
4 changes: 3 additions & 1 deletion trunk/kernel/irq/spurious.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,9 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc,

if (unlikely(irqfixup)) {
/* Don't punish working computers */
if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) {
if ((irqfixup == 2 && ((irq == 0) ||
(desc->action->flags & IRQF_IRQPOLL))) ||
action_ret == IRQ_NONE) {
int ok = misrouted_irq(irq);
if (action_ret == IRQ_NONE)
desc->irqs_unhandled -= ok;
Expand Down

0 comments on commit b7102b6

Please sign in to comment.