RE: [PATCH 04/17] powerpc: mpic: use IRQCHIP_SKIP_SET_WAKE instead of redundant mpic_irq_set_wake

From: Thomas Gleixner
Date: Wed Sep 23 2015 - 04:01:13 EST


On Wed, 23 Sep 2015, Wang Dongsheng wrote:
> > -----Original Message-----
> > From: linux-kernel-owner@xxxxxxxxxxxxxxx [mailto:linux-kernel-
> > owner@xxxxxxxxxxxxxxx] On Behalf Of Thomas Gleixner
> > Sent: Wednesday, September 23, 2015 11:49 AM
> > To: Wang Dongsheng-B40534
> > Cc: Wood Scott-B07421; Sudeep Holla; linux-pm@xxxxxxxxxxxxxxx; linux-
> > kernel@xxxxxxxxxxxxxxx; Rafael J. Wysocki; Benjamin Herrenschmidt; Paul
> > Mackerras; Michael Ellerman; Jia Hongtao-B38951; Marc Zyngier; linuxppc-
> > dev@xxxxxxxxxxxxxxxx
> > Subject: RE: [PATCH 04/17] powerpc: mpic: use IRQCHIP_SKIP_SET_WAKE instead of
> > redundant mpic_irq_set_wake

Can you please fix you mail client to get rid of that silly copy of
the mail header?

> > On Wed, 23 Sep 2015, Wang Dongsheng wrote:
> > > > On Mon, 2015-09-21 at 16:47 +0100, Sudeep Holla wrote:
> > > > > mpic_irq_set_wake return -ENXIO for non FSL MPIC and sets IRQF_NO_SUSPEND
> > > > > flag for FSL ones. enable_irq_wake already returns -ENXIO if irq_set_wak
> > > > > is not implemented. Also there's no need to set the IRQF_NO_SUSPEND flag
> > > > > as it doesn't guarantee wakeup for that interrupt.
> > > > >
> > >
> > > Non-freescale return -ENXIO, is there any issue? If non-freescale
> > > platform does not support it, but IPs still use
> > > enable/disable_irq_wake, we should return a error number.
> >
> > You can just set IRQCHIP_SKIP_SET_WAKE for FSL chips and not for the
> > others.
> >
> > > @Scott:
> > > If set this flag we cannot keep a irq as a wakeup source when system going to
> > > SUSPEND or MEM.
> > >
> > > irq_set_wake() means we can set this irq as a wake source.
> > > IRQCHIP_SKIP_SET_WAKE is ignore irq_set_wake() feature.
> >
> > Nonsense. IRQCHIP_SKIP_SET_WAKE merily tells the core not to bail on
> > !chip->irq_set_wake(), but its still marking the interrupt as wakeup
> > source and therefor not masking it on suspend.
> >
>
> Sorry, I just check irq_set_irq_wake() code, right, IRQCHIP_SKIP_SET_WAKE also can
> going to irqd_set to mask IRQD_WAKEUP_STATE.
>
> Yes, this flag just skip the irq_set_wake() not this feature.

And just for completeness. That commit 5ff04b7287d87c 'powerpc/mpic:
add irq_set_wake support' is another example of trainwreck engineering.

desc->action->flags |= IRQF_NO_SUSPEND;

This is not only horribly avoiding any of the existing APIs, it's also
broken as hell. desc->action can be NULL when that is called.

It seems fleascale is hell bent to fiddle with the guts of the core
code mindlessly. See commit c866cda47f2c

Yours grumpy

tglx


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/