In the function liointc_set_type(), we need to call the function
irq_gc_unlock_irqrestore() before returning.

Fixes: dbb152267908 ("irqchip: Add driver for Loongson I/O Local Interrupt 
Controller")
Reported-by: Jianmin Lv <lvjian...@loongson.cn>
Signed-off-by: Tiezhu Yang <yangtie...@loongson.cn>
---
 drivers/irqchip/irq-loongson-liointc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/irqchip/irq-loongson-liointc.c 
b/drivers/irqchip/irq-loongson-liointc.c
index 63b6147..6ef86a3 100644
--- a/drivers/irqchip/irq-loongson-liointc.c
+++ b/drivers/irqchip/irq-loongson-liointc.c
@@ -114,6 +114,7 @@ static int liointc_set_type(struct irq_data *data, unsigned 
int type)
                liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, false);
                break;
        default:
+               irq_gc_unlock_irqrestore(gc, flags);
                return -EINVAL;
        }
        irq_gc_unlock_irqrestore(gc, flags);
-- 
2.1.0

Reply via email to