[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] hvmemul_virtual_to_linear() doesn't care about direction-flag?


  • To: "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx>
  • From: "Trolle Selander" <trolle.selander@xxxxxxxxx>
  • Date: Wed, 20 Aug 2008 12:35:27 +0100
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Wed, 20 Aug 2008 04:35:52 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:references; b=FsH6XbhO7S4IGOqJN3cSRNzUjv2TlGLTwCoIMsDT9/mS2Qr6Q1gsgO4UefqedEbydu 7HhE08uPO2oQXeChSHfQDQWaFE/4KutyjNwzxdjPnArlx+/iABVoCw3tfkfHHoAI9hm7 /TQAhQi9OsDWlrCE+vxX/1ql6IOrGRbzPWs2o=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

This conditional assignment looks reversed.

    done = reverse ? bytes_per_rep + (addr & ~PAGE_MASK) : -addr & ~PAGE_MASK;

Changing it fixes the legacy OS breakage i reported in a previous
private mail to Keir. Patch attached.

On Tue, Aug 19, 2008 at 7:41 PM, Keir Fraser <keir.fraser@xxxxxxxxxxxxx> wrote:
> On 19/8/08 19:33, "Byrne, John (HP Labs)" <john.l.byrne@xxxxxx> wrote:
>
>> Wrong assert. I confused you, my fault. The ASSERT(!reverse) I figured out.
>>
>> The ASSERT I was concerned about is this:
>>
>>     if ( (hvmemul_ctxt->ctxt.regs->eflags & X86_EFLAGS_DF) && (*reps > 1) )
>>     {
>>         ASSERT(offset >= ((*reps - 1) * bytes_per_rep));
>>
>> However, I just read truncate_ea_and_reps() in the emulator which should
>> guarantee this.
>
> Yes, I considered giving that one a comment too. Now I will do so.
>
>  -- Keir
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
>

Attachment: reverse_conditional_assignment.patch
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.