From owner-p4-projects@FreeBSD.ORG Wed Mar 15 19:23:48 2006 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 78DC016A465; Wed, 15 Mar 2006 19:23:48 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4F49916A463 for ; Wed, 15 Mar 2006 19:23:48 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B406D43D83 for ; Wed, 15 Mar 2006 19:23:40 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k2FJNeW8079183 for ; Wed, 15 Mar 2006 19:23:40 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2FJNeQh079180 for perforce@freebsd.org; Wed, 15 Mar 2006 19:23:40 GMT (envelope-from millert@freebsd.org) Date: Wed, 15 Mar 2006 19:23:40 GMT Message-Id: <200603151923.k2FJNeQh079180@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 93358 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, 15 Mar 2006 19:23:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=93358 Change 93358 by millert@millert_p3 on 2006/03/15 19:23:08 Convert policy lock from sx lock to rw lock. We can't use an sx lock since the proc lock is held and you are not allowed to hold a mutex while getting an sx lock. It looks like an rw lock is what was desired in the first place but they were not available at the time. Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/services.c#12 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/services.c#12 (text+ko) ==== @@ -39,16 +39,16 @@ #ifdef _KERNEL -#include +#include #include -static struct sx policy_rwlock; -#define POLICY_RDLOCK sx_slock(&policy_rwlock) -#define POLICY_WRLOCK sx_xlock(&policy_rwlock) -#define POLICY_RDUNLOCK sx_sunlock(&policy_rwlock) -#define POLICY_WRUNLOCK sx_xunlock(&policy_rwlock) +static struct rwlock policy_rwlock; +#define POLICY_RDLOCK rw_rlock(&policy_rwlock) +#define POLICY_WRLOCK rw_wlock(&policy_rwlock) +#define POLICY_RDUNLOCK rw_runlock(&policy_rwlock) +#define POLICY_WRUNLOCK rw_wunlock(&policy_rwlock) -SX_SYSINIT(policy_rwlock, &policy_rwlock, "SEBSD policy lock"); +RW_SYSINIT(policy_rwlock, &policy_rwlock, "SEBSD policy lock"); static struct mtx load_sem; #define LOAD_LOCK mtx_lock(&load_sem)