diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2015-07-29 18:13:24 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2015-07-29 18:13:24 -0400 |
commit | 4b979e4c611ce750d32b51737f837b485f43c69b (patch) | |
tree | 3bc56f2a22d2cf29bc183b67e74e1e8c0733efc0 /kernel/irq/resend.c | |
parent | 1559f3b8d0527e24219149c95b3de5e7b2924828 (diff) | |
parent | cbfe8fa6cd672011c755c3cd85c9ffd4e2d10a6f (diff) |
Merge branch 'linus' into irq/core
Pull in upstream fixes before applying conflicting changes
Diffstat (limited to 'kernel/irq/resend.c')
-rw-r--r-- | kernel/irq/resend.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c index 32fc47c2c622..dd95f44f99b2 100644 --- a/kernel/irq/resend.c +++ b/kernel/irq/resend.c | |||
@@ -77,13 +77,21 @@ void check_irq_resend(struct irq_desc *desc) | |||
77 | unsigned int irq = irq_desc_get_irq(desc); | 77 | unsigned int irq = irq_desc_get_irq(desc); |
78 | 78 | ||
79 | /* | 79 | /* |
80 | * If the interrupt has a parent irq and runs | 80 | * If the interrupt is running in the thread |
81 | * in the thread context of the parent irq, | 81 | * context of the parent irq we need to be |
82 | * retrigger the parent. | 82 | * careful, because we cannot trigger it |
83 | * directly. | ||
83 | */ | 84 | */ |
84 | if (desc->parent_irq && | 85 | if (irq_settings_is_nested_thread(desc)) { |
85 | irq_settings_is_nested_thread(desc)) | 86 | /* |
87 | * If the parent_irq is valid, we | ||
88 | * retrigger the parent, otherwise we | ||
89 | * do nothing. | ||
90 | */ | ||
91 | if (!desc->parent_irq) | ||
92 | return; | ||
86 | irq = desc->parent_irq; | 93 | irq = desc->parent_irq; |
94 | } | ||
87 | /* Set it pending and activate the softirq: */ | 95 | /* Set it pending and activate the softirq: */ |
88 | set_bit(irq, irqs_resend); | 96 | set_bit(irq, irqs_resend); |
89 | tasklet_schedule(&resend_tasklet); | 97 | tasklet_schedule(&resend_tasklet); |