diff --git a/Kernel/arch/armv7/mm_virt.c b/Kernel/arch/armv7/mm_virt.c index 03c8cc7d1a8399545b37993b077eea9d23acdbf5..53531d3721d18eacfcdf798d7e42546c19573afb 100644 --- a/Kernel/arch/armv7/mm_virt.c +++ b/Kernel/arch/armv7/mm_virt.c @@ -545,7 +545,11 @@ tPAddr MM_Clone(void) tmp_map = new_lvl1_1; for( i = 0; i < 0x800-4; i ++ ) { -// Log("i = %i", i); + // HACK! Ignore the original identity mapping + if( i == 0 && Threads_GetTID() == 0 ) { + tmp_map[0] = 0; + continue; + } if( i == 0x400 ) tmp_map = &new_lvl1_2[-0x400]; switch( cur[i] & 3 ) diff --git a/Kernel/arch/armv7/proc.c b/Kernel/arch/armv7/proc.c index d61160f01d36c3094a66e6482b65c9e7637efcec..a0a646b672c3cea0ce252b2732d9dd6dc0d332d9 100644 --- a/Kernel/arch/armv7/proc.c +++ b/Kernel/arch/armv7/proc.c @@ -127,7 +127,7 @@ tTID Proc_SpawnWorker( void (*Fnc)(void*), void *Ptr ) new = Threads_CloneThreadZero(); if(!new) return -1; - free(new->ThreadName); + if(new->ThreadName) free(new->ThreadName); new->ThreadName = NULL; new->KernelStack = MM_NewKStack(1);