@@ -4617,7 +4617,7 @@ static int vcpu_post_run_handle_fault(struct kvm_vcpu *vcpu)
46174617 return 0 ;
46184618}
46194619
4620- static int vcpu_post_run (struct kvm_vcpu * vcpu , int exit_reason )
4620+ static int vcpu_post_run (struct kvm_vcpu * vcpu , int sie_return )
46214621{
46224622 struct mcck_volatile_info * mcck_info ;
46234623 struct sie_page * sie_page ;
@@ -4633,14 +4633,14 @@ static int vcpu_post_run(struct kvm_vcpu *vcpu, int exit_reason)
46334633 vcpu -> run -> s .regs .gprs [14 ] = vcpu -> arch .sie_block -> gg14 ;
46344634 vcpu -> run -> s .regs .gprs [15 ] = vcpu -> arch .sie_block -> gg15 ;
46354635
4636- if (exit_reason == - EINTR ) {
4637- VCPU_EVENT (vcpu , 3 , "%s" , "machine check" );
4636+ if (sie_return == SIE64_RETURN_MCCK ) {
46384637 sie_page = container_of (vcpu -> arch .sie_block ,
46394638 struct sie_page , sie_block );
46404639 mcck_info = & sie_page -> mcck_info ;
46414640 kvm_s390_reinject_machine_check (vcpu , mcck_info );
46424641 return 0 ;
46434642 }
4643+ WARN_ON_ONCE (sie_return != SIE64_RETURN_NORMAL );
46444644
46454645 if (vcpu -> arch .sie_block -> icptcode > 0 ) {
46464646 rc = kvm_handle_sie_intercept (vcpu );
@@ -4679,7 +4679,7 @@ int noinstr kvm_s390_enter_exit_sie(struct kvm_s390_sie_block *scb,
46794679#define PSW_INT_MASK (PSW_MASK_EXT | PSW_MASK_IO | PSW_MASK_MCHECK)
46804680static int __vcpu_run (struct kvm_vcpu * vcpu )
46814681{
4682- int rc , exit_reason ;
4682+ int rc , sie_return ;
46834683 struct sie_page * sie_page = (struct sie_page * )vcpu -> arch .sie_block ;
46844684
46854685 /*
@@ -4719,9 +4719,9 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
47194719 guest_timing_enter_irqoff ();
47204720 __disable_cpu_timer_accounting (vcpu );
47214721
4722- exit_reason = kvm_s390_enter_exit_sie (vcpu -> arch .sie_block ,
4723- vcpu -> run -> s .regs .gprs ,
4724- vcpu -> arch .gmap -> asce .val );
4722+ sie_return = kvm_s390_enter_exit_sie (vcpu -> arch .sie_block ,
4723+ vcpu -> run -> s .regs .gprs ,
4724+ vcpu -> arch .gmap -> asce .val );
47254725
47264726 __enable_cpu_timer_accounting (vcpu );
47274727 guest_timing_exit_irqoff ();
@@ -4744,7 +4744,7 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
47444744 }
47454745 kvm_vcpu_srcu_read_lock (vcpu );
47464746
4747- rc = vcpu_post_run (vcpu , exit_reason );
4747+ rc = vcpu_post_run (vcpu , sie_return );
47484748 if (rc || guestdbg_exit_pending (vcpu )) {
47494749 kvm_vcpu_srcu_read_unlock (vcpu );
47504750 break ;
0 commit comments