diff options
author | ksn <none@none> | 2007-07-10 15:52:08 -0700 |
---|---|---|
committer | ksn <none@none> | 2007-07-10 15:52:08 -0700 |
commit | eb53af1d99d46ca40a06ed10b229d933b2301b49 (patch) | |
tree | 52b0c03bb4ac4ff02d945b757d207bf409a770e1 /usr/src | |
parent | 52a52aeb5a7fdcd4b40e137fa7498612f87d95f3 (diff) | |
download | illumos-gate-eb53af1d99d46ca40a06ed10b229d933b2301b49.tar.gz |
6562292 race between drv_getparm and setpgrp leads to panic
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/os/ddi.c | 6 |
1 files changed, 4 insertions, 2 deletions
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; |