]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - arch/x86/mm/fault.c
x86/mm/fault: Allow stack access below %rsp
[linux.git] / arch / x86 / mm / fault.c
index 71d4b9d4d43fdb5efb31287e86aad436b82df654..29525cf21100085424678b20368c726d22b6b4a3 100644 (file)
@@ -1380,18 +1380,6 @@ void do_user_addr_fault(struct pt_regs *regs,
                bad_area(regs, sw_error_code, address);
                return;
        }
-       if (sw_error_code & X86_PF_USER) {
-               /*
-                * Accessing the stack below %sp is always a bug.
-                * The large cushion allows instructions like enter
-                * and pusha to work. ("enter $65535, $31" pushes
-                * 32 pointers and then decrements %sp by 65535.)
-                */
-               if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) {
-                       bad_area(regs, sw_error_code, address);
-                       return;
-               }
-       }
        if (unlikely(expand_stack(vma, address))) {
                bad_area(regs, sw_error_code, address);
                return;