aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2005-11-24 12:36:20 -0500
committerPaul Mackerras <paulus@samba.org>2006-01-08 22:50:48 -0500
commit623703f620453c798b6fa3eb79ad8ea27bfd302a (patch)
treee2f938f28a42458eb9b23d63721f7415d8239a37
parent9687c587596b54a77f08620595f5686ea35eed97 (diff)
[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>
-rw-r--r--arch/powerpc/kernel/entry_32.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index 8fed9538f188..036b71d2adfc 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -368,7 +368,7 @@ save_user_nvgprs_cont:
368 b 6b 368 b 6b
369 369
370save_user_nvgprs: 370save_user_nvgprs:
371 ld r8,TI_SIGFRAME(r12) 371 lwz r8,TI_SIGFRAME(r12)
372 372
373.macro savewords start, end 373.macro savewords start, end
374 1: stw \start,4*(\start)(r8) 374 1: stw \start,4*(\start)(r8)
@@ -386,11 +386,11 @@ save_user_nvgprs:
386 386
387save_user_nvgprs_fault: 387save_user_nvgprs_fault:
388 li r3,11 /* SIGSEGV */ 388 li r3,11 /* SIGSEGV */
389 ld r4,TI_TASK(r12) 389 lwz r4,TI_TASK(r12)
390 bl force_sigsegv 390 bl force_sigsegv
391 391
392 rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */ 392 rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
393 ld r9,TI_FLAGS(r12) 393 lwz r9,TI_FLAGS(r12)
394 b save_user_nvgprs_cont 394 b save_user_nvgprs_cont
395 395
396#ifdef SHOW_SYSCALLS 396#ifdef SHOW_SYSCALLS