android_kernel_samsung_msm8976/arch/s390/kvm
Christian Borntraeger 0c29b2293b s390/kvm: Fix instruction decoding
Instructions with long displacement have a signed displacement.
Currently the sign bit is interpreted as 2^20: Lets fix it by doing the
sign extension from 20bit to 32bit and then use it as a signed variable
in the addition (see kvm_s390_get_base_disp_rsy).

Furthermore, there are lots of "int" in that code. This is problematic,
because shifting on a signed integer is undefined/implementation defined
if the bit value happens to be negative.
Fortunately the promotion rules will make the right hand side unsigned
anyway, so there is no real problem right now.
Let's convert them anyway to unsigned where appropriate to avoid
problems if the code is changed or copy/pasted later on.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
2013-01-30 12:35:59 +02:00
..
diag.c KVM: s390: Add implementation-specific trace events 2012-07-26 14:04:35 +03:00
gaccess.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
intercept.c KVM: s390: Add support for channel I/O instructions. 2013-01-07 19:53:43 -02:00
interrupt.c KVM: s390: Add support for channel I/O instructions. 2013-01-07 19:53:43 -02:00
Kconfig KVM updates for the 3.7 merge window 2012-10-04 09:30:33 -07:00
kvm-s390.c s390/kvm: Fix store status for ACRS/FPRS 2013-01-30 12:35:51 +02:00
kvm-s390.h s390/kvm: Fix instruction decoding 2013-01-30 12:35:59 +02:00
Makefile [S390] move sie code to entry.S 2011-07-24 10:48:21 +02:00
priv.c KVM: s390: Add support for channel I/O instructions. 2013-01-07 19:53:43 -02:00
sigp.c KVM: s390: kvm/sigp.c: fix memory leakage 2013-01-17 08:41:48 +02:00
trace-s390.h KVM: s390: Add support for channel I/O instructions. 2013-01-07 19:53:43 -02:00
trace.h KVM: s390: Add architectural trace events 2012-07-26 14:04:34 +03:00