summaryrefslogtreecommitdiffstats
path: root/arch/s390/kvm/priv.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2013-03-05 13:14:44 +0100
committerMarcelo Tosatti <mtosatti@redhat.com>2013-03-07 16:21:21 -0300
commit396083a964aa4e86061d0e3449b1e0548a8197a9 (patch)
tree1f0185c6fe56964a4eaaa96ba9c3eac6e32934ff /arch/s390/kvm/priv.c
parentdc5008b9bf6adb0c0a5afba6fb376a85451b2697 (diff)
downloadop-kernel-dev-396083a964aa4e86061d0e3449b1e0548a8197a9.zip
op-kernel-dev-396083a964aa4e86061d0e3449b1e0548a8197a9.tar.gz
s390/kvm,gaccess: shorten put/get_guest code
The put_guest_u*/get_guest_u* are nothing but wrappers for the regular put_user/get_user uaccess functions. The only difference is that before accessing user space the guest address must be translated to a user space address. Change the order of arguments for the guest access functions so they match their uaccess parts. Also remove the u* suffix, so we simply have put_guest/get_guest which will automatically use the right size dependent on pointer type of the destination/source that now must be correct. In result the same behaviour as put_user/get_user except that accesses must be aligned. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/s390/kvm/priv.c')
-rw-r--r--arch/s390/kvm/priv.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c
index 34b42dc..cb07147 100644
--- a/arch/s390/kvm/priv.c
+++ b/arch/s390/kvm/priv.c
@@ -41,7 +41,7 @@ static int handle_set_prefix(struct kvm_vcpu *vcpu)
}
/* get the value */
- if (get_guest_u32(vcpu, operand2, &address)) {
+ if (get_guest(vcpu, address, (u32 *) operand2)) {
kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
goto out;
}
@@ -82,7 +82,7 @@ static int handle_store_prefix(struct kvm_vcpu *vcpu)
address = address & 0x7fffe000u;
/* get the value */
- if (put_guest_u32(vcpu, operand2, address)) {
+ if (put_guest(vcpu, address, (u32 *)operand2)) {
kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
goto out;
}
@@ -107,7 +107,7 @@ static int handle_store_cpu_address(struct kvm_vcpu *vcpu)
goto out;
}
- rc = put_guest_u16(vcpu, useraddr, vcpu->vcpu_id);
+ rc = put_guest(vcpu, vcpu->vcpu_id, (u16 *)useraddr);
if (rc) {
kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
goto out;
@@ -142,18 +142,18 @@ static int handle_tpi(struct kvm_vcpu *vcpu)
* Store the two-word I/O interruption code into the
* provided area.
*/
- put_guest_u16(vcpu, addr, inti->io.subchannel_id);
- put_guest_u16(vcpu, addr + 2, inti->io.subchannel_nr);
- put_guest_u32(vcpu, addr + 4, inti->io.io_int_parm);
+ put_guest(vcpu, inti->io.subchannel_id, (u16 *) addr);
+ put_guest(vcpu, inti->io.subchannel_nr, (u16 *) (addr + 2));
+ put_guest(vcpu, inti->io.io_int_parm, (u32 *) (addr + 4));
} else {
/*
* Store the three-word I/O interruption code into
* the appropriate lowcore area.
*/
- put_guest_u16(vcpu, 184, inti->io.subchannel_id);
- put_guest_u16(vcpu, 186, inti->io.subchannel_nr);
- put_guest_u32(vcpu, 188, inti->io.io_int_parm);
- put_guest_u32(vcpu, 192, inti->io.io_int_word);
+ put_guest(vcpu, inti->io.subchannel_id, (u16 *) 184);
+ put_guest(vcpu, inti->io.subchannel_nr, (u16 *) 186);
+ put_guest(vcpu, inti->io.io_int_parm, (u32 *) 188);
+ put_guest(vcpu, inti->io.io_int_word, (u32 *) 192);
}
cc = 1;
} else
@@ -347,7 +347,7 @@ static int handle_stidp(struct kvm_vcpu *vcpu)
goto out;
}
- rc = put_guest_u64(vcpu, operand2, vcpu->arch.stidp_data);
+ rc = put_guest(vcpu, vcpu->arch.stidp_data, (u64 *)operand2);
if (rc) {
kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
goto out;
OpenPOWER on IntegriCloud