diff options
Diffstat (limited to 'arch/x86/kvm/emulate.c')
| -rw-r--r-- | arch/x86/kvm/emulate.c | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 106482da6388..34edf198708f 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -2711,7 +2711,16 @@ static bool em_syscall_is_enabled(struct x86_emulate_ctxt *ctxt)  	    edx == X86EMUL_CPUID_VENDOR_AMDisbetterI_edx)  		return true; -	/* default: (not Intel, not AMD), apply Intel's stricter rules... */ +	/* Hygon ("HygonGenuine") */ +	if (ebx == X86EMUL_CPUID_VENDOR_HygonGenuine_ebx && +	    ecx == X86EMUL_CPUID_VENDOR_HygonGenuine_ecx && +	    edx == X86EMUL_CPUID_VENDOR_HygonGenuine_edx) +		return true; + +	/* +	 * default: (not Intel, not AMD, not Hygon), apply Intel's +	 * stricter rules... +	 */  	return false;  } |