-----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(&current->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-----

Reply via email to