| From ed9244e6c534612d2b5ae47feab2f55a0d4b4ced Mon Sep 17 00:00:00 2001 |
| From: Nicholas Mc Guire <hofrat@osadl.org> |
| Date: Thu, 7 May 2015 14:47:50 +0200 |
| Subject: MIPS: KVM: Do not sign extend on unsigned MMIO load |
| |
| From: Nicholas Mc Guire <hofrat@osadl.org> |
| |
| commit ed9244e6c534612d2b5ae47feab2f55a0d4b4ced upstream. |
| |
| Fix possible unintended sign extension in unsigned MMIO loads by casting |
| to uint16_t in the case of mmio_needed != 2. |
| |
| Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> |
| Reviewed-by: James Hogan <james.hogan@imgtec.com> |
| Tested-by: James 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: Ralf Baechle <ralf@linux-mips.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/mips/kvm/emulate.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/mips/kvm/emulate.c |
| +++ b/arch/mips/kvm/emulate.c |
| @@ -2101,7 +2101,7 @@ enum emulation_result kvm_mips_complete_ |
| if (vcpu->mmio_needed == 2) |
| *gpr = *(int16_t *) run->mmio.data; |
| else |
| - *gpr = *(int16_t *) run->mmio.data; |
| + *gpr = *(uint16_t *)run->mmio.data; |
| |
| break; |
| case 1: |