From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: Boot Problem (and fix) Date: Tue, 11 Nov 2008 19:09:40 +0200 Message-ID: <4919BC54.1030002@redhat.com> References: <4916BA11.30104@redhat.com> <49180004.7020804@redhat.com> <49183D2F.7000403@redhat.com> <4919669B.2000308@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060708060703040106050104" Cc: kvm@vger.kernel.org To: the uni Return-path: Received: from mx2.redhat.com ([66.187.237.31]:46927 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751458AbYKKRJp (ORCPT ); Tue, 11 Nov 2008 12:09:45 -0500 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------060708060703040106050104 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit the uni wrote: >> Can you try modules from older versions (keeping userspace and the bios) to >> see which version introduced the fix? >> > > > Keeping userspace and bios, versions 71 and up are fixed... 70 is broken. > Please try kvm-70 with the attached patch attached. (from 214fc251236fd1d0e0f2b7c3b7b7ad5243928fa9) -- error compiling committee.c: too many arguments to function --------------060708060703040106050104 Content-Type: text/plain; name="fix-halt.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="fix-halt.patch" commit 214fc251236fd1d0e0f2b7c3b7b7ad5243928fa9 Author: Mohammed Gamal Date: Sun Jul 6 16:51:26 2008 +0300 KVM: x86 emulator: Fix HLT instruction This patch fixes issue encountered with HLT instruction under FreeDOS's HIMEM XMS Driver. The HLT instruction jumped directly to the done label and skips updating the EIP value, therefore causing the guest to spin endlessly on the same instruction. The patch changes the instruction so that it writes back the updated EIP value. Signed-off-by: Mohammed Gamal Signed-off-by: Avi Kivity diff --git a/kernel/x86_emulate.c b/kernel/x86_emulate.c index dd4efe1..62e71b6 100644 --- a/kernel/x86_emulate.c +++ b/kernel/x86_emulate.c @@ -1732,7 +1732,7 @@ special_insn: break; case 0xf4: /* hlt */ ctxt->vcpu->arch.halt_request = 1; - goto done; + break; case 0xf5: /* cmc */ /* complement carry flag from eflags reg */ ctxt->eflags ^= EFLG_CF; --------------060708060703040106050104--