Neo Freerunner PMU Status
Andy Green
andy at openmoko.com
Fri Feb 8 12:36:38 CET 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Somebody in the thread at some point said:
>> 1) I cannot mount the rootfs if no battery is in (insane but totally
>> repeatable) - this is the failure to fork the GC --> unable to parse the
>> FS. I will start looking at that code today to come at it from that
>> end. How the GC fork action becomes a "battery inserted" detector I
>> will be very interested to discover -- if I can.
>
> Googling around I see this 2.6.22.5 GTA01 user has the same error in his
> dmesg in a nonfatal form:
The failure comes from a signal waiting for the new process too early,
detected from this code in kernel/fork.c copy_process():
/*
* Process group and session signals need to be delivered to just the
* parent before the fork or both the parent and the child after the
* fork. Restart if a signal comes in before we add the new process to
* it's process group.
* A fatal signal pending means that current will exit, so the new
* thread can't slip out of an OOM kill (or normal SIGKILL).
*/
recalc_sigpending();
if (signal_pending(current)) {
spin_unlock(¤t->sighand->siglock);
write_unlock_irq(&tasklist_lock);
retval = -ERESTARTNOINTR; <========= 513
goto bad_fork_free_pid;
}
Ha -- looks like the PCF50633 "LOWBAT" interrupt service tries always to
do kill_proc(1, SIGPWR, 1); when LOWBAT really means *NO*BAT -- it kills
the garbage collection fork stone dead when it tries to start instead
and finds that signal waiting there. I guess the GTA01 PMU driver did
the same...
- -Andy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iD8DBQFHrD7GOjLpvpq7dMoRAriOAJ9ewlYiuBUCM0wdYVamxbKvoCZoHACbB9aE
2LeZbRcmq+DRWGYaw11T+pM=
=2l+M
-----END PGP SIGNATURE-----
More information about the openmoko-kernel
mailing list