sync with OpenBSD -current
This commit is contained in:
parent
e58e794ac2
commit
729656abba
61 changed files with 532 additions and 321 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: acpi_wakecode.S,v 1.49 2022/12/01 00:26:15 guenther Exp $ */
|
||||
/* $OpenBSD: acpi_wakecode.S,v 1.50 2024/02/25 22:33:09 guenther Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2001 Takanori Watanabe <takawata@jp.freebsd.org>
|
||||
* Copyright (c) 2001 Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
|
||||
|
@ -267,8 +267,8 @@ _ACPI_TRMP_LABEL(.Lacpi_long_mode_trampoline)
|
|||
wrmsr
|
||||
|
||||
movl $MSR_CSTAR, %ecx
|
||||
movl .Lacpi_saved_cstar, %eax
|
||||
movl .Lacpi_saved_cstar+4, %edx
|
||||
xorl %eax, %eax
|
||||
xorl %edx, %edx
|
||||
wrmsr
|
||||
|
||||
movl $MSR_SFMASK, %ecx
|
||||
|
@ -691,8 +691,6 @@ _ACPI_TRMP_DATA_LABEL(.Lacpi_saved_star)
|
|||
.quad 0
|
||||
_ACPI_TRMP_DATA_LABEL(.Lacpi_saved_lstar)
|
||||
.quad 0
|
||||
_ACPI_TRMP_DATA_LABEL(.Lacpi_saved_cstar)
|
||||
.quad 0
|
||||
_ACPI_TRMP_DATA_LABEL(.Lacpi_saved_sfmask)
|
||||
.quad 0
|
||||
#if NLAPIC > 0
|
||||
|
@ -781,11 +779,6 @@ NENTRY(acpi_savecpu)
|
|||
movl %eax, .Lacpi_saved_star
|
||||
movl %edx, .Lacpi_saved_star+4
|
||||
|
||||
movl $MSR_CSTAR, %ecx
|
||||
rdmsr
|
||||
movl %eax, .Lacpi_saved_cstar
|
||||
movl %edx, .Lacpi_saved_cstar+4
|
||||
|
||||
movl $MSR_LSTAR, %ecx
|
||||
rdmsr
|
||||
movl %eax, .Lacpi_saved_lstar
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: cpu.c,v 1.182 2024/02/24 17:00:05 deraadt Exp $ */
|
||||
/* $OpenBSD: cpu.c,v 1.183 2024/02/25 22:33:09 guenther Exp $ */
|
||||
/* $NetBSD: cpu.c,v 1.1 2003/04/26 18:39:26 fvdl Exp $ */
|
||||
|
||||
/*-
|
||||
|
@ -1184,10 +1184,10 @@ cpu_init_msrs(struct cpu_info *ci)
|
|||
{
|
||||
wrmsr(MSR_STAR,
|
||||
((uint64_t)GSEL(GCODE_SEL, SEL_KPL) << 32) |
|
||||
((uint64_t)GSEL(GUCODE32_SEL, SEL_UPL) << 48));
|
||||
((uint64_t)GSEL(GUDATA_SEL-1, SEL_UPL) << 48));
|
||||
wrmsr(MSR_LSTAR, cpu_meltdown ? (uint64_t)Xsyscall_meltdown :
|
||||
(uint64_t)Xsyscall);
|
||||
wrmsr(MSR_CSTAR, (uint64_t)Xsyscall32);
|
||||
wrmsr(MSR_CSTAR, 0);
|
||||
wrmsr(MSR_SFMASK, PSL_NT|PSL_T|PSL_I|PSL_C|PSL_D|PSL_AC);
|
||||
|
||||
wrmsr(MSR_FSBASE, 0);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: locore.S,v 1.145 2024/02/12 01:18:17 guenther Exp $ */
|
||||
/* $OpenBSD: locore.S,v 1.146 2024/02/25 22:33:09 guenther Exp $ */
|
||||
/* $NetBSD: locore.S,v 1.13 2004/03/25 18:33:17 drochner Exp $ */
|
||||
|
||||
/*
|
||||
|
@ -507,11 +507,6 @@ ENTRY(savectx)
|
|||
lfence
|
||||
END(savectx)
|
||||
|
||||
// XXX this should not behave like a nop
|
||||
IDTVEC(syscall32)
|
||||
sysret /* go away please */
|
||||
END(Xsyscall32)
|
||||
|
||||
/*
|
||||
* syscall insn entry.
|
||||
* Enter here with interrupts blocked; %rcx contains the caller's
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: machdep.c,v 1.290 2024/02/03 16:21:22 deraadt Exp $ */
|
||||
/* $OpenBSD: machdep.c,v 1.291 2024/02/25 22:33:09 guenther Exp $ */
|
||||
/* $NetBSD: machdep.c,v 1.3 2003/05/07 22:58:18 fvdl Exp $ */
|
||||
|
||||
/*-
|
||||
|
@ -1744,9 +1744,6 @@ init_x86_64(paddr_t first_avail)
|
|||
set_mem_segment(GDT_ADDR_MEM(cpu_info_primary.ci_gdt, GDATA_SEL), 0,
|
||||
0xfffff, SDT_MEMRWA, SEL_KPL, 1, 0, 1);
|
||||
|
||||
set_mem_segment(GDT_ADDR_MEM(cpu_info_primary.ci_gdt, GUCODE32_SEL), 0,
|
||||
atop(VM_MAXUSER_ADDRESS32) - 1, SDT_MEMERA, SEL_UPL, 1, 1, 0);
|
||||
|
||||
set_mem_segment(GDT_ADDR_MEM(cpu_info_primary.ci_gdt, GUDATA_SEL), 0,
|
||||
atop(VM_MAXUSER_ADDRESS) - 1, SDT_MEMRWA, SEL_UPL, 1, 0, 1);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: vmm_machdep.c,v 1.18 2024/02/12 02:57:14 jsg Exp $ */
|
||||
/* $OpenBSD: vmm_machdep.c,v 1.19 2024/02/25 22:33:09 guenther Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2014 Mike Larkin <mlarkin@openbsd.org>
|
||||
*
|
||||
|
@ -2734,7 +2734,7 @@ vcpu_reset_regs_vmx(struct vcpu *vcpu, struct vcpu_reg_state *vrs)
|
|||
msr_store[2].vms_index = MSR_LSTAR;
|
||||
msr_store[2].vms_data = rdmsr(MSR_LSTAR);
|
||||
msr_store[3].vms_index = MSR_CSTAR;
|
||||
msr_store[3].vms_data = rdmsr(MSR_CSTAR);
|
||||
msr_store[3].vms_data = 0;
|
||||
msr_store[4].vms_index = MSR_SFMASK;
|
||||
msr_store[4].vms_data = rdmsr(MSR_SFMASK);
|
||||
msr_store[5].vms_index = MSR_KERNELGSBASE;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: vmm_support.S,v 1.24 2023/11/28 00:17:48 dv Exp $ */
|
||||
/* $OpenBSD: vmm_support.S,v 1.25 2024/02/25 22:33:09 guenther Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2014 Mike Larkin <mlarkin@openbsd.org>
|
||||
*
|
||||
|
@ -225,12 +225,6 @@ skip_init:
|
|||
pushq %rax
|
||||
pushq %rdx
|
||||
|
||||
/* XXX - unused? */
|
||||
movq $MSR_CSTAR, %rcx
|
||||
rdmsr
|
||||
pushq %rax
|
||||
pushq %rdx
|
||||
|
||||
movq $MSR_SFMASK, %rcx
|
||||
rdmsr
|
||||
pushq %rax
|
||||
|
@ -483,9 +477,9 @@ restore_host:
|
|||
movq $MSR_SFMASK, %rcx
|
||||
wrmsr
|
||||
|
||||
/* XXX - unused? */
|
||||
popq %rdx
|
||||
popq %rax
|
||||
/* make sure guest doesn't bleed into host */
|
||||
xorl %edx, %edx
|
||||
xorl %eax, %eax
|
||||
movq $MSR_CSTAR, %rcx
|
||||
wrmsr
|
||||
|
||||
|
@ -584,12 +578,6 @@ ENTRY(svm_enter_guest)
|
|||
pushq %rax
|
||||
pushq %rdx
|
||||
|
||||
/* XXX - unused? */
|
||||
movq $MSR_CSTAR, %rcx
|
||||
rdmsr
|
||||
pushq %rax
|
||||
pushq %rdx
|
||||
|
||||
movq $MSR_SFMASK, %rcx
|
||||
rdmsr
|
||||
pushq %rax
|
||||
|
@ -696,9 +684,9 @@ restore_host_svm:
|
|||
movq $MSR_SFMASK, %rcx
|
||||
wrmsr
|
||||
|
||||
/* XXX - unused? */
|
||||
popq %rdx
|
||||
popq %rax
|
||||
/* make sure guest doesn't bleed into host */
|
||||
xorl %edx, %edx
|
||||
xorl %eax, %eax
|
||||
movq $MSR_CSTAR, %rcx
|
||||
wrmsr
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: segments.h,v 1.16 2024/01/19 18:38:16 kettenis Exp $ */
|
||||
/* $OpenBSD: segments.h,v 1.17 2024/02/25 22:33:09 guenther Exp $ */
|
||||
/* $NetBSD: segments.h,v 1.1 2003/04/26 18:39:47 fvdl Exp $ */
|
||||
|
||||
/*-
|
||||
|
@ -247,16 +247,15 @@ void cpu_init_idt(void);
|
|||
* Then comes the predefined TSS descriptor.
|
||||
* There are NGDT_SYS of them.
|
||||
*
|
||||
* The particular order of the UCODE32, UDATA, and UCODE descriptors is
|
||||
* required by the syscall/sysret instructions.
|
||||
* The particular order of the UDATA and UCODE descriptors is
|
||||
* required by the sysretq instruction.
|
||||
*/
|
||||
#define GNULL_SEL 0 /* Null descriptor */
|
||||
#define GCODE_SEL 1 /* Kernel code descriptor */
|
||||
#define GDATA_SEL 2 /* Kernel data descriptor */
|
||||
#define GUCODE32_SEL 3 /* User 32bit code descriptor (unused) */
|
||||
#define GUDATA_SEL 4 /* User data descriptor */
|
||||
#define GUCODE_SEL 5 /* User code descriptor */
|
||||
#define NGDT_MEM 6
|
||||
#define GUDATA_SEL 3 /* User data descriptor */
|
||||
#define GUCODE_SEL 4 /* User code descriptor */
|
||||
#define NGDT_MEM 5
|
||||
|
||||
#define GPROC0_SEL 0 /* common TSS */
|
||||
#define NGDT_SYS 1
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue