aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/x86_32/traps.c
diff options
context:
space:
mode:
Diffstat (limited to 'xen/arch/x86/x86_32/traps.c')
-rw-r--r--xen/arch/x86/x86_32/traps.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/xen/arch/x86/x86_32/traps.c b/xen/arch/x86/x86_32/traps.c
index ae18f654ad..3c6d81f21d 100644
--- a/xen/arch/x86/x86_32/traps.c
+++ b/xen/arch/x86/x86_32/traps.c
@@ -490,9 +490,11 @@ static void hypercall_page_initialise_ring1_kernel(void *hypercall_page)
*(u16 *)(p+ 6) = 0x82cd; /* int $0x82 */
}
-void hypercall_page_initialise(void *hypercall_page)
+void hypercall_page_initialise(struct domain *d, void *hypercall_page)
{
- if ( supervisor_mode_kernel )
+ if ( hvm_guest(d->vcpu[0]) )
+ hvm_hypercall_page_initialise(d, hypercall_page);
+ else if ( supervisor_mode_kernel )
hypercall_page_initialise_ring0_kernel(hypercall_page);
else
hypercall_page_initialise_ring1_kernel(hypercall_page);