On Wed, Jul 28, 2010 at 10:55 PM, Marcelo Tosatti <mtosa...@redhat.com> wrote:
> On Wed, Jul 28, 2010 at 12:39:01PM +0300, Mohammed Gamal wrote:
>> This adds a unit test for real mode emulation of the iret instruction
>>
>> Signed-off-by: Mohammed Gamal <m.gamal...@gmail.com>
>>
>> ---
>> Changes from v1:
>> - Added test for 16-bit iret
>> - Added tests for returned eflags
>> ---
>> kvm/test/x86/realmode.c | 79
>> +++++++++++++++++++++++++++++++++++++++++++++++
>> 1 files changed, 79 insertions(+), 0 deletions(-)
>>
>> diff --git a/kvm/test/x86/realmode.c b/kvm/test/x86/realmode.c
>> index bd79348..74456c3 100644
>> --- a/kvm/test/x86/realmode.c
>> +++ b/kvm/test/x86/realmode.c
>> @@ -865,6 +865,84 @@ void test_pusha_popa()
>> print_serial("Pusha/Popa Test2: PASS\n");
>> }
>>
>> +void test_iret()
>> +{
>> + struct regs inregs = { 0 }, outregs;
>> +
>> + MK_INSN(iret32, "pushf\n\t"
>> + "pushl %cs\n\t"
>> + "call 1f\n\t" /* a near call will push eip onto the
>> stack */
>> + "jmp 2f\n\t"
>> + "1: iret\n\t"
>> + "2:\n\t"
>> + );
>> +
>> + MK_INSN(iret16, "pushfw\n\t"
>> + "pushw %cs\n\t"
>> + "callw 1f\n\t"
>> + "jmp 2f\n\t"
>> + "1: iretw\n\t"
>> + "2:\n\t");
>
> Unless iret causes a task switch, it will not cause an exit.
>
>
The test covers only the real mode case, we won't have a task switch there, no?
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html