Print this page
8956 Implement KPTI
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

@@ -24,11 +24,11 @@
  * Use is subject to license terms.
  *
  * Copyright (c) 2010, Intel Corporation.
  * All rights reserved.
  *
- * Copyright 2013 Joyent, Inc.  All rights reserved.
+ * Copyright 2018 Joyent, Inc.  All rights reserved.
  */
 
 /*
  * This file contains the functionality that mimics the boot operations
  * on SPARC systems or the old boot.bin/multiboot programs on x86 systems.

@@ -845,10 +845,16 @@
         static int firsttime = 1;
         bios_func_t bios_func = (bios_func_t)(void *)(uintptr_t)0x5000;
         bios_regs_t br;
 
         /*
+         * We're about to disable paging; we shouldn't be PCID enabled.
+         */
+        if (getcr4() & CR4_PCIDE)
+                prom_panic("do_bsys_doint() with PCID enabled\n");
+
+        /*
          * The first time we do this, we have to copy the pre-packaged
          * low memory bios call code image into place.
          */
         if (firsttime) {
                 extern char bios_image[];