Re: [PATCH 1/2] HV: PAE: Add stac()/clac() in local_gva2gpa_pae


Kaige Fu
 

-----Original Message-----
From: acrn-dev@... [mailto:acrn-dev@...]
On Behalf Of Grandhi, Sainath
Sent: Tuesday, March 5, 2019 11:26 PM
To: acrn-dev@...
Subject: Re: [acrn-dev] [PATCH 1/2] HV: PAE: Add stac()/clac() in
local_gva2gpa_pae

Just curious, this path was not invoked for other guests?
As far as I know, we didn't test guests with PAE enabled.

-----Original Message-----
From: acrn-dev@...
[mailto:acrn-dev@...]
On Behalf Of Kaige Fu
Sent: Tuesday, March 05, 2019 7:39 AM
To: acrn-dev@...
Subject: [acrn-dev] [PATCH 1/2] HV: PAE: Add stac()/clac() in
local_gva2gpa_pae

Accessing memory of guest will cause page fault when SMAP is enabled.
This patch stac()/clac() correspondingly to get rid of this situation.

Signed-off-by: Kaige Fu <kaige.fu@...>
---
hypervisor/arch/x86/guest/guest_memory.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/hypervisor/arch/x86/guest/guest_memory.c
b/hypervisor/arch/x86/guest/guest_memory.c
index 0b993427..a535a361 100644
--- a/hypervisor/arch/x86/guest/guest_memory.c
+++ b/hypervisor/arch/x86/guest/guest_memory.c
@@ -215,7 +215,9 @@ static int32_t local_gva2gpa_pae(struct acrn_vcpu
*vcpu, struct page_walk_info *
base = (uint64_t *)gpa2hva(vcpu->vm, addr);
if (base != NULL) {
index = (gva >> 30U) & 0x3UL;
+ stac();
entry = base[index];
+ clac();

if ((entry & PAGE_PRESENT) != 0U) {
pw_info->level = 2U;
--
2.20.0



Join {acrn-dev@lists.projectacrn.org to automatically receive all group messages.