operand2 = kvm_s390_get_base_disp_s(vcpu);
 
        /* must be word boundary */
-       if (operand2 & 3) {
-               kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
-               goto out;
-       }
+       if (operand2 & 3)
+               return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
 
        /* get the value */
-       if (get_guest(vcpu, address, (u32 __user *) operand2)) {
-               kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
-               goto out;
-       }
+       if (get_guest(vcpu, address, (u32 __user *) operand2))
+               return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
 
        address = address & 0x7fffe000u;
 
        /* make sure that the new value is valid memory */
        if (copy_from_guest_absolute(vcpu, &tmp, address, 1) ||
-          (copy_from_guest_absolute(vcpu, &tmp, address + PAGE_SIZE, 1))) {
-               kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
-               goto out;
-       }
+          (copy_from_guest_absolute(vcpu, &tmp, address + PAGE_SIZE, 1)))
+               return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
 
        kvm_s390_set_prefix(vcpu, address);
 
        VCPU_EVENT(vcpu, 5, "setting prefix to %x", address);
        trace_kvm_s390_handle_prefix(vcpu, 1, address);
-out:
        return 0;
 }
 
        operand2 = kvm_s390_get_base_disp_s(vcpu);
 
        /* must be word boundary */
-       if (operand2 & 3) {
-               kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
-               goto out;
-       }
+       if (operand2 & 3)
+               return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
 
        address = vcpu->arch.sie_block->prefix;
        address = address & 0x7fffe000u;
 
        /* get the value */
-       if (put_guest(vcpu, address, (u32 __user *)operand2)) {
-               kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
-               goto out;
-       }
+       if (put_guest(vcpu, address, (u32 __user *)operand2))
+               return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
 
        VCPU_EVENT(vcpu, 5, "storing prefix to %x", address);
        trace_kvm_s390_handle_prefix(vcpu, 0, address);
-out:
        return 0;
 }
 
 static int handle_store_cpu_address(struct kvm_vcpu *vcpu)
 {
        u64 useraddr;
-       int rc;
 
        vcpu->stat.instruction_stap++;
 
        useraddr = kvm_s390_get_base_disp_s(vcpu);
 
-       if (useraddr & 1) {
-               kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
-               goto out;
-       }
+       if (useraddr & 1)
+               return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
 
-       rc = put_guest(vcpu, vcpu->vcpu_id, (u16 __user *)useraddr);
-       if (rc) {
-               kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
-               goto out;
-       }
+       if (put_guest(vcpu, vcpu->vcpu_id, (u16 __user *)useraddr))
+               return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
 
        VCPU_EVENT(vcpu, 5, "storing cpu address to %llx", useraddr);
        trace_kvm_s390_handle_stap(vcpu, useraddr);
-out:
        return 0;
 }
 
        int cc;
 
        addr = kvm_s390_get_base_disp_s(vcpu);
-       if (addr & 3) {
-               kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
-               goto out;
-       }
+       if (addr & 3)
+               return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
        cc = 0;
        inti = kvm_s390_get_io_int(vcpu->kvm, vcpu->run->s.regs.crs[6], 0);
        if (!inti)
        /* Set condition code and we're done. */
        vcpu->arch.sie_block->gpsw.mask &= ~(3ul << 44);
        vcpu->arch.sie_block->gpsw.mask |= (cc & 3ul) << 44;
-out:
        return 0;
 }
 
        rc = copy_to_guest(vcpu, offsetof(struct _lowcore, stfl_fac_list),
                           &facility_list, sizeof(facility_list));
        if (rc)
-               kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
-       else {
-               VCPU_EVENT(vcpu, 5, "store facility list value %x",
-                          facility_list);
-               trace_kvm_s390_handle_stfl(vcpu, facility_list);
-       }
+               return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
+       VCPU_EVENT(vcpu, 5, "store facility list value %x", facility_list);
+       trace_kvm_s390_handle_stfl(vcpu, facility_list);
        return 0;
 }
 
 static int handle_stidp(struct kvm_vcpu *vcpu)
 {
        u64 operand2;
-       int rc;
 
        vcpu->stat.instruction_stidp++;
 
        operand2 = kvm_s390_get_base_disp_s(vcpu);
 
-       if (operand2 & 7) {
-               kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
-               goto out;
-       }
+       if (operand2 & 7)
+               return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
 
-       rc = put_guest(vcpu, vcpu->arch.stidp_data, (u64 __user *)operand2);
-       if (rc) {
-               kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
-               goto out;
-       }
+       if (put_guest(vcpu, vcpu->arch.stidp_data, (u64 __user *)operand2))
+               return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
 
        VCPU_EVENT(vcpu, 5, "%s", "store cpu id");
-out:
        return 0;
 }
 
        int sel2 = vcpu->run->s.regs.gprs[1] & 0xffff;
        u64 operand2;
        unsigned long mem;
+       int rc = 0;
 
        vcpu->stat.instruction_stsi++;
        VCPU_EVENT(vcpu, 4, "stsi: fc: %x sel1: %x sel2: %x", fc, sel1, sel2);
        }
 
        if (copy_to_guest_absolute(vcpu, operand2, (void *) mem, PAGE_SIZE)) {
-               kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
+               rc = kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
                goto out_mem;
        }
        trace_kvm_s390_handle_stsi(vcpu, fc, sel1, sel2, operand2);
 out_fail:
        /* condition code 3 */
        vcpu->arch.sie_block->gpsw.mask |= 3ul << 44;
-       return 0;
+       return rc;
 }
 
 static const intercept_handler_t b2_handlers[256] = {