Re: [PATCH] irqchip/i8259: fix shutdown order by moving syscore_ops registration

From: Aaro Koskinen
Date: Thu Feb 07 2019 - 15:58:17 EST


Hi,

On Thu, Feb 07, 2019 at 08:56:37AM +0000, Marc Zyngier wrote:
> On 06/02/2019 21:26, Aaro Koskinen wrote:
> > static void init_8259A(int auto_eoi)
> > {
> > unsigned long flags;
> > @@ -332,6 +324,7 @@ struct irq_domain * __init __init_i8259_irqs(struct device_node *node)
> > panic("Failed to add i8259 IRQ domain");
> >
> > setup_irq(I8259A_IRQ_BASE + PIC_CASCADE_IR, &irq2);
> > + register_syscore_ops(&i8259_syscore_ops);
> > return domain;
> > }
> >
> >
>
> Given that this is a change of behaviour that is likely to affect other
> platforms (I see at least another 6 MIPS machines using the i8259),
> could someone make sure that this doesn't cause any regression? This is
> unlikely to affect the SGI boxes, as they predate any notion of power
> management, but something like Malta could potentially be affected.

For shutdown, I don't think there are many syscore_ops users on these
platforms. Actually I could find only two that I think could be used:
- cpufreq (issue fixed by this patch, and Loongson is the only user
anyway)
- leds-trigger

Then suspend/resume: i8259 doesn't implement suspend, so there is no
change in behaviour. In resume it does PIC re-init, but syscore_resume()
is done with interrupts disabled so the order shouldn't matter.

A.