--- a/usr/src/uts/i86pc/vm/mach_i86mmu.c Thu Oct 27 13:18:49 2005 -0700
+++ b/usr/src/uts/i86pc/vm/mach_i86mmu.c Thu Oct 27 14:59:45 2005 -0700
@@ -578,17 +578,14 @@
static void
set_nxe(void)
{
- uint64_t efer;
-
if (mmu.pt_nx == 0)
return;
/*
* AMD64 EFER is model specific register #0xc0000080 and NXE is bit 11
*/
- (void) rdmsr(MSR_AMD_EFER, &efer);
- efer |= AMD_EFER_NXE;
- wrmsr(MSR_AMD_EFER, &efer);
+ wrmsr(MSR_AMD_EFER, rdmsr(MSR_AMD_EFER) |
+ (uint64_t)(uintptr_t)AMD_EFER_NXE);
}
void (*set_nxe_func)(void) = set_nxe;