Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f20d2752 authored by Jes Sorensen's avatar Jes Sorensen Committed by Avi Kivity
Browse files

KVM: ia64: fix zero extending for mmio ld1/2/4 emulation in KVM



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: default avatarJes Sorensen <jes@sgi.com>
Acked-by: default avatarXiantao Zhang <xiantao.zhang@intel.com>
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent 39b945a3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -159,7 +159,8 @@ static void mmio_access(struct kvm_vcpu *vcpu, u64 src_pa, u64 *dest,

	if (p->u.ioreq.state == STATE_IORESP_READY) {
		if (dir == IOREQ_READ)
			*dest = p->u.ioreq.data;
			/* it's necessary to ensure zero extending */
			*dest = p->u.ioreq.data & (~0UL >> (64-(s*8)));
	} else
		panic_vm(vcpu);
out: