diff options
Diffstat (limited to 'xen/arch/x86/x86_32/traps.c')
-rw-r--r-- | xen/arch/x86/x86_32/traps.c | 6 |
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); |