Fixed threading bug
[tpg/acess2.git] / Kernel / arch / x86 / mm_virt.c
index dce4782..3c893f8 100644 (file)
@@ -653,14 +653,15 @@ tPAddr MM_Clone(void)
  */
 tVAddr MM_NewKStack(void)
 {
-       tVAddr  base = KERNEL_STACKS;
+       tVAddr  base;
        Uint    i;
-       for(;base<KERNEL_STACKS_END;base+=KERNEL_STACK_SIZE)
+       for(base = KERNEL_STACKS; base < KERNEL_STACKS_END; base += KERNEL_STACK_SIZE)
        {
                if(MM_GetPhysAddr(base) != 0)   continue;
-               for(i=0;i<KERNEL_STACK_SIZE;i+=0x1000) {
+               for(i = 0; i < KERNEL_STACK_SIZE; i += 0x1000) {
                        MM_Allocate(base+i);
                }
+               Log("MM_NewKStack - Allocated %p", base + KERNEL_STACK_SIZE);
                return base+KERNEL_STACK_SIZE;
        }
        Warning("MM_NewKStack - No address space left\n");
@@ -918,7 +919,7 @@ tVAddr MM_MapTemp(tPAddr PAddr)
                        return TEMP_MAP_ADDR + (i << 12);
                }
                Mutex_Release( &glTempMappings );
-               Threads_Yield();        // TODO: Less expensive
+               Threads_Yield();        // TODO: Use a sleep queue here instead
        }
 }
 

UCC git Repository :: git.ucc.asn.au