* [uml-devel] Subject: [PATCH 68/91] um: increase stack growth cushion in pagefault
@ 2011-08-18 19:10 ` Al Viro
0 siblings, 0 replies; 2+ messages in thread
From: Al Viro @ 2011-08-18 19:10 UTC (permalink / raw)
To: richard; +Cc: linux-kernel, user-mode-linux-devel
analog of [PATCH] i386: let usermode execute the "enter" instruction from
circa 2006.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
arch/x86/um/asm/processor.h | 3 +++
arch/x86/um/asm/processor_32.h | 3 ---
arch/x86/um/asm/processor_64.h | 3 ---
3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/arch/x86/um/asm/processor.h b/arch/x86/um/asm/processor.h
index d3ac1ce..f34c4b2 100644
--- a/arch/x86/um/asm/processor.h
+++ b/arch/x86/um/asm/processor.h
@@ -10,6 +10,9 @@
# include "processor_64.h"
#endif
+#define ARCH_IS_STACKGROW(address) \
+ (address + 65536 + 32 * sizeof(unsigned long) >= UPT_SP(¤t->thread.regs.regs))
+
#include <asm/processor-generic.h>
#endif
diff --git a/arch/x86/um/asm/processor_32.h b/arch/x86/um/asm/processor_32.h
index ae0d189..e5b72fa 100644
--- a/arch/x86/um/asm/processor_32.h
+++ b/arch/x86/um/asm/processor_32.h
@@ -63,9 +63,6 @@ static inline void rep_nop(void)
#define current_text_addr() \
({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; })
-#define ARCH_IS_STACKGROW(address) \
- (address + 32 >= UPT_SP(¤t->thread.regs.regs))
-
#define KSTK_EIP(tsk) KSTK_REG(tsk, EIP)
#define KSTK_ESP(tsk) KSTK_REG(tsk, UESP)
#define KSTK_EBP(tsk) KSTK_REG(tsk, EBP)
diff --git a/arch/x86/um/asm/processor_64.h b/arch/x86/um/asm/processor_64.h
index 6db812b..0186c61 100644
--- a/arch/x86/um/asm/processor_64.h
+++ b/arch/x86/um/asm/processor_64.h
@@ -42,9 +42,6 @@ static inline void arch_copy_thread(struct arch_thread *from,
#define current_text_addr() \
({ void *pc; __asm__("movq $1f,%0\n1:":"=g" (pc)); pc; })
-#define ARCH_IS_STACKGROW(address) \
- (address + 128 >= UPT_SP(¤t->thread.regs.regs))
-
#define KSTK_EIP(tsk) KSTK_REG(tsk, RIP)
#define KSTK_ESP(tsk) KSTK_REG(tsk, RSP)
--
1.7.2.5
------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system,
user administration capabilities and model configuration. Take
the hassle out of deploying and managing Subversion and the
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
^ permalink raw reply related [flat|nested] 2+ messages in thread* Subject: [PATCH 68/91] um: increase stack growth cushion in pagefault
@ 2011-08-18 19:10 ` Al Viro
0 siblings, 0 replies; 2+ messages in thread
From: Al Viro @ 2011-08-18 19:10 UTC (permalink / raw)
To: richard; +Cc: user-mode-linux-devel, linux-kernel
analog of [PATCH] i386: let usermode execute the "enter" instruction from
circa 2006.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
arch/x86/um/asm/processor.h | 3 +++
arch/x86/um/asm/processor_32.h | 3 ---
arch/x86/um/asm/processor_64.h | 3 ---
3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/arch/x86/um/asm/processor.h b/arch/x86/um/asm/processor.h
index d3ac1ce..f34c4b2 100644
--- a/arch/x86/um/asm/processor.h
+++ b/arch/x86/um/asm/processor.h
@@ -10,6 +10,9 @@
# include "processor_64.h"
#endif
+#define ARCH_IS_STACKGROW(address) \
+ (address + 65536 + 32 * sizeof(unsigned long) >= UPT_SP(¤t->thread.regs.regs))
+
#include <asm/processor-generic.h>
#endif
diff --git a/arch/x86/um/asm/processor_32.h b/arch/x86/um/asm/processor_32.h
index ae0d189..e5b72fa 100644
--- a/arch/x86/um/asm/processor_32.h
+++ b/arch/x86/um/asm/processor_32.h
@@ -63,9 +63,6 @@ static inline void rep_nop(void)
#define current_text_addr() \
({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; })
-#define ARCH_IS_STACKGROW(address) \
- (address + 32 >= UPT_SP(¤t->thread.regs.regs))
-
#define KSTK_EIP(tsk) KSTK_REG(tsk, EIP)
#define KSTK_ESP(tsk) KSTK_REG(tsk, UESP)
#define KSTK_EBP(tsk) KSTK_REG(tsk, EBP)
diff --git a/arch/x86/um/asm/processor_64.h b/arch/x86/um/asm/processor_64.h
index 6db812b..0186c61 100644
--- a/arch/x86/um/asm/processor_64.h
+++ b/arch/x86/um/asm/processor_64.h
@@ -42,9 +42,6 @@ static inline void arch_copy_thread(struct arch_thread *from,
#define current_text_addr() \
({ void *pc; __asm__("movq $1f,%0\n1:":"=g" (pc)); pc; })
-#define ARCH_IS_STACKGROW(address) \
- (address + 128 >= UPT_SP(¤t->thread.regs.regs))
-
#define KSTK_EIP(tsk) KSTK_REG(tsk, RIP)
#define KSTK_ESP(tsk) KSTK_REG(tsk, RSP)
--
1.7.2.5
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-08-18 19:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-18 19:10 [uml-devel] Subject: [PATCH 68/91] um: increase stack growth cushion in pagefault Al Viro
2011-08-18 19:10 ` Al Viro
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.