NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: PR/46153 CVS commit: src/sys/kern

On Sat, Mar 10, 2012 at 02:39:27PM +0100, Manuel Bouyer wrote:
> db{2}> tr
> pmap_deactivate() at netbsd:pmap_deactivate+0x93
> mi_switch() at netbsd:mi_switch+0x2c5
> kpreempt() at netbsd:kpreempt+0xe2
> Xpreemptrecurse() at netbsd:Xpreemptrecurse+0x15
> spawn_return() at netbsd:spawn_return+0x1eb

(gdb) l *(spawn_return+0x1eb)
0xffffffff804bfe4d is in spawn_return 
1912             * of spawn_data again), signal parent and exit this process.
1913             */
1914            mutex_enter(&spawn_data->sed_mtx_child);
1915            spawn_data->sed_error = error;
1916            cv_signal(&spawn_data->sed_cv_child_ready);
1917            mutex_exit(&spawn_data->sed_mtx_child);
1918            mutex_enter(l->l_proc->p_lock);
1919            exit1(l, W_EXITCODE(error, SIGABRT));
1920    }

and we have:
        if (have_reflock)

        /* stop using kernel vmspace (if we haven't already) */
        if (l->l_proc->p_vmspace) {   
                l->l_proc->p_vmspace = NULL;

I guess KPREEMPT_ENABLE() should not be there (as we now have a NULL vmspace)
but I don't know where we should put it, or if it should be there at
all (as we're about to exit()).

I just removed it, and all tests in tests/lib/libc/gen/posix_spawn pass.

Manuel Bouyer <>
     NetBSD: 26 ans d'experience feront toujours la difference

Home | Main Index | Thread Index | Old Index