From 19af4c06d3e7e8c839a1d6ff80d822851172bbd8 Mon Sep 17 00:00:00 2001 From: Chuck Ebbert <76306.1226@compuserve.com> Date: Mon, 26 Jun 2006 13:59:50 +0200 Subject: [PATCH] --- yaml --- r: 30523 b: refs/heads/master c: 03fdc2c277afdbd217eccd1ce0cfeff77ebd8b77 h: refs/heads/master i: 30521: edd3215c1b88012c0cd63138bed59c867faeb975 30519: 9f9fe4a7c4a898957ca8343b3374df2248ddbc85 v: v3 --- [refs] | 2 +- trunk/arch/x86_64/mm/fault.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 4242efd94810..f074d263525f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6bfa9bb5195c68f75bd3937e4d77cb0bfe852d0d +refs/heads/master: 03fdc2c277afdbd217eccd1ce0cfeff77ebd8b77 diff --git a/trunk/arch/x86_64/mm/fault.c b/trunk/arch/x86_64/mm/fault.c index 64728898f869..4968a71df4aa 100644 --- a/trunk/arch/x86_64/mm/fault.c +++ b/trunk/arch/x86_64/mm/fault.c @@ -410,8 +410,10 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, if (!(vma->vm_flags & VM_GROWSDOWN)) goto bad_area; if (error_code & 4) { - // XXX: align red zone size with ABI - if (address + 128 < regs->rsp) + /* Allow userspace just enough access below the stack pointer + * to let the 'enter' instruction work. + */ + if (address + 65536 + 32 * sizeof(unsigned long) < regs->rsp) goto bad_area; } if (expand_stack(vma, address))