From owner-freebsd-bugs@FreeBSD.ORG Fri Jul 14 09:50:24 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6589816A4DD for ; Fri, 14 Jul 2006 09:50:24 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id CDBFA43D45 for ; Fri, 14 Jul 2006 09:50:23 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k6E9oN5p074184 for ; Fri, 14 Jul 2006 09:50:23 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k6E9oNPI074183; Fri, 14 Jul 2006 09:50:23 GMT (envelope-from gnats) Date: Fri, 14 Jul 2006 09:50:23 GMT Message-Id: <200607140950.k6E9oNPI074183@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Ian Dowse Cc: Subject: Re: kern/99758: chown/chmod pty slave side in kernel X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Ian Dowse List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Jul 2006 09:50:24 -0000 The following reply was made to PR kern/99758; it has been noted by GNATS. From: Ian Dowse To: Atsuo Ohki Cc: "Wojciech A. Koszek" , freebsd-gnats-submit@FreeBSD.org, Robert Watson Subject: Re: kern/99758: chown/chmod pty slave side in kernel Date: Fri, 14 Jul 2006 10:45:44 +0100 In message <200607130915.k6D9F2eg054212@smr00.gssm.otsuka.tsukuba.ac.jp>, Atsuo Ohki writes: > I achieved a little success. > Now (really now!), pty test of stress2 is running. > > I modified as follow: I'm not sure if it is related, but the following old patch had solved some issue I was seeing with getty running on USB serial ports. Maybe it is a similar issue? Ian Index: kern_conf.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/kern/kern_conf.c,v retrieving revision 1.197 diff -u -r1.197 kern_conf.c --- kern_conf.c 12 Jan 2006 19:15:14 -0000 1.197 +++ kern_conf.c 3 Feb 2006 00:43:20 -0000 @@ -658,6 +658,7 @@ dev->si_flags &= ~SI_CLONELIST; } + dev_refl(dev); /* another thread might dev_rel() while we sleep. */ csw = dev->si_devsw; dev->si_devsw = NULL; /* already NULL for SI_ALIAS */ while (csw != NULL && csw->d_purge != NULL && dev->si_threadcount) { @@ -683,10 +684,15 @@ } dev->si_flags &= ~SI_ALIAS; - if (dev->si_refcount > 0) { + if (dev->si_refcount > 1) { + dev->si_refcount--; LIST_INSERT_HEAD(&dead_cdevsw.d_devs, dev, si_list); } else { + KASSERT(dev->si_refcount == 1, + ("destroy_devl unexpected refcount %d", dev->si_refcount)); + dev_unlock(); devfs_free(dev); + dev_lock(); } }