Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 May 2014 00:00:01 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-ppc@FreeBSD.org
Subject:   Re: powerpc/183040: commit references a PR
Message-ID:  <201405280000.s4S001E4092946@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR powerpc/183040; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: powerpc/183040: commit references a PR
Date: Tue, 27 May 2014 23:57:26 +0000 (UTC)

 Author: nwhitehorn
 Date: Tue May 27 23:57:22 2014
 New Revision: 266778
 URL: http://svnweb.freebsd.org/changeset/base/266778
 
 Log:
   Repair nested signal handling on PowerPC. The signal trampoline code
   was not allocating space for the parameter save area in the stack frame.
   If the compiler chose to save the argument to the signal handler on the
   stack, it would overwrite the first 32 bits of the sigaction struct with
   it, corrupting it for a subsequent invocation.
   
   PR:		powerpc/183040
   MFC after:	8 days
 
 Modified:
   head/sys/powerpc/powerpc/sigcode32.S
   head/sys/powerpc/powerpc/sigcode64.S
 
 Modified: head/sys/powerpc/powerpc/sigcode32.S
 ==============================================================================
 --- head/sys/powerpc/powerpc/sigcode32.S	Tue May 27 23:39:28 2014	(r266777)
 +++ head/sys/powerpc/powerpc/sigcode32.S	Tue May 27 23:57:22 2014	(r266778)
 @@ -45,9 +45,9 @@
   */
  	.globl	CNAME(sigcode32),CNAME(szsigcode32)
  CNAME(sigcode32):
 -	addi	1,1,-16			/* reserved space for callee */
 +	addi	1,1,-20			/* reserved space for callee */
  	blrl
 -	addi	3,1,16+SF_UC		/* restore sp, and get &frame->sf_uc */
 +	addi	3,1,20+SF_UC		/* restore sp, and get &frame->sf_uc */
  	li	0,SYS_sigreturn
  	sc				/* sigreturn(scp) */
  	li	0,SYS_exit
 
 Modified: head/sys/powerpc/powerpc/sigcode64.S
 ==============================================================================
 --- head/sys/powerpc/powerpc/sigcode64.S	Tue May 27 23:39:28 2014	(r266777)
 +++ head/sys/powerpc/powerpc/sigcode64.S	Tue May 27 23:57:22 2014	(r266778)
 @@ -45,7 +45,7 @@
   */
  	.globl	CNAME(sigcode64),CNAME(szsigcode64)
  CNAME(sigcode64):
 -	addi	1,1,-48			/* reserved space for callee */
 +	addi	1,1,-112		/* reserved space for callee */
  	mflr	2			/* resolve function descriptor */
  	ld	0,0(2)			
  	ld	2,8(2)
 @@ -53,7 +53,7 @@ CNAME(sigcode64):
  
  	blrl
  
 -	addi	3,1,48+SF_UC		/* restore sp, and get &frame->sf_uc */
 +	addi	3,1,112+SF_UC		/* restore sp, and get &frame->sf_uc */
  	li	0,SYS_sigreturn
  	sc				/* sigreturn(scp) */
  	li	0,SYS_exit
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405280000.s4S001E4092946>