|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] nestedhvm: fix nested page fault build error on 32-bit
# HG changeset patch
# User Ian Campbell <Ian.Campbell@xxxxxxxxxx>
# Date 1343984057 -3600
# Node ID 612898732e66db3d3b992df1a1af1655af4d92c9
# Parent 12f65475c13dff134a7f5540bf75c391e90ef491
nestedhvm: fix nested page fault build error on 32-bit
cc1: warnings being treated as errors
hvm.c: In function ?hvm_hap_nested_page_fault?:
hvm.c:1282: error: passing argument 2 of ?nestedhvm_hap_nested_page_fault?
from incompatible pointer type
/local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55:
note: expected ?paddr_t *? but argument is of type ?long unsigned int *?
hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa
to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both
of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and
ept_handle_violation) actually have the gpa which they pass to
hvm_hap_nested_page_fault as a paddr_t I think it makes sense to
change the argument to hvm_hap_nested_page_fault.
The other user of gpa in hvm_hap_nested_page_fault is a call to
p2m_mem_access_check, which currently also takes a paddr_t gpa but I
think a paddr_t is appropriate there too.
Jan points out that this is also an issue for >4GB guests on the 32
bit hypervisor.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
Acked-by: Tim Deegan <tim@xxxxxxx>
Committed-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
diff -r 12f65475c13d -r 612898732e66 xen/arch/x86/hvm/hvm.c
--- a/xen/arch/x86/hvm/hvm.c Fri Aug 03 09:54:16 2012 +0100
+++ b/xen/arch/x86/hvm/hvm.c Fri Aug 03 09:54:17 2012 +0100
@@ -1242,7 +1242,7 @@ void hvm_inject_page_fault(int errcode,
hvm_inject_trap(&trap);
}
-int hvm_hap_nested_page_fault(unsigned long gpa,
+int hvm_hap_nested_page_fault(paddr_t gpa,
bool_t gla_valid,
unsigned long gla,
bool_t access_r,
diff -r 12f65475c13d -r 612898732e66 xen/arch/x86/mm/p2m.c
--- a/xen/arch/x86/mm/p2m.c Fri Aug 03 09:54:16 2012 +0100
+++ b/xen/arch/x86/mm/p2m.c Fri Aug 03 09:54:17 2012 +0100
@@ -1233,7 +1233,7 @@ void p2m_mem_paging_resume(struct domain
}
}
-bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned long
gla,
+bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long gla,
bool_t access_r, bool_t access_w, bool_t access_x,
mem_event_request_t **req_ptr)
{
diff -r 12f65475c13d -r 612898732e66 xen/include/asm-x86/hvm/hvm.h
--- a/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 09:54:16 2012 +0100
+++ b/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 09:54:17 2012 +0100
@@ -433,7 +433,7 @@ static inline void hvm_set_info_guest(st
int hvm_debug_op(struct vcpu *v, int32_t op);
-int hvm_hap_nested_page_fault(unsigned long gpa,
+int hvm_hap_nested_page_fault(paddr_t gpa,
bool_t gla_valid, unsigned long gla,
bool_t access_r,
bool_t access_w,
diff -r 12f65475c13d -r 612898732e66 xen/include/asm-x86/p2m.h
--- a/xen/include/asm-x86/p2m.h Fri Aug 03 09:54:16 2012 +0100
+++ b/xen/include/asm-x86/p2m.h Fri Aug 03 09:54:17 2012 +0100
@@ -589,7 +589,7 @@ static inline void p2m_mem_paging_popula
* been promoted with no underlying vcpu pause. If the req_ptr has been
populated,
* then the caller must put the event in the ring (once having released
get_gfn*
* locks -- caller must also xfree the request. */
-bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned long
gla,
+bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long gla,
bool_t access_r, bool_t access_w, bool_t access_x,
mem_event_request_t **req_ptr);
/* Resumes the running of the VCPU, restarting the last instruction */
@@ -606,7 +606,7 @@ int p2m_get_mem_access(struct domain *d,
hvmmem_access_t *access);
#else
-static inline bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid,
+static inline bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid,
unsigned long gla, bool_t access_r,
bool_t access_w, bool_t access_x,
mem_event_request_t **req_ptr)
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |