From owner-p4-projects@FreeBSD.ORG Wed Feb 7 18:55:09 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 A231C16A402; Wed, 7 Feb 2007 18:55:06 +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 353C716A400 for ; Wed, 7 Feb 2007 18:55:05 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id C31BB13C481 for ; Wed, 7 Feb 2007 18:55:05 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l17It5AE040794 for ; Wed, 7 Feb 2007 18:55:05 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l17It5U3040791 for perforce@freebsd.org; Wed, 7 Feb 2007 18:55:05 GMT (envelope-from rdivacky@FreeBSD.org) Date: Wed, 7 Feb 2007 18:55:05 GMT Message-Id: <200702071855.l17It5U3040791@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 114198 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 18:55:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=114198 Change 114198 by rdivacky@rdivacky_witten on 2007/02/07 18:54:39 Turn emul_lock into a mutex and emul_shared_lock into a rwlock. Affected files ... .. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_sysvec.c#9 edit .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#34 edit .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.h#9 edit .. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#57 edit .. //depot/projects/linuxolator/src/sys/i386/linux/linux_sysvec.c#4 edit Differences ... ==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_sysvec.c#9 (text+ko) ==== @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -1078,8 +1079,8 @@ linux_ioctl_register_handler(*lihp); SET_FOREACH(ldhp, linux_device_handler_set) linux_device_register_handler(*ldhp); - sx_init(&emul_lock, "emuldata lock"); - sx_init(&emul_shared_lock, "emuldata->shared lock"); + mtx_init(&emul_lock, "emuldata lock", NULL, MTX_DEF); + rw_init(&emul_shared_lock, "emuldata->shared lock"); LIST_INIT(&futex_list); sx_init(&futex_sx, "futex protection lock"); linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, linux_proc_exit, @@ -1109,8 +1110,8 @@ linux_ioctl_unregister_handler(*lihp); SET_FOREACH(ldhp, linux_device_handler_set) linux_device_unregister_handler(*ldhp); - sx_destroy(&emul_lock); - sx_destroy(&emul_shared_lock); + mtx_destroy(&emul_lock); + rw_destroy(&emul_shared_lock); sx_destroy(&futex_sx); EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag); EVENTHANDLER_DEREGISTER(schedtail, linux_schedtail_tag); ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#34 (text+ko) ==== @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -55,8 +56,8 @@ #include #endif -struct sx emul_shared_lock; -struct sx emul_lock; +struct rwlock emul_shared_lock; +struct mtx emul_lock; /* this returns locked reference to the emuldata entry (if found) */ struct linux_emuldata * ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.h#9 (text+ko) ==== @@ -57,13 +57,13 @@ struct linux_emuldata *em_find(struct proc *, int locked); -#define EMUL_LOCK(l) sx_xlock(l) -#define EMUL_UNLOCK(l) sx_xunlock(l) +#define EMUL_LOCK(l) mtx_lock(l) +#define EMUL_UNLOCK(l) mtx_unlock(l) -#define EMUL_SHARED_RLOCK(l) sx_slock(l) -#define EMUL_SHARED_RUNLOCK(l) sx_sunlock(l) -#define EMUL_SHARED_WLOCK(l) sx_xlock(l) -#define EMUL_SHARED_WUNLOCK(l) sx_xunlock(l) +#define EMUL_SHARED_RLOCK(l) rw_rlock(l) +#define EMUL_SHARED_RUNLOCK(l) rw_runlock(l) +#define EMUL_SHARED_WLOCK(l) rw_wlock(l) +#define EMUL_SHARED_WUNLOCK(l) rw_wunlock(l) /* for em_find use */ #define EMUL_DOLOCK 1 @@ -74,7 +74,7 @@ void linux_schedtail(void *, struct proc *); void linux_proc_exec(void *, struct proc *, struct image_params *); -extern struct sx emul_shared_lock; -extern struct sx emul_lock; +extern struct rwlock emul_shared_lock; +extern struct mtx emul_lock; #endif /* !_LINUX_EMUL_H_ */ ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#57 (text+ko) ==== @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/linuxolator/src/sys/i386/linux/linux_sysvec.c#4 (text+ko) ==== @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -917,8 +918,8 @@ linux_ioctl_register_handler(*lihp); SET_FOREACH(ldhp, linux_device_handler_set) linux_device_register_handler(*ldhp); - sx_init(&emul_lock, "emuldata lock"); - sx_init(&emul_shared_lock, "emuldata->shared lock"); + mtx_init(&emul_lock, "emuldata lock", NULL, MTX_DEF); + rw_init(&emul_shared_lock, "emuldata->shared lock"); LIST_INIT(&futex_list); sx_init(&futex_sx, "futex protection lock"); linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, linux_proc_exit, @@ -948,8 +949,8 @@ linux_ioctl_unregister_handler(*lihp); SET_FOREACH(ldhp, linux_device_handler_set) linux_device_unregister_handler(*ldhp); - sx_destroy(&emul_lock); - sx_destroy(&emul_shared_lock); + mtx_destroy(&emul_lock); + rw_destroy(&emul_shared_lock); sx_destroy(&futex_sx); EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag); EVENTHANDLER_DEREGISTER(schedtail, linux_schedtail_tag);