# HG changeset patch # User cegger # Date 1287134075 -7200 Handle interrupts (generic part) Signed-off-by: Christoph Egger diff -r 1bda88e55630 -r 584b6f1a0511 xen/arch/x86/hvm/hvm.c --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -2314,6 +2314,14 @@ enum hvm_intblk hvm_interrupt_blocked(st ASSERT(v == current); + if ( nestedhvm_enabled(v->domain) ) { + enum hvm_intblk intr; + + intr = nhvm_interrupt_blocked(v); + if ( intr != hvm_intblk_none ) + return intr; + } + if ( (intack.source != hvm_intsrc_nmi) && !(guest_cpu_user_regs()->eflags & X86_EFLAGS_IF) ) return hvm_intblk_rflags_ie; diff -r 1bda88e55630 -r 584b6f1a0511 xen/arch/x86/x86_32/asm-offsets.c --- a/xen/arch/x86/x86_32/asm-offsets.c +++ b/xen/arch/x86/x86_32/asm-offsets.c @@ -135,4 +135,7 @@ void __dummy__(void) OFFSET(MB_flags, multiboot_info_t, flags); OFFSET(MB_cmdline, multiboot_info_t, cmdline); + + OFFSET(NESTEDHVM_hostflags, struct vcpu, arch.hvm_vcpu.nestedhvm.nh_hostflags.bytes); + DEFINE(NESTEDHVM_forcevmexit, 0x4); } diff -r 1bda88e55630 -r 584b6f1a0511 xen/arch/x86/x86_64/asm-offsets.c --- a/xen/arch/x86/x86_64/asm-offsets.c +++ b/xen/arch/x86/x86_64/asm-offsets.c @@ -158,4 +158,7 @@ void __dummy__(void) OFFSET(MB_flags, multiboot_info_t, flags); OFFSET(MB_cmdline, multiboot_info_t, cmdline); + + OFFSET(NESTEDHVM_hostflags, struct vcpu, arch.hvm_vcpu.nestedhvm.nh_hostflags.bytes); + DEFINE(NESTEDHVM_forcevmexit, 0x4); }