diff options
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 637389088b3f..26ba5654d9d5 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
@@ -820,6 +820,8 @@ __irq_do_set_handler(struct irq_desc *desc, irq_flow_handler_t handle, | |||
820 | desc->name = name; | 820 | desc->name = name; |
821 | 821 | ||
822 | if (handle != handle_bad_irq && is_chained) { | 822 | if (handle != handle_bad_irq && is_chained) { |
823 | unsigned int type = irqd_get_trigger_type(&desc->irq_data); | ||
824 | |||
823 | /* | 825 | /* |
824 | * We're about to start this interrupt immediately, | 826 | * We're about to start this interrupt immediately, |
825 | * hence the need to set the trigger configuration. | 827 | * hence the need to set the trigger configuration. |
@@ -828,8 +830,10 @@ __irq_do_set_handler(struct irq_desc *desc, irq_flow_handler_t handle, | |||
828 | * chained interrupt. Reset it immediately because we | 830 | * chained interrupt. Reset it immediately because we |
829 | * do know better. | 831 | * do know better. |
830 | */ | 832 | */ |
831 | __irq_set_trigger(desc, irqd_get_trigger_type(&desc->irq_data)); | 833 | if (type != IRQ_TYPE_NONE) { |
832 | desc->handle_irq = handle; | 834 | __irq_set_trigger(desc, type); |
835 | desc->handle_irq = handle; | ||
836 | } | ||
833 | 837 | ||
834 | irq_settings_set_noprobe(desc); | 838 | irq_settings_set_noprobe(desc); |
835 | irq_settings_set_norequest(desc); | 839 | irq_settings_set_norequest(desc); |