提交 623703f6 编写于 作者: D David Woodhouse 提交者: Paul Mackerras

[PATCH] Fix code that saves NVGPRS in 32-bit signal frame

On Thu, 2005-11-24 at 12:51 +0000, David Woodhouse wrote:
> Somehow this one slipped through the cracks; when we ended up in
> do_signal() on a 32-bit kernel but without having the caller-saved
> registers into the regs, we didn't set the TIF_SAVE_NVGPRS flag to
> ensure they got saved later.

Oh, and if we actually set the flag, then we fairly quickly find out
that I was a bit overzealous in copying code from entry_64.S ... :)
Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
Signed-off-by: NPaul Mackerras <paulus@samba.org>
上级 9687c587
...@@ -368,7 +368,7 @@ save_user_nvgprs_cont: ...@@ -368,7 +368,7 @@ save_user_nvgprs_cont:
b 6b b 6b
save_user_nvgprs: save_user_nvgprs:
ld r8,TI_SIGFRAME(r12) lwz r8,TI_SIGFRAME(r12)
.macro savewords start, end .macro savewords start, end
1: stw \start,4*(\start)(r8) 1: stw \start,4*(\start)(r8)
...@@ -386,11 +386,11 @@ save_user_nvgprs: ...@@ -386,11 +386,11 @@ save_user_nvgprs:
save_user_nvgprs_fault: save_user_nvgprs_fault:
li r3,11 /* SIGSEGV */ li r3,11 /* SIGSEGV */
ld r4,TI_TASK(r12) lwz r4,TI_TASK(r12)
bl force_sigsegv bl force_sigsegv
rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */ rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
ld r9,TI_FLAGS(r12) lwz r9,TI_FLAGS(r12)
b save_user_nvgprs_cont b save_user_nvgprs_cont
#ifdef SHOW_SYSCALLS #ifdef SHOW_SYSCALLS
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册