OSDN Git Service

drivers/irqchip: xtensa: add warning to irq_retrigger
authorMax Filippov <jcmvbkbc@gmail.com>
Fri, 25 Jan 2019 00:51:28 +0000 (16:51 -0800)
committerMax Filippov <jcmvbkbc@gmail.com>
Sat, 26 Jan 2019 10:02:14 +0000 (02:02 -0800)
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>
drivers/irqchip/irq-xtensa-mx.c
drivers/irqchip/irq-xtensa-pic.c

index 5385f57..0bd3fe3 100644 (file)
@@ -113,7 +113,11 @@ static void xtensa_mx_irq_ack(struct irq_data *d)
 
 static int xtensa_mx_irq_retrigger(struct irq_data *d)
 {
-       xtensa_set_sr(1 << d->hwirq, intset);
+       unsigned int mask = 1u << d->hwirq;
+
+       if (WARN_ON(mask & ~XCHAL_INTTYPE_MASK_SOFTWARE))
+               return 0;
+       xtensa_set_sr(mask, intset);
        return 1;
 }
 
index c200234..ab12328 100644 (file)
@@ -70,7 +70,11 @@ static void xtensa_irq_ack(struct irq_data *d)
 
 static int xtensa_irq_retrigger(struct irq_data *d)
 {
-       xtensa_set_sr(1 << d->hwirq, intset);
+       unsigned int mask = 1u << d->hwirq;
+
+       if (WARN_ON(mask & ~XCHAL_INTTYPE_MASK_SOFTWARE))
+               return 0;
+       xtensa_set_sr(mask, intset);
        return 1;
 }