ret = HV_STATUS_INVALID_HYPERCALL_INPUT;
                        break;
                }
-               vcpu->run->exit_reason = KVM_EXIT_HYPERV;
-               vcpu->run->hyperv.type = KVM_EXIT_HYPERV_HCALL;
-               vcpu->run->hyperv.u.hcall.input = hc.param;
-               vcpu->run->hyperv.u.hcall.params[0] = hc.ingpa;
-               vcpu->run->hyperv.u.hcall.params[1] = hc.outgpa;
-               vcpu->arch.complete_userspace_io =
-                               kvm_hv_hypercall_complete_userspace;
-               return 0;
+               goto hypercall_userspace_exit;
        case HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST:
                if (unlikely(hc.var_cnt)) {
                        ret = HV_STATUS_INVALID_HYPERCALL_INPUT;
                        ret = HV_STATUS_OPERATION_DENIED;
                        break;
                }
-               vcpu->run->exit_reason = KVM_EXIT_HYPERV;
-               vcpu->run->hyperv.type = KVM_EXIT_HYPERV_HCALL;
-               vcpu->run->hyperv.u.hcall.input = hc.param;
-               vcpu->run->hyperv.u.hcall.params[0] = hc.ingpa;
-               vcpu->run->hyperv.u.hcall.params[1] = hc.outgpa;
-               vcpu->arch.complete_userspace_io =
-                               kvm_hv_hypercall_complete_userspace;
-               return 0;
+               goto hypercall_userspace_exit;
        }
        default:
                ret = HV_STATUS_INVALID_HYPERCALL_CODE;
 
 hypercall_complete:
        return kvm_hv_hypercall_complete(vcpu, ret);
+
+hypercall_userspace_exit:
+       vcpu->run->exit_reason = KVM_EXIT_HYPERV;
+       vcpu->run->hyperv.type = KVM_EXIT_HYPERV_HCALL;
+       vcpu->run->hyperv.u.hcall.input = hc.param;
+       vcpu->run->hyperv.u.hcall.params[0] = hc.ingpa;
+       vcpu->run->hyperv.u.hcall.params[1] = hc.outgpa;
+       vcpu->arch.complete_userspace_io = kvm_hv_hypercall_complete_userspace;
+       return 0;
 }
 
 void kvm_hv_init_vm(struct kvm *kvm)