Index: kernel/arch/abs32le/include/mm/as.h
===================================================================
--- kernel/arch/abs32le/include/mm/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/abs32le/include/mm/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -43,6 +43,4 @@
 #define USER_ADDRESS_SPACE_END_ARCH      UINT32_C(0x7fffffff)
 
-#define USTACK_ADDRESS_ARCH  (USER_ADDRESS_SPACE_END_ARCH - (PAGE_SIZE - 1))
-
 typedef struct {
 } as_arch_t;
Index: kernel/arch/amd64/include/mm/as.h
===================================================================
--- kernel/arch/amd64/include/mm/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/amd64/include/mm/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -43,9 +43,6 @@
 #define KERNEL_ADDRESS_SPACE_START_ARCH  UINT64_C(0xffff800000000000)
 #define KERNEL_ADDRESS_SPACE_END_ARCH    UINT64_C(0xffffffffffffffff)
-
-#define USER_ADDRESS_SPACE_START_ARCH  UINT64_C(0x0000000000000000)
-#define USER_ADDRESS_SPACE_END_ARCH    UINT64_C(0x00007fffffffffff)
-
-#define USTACK_ADDRESS_ARCH  (USER_ADDRESS_SPACE_END_ARCH - (PAGE_SIZE - 1))
+#define USER_ADDRESS_SPACE_START_ARCH    UINT64_C(0x0000000000000000)
+#define USER_ADDRESS_SPACE_END_ARCH      UINT64_C(0x00007fffffffffff)
 
 #define as_constructor_arch(as, flags)  (as != as)
Index: kernel/arch/amd64/src/proc/scheduler.c
===================================================================
--- kernel/arch/amd64/src/proc/scheduler.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/amd64/src/proc/scheduler.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -56,5 +56,5 @@
 {
 	CPU->arch.tss->rsp0 =
-	    (uintptr_t) &THREAD->kstack[THREAD_STACK_SIZE];
+	    (uintptr_t) &THREAD->kstack[STACK_SIZE];
 	
 	/*
Index: kernel/arch/amd64/src/userspace.c
===================================================================
--- kernel/arch/amd64/src/userspace.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/amd64/src/userspace.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -66,5 +66,5 @@
 		"iretq\n"
 		:: [udata_des] "i" (GDT_SELECTOR(UDATA_DES) | PL_USER),
-		   [stack_size] "r" (kernel_uarg->uspace_stack + THREAD_STACK_SIZE),
+		   [stack_size] "r" (kernel_uarg->uspace_stack + STACK_SIZE),
 		   [ipl] "r" (ipl),
 		   [utext_des] "i" (GDT_SELECTOR(UTEXT_DES) | PL_USER),
Index: kernel/arch/arm32/include/mm/as.h
===================================================================
--- kernel/arch/arm32/include/mm/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/arm32/include/mm/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -37,12 +37,10 @@
 #define KERN_arm32_AS_H_
 
-#define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH	0
+#define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH  0
 
-#define KERNEL_ADDRESS_SPACE_START_ARCH     (unsigned long) 0x80000000
-#define KERNEL_ADDRESS_SPACE_END_ARCH       (unsigned long) 0xffffffff
-#define USER_ADDRESS_SPACE_START_ARCH       (unsigned long) 0x00000000
-#define USER_ADDRESS_SPACE_END_ARCH         (unsigned long) 0x7fffffff
-
-#define USTACK_ADDRESS_ARCH	(0x80000000 - PAGE_SIZE)
+#define KERNEL_ADDRESS_SPACE_START_ARCH  UINT32_C(0x80000000)
+#define KERNEL_ADDRESS_SPACE_END_ARCH    UINT32_C(0xffffffff)
+#define USER_ADDRESS_SPACE_START_ARCH    UINT32_C(0x00000000)
+#define USER_ADDRESS_SPACE_END_ARCH      UINT32_C(0x7fffffff)
 
 typedef struct {
Index: kernel/arch/arm32/src/arm32.c
===================================================================
--- kernel/arch/arm32/src/arm32.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/arm32/src/arm32.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -134,5 +134,5 @@
 	uint8_t *stck;
 	
-	stck = &THREAD->kstack[THREAD_STACK_SIZE - SP_DELTA];
+	stck = &THREAD->kstack[STACK_SIZE - SP_DELTA];
 	supervisor_sp = (uintptr_t) stck;
 }
Index: kernel/arch/arm32/src/userspace.c
===================================================================
--- kernel/arch/arm32/src/userspace.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/arm32/src/userspace.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -38,5 +38,5 @@
 
 /** Struct for holding all general purpose registers.
- *  
+ *
  *  Used to set registers when going to userspace.
  */
@@ -60,8 +60,8 @@
 } ustate_t;
 
-/** Changes processor mode and jumps to the address specified in the first
- * parameter.
+/** Change processor mode
  *
- *  @param kernel_uarg	 Userspace settings (entry point, stack, ...).
+ * @param kernel_uarg Userspace settings (entry point, stack, ...).
+ *
  */
 void userspace(uspace_arg_t *kernel_uarg)
@@ -79,10 +79,18 @@
 
 	/* clear other registers */
-	ustate.r3  = ustate.r4  = ustate.r5 = ustate.r6 = ustate.r7 =
-	    ustate.r8 = ustate.r9 = ustate.r10 = ustate.r11 = ustate.r12 =
-	    ustate.lr = 0;
+	ustate.r3 = 0;
+	ustate.r4 = 0;
+	ustate.r5 = 0;
+	ustate.r6 = 0;
+	ustate.r7 = 0;
+	ustate.r8 = 0;
+	ustate.r9 = 0;
+	ustate.r10 = 0;
+	ustate.r11 = 0;
+	ustate.r12 = 0;
+	ustate.lr = 0;
 
 	/* set user stack */
-	ustate.sp = ((uint32_t)kernel_uarg->uspace_stack) + PAGE_SIZE;
+	ustate.sp = ((uint32_t)kernel_uarg->uspace_stack) + STACK_SIZE;
 
 	/* set where uspace execution starts */
Index: kernel/arch/ia32/include/mm/as.h
===================================================================
--- kernel/arch/ia32/include/mm/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ia32/include/mm/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -43,6 +43,4 @@
 #define USER_ADDRESS_SPACE_END_ARCH      UINT32_C(0x7fffffff)
 
-#define USTACK_ADDRESS_ARCH  (USER_ADDRESS_SPACE_END_ARCH - (PAGE_SIZE - 1))
-
 typedef struct {
 } as_arch_t;
Index: kernel/arch/ia32/src/proc/scheduler.c
===================================================================
--- kernel/arch/ia32/src/proc/scheduler.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ia32/src/proc/scheduler.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -58,5 +58,5 @@
 void before_thread_runs_arch(void)
 {
-	uintptr_t kstk = (uintptr_t) &THREAD->kstack[THREAD_STACK_SIZE];
+	uintptr_t kstk = (uintptr_t) &THREAD->kstack[STACK_SIZE];
 	
 	if (CPU->arch.fi.bits.sep) {
Index: kernel/arch/ia32/src/userspace.c
===================================================================
--- kernel/arch/ia32/src/userspace.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ia32/src/userspace.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -76,5 +76,5 @@
 		:
 		: [udata_des] "i" (GDT_SELECTOR(UDATA_DES) | PL_USER),
-		  [stack_size] "r" ((uint8_t *) kernel_uarg->uspace_stack + THREAD_STACK_SIZE),
+		  [stack_size] "r" ((uint8_t *) kernel_uarg->uspace_stack + STACK_SIZE),
 		  [ipl] "r" (ipl),
 		  [utext_des] "i" (GDT_SELECTOR(UTEXT_DES) | PL_USER),
Index: kernel/arch/ia64/include/arch.h
===================================================================
--- kernel/arch/ia64/include/arch.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ia64/include/arch.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -36,6 +36,4 @@
 #define KERN_ia64_ARCH_H_
 
-#define LOADED_PROG_STACK_PAGES_NO 2
-
 #include <arch/drivers/ski.h>
 
Index: kernel/arch/ia64/include/asm.h
===================================================================
--- kernel/arch/ia64/include/asm.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ia64/include/asm.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -131,5 +131,5 @@
 NO_TRACE static inline uintptr_t get_stack_base(void)
 {
-	uint64_t v;
+	uint64_t value;
 	
 	/*
@@ -152,8 +152,8 @@
 	asm volatile (
 		"mov %[value] = r12"
-		: [value] "=r" (v)
-	);
-	
-	return (v & (~(STACK_SIZE - 1)));
+		: [value] "=r" (value)
+	);
+	
+	return (value & (~(STACK_SIZE - 1)));
 }
 
Index: kernel/arch/ia64/include/mm/as.h
===================================================================
--- kernel/arch/ia64/include/mm/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ia64/include/mm/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -38,10 +38,10 @@
 #define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH  0
 
-#define KERNEL_ADDRESS_SPACE_START_ARCH  ((unsigned long) 0xe000000000000000ULL)
-#define KERNEL_ADDRESS_SPACE_END_ARCH    ((unsigned long) 0xffffffffffffffffULL)
-#define USER_ADDRESS_SPACE_START_ARCH    ((unsigned long) 0x0000000000000000ULL)
-#define USER_ADDRESS_SPACE_END_ARCH      ((unsigned long) 0xdfffffffffffffffULL)
+#define KERNEL_ADDRESS_SPACE_START_ARCH  UINT64_C(0xe000000000000000)
+#define KERNEL_ADDRESS_SPACE_END_ARCH    UINT64_C(0xffffffffffffffff)
+#define USER_ADDRESS_SPACE_START_ARCH    UINT64_C(0x0000000000000000)
+#define USER_ADDRESS_SPACE_END_ARCH      UINT64_C(0xdfffffffffffffff)
 
-#define USTACK_ADDRESS_ARCH  0x0000000ff0000000ULL
+#define USTACK_ADDRESS_ARCH  UINT64_C(0x0000000ff0000000)
 
 typedef struct {
Index: kernel/arch/ia64/include/mm/frame.h
===================================================================
--- kernel/arch/ia64/include/mm/frame.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ia64/include/mm/frame.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -49,6 +49,4 @@
 #define physmem_print()
 
-#define ARCH_STACK_FRAMES TWO_FRAMES
-
 #endif /* __ASM__ */
 #endif /* KERNEL */
Index: kernel/arch/ia64/src/ia64.c
===================================================================
--- kernel/arch/ia64/src/ia64.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ia64/src/ia64.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -250,7 +250,7 @@
 
 	switch_to_userspace((uintptr_t) kernel_uarg->uspace_entry,
-	    ((uintptr_t) kernel_uarg->uspace_stack) + PAGE_SIZE -
+	    ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE -
 	    ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT),
-	    ((uintptr_t) kernel_uarg->uspace_stack) + PAGE_SIZE,
+	    ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE,
 	    (uintptr_t) kernel_uarg->uspace_uarg, psr.value, rsc.value);
 
Index: kernel/arch/ia64/src/proc/scheduler.c
===================================================================
--- kernel/arch/ia64/src/proc/scheduler.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ia64/src/proc/scheduler.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -86,6 +86,6 @@
 		"bsw.1\n"
 		:
-		: "r" (&THREAD->kstack[THREAD_STACK_SIZE]),
-		  "r" (&THREAD->kstack[THREAD_STACK_SIZE - SP_DELTA])
+		: "r" (&THREAD->kstack[STACK_SIZE]),
+		  "r" (&THREAD->kstack[STACK_SIZE - SP_DELTA])
 		);
 }
Index: kernel/arch/mips32/include/mm/as.h
===================================================================
--- kernel/arch/mips32/include/mm/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/mips32/include/mm/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -38,10 +38,8 @@
 #define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH  0
 
-#define KERNEL_ADDRESS_SPACE_START_ARCH		(unsigned long) 0x80000000
-#define KERNEL_ADDRESS_SPACE_END_ARCH		(unsigned long) 0x9fffffff
-#define USER_ADDRESS_SPACE_START_ARCH		(unsigned long) 0x00000000
-#define USER_ADDRESS_SPACE_END_ARCH		(unsigned long) 0x7fffffff
-
-#define USTACK_ADDRESS_ARCH	(0x80000000 - PAGE_SIZE)
+#define KERNEL_ADDRESS_SPACE_START_ARCH  UINT32_C(0x80000000)
+#define KERNEL_ADDRESS_SPACE_END_ARCH    UINT32_C(0x9fffffff)
+#define USER_ADDRESS_SPACE_START_ARCH    UINT32_C(0x00000000)
+#define USER_ADDRESS_SPACE_END_ARCH      UINT32_C(0x7fffffff)
 
 typedef struct {
Index: kernel/arch/mips32/src/mips32.c
===================================================================
--- kernel/arch/mips32/src/mips32.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/mips32/src/mips32.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -220,5 +220,5 @@
 	    cp0_status_um_bit | cp0_status_ie_enabled_bit));
 	cp0_epc_write((uintptr_t) kernel_uarg->uspace_entry);
-	userspace_asm(((uintptr_t) kernel_uarg->uspace_stack + PAGE_SIZE), 
+	userspace_asm(((uintptr_t) kernel_uarg->uspace_stack + STACK_SIZE),
 	    (uintptr_t) kernel_uarg->uspace_uarg,
 	    (uintptr_t) kernel_uarg->uspace_entry);
@@ -235,6 +235,6 @@
 void before_thread_runs_arch(void)
 {
-	supervisor_sp = (uintptr_t) &THREAD->kstack[THREAD_STACK_SIZE -
-	    SP_DELTA];
+	supervisor_sp =
+	    (uintptr_t) &THREAD->kstack[STACK_SIZE - SP_DELTA];
 }
 
Index: kernel/arch/ppc32/include/boot/boot.h
===================================================================
--- kernel/arch/ppc32/include/boot/boot.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ppc32/include/boot/boot.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -37,7 +37,4 @@
 
 #define BOOT_OFFSET  0x8000
-
-/* Temporary stack size for boot process */
-#define TEMP_STACK_SIZE  0x1000
 
 #define TASKMAP_MAX_RECORDS        32
Index: kernel/arch/ppc32/include/istate.h
===================================================================
--- kernel/arch/ppc32/include/istate.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ppc32/include/istate.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -73,5 +73,5 @@
 	uint32_t cr;
 	uint32_t pc;
-	uint32_t srr1;
+	uint32_t msr;
 	uint32_t lr;
 	uint32_t ctr;
@@ -90,10 +90,8 @@
 /** Return true if exception happened while in userspace
  *
- * The contexts of MSR register was stored in SRR1.
- *
  */
 NO_TRACE static inline int istate_from_uspace(istate_t *istate)
 {
-	return (istate->srr1 & MSR_PR) != 0;
+	return (istate->msr & MSR_PR) != 0;
 }
 
Index: kernel/arch/ppc32/include/mm/as.h
===================================================================
--- kernel/arch/ppc32/include/mm/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ppc32/include/mm/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -38,10 +38,8 @@
 #define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH  0
 
-#define KERNEL_ADDRESS_SPACE_START_ARCH  ((unsigned long) 0x80000000)
-#define KERNEL_ADDRESS_SPACE_END_ARCH    ((unsigned long) 0xffffffff)
-#define USER_ADDRESS_SPACE_START_ARCH    ((unsigned long) 0x00000000)
-#define USER_ADDRESS_SPACE_END_ARCH      ((unsigned long) 0x7fffffff)
-
-#define USTACK_ADDRESS_ARCH  (0x7fffffff - (PAGE_SIZE - 1))
+#define KERNEL_ADDRESS_SPACE_START_ARCH  UINT32_C(0x80000000)
+#define KERNEL_ADDRESS_SPACE_END_ARCH    UINT32_C(0xffffffff)
+#define USER_ADDRESS_SPACE_START_ARCH    UINT32_C(0x00000000)
+#define USER_ADDRESS_SPACE_END_ARCH      UINT32_C(0x7fffffff)
 
 typedef struct {
Index: kernel/arch/ppc32/src/boot/boot.S
===================================================================
--- kernel/arch/ppc32/src/boot/boot.S	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ppc32/src/boot/boot.S	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -28,5 +28,5 @@
 
 #include <arch/asm/regname.h>
-#include <arch/boot/boot.h>
+#include <config.h>
 
 .section K_TEXT_START, "ax"
@@ -56,4 +56,4 @@
 .align 12
 kernel_stack_bottom:
-	.space TEMP_STACK_SIZE
+	.space STACK_SIZE
 kernel_stack:
Index: kernel/arch/ppc32/src/mm/tlb.c
===================================================================
--- kernel/arch/ppc32/src/mm/tlb.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ppc32/src/mm/tlb.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -223,6 +223,7 @@
 		switch (pfrc) {
 		case AS_PF_FAULT:
-			goto fail;
-			break;
+			page_table_unlock(as, true);
+			pht_refill_fail(badvaddr, istate);
+			return;
 		case AS_PF_DEFER:
 			/*
@@ -242,9 +243,4 @@
 	
 	page_table_unlock(as, true);
-	return;
-	
-fail:
-	page_table_unlock(as, true);
-	pht_refill_fail(badvaddr, istate);
 }
 
Index: kernel/arch/ppc32/src/ppc32.c
===================================================================
--- kernel/arch/ppc32/src/ppc32.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ppc32/src/ppc32.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -265,6 +265,5 @@
 {
 	userspace_asm((uintptr_t) kernel_uarg->uspace_uarg,
-	    (uintptr_t) kernel_uarg->uspace_stack +
-	    THREAD_STACK_SIZE - SP_DELTA,
+	    (uintptr_t) kernel_uarg->uspace_stack + STACK_SIZE - SP_DELTA,
 	    (uintptr_t) kernel_uarg->uspace_entry);
 	
Index: kernel/arch/ppc32/src/proc/scheduler.c
===================================================================
--- kernel/arch/ppc32/src/proc/scheduler.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/ppc32/src/proc/scheduler.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -55,5 +55,5 @@
 	asm volatile (
 		"mtsprg0 %[ksp]\n"
-		:: [ksp] "r" (KA2PA(&THREAD->kstack[THREAD_STACK_SIZE - SP_DELTA]))
+		:: [ksp] "r" (KA2PA(&THREAD->kstack[STACK_SIZE - SP_DELTA]))
 	);
 }
Index: kernel/arch/sparc64/include/mm/sun4u/as.h
===================================================================
--- kernel/arch/sparc64/include/mm/sun4u/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/sparc64/include/mm/sun4u/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup sparc64mm	
+/** @addtogroup sparc64mm
  * @{
  */
@@ -38,12 +38,10 @@
 #include <arch/mm/tte.h>
 
-#define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH	1
+#define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH  1
 
-#define KERNEL_ADDRESS_SPACE_START_ARCH		(unsigned long) 0x0000000000000000
-#define KERNEL_ADDRESS_SPACE_END_ARCH		(unsigned long) 0xffffffffffffffff
-#define USER_ADDRESS_SPACE_START_ARCH		(unsigned long) 0x0000000000000000
-#define USER_ADDRESS_SPACE_END_ARCH		(unsigned long) 0xffffffffffffffff
-
-#define USTACK_ADDRESS_ARCH	(0xffffffffffffffffULL - (PAGE_SIZE - 1))
+#define KERNEL_ADDRESS_SPACE_START_ARCH  UINT64_C(0x0000000000000000)
+#define KERNEL_ADDRESS_SPACE_END_ARCH    UINT64_C(0xffffffffffffffff)
+#define USER_ADDRESS_SPACE_START_ARCH    UINT64_C(0x0000000000000000)
+#define USER_ADDRESS_SPACE_END_ARCH      UINT64_C(0xffffffffffffffff)
 
 #ifdef CONFIG_TSB
Index: kernel/arch/sparc64/include/mm/sun4v/as.h
===================================================================
--- kernel/arch/sparc64/include/mm/sun4v/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/arch/sparc64/include/mm/sun4v/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -40,12 +40,10 @@
 #include <arch/mm/tsb.h>
 
-#define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH	1
+#define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH  1
 
-#define KERNEL_ADDRESS_SPACE_START_ARCH		(unsigned long) 0x0000000000000000
-#define KERNEL_ADDRESS_SPACE_END_ARCH		(unsigned long) 0xffffffffffffffff
-#define USER_ADDRESS_SPACE_START_ARCH		(unsigned long) 0x0000000000000000
-#define USER_ADDRESS_SPACE_END_ARCH		(unsigned long) 0xffffffffffffffff
-
-#define USTACK_ADDRESS_ARCH	(0xffffffffffffffffULL - (PAGE_SIZE - 1))
+#define KERNEL_ADDRESS_SPACE_START_ARCH  UINT64_C(0x0000000000000000)
+#define KERNEL_ADDRESS_SPACE_END_ARCH    UINT64_C(0xffffffffffffffff)
+#define USER_ADDRESS_SPACE_START_ARCH    UINT64_C(0x0000000000000000)
+#define USER_ADDRESS_SPACE_END_ARCH      UINT64_C(0xffffffffffffffff)
 
 #ifdef CONFIG_TSB
Index: kernel/generic/include/config.h
===================================================================
--- kernel/generic/include/config.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/include/config.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -36,11 +36,19 @@
 #define KERN_CONFIG_H_
 
-#include <typedefs.h>
 #include <arch/mm/page.h>
 
-#define STACK_SIZE  PAGE_SIZE
+#define ONE_FRAME    0
+#define TWO_FRAMES   1
+#define FOUR_FRAMES  2
+
+#define STACK_FRAMES  TWO_FRAMES
+#define STACK_SIZE    ((1 << STACK_FRAMES) << PAGE_WIDTH)
 
 #define CONFIG_INIT_TASKS        32
 #define CONFIG_TASK_NAME_BUFLEN  32
+
+#ifndef __ASM__
+
+#include <typedefs.h>
 
 typedef struct {
@@ -80,4 +88,6 @@
 extern ballocs_t ballocs;
 
+#endif /* __ASM__ */
+
 #endif
 
Index: kernel/generic/include/cpu.h
===================================================================
--- kernel/generic/include/cpu.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/include/cpu.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -41,6 +41,4 @@
 #include <arch/cpu.h>
 #include <arch/context.h>
-
-#define CPU_STACK_SIZE  STACK_SIZE
 
 /** CPU structure.
Index: kernel/generic/include/mm/as.h
===================================================================
--- kernel/generic/include/mm/as.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/include/mm/as.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -84,5 +84,9 @@
 #define USER_ADDRESS_SPACE_END      USER_ADDRESS_SPACE_END_ARCH
 
-#define USTACK_ADDRESS  USTACK_ADDRESS_ARCH
+#ifdef USTACK_ADDRESS_ARCH
+	#define USTACK_ADDRESS  USTACK_ADDRESS_ARCH
+#else
+	#define USTACK_ADDRESS  (USER_ADDRESS_SPACE_END - (STACK_SIZE - 1))
+#endif
 
 /** Kernel address space. */
Index: kernel/generic/include/mm/frame.h
===================================================================
--- kernel/generic/include/mm/frame.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/include/mm/frame.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -44,15 +44,4 @@
 #include <arch/mm/page.h>
 #include <arch/mm/frame.h>
-
-#define ONE_FRAME    0
-#define TWO_FRAMES   1
-#define FOUR_FRAMES  2
-
-
-#ifdef ARCH_STACK_FRAMES
-	#define STACK_FRAMES  ARCH_STACK_FRAMES
-#else
-	#define STACK_FRAMES  ONE_FRAME
-#endif
 
 /** Maximum number of zones in the system. */
Index: kernel/generic/include/proc/task.h
===================================================================
--- kernel/generic/include/proc/task.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/include/proc/task.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -78,6 +78,6 @@
 	/** Unique identity of task. */
 	task_id_t taskid;
-	/** Task security context. */
-	context_id_t context;
+	/** Task security container. */
+	container_id_t container;
 	
 	/** Number of references (i.e. threads). */
Index: kernel/generic/include/proc/thread.h
===================================================================
--- kernel/generic/include/proc/thread.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/include/proc/thread.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -49,5 +49,4 @@
 #include <sysinfo/abi.h>
 
-#define THREAD_STACK_SIZE   STACK_SIZE
 #define THREAD_NAME_BUFLEN  20
 
Index: kernel/generic/include/proc/uarg.h
===================================================================
--- kernel/generic/include/proc/uarg.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/include/proc/uarg.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -40,5 +40,5 @@
 	void *uspace_entry;
 	void *uspace_stack;
-
+	
 	void (* uspace_thread_function)();
 	void *uspace_thread_arg;
Index: kernel/generic/include/typedefs.h
===================================================================
--- kernel/generic/include/typedefs.h	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/include/typedefs.h	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -64,5 +64,5 @@
 typedef uint64_t thread_id_t;
 typedef uint64_t task_id_t;
-typedef uint32_t context_id_t;
+typedef uint32_t container_id_t;
 
 typedef int32_t inr_t;
Index: kernel/generic/src/interrupt/interrupt.c
===================================================================
--- kernel/generic/src/interrupt/interrupt.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/src/interrupt/interrupt.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -205,6 +205,6 @@
 	 * stack.
 	 */
-	return (istate_t *) ((uint8_t *) thread->kstack + THREAD_STACK_SIZE -
-	    sizeof(istate_t));
+	return (istate_t *) ((uint8_t *)
+	    thread->kstack + STACK_SIZE - sizeof(istate_t));
 }
 
Index: kernel/generic/src/main/main.c
===================================================================
--- kernel/generic/src/main/main.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/src/main/main.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -118,6 +118,4 @@
 #endif
 
-#define CONFIG_STACK_SIZE  ((1 << STACK_FRAMES) * STACK_SIZE)
-
 /** Main kernel routine for bootstrap CPU.
  *
@@ -139,5 +137,5 @@
 	config.kernel_size = ALIGN_UP(hardcoded_ktext_size +
 	    hardcoded_kdata_size, PAGE_SIZE);
-	config.stack_size = CONFIG_STACK_SIZE;
+	config.stack_size = STACK_SIZE;
 	
 	/* Initialy the stack is placed just after the kernel */
@@ -165,6 +163,6 @@
 	
 	context_save(&ctx);
-	context_set(&ctx, FADDR(main_bsp_separated_stack), config.stack_base,
-	    THREAD_STACK_SIZE);
+	context_set(&ctx, FADDR(main_bsp_separated_stack),
+	    config.stack_base, STACK_SIZE);
 	context_restore(&ctx);
 	/* not reached */
@@ -323,5 +321,5 @@
 	context_save(&CPU->saved_context);
 	context_set(&CPU->saved_context, FADDR(main_ap_separated_stack),
-	    (uintptr_t) CPU->stack, CPU_STACK_SIZE);
+	    (uintptr_t) CPU->stack, STACK_SIZE);
 	context_restore(&CPU->saved_context);
 	/* not reached */
Index: kernel/generic/src/proc/program.c
===================================================================
--- kernel/generic/src/proc/program.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/src/proc/program.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -54,8 +54,4 @@
 #include <proc/program.h>
 
-#ifndef LOADED_PROG_STACK_PAGES_NO
-#define LOADED_PROG_STACK_PAGES_NO 1
-#endif
-
 /**
  * Points to the binary image used as the program loader. All non-initial
@@ -90,10 +86,10 @@
 	
 	/*
-	 * Create the data address space area.
+	 * Create the stack address space area.
 	 */
 	as_area_t *area = as_area_create(as,
 	    AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE,
-	    LOADED_PROG_STACK_PAGES_NO * PAGE_SIZE, USTACK_ADDRESS,
-	    AS_AREA_ATTR_NONE, &anon_backend, NULL);
+	    STACK_SIZE, USTACK_ADDRESS, AS_AREA_ATTR_NONE,
+	    &anon_backend, NULL);
 	if (!area)
 		return ENOMEM;
Index: kernel/generic/src/proc/scheduler.c
===================================================================
--- kernel/generic/src/proc/scheduler.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/src/proc/scheduler.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -376,5 +376,5 @@
 	context_save(&CPU->saved_context);
 	context_set(&CPU->saved_context, FADDR(scheduler_separated_stack),
-	    (uintptr_t) CPU->stack, CPU_STACK_SIZE);
+	    (uintptr_t) CPU->stack, STACK_SIZE);
 	context_restore(&CPU->saved_context);
 	
Index: kernel/generic/src/proc/thread.c
===================================================================
--- kernel/generic/src/proc/thread.c	(revision bcaca552f9366415c4c6153007a1623ad1e99b87)
+++ kernel/generic/src/proc/thread.c	(revision 26aafe8d909ecb61306a77910aeb374da3814391)
@@ -68,10 +68,4 @@
 #include <errno.h>
 
-
-#ifndef LOADED_PROG_STACK_PAGES_NO
-#define LOADED_PROG_STACK_PAGES_NO 1
-#endif
-
-
 /** Thread states */
 const char *thread_states[] = {
@@ -300,5 +294,5 @@
 	
 	/* Not needed, but good for debugging */
-	memsetb(thread->kstack, THREAD_STACK_SIZE * 1 << STACK_FRAMES, 0);
+	memsetb(thread->kstack, STACK_SIZE, 0);
 	
 	irq_spinlock_lock(&tidlock, true);
@@ -308,5 +302,5 @@
 	context_save(&thread->saved_context);
 	context_set(&thread->saved_context, FADDR(cushion),
-	    (uintptr_t) thread->kstack, THREAD_STACK_SIZE);
+	    (uintptr_t) thread->kstack, STACK_SIZE);
 	
 	the_initialize((the_t *) thread->kstack);
@@ -605,5 +599,5 @@
 		printf("%-8" PRIu64 " %-14s %10p %-8s %10p %-5" PRIu32 "\n",
 		    thread->tid, name, thread, thread_states[thread->state],
-		    thread->task, thread->task->context);
+		    thread->task, thread->task->container);
 #endif
 	
@@ -617,5 +611,5 @@
 		printf("%-8" PRIu64 " %-14s %18p %-8s %18p %-5" PRIu32 "\n",
 		    thread->tid, name, thread, thread_states[thread->state],
-		    thread->task, thread->task->context);
+		    thread->task, thread->task->container);
 #endif
 	
@@ -658,5 +652,5 @@
 	else
 		printf("[id    ] [name        ] [address ] [state ] [task    ]"
-		    " [ctx]\n");
+		    " [ctn]\n");
 #endif
 	
@@ -667,5 +661,5 @@
 	} else
 		printf("[id    ] [name        ] [address         ] [state ]"
-		    " [task            ] [ctx]\n");
+		    " [task            ] [ctn]\n");
 #endif
 	
