summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/os/fork.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/os/fork.c')
-rw-r--r--usr/src/uts/common/os/fork.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/usr/src/uts/common/os/fork.c b/usr/src/uts/common/os/fork.c
index 8c8a4e984a..4171c0b122 100644
--- a/usr/src/uts/common/os/fork.c
+++ b/usr/src/uts/common/os/fork.c
@@ -21,7 +21,7 @@
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -407,12 +407,11 @@ cfork(int isvfork, int isfork1)
corectl_path_hold(cp->p_corefile = p->p_corefile);
corectl_content_hold(cp->p_content = p->p_content);
-#if defined(__x86)
/*
- * Get the right ldt descr for the child.
+ * Duplicate process context ops, if any.
*/
- (void) ldt_dup(p, cp);
-#endif
+ if (p->p_pctx)
+ forkpctx(p, cp);
#ifdef __sparc
utrap_dup(p, cp);
@@ -796,10 +795,6 @@ newproc(void (*pc)(), caddr_t arg, id_t cid, int pri, struct contract **ct)
p->p_as = &kas;
-#if defined(__x86)
- (void) ldt_dup(&p0, p); /* Get the default ldt descr */
-#endif
-
if ((lwp = lwp_create(pc, arg, 0, p, TS_STOPPED, pri,
&curthread->t_hold, cid, 1)) == NULL) {
task_t *tk;