Date: Wed, 20 Dec 2006 17:16:51 +0100 From: "Attilio Rao" <attilio@freebsd.org> To: "Martin Blapp" <mb@imp.ch> Cc: cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/kern tty.c Message-ID: <3bbf2fe10612200816x11c59af3r8b1d2721215267fe@mail.gmail.com> In-Reply-To: <20061220040337.H53548@godot.imp.ch> References: <200612192234.kBJMYYo0055529@repoman.freebsd.org> <3bbf2fe10612191850y3a546fcew486575385b1400df@mail.gmail.com> <20061220040337.H53548@godot.imp.ch>
next in thread | previous in thread | raw e-mail | index | archive | help
2006/12/20, Martin Blapp <mb@imp.ch>:
>
> Hi,
>
> > Since proctree_lock is a sx lock which uses 2 condition variables,
> > they alredy drop Giant (DROP_GIANT()) before sleeping. Are you secure
> > it is the right thing to do here?
>
> Sorry, the commit message was not 100% clear. It should have been:
>
> Retest a variable after sx_slock has been called. Giant might have been
> temporarily dropped while waiting for proctree_lock, allowing for an
> intervening tty_close() that cleared tp->t_session.
Ok, after a quick look at the patch (and this note) it makes more
sense to me, but then would not be cleaner to do something like:
sx_slock(&proctree_lock);
if (tp->t_session && tp->t_session->s_leader) { ...
}
sx_sunlock(&proctree_lock);
more than leaving the clobbering check?
Thanks,
Attilio
--
Peace can only be achieved by understanding - A. Einstein
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3bbf2fe10612200816x11c59af3r8b1d2721215267fe>
