aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xen/arch/x86/hvm/hvm.c2
-rw-r--r--xen/arch/x86/hvm/svm/svm.c2
-rw-r--r--xen/arch/x86/mm/p2m.c2
-rw-r--r--xen/include/asm-x86/hvm/hvm.h11
-rw-r--r--xen/include/asm-x86/p2m.h7
5 files changed, 22 insertions, 2 deletions
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7ae6f9a2b0..62c018fa44 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3781,6 +3781,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
return rc;
}
+#ifdef __x86_64__
static int hvm_memory_event_traps(long p, uint32_t reason,
unsigned long value, unsigned long old,
bool_t gla_valid, unsigned long gla)
@@ -3859,6 +3860,7 @@ int hvm_memory_event_int3(unsigned long gla)
MEM_EVENT_REASON_INT3,
gfn, 0, 1, gla);
}
+#endif /* __x86_64__ */
/*
* Local variables:
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index ec7f8f282a..9e10a43109 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -979,7 +979,7 @@ static void svm_do_nested_pgfault(paddr_t gpa)
__trace_var(TRC_HVM_NPF, 0, sizeof(_d), &_d);
}
- if ( hvm_hap_nested_page_fault(gpa, 0, ~0ull, 0, 0, 0, 0) )
+ if ( hvm_hap_nested_page_fault(gpa, 0, ~0ul, 0, 0, 0, 0) )
return;
/* Everything else is an error. */
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index 849c0b87eb..bfe2842817 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2857,7 +2857,6 @@ void p2m_mem_paging_resume(struct p2m_domain *p2m)
/* Unpause any domains that were paused because the ring was full */
mem_event_unpause_vcpus(d);
}
-#endif /* __x86_64__ */
void p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned long gla,
bool_t access_r, bool_t access_w, bool_t access_x)
@@ -2949,6 +2948,7 @@ void p2m_mem_access_resume(struct p2m_domain *p2m)
* was available */
mem_event_unpause_vcpus(d);
}
+#endif /* __x86_64__ */
/*
* Local variables:
diff --git a/xen/include/asm-x86/hvm/hvm.h b/xen/include/asm-x86/hvm/hvm.h
index dc8e238a95..ca122c1ab6 100644
--- a/xen/include/asm-x86/hvm/hvm.h
+++ b/xen/include/asm-x86/hvm/hvm.h
@@ -372,6 +372,7 @@ bool_t hvm_hap_nested_page_fault(unsigned long gpa,
int hvm_x2apic_msr_read(struct vcpu *v, unsigned int msr, uint64_t *msr_content);
int hvm_x2apic_msr_write(struct vcpu *v, unsigned int msr, uint64_t msr_content);
+#ifdef __x86_64__
/* Called for current VCPU on crX changes by guest */
void hvm_memory_event_cr0(unsigned long value, unsigned long old);
void hvm_memory_event_cr3(unsigned long value, unsigned long old);
@@ -379,5 +380,15 @@ void hvm_memory_event_cr4(unsigned long value, unsigned long old);
/* Called for current VCPU on int3: returns -1 if no listener */
int hvm_memory_event_int3(unsigned long gla);
+#else
+static inline void hvm_memory_event_cr0(unsigned long value, unsigned long old)
+{ }
+static inline void hvm_memory_event_cr3(unsigned long value, unsigned long old)
+{ }
+static inline void hvm_memory_event_cr4(unsigned long value, unsigned long old)
+{ }
+static inline int hvm_memory_event_int3(unsigned long gla)
+{ return 0; }
+#endif
#endif /* __ASM_X86_HVM_HVM_H__ */
diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h
index 8272ec79ed..4c4ce0fe05 100644
--- a/xen/include/asm-x86/p2m.h
+++ b/xen/include/asm-x86/p2m.h
@@ -522,12 +522,19 @@ static inline void p2m_mem_paging_populate(struct p2m_domain *p2m, unsigned long
{ }
#endif
+#ifdef __x86_64__
/* Send mem event based on the access (gla is -1ull if not available). Handles
* the rw2rx conversion */
void p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned long gla,
bool_t access_r, bool_t access_w, bool_t access_x);
/* Resumes the running of the VCPU, restarting the last instruction */
void p2m_mem_access_resume(struct p2m_domain *p2m);
+#else
+static inline void p2m_mem_access_check(unsigned long gpa, bool_t gla_valid,
+ unsigned long gla, bool_t access_r,
+ bool_t access_w, bool_t access_x)
+{ }
+#endif
struct page_info *p2m_alloc_ptp(struct p2m_domain *p2m, unsigned long type);