|
|
|
|
|
|
|
|
|
|
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] |
|
|
|
|