From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34137) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W8ZeN-0003CG-3I for qemu-devel@nongnu.org; Wed, 29 Jan 2014 13:14:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W8ZeH-00037z-4V for qemu-devel@nongnu.org; Wed, 29 Jan 2014 13:14:11 -0500 Received: from mx1.redhat.com ([209.132.183.28]:64039) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W8ZeG-00036c-S5 for qemu-devel@nongnu.org; Wed, 29 Jan 2014 13:14:05 -0500 Message-ID: <52E944E7.8040508@redhat.com> Date: Wed, 29 Jan 2014 19:13:59 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <24E144B8C0207547AD09C467A8259F755935FEE9@lisa.maurer-it.com> <52E8FB96.2010801@redhat.com> <52E93B8F.5040600@redhat.com> <52E93E94.10409@redhat.com> <52E943C4.70409@redhat.com> In-Reply-To: <52E943C4.70409@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] pxe boot problems List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laszlo Ersek Cc: Marcelo Tosatti , Gerd Hoffmann , Dietmar Maurer , "qemu-devel@nongnu.org" Il 29/01/2014 19:09, Laszlo Ersek ha scritto: > Yes, but as far I can see, the commit (which is not in RHEL-6) changes > *how* the operand of ljmp is decoded. > > From "opcode_table" in RHEL-6's "arch/x86/kvm/emulate.c": > > > /* 0xE8 - 0xEF */ > SrcImm | Stack, SrcImm | ImplicitOps, > SrcImmU | Src2Imm16 | No64, SrcImmByte | ImplicitOps, > ^^^^^^^^^^^^^^^^^^^^^^^^^^ > > and the patch changes that to > > SrcImmFAddr | No64 > > and adds new logic to fetch this source operand type. > > ... Which then seems to have an effect on what goes into > load_segment_descriptor() as segment selector, in the emulation of 0xea. > > Of course I'm insufficiently equipped to debate this with you in earnest > :), but it seemed relevant to me. Yeah, it seems relevant to me too. But before it was decoding two immediates, one after another, the first c->op_bytes long in c->src, and the second 2 bytes long in c->src2. Now it's doing the same, but putting all c->op_bytes+2 bytes in c->src... Though I guess the backport should be relatively easy if you want to try. Paolo