From ebc817a1657b47bc81dcae9b0cafe876f773c86c Mon Sep 17 00:00:00 2001 From: Jeremy Fitzhardinge Date: Tue, 8 Jul 2008 15:07:00 -0700 Subject: [PATCH] --- yaml --- r: 104432 b: refs/heads/master c: 997409d3d0bd6894f33e31ced251c0fdf523aa14 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/xen/enlighten.c | 2 +- trunk/arch/x86/xen/xen-asm_64.S | 5 +++++ trunk/arch/x86/xen/xen-ops.h | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 1b9b700c6bfe..8d84d07e957e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e176d367d0cc8b8efd2e0960c9edf5d2fe7cd9f1 +refs/heads/master: 997409d3d0bd6894f33e31ced251c0fdf523aa14 diff --git a/trunk/arch/x86/xen/enlighten.c b/trunk/arch/x86/xen/enlighten.c index f5e96f7a4c5c..9d94483b3b5e 100644 --- a/trunk/arch/x86/xen/enlighten.c +++ b/trunk/arch/x86/xen/enlighten.c @@ -1091,7 +1091,7 @@ static const struct pv_irq_ops xen_irq_ops __initdata = { .safe_halt = xen_safe_halt, .halt = xen_halt, #ifdef CONFIG_X86_64 - .adjust_exception_frame = paravirt_nop, + .adjust_exception_frame = xen_adjust_exception_frame, #endif }; diff --git a/trunk/arch/x86/xen/xen-asm_64.S b/trunk/arch/x86/xen/xen-asm_64.S index 4ec10827370b..b147b495daef 100644 --- a/trunk/arch/x86/xen/xen-asm_64.S +++ b/trunk/arch/x86/xen/xen-asm_64.S @@ -133,6 +133,11 @@ check_events: ret #endif +ENTRY(xen_adjust_exception_frame) + mov 8+0(%rsp),%rcx + mov 8+8(%rsp),%r11 + ret $16 + ENTRY(xen_iret) pushq $0 jmp hypercall_page + __HYPERVISOR_iret * 32 diff --git a/trunk/arch/x86/xen/xen-ops.h b/trunk/arch/x86/xen/xen-ops.h index aca4a7803e2c..c4800a2c5a41 100644 --- a/trunk/arch/x86/xen/xen-ops.h +++ b/trunk/arch/x86/xen/xen-ops.h @@ -67,7 +67,9 @@ DECL_ASM(void, xen_irq_disable_direct, void); DECL_ASM(unsigned long, xen_save_fl_direct, void); DECL_ASM(void, xen_restore_fl_direct, unsigned long); +/* These are not functions, and cannot be called normally */ void xen_iret(void); void xen_sysexit(void); +void xen_adjust_exception_frame(void); #endif /* XEN_OPS_H */