Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2006 01:29:05 +0200 (CEST)
From:      Martin Blapp <mb@imp.ch>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, Martin Blapp <mbr@FreeBSD.org>, cvs-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern kern_proc.c
Message-ID:  <20060920012110.P1494@godot.imp.ch>
In-Reply-To: <200609191714.46864.jhb@freebsd.org>
References:  <200609191925.k8JJPBaH091145@repoman.freebsd.org> <200609191714.46864.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060920012110.P1494>