Scott Wood writes: > These hooks ensure that a decrementer interrupt is not pending when > suspending; otherwise, problems may occur. For example, with deep sleep > on the 831x, a pending decrementer will cause a system freeze because the > SoC thinks the decrementer interrupt would have woken the system, but the > core must have interrupts disabled due to the setup required for deep > sleep.
> + set_dec(0x7fffffff); > + local_irq_disable(); > + set_dec(0x7fffffff); It might be better to use hard_irq_disable rather than local_irq_disable here, since I think we will need that on 64-bit (and on 32-bit if we ever do lazy irq disabling there). > +/* Overrides the weak version in kernel/power/main.c */ > +void arch_suspend_disable_irqs(void) > +{ > + if (ppc_md.suspend_disable_irqs) > + ppc_md.suspend_disable_irqs(); > + else > + generic_suspend_disable_irqs(); Any particular reason why we need a ppc_md hook here? Do we expect some platform to need to do something different? Paul. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev