Re: 2.6.14-git4 suspend fails: kernel NULL pointer dereference

From: Pavel Machek
Date: Mon Nov 07 2005 - 12:10:20 EST


Hi!

> echo shutdown > /sys/power/disk
> echo disk > /sys/power/state
>
> Unable to handle kernel NULL pointer dereference at virtual address 00000004
> printing eip:
> EIP: 0060:[<c0132a5e>] Not tainted VLI
> EFLAGS: 00010286 (2.6.14-git4)
> EIP is at enter_state+0xe/0x90

It works for me, with pretty recent tree. But I see a potential
problem there, you are not using ACPI, right?

I think it is caused by this commit:

commit eb9289eb20df6b54214c45ac7c6bf5179a149026
tree dac51cecdd94e0c7273c990259ddd800057311b9
parent 0245b3e787dc3267a915e1f56419e7e9c197e148
author Shaohua Li <shaohua.li@xxxxxxxxx> Sun, 30 Oct 2005 15:00:01
-0800
committer Linus Torvalds <torvalds@xxxxxxxxxxx> Sun, 30 Oct 2005
17:37:15 -0800

[PATCH] introduce .valid callback for pm_ops

Add pm_ops.valid callback, so only the available pm states show in
/sys/power/state. And this also makes an earlier states error
report at
enter_state before we do actual suspend/resume.

Try this patch.

Pavel

diff --git a/kernel/power/main.c b/kernel/power/main.c
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -167,7 +167,7 @@ static int enter_state(suspend_state_t s
{
int error;

- if (pm_ops->valid && !pm_ops->valid(state))
+ if (pm_ops && pm_ops->valid && !pm_ops->valid(state))
return -ENODEV;
if (down_trylock(&pm_sem))
return -EBUSY;


--
Thanks, Sharp!
-
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/