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

*** 20,29 **** --- 20,30 ---- */ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright 2018 Joyent, Inc. */ #if defined(__lint)
*** 50,59 **** --- 51,63 ---- movb val, %al; \ outb $0x80; #define DISABLE_PAGING \ + movl %cr4, %eax ;\ + btrl $17, %eax /* clear PCIDE bit */ ;\ + movl %eax, %cr4 ;\ movl %cr0, %eax ;\ btrl $31, %eax /* clear PG bit */ ;\ movl %eax, %cr0 /*
*** 220,229 **** --- 224,234 ---- /* * Disable long mode by: * - shutting down paging (bit 31 of cr0). This will flush the * TLBs. + * - turning off PCID in cr4 * - disabling LME (long mode enable) in EFER (extended feature reg) */ #endif DISABLE_PAGING /* clobbers %eax */