Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jan 2018 22:19:50 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r328179 - head/sys/powerpc/aim
Message-ID:  <201801192219.w0JMJo5a039241@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Fri Jan 19 22:19:50 2018
New Revision: 328179
URL: https://svnweb.freebsd.org/changeset/base/328179

Log:
  On AIM systems without a software-managed SLB, such as POWER9 systems using
  either hardware segment tables or radix-tree-based page tables, do not try
  to install SLB entries at trap boundaries.

Modified:
  head/sys/powerpc/aim/trap_subr64.S

Modified: head/sys/powerpc/aim/trap_subr64.S
==============================================================================
--- head/sys/powerpc/aim/trap_subr64.S	Fri Jan 19 22:17:13 2018	(r328178)
+++ head/sys/powerpc/aim/trap_subr64.S	Fri Jan 19 22:19:50 2018	(r328179)
@@ -58,6 +58,9 @@
 restore_usersrs:
 	GET_CPUINFO(%r28)
 	ld	%r28,PC_USERSLB(%r28)
+	cmpdi	%r28, 0			/* If user SLB pointer NULL, exit */
+	beqlr
+
 	li	%r29, 0			/* Set the counter to zero */
 
 	slbia
@@ -83,6 +86,12 @@ restore_usersrs:
 restore_kernsrs:
 	GET_CPUINFO(%r28)
 	addi	%r28,%r28,PC_KERNSLB
+	ld	%r29,16(%r28)		/* One past USER_SLB_SLOT */
+	cmpdi	%r28,0
+	beqlr				/* If first kernel entry is invalid,
+					 * SLBs not in use, so exit early */
+
+	/* Otherwise, set up SLBs */
 	li	%r29, 0			/* Set the counter to zero */
 
 	slbia



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