From owner-p4-projects@FreeBSD.ORG Wed Feb 7 21:54:48 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6466B16A405; Wed, 7 Feb 2007 21:54:48 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D875316A402; Wed, 7 Feb 2007 21:54:47 +0000 (UTC) (envelope-from xdivac02@stud.fit.vutbr.cz) Received: from eva.fit.vutbr.cz (eva.fit.vutbr.cz [147.229.176.14]) by mx1.freebsd.org (Postfix) with ESMTP id 6CB0713C428; Wed, 7 Feb 2007 21:54:47 +0000 (UTC) (envelope-from xdivac02@stud.fit.vutbr.cz) Received: from eva.fit.vutbr.cz (localhost [127.0.0.1]) by eva.fit.vutbr.cz (envelope-from xdivac02@eva.fit.vutbr.cz) (8.13.8/8.13.7) with ESMTP id l17LskKO072503 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 7 Feb 2007 22:54:46 +0100 (CET) Received: (from xdivac02@localhost) by eva.fit.vutbr.cz (8.13.8/8.13.3/Submit) id l17LsjEo072500; Wed, 7 Feb 2007 22:54:45 +0100 (CET) Date: Wed, 7 Feb 2007 22:54:45 +0100 From: Divacky Roman To: Attilio Rao Message-ID: <20070207215445.GA69385@stud.fit.vutbr.cz> References: <200702071858.l17IwBGj041287@repoman.freebsd.org> <3bbf2fe10702071250p65989b81v9872ff7203c92b91@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3bbf2fe10702071250p65989b81v9872ff7203c92b91@mail.gmail.com> User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.57 on 147.229.176.14 Cc: Perforce Change Reviews Subject: Re: PERFORCE change 114200 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Feb 2007 21:54:48 -0000 On Wed, Feb 07, 2007 at 09:50:08PM +0100, Attilio Rao wrote: > 2007/2/7, Roman Divacky : > >http://perforce.freebsd.org/chv.cgi?CH=114200 > > > >Change 114200 by rdivacky@rdivacky_witten on 2007/02/07 18:57:25 > > > > Move the free() out of the emul_shared_lock coverage as its not > > sleepable lock anymore. > > > >Affected files ... > > > >.. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#35 edit > > > >Differences ... > > > >==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#35 > >(text+ko) ==== > > > >@@ -187,9 +187,11 @@ > > LIST_REMOVE(em, threads); > > > > em->shared->refs--; > >- if (em->shared->refs == 0) > >+ if (em->shared->refs == 0) { > >+ EMUL_SHARED_WUNLOCK(&emul_shared_lock); > > free(em->shared, M_LINUX); > >- EMUL_SHARED_WUNLOCK(&emul_shared_lock); > >+ } else > >+ EMUL_SHARED_WUNLOCK(&emul_shared_lock); > > > > if (child_clear_tid != NULL) { > > struct linux_sys_futex_args cup; > >@@ -274,9 +276,11 @@ > > PROC_UNLOCK(p); > > > > em->shared->refs--; > >- if (em->shared->refs == 0) > >+ if (em->shared->refs == 0) { > >+ EMUL_SHARED_WUNLOCK(&emul_shared_lock); > > free(em->shared, M_LINUX); > >- EMUL_SHARED_WUNLOCK(&emul_shared_lock); > >+ } else > >+ EMUL_SHARED_WUNLOCK(&emul_shared_lock); > > > > free(em, M_LINUX); > > } > > > > Would you convert em->shared->refs with a refcount() ? (sys/refcount.h) as we discussed. its not much of a use in this particular case as I have to lock anyway so this doesnt buy us much. thnx, roman