diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-07-12 15:46:22 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-07-12 15:46:22 +0200 |
commit | c6c2e04d4a700fe3982a4a72e768c69d6ace08a6 (patch) | |
tree | d64dc55189b55da8c7d01be1c981dda6dcab76dd /sys/src/9/port/sysproc.c | |
parent | b429f72eaedff27b43c4ac951cea62f574e6fb23 (diff) |
segdesc: add /dev/^(ldt gdt) support
Diffstat (limited to 'sys/src/9/port/sysproc.c')
-rw-r--r-- | sys/src/9/port/sysproc.c | 16 |
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); } |