summaryrefslogtreecommitdiff
path: root/sys/src/9/port/sysproc.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-07-12 15:46:22 +0200
committercinap_lenrek <cinap_lenrek@localhost>2011-07-12 15:46:22 +0200
commitc6c2e04d4a700fe3982a4a72e768c69d6ace08a6 (patch)
treed64dc55189b55da8c7d01be1c981dda6dcab76dd /sys/src/9/port/sysproc.c
parentb429f72eaedff27b43c4ac951cea62f574e6fb23 (diff)
segdesc: add /dev/^(ldt gdt) support
Diffstat (limited to 'sys/src/9/port/sysproc.c')
-rw-r--r--sys/src/9/port/sysproc.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/src/9/port/sysproc.c b/sys/src/9/port/sysproc.c
index 0048dc0b9..b49410d26 100644
--- a/sys/src/9/port/sysproc.c
+++ b/sys/src/9/port/sysproc.c
@@ -187,6 +187,9 @@ sysrfork(ulong *arg)
kstrdup(&p->text, up->text);
kstrdup(&p->user, up->user);
+
+ procfork(p);
+
/*
* since the bss/data segments are now shareable,
* any mmu info about this process is now stale
@@ -472,11 +475,6 @@ sysexec(ulong *arg)
poperror();
cclose(tc);
- /*
- * At this point, the mmu contains info about the old address
- * space and needs to be flushed
- */
- flushmmu();
qlock(&up->debug);
up->nnote = 0;
up->notify = 0;
@@ -484,9 +482,15 @@ sysexec(ulong *arg)
up->privatemem = 0;
procsetup(up);
qunlock(&up->debug);
+
+ /*
+ * At this point, the mmu contains info about the old address
+ * space and needs to be flushed
+ */
+ flushmmu();
+
if(up->hang)
up->procctl = Proc_stopme;
-
return execregs(entry, ssize, nargs);
}