summaryrefslogtreecommitdiff
path: root/drivers/irqchip/irq-xtensa-pic.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/irqchip/irq-xtensa-pic.c')
-rw-r--r--drivers/irqchip/irq-xtensa-pic.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/irqchip/irq-xtensa-pic.c b/drivers/irqchip/irq-xtensa-pic.c
index c200234dd2c9..ab12328be5ee 100644
--- a/drivers/irqchip/irq-xtensa-pic.c
+++ b/drivers/irqchip/irq-xtensa-pic.c
@@ -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;
}