On May 7, 2015, at 5:34 AM, Michael Tokarev wrote:

> 07.05.2015 09:47, Michael Tokarev wrote:
>> 07.05.2015 09:12, Michael Tokarev wrote:
>>> 07.05.2015 04:11, G 3 wrote:
>>>> Did you boot Windows XP to the desktop? I have tested Windows 95, Windows 
>>>> 2000, and Windows XP. All of them fail to boot to the desktop.
>>> 
>>> Yes, booted to desktop and did some minimal work in there,
>>> installnig one update or two.
>>> 
>>>> Command used:
>>>> ./i386-softmmu/qemu-system-i386 -boot c -hda "Windows XP Hard Drive.img" 
>>> 
>>> Aha. You run without kvm, in tcg mode.  I don't usually do that,
>>> lemme try...
>> 
>> Ok, I can reproduce this, winXP BSODs on boot in tcg mode.
>> Git bisect points to this:
>> 
>> commit 23820dbfc79d1c9dce090b4c555994f2bb6a69b3
>> Author: Peter Crosthwaite <peter.crosthwa...@xilinx.com>
>> Date:   Mon Mar 16 22:35:54 2015 -0700
>> 
>>    exec: Respect as_translate_internal length clamp
>> 
>>    address_space_translate_internal will clamp the *plen length argument
>>    based on the size of the memory region being queried. The iommu walker
>>    logic in addresss_space_translate was ignoring this by discarding the
>>    post fn call value of *plen. Fix by just always using *plen as the
>>    length argument throughout the fn, removing the len local variable.
>> 
>>    This fixes a bootloader bug when a single elf section spans multiple
>>    QEMU memory regions.
>> 
>>    Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com>
>>    Message-Id: 
>> <1426570554-15940-1-git-send-email-peter.crosthwa...@xilinx.com>
>>    Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
> 
> This winXP BSOD happens on x86_64 target too.  Reverting the
> above commit from git master fixes the BSOD.
> 
> Thanks,
> 
> /mjt
> 

After reverting this patch, I was able to boot Windows XP again. Good work 
finding this patch.

Reply via email to