diff options
author | Alexander Kuleshov <kuleshovmail@gmail.com> | 2016-07-19 05:54:08 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-09-06 06:14:12 -0400 |
commit | 00b992deaa08495ab958da5950c9ebbba27d0ddc (patch) | |
tree | 656ac41e2df2a59485dcdeb89b24445c4d6189c4 | |
parent | 545d5d657b720e9c4dc773265bb7e9d88e34b269 (diff) |
genirq: No need to mask non trigger mode flags before __irq_set_trigger()
Some callers of __irq_set_trigger() masks all flags except trigger mode
flags. This is unnecessary, ase __irq_set_trigger() already does this
before usage of flags.
[ tglx: Moved the flag mask and adjusted comment. Removed the hunk in
enable_percpu_irq() as it is required there ]
Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
Link: http://lkml.kernel.org/r/20160719095408.13778-1-kuleshovmail@gmail.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | kernel/irq/chip.c | 1 | ||||
-rw-r--r-- | kernel/irq/manage.c | 5 |
2 files changed, 2 insertions, 4 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 93c373a8b12b..e11e8afcf209 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
@@ -76,7 +76,6 @@ int irq_set_irq_type(unsigned int irq, unsigned int type) | |||
76 | if (!desc) | 76 | if (!desc) |
77 | return -EINVAL; | 77 | return -EINVAL; |
78 | 78 | ||
79 | type &= IRQ_TYPE_SENSE_MASK; | ||
80 | ret = __irq_set_trigger(desc, type); | 79 | ret = __irq_set_trigger(desc, type); |
81 | irq_put_desc_busunlock(desc, flags); | 80 | irq_put_desc_busunlock(desc, flags); |
82 | return ret; | 81 | return ret; |
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 73a2b786b5e9..4908617dee28 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -669,8 +669,6 @@ int __irq_set_trigger(struct irq_desc *desc, unsigned long flags) | |||
669 | return 0; | 669 | return 0; |
670 | } | 670 | } |
671 | 671 | ||
672 | flags &= IRQ_TYPE_SENSE_MASK; | ||
673 | |||
674 | if (chip->flags & IRQCHIP_SET_TYPE_MASKED) { | 672 | if (chip->flags & IRQCHIP_SET_TYPE_MASKED) { |
675 | if (!irqd_irq_masked(&desc->irq_data)) | 673 | if (!irqd_irq_masked(&desc->irq_data)) |
676 | mask_irq(desc); | 674 | mask_irq(desc); |
@@ -678,7 +676,8 @@ int __irq_set_trigger(struct irq_desc *desc, unsigned long flags) | |||
678 | unmask = 1; | 676 | unmask = 1; |
679 | } | 677 | } |
680 | 678 | ||
681 | /* caller masked out all except trigger mode flags */ | 679 | /* Mask all flags except trigger mode */ |
680 | flags &= IRQ_TYPE_SENSE_MASK; | ||
682 | ret = chip->irq_set_type(&desc->irq_data, flags); | 681 | ret = chip->irq_set_type(&desc->irq_data, flags); |
683 | 682 | ||
684 | switch (ret) { | 683 | switch (ret) { |