Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 623703f6 authored by David Woodhouse's avatar David Woodhouse Committed by Paul Mackerras
Browse files

[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: default avatarDavid Woodhouse <dwmw2@infradead.org>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 9687c587
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -368,7 +368,7 @@ save_user_nvgprs_cont:
	b	6b

save_user_nvgprs:
	ld	r8,TI_SIGFRAME(r12)
	lwz	r8,TI_SIGFRAME(r12)

.macro savewords start, end
  1:	stw \start,4*(\start)(r8)
@@ -386,11 +386,11 @@ save_user_nvgprs:
	
save_user_nvgprs_fault:
	li	r3,11		/* SIGSEGV */
	ld	r4,TI_TASK(r12)
	lwz	r4,TI_TASK(r12)
	bl	force_sigsegv

	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
	
#ifdef SHOW_SYSCALLS