From eb53af1d99d46ca40a06ed10b229d933b2301b49 Mon Sep 17 00:00:00 2001 From: ksn Date: Tue, 10 Jul 2007 15:52:08 -0700 Subject: 6562292 race between drv_getparm and setpgrp leads to panic --- usr/src/uts/common/os/ddi.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'usr/src/uts/common/os/ddi.c') diff --git a/usr/src/uts/common/os/ddi.c b/usr/src/uts/common/os/ddi.c index 6a0b6ace80..ee817d9c8d 100644 --- a/usr/src/uts/common/os/ddi.c +++ b/usr/src/uts/common/os/ddi.c @@ -23,7 +23,7 @@ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -246,7 +246,7 @@ int datamsg(unsigned char db_type) { return (db_type == M_DATA || db_type == M_PROTO || - db_type == M_PCPROTO || db_type == M_DELAY); + db_type == M_PCPROTO || db_type == M_DELAY); } /* @@ -300,7 +300,9 @@ drv_getparm(unsigned int parm, void *valuep) *(proc_t **)valuep = p; break; case PPGRP: + mutex_enter(&p->p_lock); *(pid_t *)valuep = p->p_pgrp; + mutex_exit(&p->p_lock); break; case LBOLT: *(clock_t *)valuep = lbolt; -- cgit v1.2.3