Re: [PATCH kvm-unit-tests] x86: move IDT away from address 0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 25/06/20 21:18, Paolo Bonzini wrote:
> On 25/06/20 20:59, Nadav Amit wrote:
>> I think that there is a hidden assumption about the IDT location in
>> realmode’s test_int(), which this would break:
>>
>> static void test_int(void)
>> {
>>         init_inregs(NULL);
>>
>>         boot_idt[11] = 0x1000; /* Store a pointer to address 0x1000 in IDT entry 0x11 */
>>         *(u8 *)(0x1000) = 0xcf; /* 0x1000 contains an IRET instruction */
>>
>>         MK_INSN(int11, "int $0x11\n\t");
>>
>>         exec_in_big_real_mode(&insn_int11);
>>         report("int 1", 0, 1);
>> }
> 
> Uuuuuuuuuuuuuuuumph... you're right. :(  Will send a patch tomorrow.

Actually the IDTR is not reloaded by exec_in_big_real_mode, so this
(while a bit weird) works fine.

Paolo



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux