|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-ia64-devel
RE: [Xen-ia64-devel] [RFC][PATCH] fix zero extending for mmio	ld1/2/4emu 
| Hi Isaku,
Before copying value  ( *val=p->data),
The code sets p->data to 0,( p->data=0)
I think this can avoid the issue Jes found in KVM/IA64.
Anthony
    if (dir == IOREQ_WRITE)
        p->data = *val;
    else
        p->data = 0;
    p->data_is_ptr = 0;
    p->dir = dir;
    p->df = 0;
    p->type = 1;
    p->io_count++;
    if (hvm_buffered_io_intercept(p)) {
        p->state = STATE_IORESP_READY;
        vmx_io_assist(v);
        if (dir != IOREQ_READ)
            return;
    }
    vmx_send_assist_req(v);
    if (dir == IOREQ_READ)
        *val = p->data;
Isaku Yamahata wrote:
> Recently Jes Soresen found a bug in kvm/ia64 mmio emulator.
> I believe xen/ia64 needs same bug fix, but I haven't confirmed
> the bug and the fix.
> Can anyone confirm this patch?
> 
> # HG changeset patch
> # User Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
> # Date 1211356962 -32400
> # Node ID 9b9a503239d60b3595c772d9337c4a217960a93e
> # Parent  f04ce41dab843b275ccb6636290e51c591ac2a06
> [IA64] fix zero extending for mmio ld1/2/4 emulation
> 
> This bug was found by Jes Soresen with kvm/ia64 as follows.
> This patch is xen/ia64 counterpart.
> 
>> Only copy in the data actually requested by the instruction emulation
>> and zero pad the destination register first. This avoids the problem
>> where emulated mmio access got garbled data from ld2.acq instructions
>> in the vga console driver.
> 
> Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
> 
> diff --git a/xen/arch/ia64/vmx/mmio.c b/xen/arch/ia64/vmx/mmio.c
> --- a/xen/arch/ia64/vmx/mmio.c
> +++ b/xen/arch/ia64/vmx/mmio.c
> @@ -170,8 +170,9 @@
>      }
> 
>      vmx_send_assist_req(v);
> -    if (dir == IOREQ_READ)
> -        *val = p->data;
> +    if (dir == IOREQ_READ)
> +        /* it's necessary to ensure zero extending */
> +        *val = p->data & (~0UL >> (64 - (s * 8)));
> 
>      return;
>  }
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
 | 
 
| Previous by Date: | Re: [Xen-ia64-devel] [RFC][DRAFT]	linux-2.6/Documentation/ia64/pv_ops.txt, Isaku Yamahata |  
| Next by Date: | No test, No class, buy yourself Bacheelor/MasteerMBA/Doctoraate dip1omas, VALID in all countries ukzhdz cknl 6t8pl, Lowell Billings |  
| Previous by Thread: | [Xen-ia64-devel] [RFC][PATCH] fix zero extending for mmio ld1/2/4	emulation, Isaku Yamahata |  
| Next by Thread: | No test, No class, buy yourself Bacheelor/MasteerMBA/Doctoraate dip1omas, VALID in all countries ukzhdz cknl 6t8pl, Lowell Billings |  
| Indexes: | [Date]
[Thread]
[Top]
[All Lists] |  |  | 
  
    |  |  |