Merge branch 'master' into prog-loader
[lunaix-os.git] / lunaix-os / kernel / process / process.c
index 82f1ffa7dcec24bd10e15f09bae93f3e66b0d899..8df3f2c9ef8090422000c7dbf60116220730ccbe 100644 (file)
@@ -196,6 +196,8 @@ dup_proc()
     pcb->intr_ctx = __current->intr_ctx;
     pcb->parent = __current;
 
     pcb->intr_ctx = __current->intr_ctx;
     pcb->parent = __current;
 
+    memcpy(pcb->fxstate, __current->fxstate, 512);
+
     if (__current->cwd) {
         pcb->cwd = __current->cwd;
         vfs_ref_dnode(pcb->cwd);
     if (__current->cwd) {
         pcb->cwd = __current->cwd;
         vfs_ref_dnode(pcb->cwd);
@@ -209,7 +211,7 @@ dup_proc()
     // 根据 mm_region 进一步配置页表
 
     struct mm_region *pos, *n;
     // 根据 mm_region 进一步配置页表
 
     struct mm_region *pos, *n;
-    llist_for_each(pos, n, &pcb->mm.regions.head, head)
+    llist_for_each(pos, n, &pcb->mm.regions, head)
     {
         // 如果写共享,则不作处理。
         if ((pos->attr & REGION_WSHARED)) {
     {
         // 如果写共享,则不作处理。
         if ((pos->attr & REGION_WSHARED)) {