From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L7U7n-0007ZP-3X for qemu-devel@nongnu.org; Tue, 02 Dec 2008 07:13:07 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L7U7l-0007Z4-0H for qemu-devel@nongnu.org; Tue, 02 Dec 2008 07:13:06 -0500 Received: from [199.232.76.173] (port=40317 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L7U7k-0007Z1-Sj for qemu-devel@nongnu.org; Tue, 02 Dec 2008 07:13:04 -0500 Received: from mx2.redhat.com ([66.187.237.31]:46549) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1L7U7k-00073B-H7 for qemu-devel@nongnu.org; Tue, 02 Dec 2008 07:13:04 -0500 Message-ID: <4935264A.4050006@redhat.com> Date: Tue, 02 Dec 2008 14:12:58 +0200 From: Avi Kivity MIME-Version: 1.0 References: <1228161692-13200-1-git-send-email-glommer@redhat.com> In-Reply-To: <1228161692-13200-1-git-send-email-glommer@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH] extboot: properly set int 0x13 return value Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Glauber Costa Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, kvm@vger.kernel.org Glauber Costa wrote: > Callers of int 0x13 usually rely on the carry flag being > clear/set to indicate the status of the interrupt execution. > > However, our current code clear or set the flags register, > which is totally useless. Whichever value it has, will > be overwritten by the flags value _before_ the interrupt, due to > the iret instruction. > > This fixes a bug that prevents slackware (and possibly win2k, untested) > to boot. > > Applied, thanks. > > -.macro clc > - push %ax > - pushf > - pop %ax > - and $(~FLAGS_CF), %ax > - push %ax > - popf > - pop %ax > Anthony, any reason you did not use the 'clc' instruction instead of a macro? -- error compiling committee.c: too many arguments to function