(2012/01/10 5:10), Kevin Wolf wrote: > @@ -2254,7 +2258,14 @@ static int load_state_from_tss32(struct x86_emulate_ctxt *ctxt, > if (ctxt->ops->set_cr(ctxt, 3, tss->cr3)) > return emulate_gp(ctxt, 0); > ctxt->_eip = tss->eip; > + > ctxt->eflags = tss->eflags | 2; (Though not directly related to this RFC ...) What is this 2 for? Do we need to set a reserved bit? > + if (ctxt->eflags & 0x20000) You can use a macro to indicate the flag. 1. from arch/x86/kvm/emulate.c: /* EFLAGS bit definitions. */ #define EFLG_ID (1<<21) #define EFLG_VIP (1<<20) #define EFLG_VIF (1<<19) #define EFLG_AC (1<<18) #define EFLG_VM (1<<17) #define EFLG_RF (1<<16) ... #define EFLG_RESERVED_ZEROS_MASK 0xffc0802a #define EFLG_RESERVED_ONE_MASK 2 2. from arch/x86/include/asm/processor-flags.h /* * EFLAGS bits */ #define X86_EFLAGS_CF 0x00000001 /* Carry Flag */ #define X86_EFLAGS_PF 0x00000004 /* Parity Flag */ ... #define X86_EFLAGS_VM 0x00020000 /* Virtual Mode */ #define X86_EFLAGS_AC 0x00040000 /* Alignment Check */ #define X86_EFLAGS_VIF 0x00080000 /* Virtual Interrupt Flag */ #define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ #define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ Two possibilities, not nice, but both are used in emulate.c. Takuya -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html