diff options
Diffstat (limited to 'kernel/irq/resend.c')
| -rw-r--r-- | kernel/irq/resend.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c index 14dd5761e8c9..6454db7b6a4d 100644 --- a/kernel/irq/resend.c +++ b/kernel/irq/resend.c | |||
| @@ -58,10 +58,13 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq) | |||
| 58 | /* | 58 | /* |
| 59 | * We do not resend level type interrupts. Level type | 59 | * We do not resend level type interrupts. Level type |
| 60 | * interrupts are resent by hardware when they are still | 60 | * interrupts are resent by hardware when they are still |
| 61 | * active. | 61 | * active. Clear the pending bit so suspend/resume does not |
| 62 | * get confused. | ||
| 62 | */ | 63 | */ |
| 63 | if (irq_settings_is_level(desc)) | 64 | if (irq_settings_is_level(desc)) { |
| 65 | desc->istate &= ~IRQS_PENDING; | ||
| 64 | return; | 66 | return; |
| 67 | } | ||
| 65 | if (desc->istate & IRQS_REPLAY) | 68 | if (desc->istate & IRQS_REPLAY) |
| 66 | return; | 69 | return; |
| 67 | if (desc->istate & IRQS_PENDING) { | 70 | if (desc->istate & IRQS_PENDING) { |
