|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH 3/3] plat/kvm: set write protect flag in CR0
The last patch introduced read-only pages into the page table. However,
unless the WP flag is set in CR0, this information is ignored in
supervisor (i.e., kernel) mode. So set it at boot time to enable write
protection of pages.
Signed-off-by: Florian Schmidt <florian.schmidt@xxxxxxxxx>
---
plat/common/include/x86/cpu_defs.h | 1 +
plat/kvm/x86/entry64.S | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/plat/common/include/x86/cpu_defs.h
b/plat/common/include/x86/cpu_defs.h
index e968a832..107f0f0a 100644
--- a/plat/common/include/x86/cpu_defs.h
+++ b/plat/common/include/x86/cpu_defs.h
@@ -60,6 +60,7 @@
#define X86_CR0_EM (1 << 2) /* Emulation */
#define X86_CR0_TS (1 << 3) /* Task Switched */
#define X86_CR0_NE (1 << 5) /* Numeric Exception */
+#define X86_CR0_WP (1 << 16) /* Write Protect */
#define X86_CR0_PG (1 << 31) /* Paging */
/*
diff --git a/plat/kvm/x86/entry64.S b/plat/kvm/x86/entry64.S
index 828cd1bc..274ab0b3 100644
--- a/plat/kvm/x86/entry64.S
+++ b/plat/kvm/x86/entry64.S
@@ -184,7 +184,7 @@ ENTRY(_libkvmplat_start64)
/* FPU and SSE are part of base x86-64, so no need to check for their
* availability before enabling and initializing. */
andl $(~(X86_CR0_EM | X86_CR0_TS)), %esi
- orl $(X86_CR0_MP | X86_CR0_NE), %esi
+ orl $(X86_CR0_MP | X86_CR0_NE | X86_CR0_WP), %esi
movq %rsi, %cr0
fninit
#if __SSE__
--
2.21.0
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |