Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Jun 2017 02:11:32 +0000 (UTC)
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r320489 - head/sys/powerpc/booke
Message-ID:  <201706300211.v5U2BWtt044120@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhibbits
Date: Fri Jun 30 02:11:32 2017
New Revision: 320489
URL: https://svnweb.freebsd.org/changeset/base/320489

Log:
  Use the more common Book-E idiom for disabling interrupts.
  
  Book-E has the wrteei/wrtee instructions for writing the PSL_EE bit, ignoring
  all others.  Use this instead of the AIM-typical mtmsr.
  
  MFC with:	r320392

Modified:
  head/sys/powerpc/booke/pmap.c

Modified: head/sys/powerpc/booke/pmap.c
==============================================================================
--- head/sys/powerpc/booke/pmap.c	Fri Jun 30 00:20:48 2017	(r320488)
+++ head/sys/powerpc/booke/pmap.c	Fri Jun 30 02:11:32 2017	(r320489)
@@ -3818,7 +3818,7 @@ tlb1_read_entry(tlb_entry_t *entry, unsigned int slot)
 	KASSERT((entry != NULL), ("%s(): Entry is NULL!", __func__));
 
 	msr = mfmsr();
-	mtmsr(msr & ~PSL_EE);
+	__asm __volatile("wrteei 0");
 
 	mas0 = MAS0_TLBSEL(1) | MAS0_ESEL(slot);
 	mtspr(SPR_MAS0, mas0);
@@ -3865,7 +3865,7 @@ tlb1_write_entry(tlb_entry_t *e, unsigned int idx)
 	//debugf("tlb1_write_entry: mas0 = 0x%08x\n", mas0);
 
 	msr = mfmsr();
-	mtmsr(msr & ~PSL_EE);
+	__asm __volatile("wrteei 0");
 
 	mtspr(SPR_MAS0, mas0);
 	__asm __volatile("isync");



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