]> git.karo-electronics.de Git - linux-beck.git/commitdiff
x86: split out some macro's and move common code to paranoid_exit, fix
authorAlexander van Heukelum <heukelum@mailshack.com>
Fri, 21 Nov 2008 21:59:52 +0000 (22:59 +0100)
committerIngo Molnar <mingo@elte.hu>
Sat, 22 Nov 2008 08:45:50 +0000 (09:45 +0100)
Impact: fix bootup crash

Even though it tested fine for me, there was still a bug in the
first patch: I have overlooked a call to ptregscall_common. This
patch fixes that, I think, but the code is never executed for
me while running a debian install... (I tested this by putting
an "1:jmp 1b" in there.)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/entry_64.S

index 692c1da61905de1d994614c829745aedcebe890b..e5ddf573ded2bb393940d754ae78a81152abf6dc 100644 (file)
@@ -529,10 +529,13 @@ sysret_signal:
        jc sysret_audit
 #endif
        /* edx: work flags (arg3) */
-       leaq do_notify_resume(%rip),%rax
        leaq -ARGOFFSET(%rsp),%rdi # &pt_regs -> arg1
        xorl %esi,%esi # oldset -> arg2
-       call ptregscall_common
+       SAVE_REST
+       FIXUP_TOP_OF_STACK %r11
+       call do_notify_resume
+       RESTORE_TOP_OF_STACK %r11
+       RESTORE_REST
        movl $_TIF_WORK_MASK,%edi
        /* Use IRET because user could have changed frame. This
           works because ptregscall_common has called FIXUP_TOP_OF_STACK. */