mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 00:34:20 +08:00
[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: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
9687c58759
commit
623703f620
@ -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:
|
|||||||
|
|
||||||
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
|
||||||
|
Loading…
Reference in New Issue
Block a user