Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Oct 2006 01:04:35 +0000 (UTC)
From:      Tor Egge <Tor.Egge@cvsup.no.freebsd.org>
To:        keramida@freebsd.org
Cc:        cvs-src@freebsd.org, mb@imp.ch, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/kern kern_conf.c
Message-ID:  <20061019.010435.41670238.Tor.Egge@cvsup.no.freebsd.org>
In-Reply-To: <20061019000424.GA1262@gothmog.pc>
References:  <20061015091459.V72308@godot.imp.ch> <20061018234916.GA1711@gothmog.pc> <20061019000424.GA1262@gothmog.pc>

next in thread | previous in thread | raw e-mail | index | archive | help
> FWIW, reverting revision 1.199 of kern_conf.c locally fixes the
> unkillable xterms, stuck in "devdrn", problem.

destroy_devl() is only stuck in "devdrn" if a thread has called dev_refthread()
but not yet called dev_relthread().  If that thread doesn't sleep forever then
it might write to freed memory on a system where revision 1.199 of kern_conf is
reverted, cf. <URL:http://people.freebsd.org/~pho/stress/log/cons211.html>.

Pseudo ttys need a purge method since there might be races associated with
trying to wake sleeping threads before calling destroy_dev() where a new
thread can go to sleep at the wrong moment.

A related race is devfs_fp_check() versus devfs_reclaim(), allowing for
dev_refthread() to be called with a pointer to freed memory.

- Tor Egge



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