Suspend on Dell D420

From: Steinar H. Gunderson
Date: Fri Aug 04 2006 - 12:24:49 EST

[Please Cc me on any followups]


Suspend-to-RAM works fine on my new Dell Latitude D420 (with Core Duo) in
2.6.16, but it broke in 2.6.17 -- the machine suspends just fine, but when it
resumes, the disk never spins up, the screen stays black and it just hangs.
Bisecting shows that the following commit is where it broke:

commit 78eef01b0fae087c5fadbd85dd4fe2918c3a015f
Author: Andrew Morton <akpm@xxxxxxxx>
Date: Wed Mar 22 00:08:16 2006 -0800

[PATCH] on_each_cpu(): disable local interrupts

When on_each_cpu() runs the callback on other CPUs, it runs with local
interrupts disabled. So we should run the function with local interrupts
disabled on this CPU, too.

And do the same for UP, so the callback is run in the same environment on both
UP and SMP. (strictly it should do preempt_disable() too, but I think
local_irq_disable is sufficiently equivalent).

Also uninlines on_each_cpu(). softirq.c was the most appropriate file I could
find, but it doesn't seem to justify creating a new file.

Oh, and fix up that comment over (under?) x86's smp_call_function(). It
drives me nuts.

Applying the patch in reverse against 2.6.17 (it doesn't apply cleanly, but
I've done what seems to be the moral equivalent) makes the suspend work

Any ideas? It does not work with the latest git checkout as of today.

/* Steinar */
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at