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
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to