An invalid argument to KVM_SET_MP_STATE has no effect other than making the
vCPU fail to run at the next KVM_RUN.  Since it is extremely unlikely that
any userspace is relying on it, fail with -EINVAL just like for other
architectures.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
        case KVM_MP_STATE_INIT_RECEIVED:
                break;
        default:
-               return -EINTR;
+               WARN_ON_ONCE(1);
+               break;
        }
        return 1;
 }
 
        vcpu_load(vcpu);
 
-       if (!lapic_in_kernel(vcpu) &&
-           mp_state->mp_state != KVM_MP_STATE_RUNNABLE)
+       switch (mp_state->mp_state) {
+       case KVM_MP_STATE_UNINITIALIZED:
+       case KVM_MP_STATE_HALTED:
+       case KVM_MP_STATE_AP_RESET_HOLD:
+       case KVM_MP_STATE_INIT_RECEIVED:
+       case KVM_MP_STATE_SIPI_RECEIVED:
+               if (!lapic_in_kernel(vcpu))
+                       goto out;
+               break;
+
+       case KVM_MP_STATE_RUNNABLE:
+               break;
+
+       default:
                goto out;
+       }
 
        /*
         * KVM_MP_STATE_INIT_RECEIVED means the processor is in