forked from mirrors/linux
		
	KVM: X86: Introduce generic guest-mode representation
This patch introduces a generic representation of guest-mode fpr a vcpu. This currently only exists in the SVM code. Having this representation generic will help making the non-svm code aware of nesting when this is necessary. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
		
							parent
							
								
									6389ee9463
								
							
						
					
					
						commit
						ec9e60b219
					
				
					 2 changed files with 16 additions and 0 deletions
				
			
		| 
						 | 
					@ -779,6 +779,7 @@ enum {
 | 
				
			||||||
#define HF_VINTR_MASK		(1 << 2)
 | 
					#define HF_VINTR_MASK		(1 << 2)
 | 
				
			||||||
#define HF_NMI_MASK		(1 << 3)
 | 
					#define HF_NMI_MASK		(1 << 3)
 | 
				
			||||||
#define HF_IRET_MASK		(1 << 4)
 | 
					#define HF_IRET_MASK		(1 << 4)
 | 
				
			||||||
 | 
					#define HF_GUEST_MASK		(1 << 5) /* VCPU is in guest-mode */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Hardware virtualization extension instructions may fault if a
 | 
					 * Hardware virtualization extension instructions may fault if a
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -84,4 +84,19 @@ static inline u64 kvm_read_edx_eax(struct kvm_vcpu *vcpu)
 | 
				
			||||||
		| ((u64)(kvm_register_read(vcpu, VCPU_REGS_RDX) & -1u) << 32);
 | 
							| ((u64)(kvm_register_read(vcpu, VCPU_REGS_RDX) & -1u) << 32);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline void enter_guest_mode(struct kvm_vcpu *vcpu)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						vcpu->arch.hflags |= HF_GUEST_MASK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline void leave_guest_mode(struct kvm_vcpu *vcpu)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						vcpu->arch.hflags &= ~HF_GUEST_MASK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline bool is_guest_mode(struct kvm_vcpu *vcpu)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return vcpu->arch.hflags & HF_GUEST_MASK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue