Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Nov 2009 06:12:49 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r199313 - projects/ppc64/sys/powerpc/aim
Message-ID:  <200911160612.nAG6Cnw4059900@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Mon Nov 16 06:12:49 2009
New Revision: 199313
URL: http://svn.freebsd.org/changeset/base/199313

Log:
  Fix AST delivery -- td_flags is a 32-bit quantity. There is still a
  strange bug where the first time the userland thread is switched out,
  it is never again switched back in.

Modified:
  projects/ppc64/sys/powerpc/aim/trap_subr64.S

Modified: projects/ppc64/sys/powerpc/aim/trap_subr64.S
==============================================================================
--- projects/ppc64/sys/powerpc/aim/trap_subr64.S	Mon Nov 16 06:10:24 2009	(r199312)
+++ projects/ppc64/sys/powerpc/aim/trap_subr64.S	Mon Nov 16 06:12:49 2009	(r199313)
@@ -492,13 +492,13 @@ CNAME(trapexit):
 	andi.	%r3,%r3,~PSL_EE@l
 	mtmsr	%r3
 /* Test AST pending: */
-	ld	%r5,FRAME_SRR1+8(%r1)
+	ld	%r5,FRAME_SRR1+48(%r1)
 	mtcr	%r5
 	bf	17,1f			/* branch if PSL_PR is false */
 
 	GET_CPUINFO(%r3)		/* get per-CPU pointer */
 	ld	%r4, PC_CURTHREAD(%r3)	/* deref to get curthread */
-	ld	%r4, TD_FLAGS(%r4)	/* get thread flags value */
+	lwz	%r4, TD_FLAGS(%r4)	/* get thread flags value */
 	lis	%r5, (TDF_ASTPENDING|TDF_NEEDRESCHED)@h
 	ori	%r5,%r5, (TDF_ASTPENDING|TDF_NEEDRESCHED)@l
 	and.	%r4,%r4,%r5



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