Index: arch/ia64/include/mm/frame.h
===================================================================
--- arch/ia64/include/mm/frame.h	(revision 12f952e5ede7776db24778e68228300f61f9d2ce)
+++ arch/ia64/include/mm/frame.h	(revision a82500ce45577f8d8eb985c998aee0e0223090c1)
@@ -30,15 +30,11 @@
 #define __ia64_FRAME_H__
 
-/*
- * Frame is defined to be 64K long.
- * Such a relatively big frame size is used because of kernel stack requirements
- * and organization. Portion of the stack reserved for RSE must be at least 16K
- * long. If the memory stack is to have some space allocated, the next available
- * frame size (i.e. 64K) needs to be used.
- */
-#define FRAME_WIDTH   16	/* 64K */
+#define FRAME_WIDTH   14	/* 64K */
 #define FRAME_SIZE		(1<<FRAME_WIDTH)
 
 extern void frame_arch_init(void);
 
+
+#define ARCH_STACK_FRAMES TWO_FRAMES
+
 #endif
Index: arch/ia64/src/mm/tlb.c
===================================================================
--- arch/ia64/src/mm/tlb.c	(revision 12f952e5ede7776db24778e68228300f61f9d2ce)
+++ arch/ia64/src/mm/tlb.c	(revision a82500ce45577f8d8eb985c998aee0e0223090c1)
@@ -89,5 +89,14 @@
 {
 	/* TODO */
-}
+	tlb_invalidate_all();
+}
+
+
+void tlb_invalidate_pages(asid_t asid, __address page, count_t cnt)
+{
+
+
+}
+
 
 /** Insert data into data translation cache.
Index: arch/ia64/src/proc/scheduler.c
===================================================================
--- arch/ia64/src/proc/scheduler.c	(revision 12f952e5ede7776db24778e68228300f61f9d2ce)
+++ arch/ia64/src/proc/scheduler.c	(revision a82500ce45577f8d8eb985c998aee0e0223090c1)
@@ -63,6 +63,8 @@
 		"bsw.1\n"
 		:
-		: "r" (((__address) THREAD->kstack) + ALIGN_UP(sizeof(the_t), REGISTER_STACK_ALIGNMENT)),
-		  "r" (&THREAD->kstack[THREAD_STACK_SIZE - SP_DELTA]));
+		: /*"r" (((__address) THREAD->kstack) + ALIGN_UP(sizeof(the_t), REGISTER_STACK_ALIGNMENT)),*/
+		  "r" (&THREAD->kstack[THREAD_STACK_SIZE]),
+		  "r" (&THREAD->kstack[THREAD_STACK_SIZE - SP_DELTA])
+		);
 }
 
Index: generic/include/mm/frame.h
===================================================================
--- generic/include/mm/frame.h	(revision 12f952e5ede7776db24778e68228300f61f9d2ce)
+++ generic/include/mm/frame.h	(revision a82500ce45577f8d8eb985c998aee0e0223090c1)
@@ -37,6 +37,15 @@
 #include <mm/buddy.h>
 #include <arch/mm/page.h>
+#include <arch/mm/frame.h>
 
 #define ONE_FRAME	0
+#define TWO_FRAMES	1
+
+#ifdef ARCH_STACK_FRAMES
+#define STACK_FRAMES ARCH_STACK_FRAMES
+#else
+#define STACK_FRAMES ONE_FRAME
+#endif
+
 
 #define ZONES_MAX       16      /**< Maximum number of zones in system */
Index: generic/src/proc/thread.c
===================================================================
--- generic/src/proc/thread.c	(revision 12f952e5ede7776db24778e68228300f61f9d2ce)
+++ generic/src/proc/thread.c	(revision a82500ce45577f8d8eb985c998aee0e0223090c1)
@@ -117,5 +117,5 @@
 #endif	
 
-	pfn = frame_alloc_rc(ONE_FRAME, FRAME_KA | kmflags,&status);
+	pfn = frame_alloc_rc(STACK_FRAMES, FRAME_KA | kmflags,&status);
 	if (status) {
 #ifdef ARCH_HAS_FPU
