cvs commit: src/sys/kern kern_proc.c

Martin Blapp mb at imp.ch
Tue Sep 19 16:29:10 PDT 2006


Hi,

> Will you be able to revert 1.258 of tty.c now and still be safe from panics?

I guess so. I don't see another place which could be dangerous for us beside
enterpgrp(). I don't understand the code there 100%.

sys/kern/kern_proc.c: line 308

         if (sess != NULL) {
                  ^^^^^^
Why only if a session already exists ? Could you explain that to me ?
Anyway, we may need here Giant too. What do you think ?

                 /*
                  * new session
                  */
                 mtx_init(&sess->s_mtx, "session", NULL, MTX_DEF);
                 PROC_LOCK(p);
                 p->p_flag &= ~P_CONTROLT;
                 PROC_UNLOCK(p);
                 PGRP_LOCK(pgrp);
                 sess->s_leader = p;
                 sess->s_sid = p->p_pid;
                 sess->s_count = 1;
                 sess->s_ttyvp = NULL;
                 sess->s_ttyp = NULL;


But I don't think we should revert v. 1.258 because the locks will
be needed later. After NEED_GIANT has gone (from tty code) we will need the 
same lock at the same place again to avoid races. There are some places more where we 
need the locks then. I propose to keep rev. 1.258 (maybe not to MFC it) or to 
add a comment instead.

Martin



More information about the cvs-src mailing list