Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drivers/irqchip: xtensa: add warning to irq_retrigger

XEA2 and MX PIC can only retrigger software interrupts. Issue a warning
if an interrupt of any other type is retriggered.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>

+10 -2
+5 -1
drivers/irqchip/irq-xtensa-mx.c
··· 113 113 114 114 static int xtensa_mx_irq_retrigger(struct irq_data *d) 115 115 { 116 - xtensa_set_sr(1 << d->hwirq, intset); 116 + unsigned int mask = 1u << d->hwirq; 117 + 118 + if (WARN_ON(mask & ~XCHAL_INTTYPE_MASK_SOFTWARE)) 119 + return 0; 120 + xtensa_set_sr(mask, intset); 117 121 return 1; 118 122 } 119 123
+5 -1
drivers/irqchip/irq-xtensa-pic.c
··· 70 70 71 71 static int xtensa_irq_retrigger(struct irq_data *d) 72 72 { 73 - xtensa_set_sr(1 << d->hwirq, intset); 73 + unsigned int mask = 1u << d->hwirq; 74 + 75 + if (WARN_ON(mask & ~XCHAL_INTTYPE_MASK_SOFTWARE)) 76 + return 0; 77 + xtensa_set_sr(mask, intset); 74 78 return 1; 75 79 } 76 80