From 589a42d5686a1f08d3a959093686bbe5f85dc85a Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Wed, 30 Aug 2006 19:37:08 +0200 Subject: [PATCH] --- yaml --- r: 33697 b: refs/heads/master c: c05991ed12fd71e539dd8de8f5663450cd0c934c h: refs/heads/master i: 33695: dae2834dad33bae9635f523079f03ef332f6714c v: v3 --- [refs] | 2 +- trunk/arch/x86_64/kernel/entry.S | 3 +++ trunk/arch/x86_64/kernel/head.S | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 1987f28420d7..920532b90c11 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 11012d419cfc0e0f78ca356aca03674217910124 +refs/heads/master: c05991ed12fd71e539dd8de8f5663450cd0c934c diff --git a/trunk/arch/x86_64/kernel/entry.S b/trunk/arch/x86_64/kernel/entry.S index 6f810424df44..aa8d8939abc1 100644 --- a/trunk/arch/x86_64/kernel/entry.S +++ b/trunk/arch/x86_64/kernel/entry.S @@ -973,6 +973,8 @@ ENTRY(kernel_thread) ENDPROC(kernel_thread) child_rip: + pushq $0 # fake return address + CFI_STARTPROC /* * Here we are in the child and the registers are set as they were * at kernel_thread() invocation in the parent. @@ -983,6 +985,7 @@ child_rip: # exit xorl %edi, %edi call do_exit + CFI_ENDPROC ENDPROC(child_rip) /* diff --git a/trunk/arch/x86_64/kernel/head.S b/trunk/arch/x86_64/kernel/head.S index 6df05e6034fa..c9739ca81d06 100644 --- a/trunk/arch/x86_64/kernel/head.S +++ b/trunk/arch/x86_64/kernel/head.S @@ -191,6 +191,7 @@ startup_64: * jump */ movq initial_code(%rip),%rax + pushq $0 # fake return address jmp *%rax /* SMP bootup changes these two */