Commit ed9244e6 authored by Nicholas Mc Guire's avatar Nicholas Mc Guire Committed by Ralf Baechle

MIPS: KVM: Do not sign extend on unsigned MMIO load

Fix possible unintended sign extension in unsigned MMIO loads by casting
to uint16_t in the case of mmio_needed != 2.
Signed-off-by: default avatarNicholas Mc Guire <hofrat@osadl.org>
Reviewed-by: default avatarJames Hogan <james.hogan@imgtec.com>
Tested-by: default avatarJames Hogan <james.hogan@imgtec.com>
Cc: Gleb Natapov <gleb@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/9985/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 8833bc30
...@@ -2409,7 +2409,7 @@ enum emulation_result kvm_mips_complete_mmio_load(struct kvm_vcpu *vcpu, ...@@ -2409,7 +2409,7 @@ enum emulation_result kvm_mips_complete_mmio_load(struct kvm_vcpu *vcpu,
if (vcpu->mmio_needed == 2) if (vcpu->mmio_needed == 2)
*gpr = *(int16_t *) run->mmio.data; *gpr = *(int16_t *) run->mmio.data;
else else
*gpr = *(int16_t *) run->mmio.data; *gpr = *(uint16_t *)run->mmio.data;
break; break;
case 1: case 1:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment