#define STACK_TOP \
   (current->personality & ADDR_LIMIT_32BIT ? 0x80000000 : 0x00120000000UL)
 
+#define STACK_TOP_MAX  0x00120000000UL
+
 #endif
 
 #endif /* __A_OUT_GNU_H__ */
 
 #ifdef __KERNEL__
 #define STACK_TOP      ((current->personality == PER_LINUX_32BIT) ? \
                         TASK_SIZE : TASK_SIZE_26)
+#define STACK_TOP_MAX  TASK_SIZE
 #endif
 
 #ifndef LIBRARY_START_TEXT
 
 
 #ifdef __KERNEL__
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 #endif
 
 #ifndef LIBRARY_START_TEXT
 
 #ifdef __KERNEL__
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 #endif
 
 
 
 /* grabbed from the intel stuff  */   
 #define STACK_TOP TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 
 struct exec
 
  */
 #define BRK_BASE                       __UL(2 * 1024 * 1024 + PAGE_SIZE)
 #define STACK_TOP                      __UL(2 * 1024 * 1024)
+#define STACK_TOP_MAX  STACK_TOP
 
 /* userspace process size */
 #ifdef CONFIG_MMU
 
 #ifdef __KERNEL__
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 #endif
 
 
 #ifdef __KERNEL__
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 #endif
 
 
 /* The absolute hard limit for stack size is 1/2 of the mappable space in the region */
 #define MAX_USER_STACK_SIZE    (RGN_MAP_LIMIT/2)
 #define STACK_TOP              (0x6000000000000000UL + RGN_MAP_LIMIT)
+#define STACK_TOP_MAX          STACK_TOP
 #endif
 
 /* Make a default stack size of 2GiB */
 
 #ifdef __KERNEL__
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 #endif
 
 
 #ifdef __KERNEL__
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 #endif
 
 
 #ifdef CONFIG_64BIT
 #define STACK_TOP      (current->thread.mflags & MF_32BIT_ADDR ? TASK_SIZE32 : TASK_SIZE)
 #endif
+#define STACK_TOP_MAX  TASK_SIZE
 
 #endif
 
 
  * prumpf */
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  DEFAULT_TASK_SIZE
 
 #endif
 
 
 #define STACK_TOP (test_thread_flag(TIF_32BIT) ? \
                   STACK_TOP_USER32 : STACK_TOP_USER64)
 
+#define STACK_TOP_MAX STACK_TOP_USER64
+
 #else /* __powerpc64__ */
 
 #define STACK_TOP TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 #endif /* __powerpc64__ */
 #endif /* __KERNEL__ */
 
 #ifdef __KERNEL__
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  DEFAULT_TASK_SIZE
 
 #endif
 
 
 #ifdef __KERNEL__
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 #endif
 
 
 #ifdef __KERNEL__
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 #endif
 
 
 #include <asm/page.h>
 
 #define STACK_TOP      (PAGE_OFFSET - PAGE_SIZE)
+#define STACK_TOP_MAX  STACK_TOP
 
 #endif /* __KERNEL__ */
 
 
 #define STACK_TOP (test_thread_flag(TIF_32BIT) ? \
                   STACK_TOP32 : STACK_TOP64)
 
+#define STACK_TOP_MAX STACK_TOP64
+
 #endif
 
 #endif /* !(__ASSEMBLY__) */
 
 #define STACK_TOP \
        CHOOSE_MODE((honeypot ? host_task_size : task_size), task_size)
 
+#define STACK_TOP_MAX  STACK_TOP
+
 #endif
 
 
 #ifdef __KERNEL__
 #include <linux/thread_info.h>
-#define STACK_TOP TASK_SIZE
+#define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  TASK_SIZE64
 #endif
 
 #endif /* __A_OUT_GNU_H__ */
 
 /* Note: the kernel needs the a.out definitions, even if only ELF is used. */
 
 #define STACK_TOP      TASK_SIZE
+#define STACK_TOP_MAX  STACK_TOP
 
 struct exec
 {