From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33780) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YqFaS-0003eV-55 for qemu-devel@nongnu.org; Thu, 07 May 2015 02:47:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YqFaM-0003I9-0r for qemu-devel@nongnu.org; Thu, 07 May 2015 02:47:12 -0400 Received: from isrv.corpit.ru ([86.62.121.231]:45671) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YqFaL-0003Hr-QA for qemu-devel@nongnu.org; Thu, 07 May 2015 02:47:05 -0400 Message-ID: <554B0A67.5050107@msgid.tls.msk.ru> Date: Thu, 07 May 2015 09:47:03 +0300 From: Michael Tokarev MIME-Version: 1.0 References: <5549C424.3080203@msgid.tls.msk.ru> <554B024B.90101@msgid.tls.msk.ru> In-Reply-To: <554B024B.90101@msgid.tls.msk.ru> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] Bug report - Windows XP guest failure List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: G 3 Cc: Paolo Bonzini , Peter Crosthwaite , qemu-devel qemu-devel 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 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 Message-Id: <1426570554-15940-1-git-send-email-peter.crosthwaite@xilinx.com> Signed-off-by: Paolo Bonzini Cc'ing relevant people. /mjt