diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-09-20 23:20:32 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-09-20 23:20:32 +0200 |
commit | 464b5847e61085f81bb99ce48eb427a0dc7617dc (patch) | |
tree | 805c97855a9a13c06910687bbbbe3eb7bc371902 /kernel/irq/chip.c | |
parent | Merge branch 'irq/for-block' into irq/core (diff) | |
parent | irqchip/mips-gic: Fix local interrupts (diff) | |
download | linux-464b5847e61085f81bb99ce48eb427a0dc7617dc.tar.xz linux-464b5847e61085f81bb99ce48eb427a0dc7617dc.zip |
Merge branch 'irq/urgent' into irq/core
Merge urgent fixes so pending patches for 4.9 can be applied.
Diffstat (limited to 'kernel/irq/chip.c')
-rw-r--r-- | kernel/irq/chip.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 18f29586f230..d8dfdc630b7e 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -829,6 +829,8 @@ __irq_do_set_handler(struct irq_desc *desc, irq_flow_handler_t handle, desc->name = name; if (handle != handle_bad_irq && is_chained) { + unsigned int type = irqd_get_trigger_type(&desc->irq_data); + /* * We're about to start this interrupt immediately, * hence the need to set the trigger configuration. @@ -837,8 +839,10 @@ __irq_do_set_handler(struct irq_desc *desc, irq_flow_handler_t handle, * chained interrupt. Reset it immediately because we * do know better. */ - __irq_set_trigger(desc, irqd_get_trigger_type(&desc->irq_data)); - desc->handle_irq = handle; + if (type != IRQ_TYPE_NONE) { + __irq_set_trigger(desc, type); + desc->handle_irq = handle; + } irq_settings_set_noprobe(desc); irq_settings_set_norequest(desc); |