Thread (4 messages) flat view 4 messages, 3 authors, 2007-09-12

Re: [PATCH 1/3] Implement arch disable/enable irq hooks.

From: Paul Mackerras <hidden>
Date: 2007-09-11 21:16:28

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help