diff options
Diffstat (limited to 'arch/s390/kvm/sigp.c')
-rw-r--r-- | arch/s390/kvm/sigp.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c index 0a7941d74bc6..30eb0f73f9d5 100644 --- a/arch/s390/kvm/sigp.c +++ b/arch/s390/kvm/sigp.c | |||
@@ -48,7 +48,7 @@ | |||
48 | 48 | ||
49 | 49 | ||
50 | static int __sigp_sense(struct kvm_vcpu *vcpu, u16 cpu_addr, | 50 | static int __sigp_sense(struct kvm_vcpu *vcpu, u16 cpu_addr, |
51 | unsigned long *reg) | 51 | u64 *reg) |
52 | { | 52 | { |
53 | struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; | 53 | struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; |
54 | int rc; | 54 | int rc; |
@@ -220,7 +220,7 @@ static int __sigp_set_arch(struct kvm_vcpu *vcpu, u32 parameter) | |||
220 | } | 220 | } |
221 | 221 | ||
222 | static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address, | 222 | static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address, |
223 | unsigned long *reg) | 223 | u64 *reg) |
224 | { | 224 | { |
225 | struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; | 225 | struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; |
226 | struct kvm_s390_local_interrupt *li = NULL; | 226 | struct kvm_s390_local_interrupt *li = NULL; |
@@ -278,7 +278,7 @@ out_fi: | |||
278 | } | 278 | } |
279 | 279 | ||
280 | static int __sigp_sense_running(struct kvm_vcpu *vcpu, u16 cpu_addr, | 280 | static int __sigp_sense_running(struct kvm_vcpu *vcpu, u16 cpu_addr, |
281 | unsigned long *reg) | 281 | u64 *reg) |
282 | { | 282 | { |
283 | int rc; | 283 | int rc; |
284 | struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; | 284 | struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; |
@@ -316,7 +316,7 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu) | |||
316 | int base2 = vcpu->arch.sie_block->ipb >> 28; | 316 | int base2 = vcpu->arch.sie_block->ipb >> 28; |
317 | int disp2 = ((vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16); | 317 | int disp2 = ((vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16); |
318 | u32 parameter; | 318 | u32 parameter; |
319 | u16 cpu_addr = vcpu->arch.guest_gprs[r3]; | 319 | u16 cpu_addr = vcpu->run->s.regs.gprs[r3]; |
320 | u8 order_code; | 320 | u8 order_code; |
321 | int rc; | 321 | int rc; |
322 | 322 | ||
@@ -327,18 +327,18 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu) | |||
327 | 327 | ||
328 | order_code = disp2; | 328 | order_code = disp2; |
329 | if (base2) | 329 | if (base2) |
330 | order_code += vcpu->arch.guest_gprs[base2]; | 330 | order_code += vcpu->run->s.regs.gprs[base2]; |
331 | 331 | ||
332 | if (r1 % 2) | 332 | if (r1 % 2) |
333 | parameter = vcpu->arch.guest_gprs[r1]; | 333 | parameter = vcpu->run->s.regs.gprs[r1]; |
334 | else | 334 | else |
335 | parameter = vcpu->arch.guest_gprs[r1 + 1]; | 335 | parameter = vcpu->run->s.regs.gprs[r1 + 1]; |
336 | 336 | ||
337 | switch (order_code) { | 337 | switch (order_code) { |
338 | case SIGP_SENSE: | 338 | case SIGP_SENSE: |
339 | vcpu->stat.instruction_sigp_sense++; | 339 | vcpu->stat.instruction_sigp_sense++; |
340 | rc = __sigp_sense(vcpu, cpu_addr, | 340 | rc = __sigp_sense(vcpu, cpu_addr, |
341 | &vcpu->arch.guest_gprs[r1]); | 341 | &vcpu->run->s.regs.gprs[r1]); |
342 | break; | 342 | break; |
343 | case SIGP_EXTERNAL_CALL: | 343 | case SIGP_EXTERNAL_CALL: |
344 | vcpu->stat.instruction_sigp_external_call++; | 344 | vcpu->stat.instruction_sigp_external_call++; |
@@ -363,12 +363,12 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu) | |||
363 | case SIGP_SET_PREFIX: | 363 | case SIGP_SET_PREFIX: |
364 | vcpu->stat.instruction_sigp_prefix++; | 364 | vcpu->stat.instruction_sigp_prefix++; |
365 | rc = __sigp_set_prefix(vcpu, cpu_addr, parameter, | 365 | rc = __sigp_set_prefix(vcpu, cpu_addr, parameter, |
366 | &vcpu->arch.guest_gprs[r1]); | 366 | &vcpu->run->s.regs.gprs[r1]); |
367 | break; | 367 | break; |
368 | case SIGP_SENSE_RUNNING: | 368 | case SIGP_SENSE_RUNNING: |
369 | vcpu->stat.instruction_sigp_sense_running++; | 369 | vcpu->stat.instruction_sigp_sense_running++; |
370 | rc = __sigp_sense_running(vcpu, cpu_addr, | 370 | rc = __sigp_sense_running(vcpu, cpu_addr, |
371 | &vcpu->arch.guest_gprs[r1]); | 371 | &vcpu->run->s.regs.gprs[r1]); |
372 | break; | 372 | break; |
373 | case SIGP_RESTART: | 373 | case SIGP_RESTART: |
374 | vcpu->stat.instruction_sigp_restart++; | 374 | vcpu->stat.instruction_sigp_restart++; |