mirror of https://gitee.com/openkylin/linux.git
KVM: Portability: Create kvm_arch_vcpu_runnable() function
This abstracts the detail of x86 hlt and INIT modes into a function. Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com> Acked-by: Carsten Otte <cotte@de.ibm.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
This commit is contained in:
parent
e01a1b570f
commit
53e0aa7b65
|
@ -643,8 +643,7 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
|
|||
*/
|
||||
while (!kvm_cpu_has_interrupt(vcpu)
|
||||
&& !signal_pending(current)
|
||||
&& vcpu->mp_state != VCPU_MP_STATE_RUNNABLE
|
||||
&& vcpu->mp_state != VCPU_MP_STATE_SIPI_RECEIVED) {
|
||||
&& !kvm_arch_vcpu_runnable(vcpu)) {
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
vcpu_put(vcpu);
|
||||
schedule();
|
||||
|
|
|
@ -471,4 +471,11 @@ static inline u32 get_rdx_init_val(void)
|
|||
#define TSS_IOPB_SIZE (65536 / 8)
|
||||
#define TSS_REDIRECTION_SIZE (256 / 8)
|
||||
#define RMODE_TSS_SIZE (TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1)
|
||||
|
||||
static inline int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
return vcpu->mp_state == VCPU_MP_STATE_RUNNABLE
|
||||
|| vcpu->mp_state == VCPU_MP_STATE_SIPI_RECEIVED;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue