X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fx86_64%2Fkernel%2Fentry.S;h=9111d55c37644706e4cdebb876107634a1593f2c;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=4c599eea1c7c653144c6fc10f0c4c278e53f6140;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index 4c599eea1..9111d55c3 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S @@ -136,6 +136,10 @@ /* rdi: prev */ ENTRY(ret_from_fork) CFI_DEFAULT_STACK + push kernel_eflags(%rip) + CFI_ADJUST_CFA_OFFSET 4 + popf # reset kernel eflags + CFI_ADJUST_CFA_OFFSET -4 call schedule_tail GET_THREAD_INFO(%rcx) testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT),threadinfo_flags(%rcx) @@ -540,7 +544,7 @@ iret_label: /* force a signal here? this matches i386 behaviour */ /* running with kernel gs */ bad_iret: - movq $11,%rdi /* SIGSEGV */ + movq $-9999,%rdi /* better code? */ sti jmp do_exit .previous @@ -596,7 +600,7 @@ retint_kernel: */ .macro apicinterrupt num,func INTR_FRAME - pushq $~(\num) + pushq $\num-256 CFI_ADJUST_CFA_OFFSET 8 interrupt \func jmp ret_from_intr