Re: [PATCH] irqchip/gic-v3: Fix gic_chip specific flag
From: Marc Zyngier
Date: Tue Jan 30 2018 - 12:01:47 EST
On 30/01/18 02:56, fangxiang wrote:
> Both IRQCHIP_SKIP_SET_WAKE and .irq_set_wake() is
> not set in gic_chip V3. This causes
> set_irq_wake_real() return -ENXIO and a
> WARN(Unbalanced IRQ ... wake disable ...) in
> irq_set_irq_wake().
>
> Signed-off-by: fangxiang <fangxiang3@xxxxxxxxxx>
> ---
> drivers/irqchip/irq-gic-v3.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
> index b56c3e2..e8104b8 100644
> --- a/drivers/irqchip/irq-gic-v3.c
> +++ b/drivers/irqchip/irq-gic-v3.c
> @@ -800,7 +800,8 @@ static inline void gic_cpu_pm_init(void) { }
> .irq_set_affinity = gic_set_affinity,
> .irq_get_irqchip_state = gic_irq_get_irqchip_state,
> .irq_set_irqchip_state = gic_irq_set_irqchip_state,
> - .flags = IRQCHIP_SET_TYPE_MASKED,
> + .flags = IRQCHIP_SET_TYPE_MASKED |
> + IRQCHIP_SKIP_SET_WAKE,
> };
>
> static struct irq_chip gic_eoimode1_chip = {
>
That's sort of expected (the GIC itself doesn't implement any wake-up
mechanism), *unless* you have have a separate, stacked irqchip
implementing irq_set_wake. From your commit message, I cannot deduce
whether that's the case or not.
Please describe what you are fixing, and to what context this applies to.
Thanks,
M.
--
Jazz is not dead. It just smells funny...