x86: Properly check FEATURE_AESKLE

1. Pass 0x19 to __cpuid for bit_AESKLE.
2. Enable FEATURE_AESKLE only if bit_AESKLE is set.

	PR target/104998
	* common/config/i386/cpuinfo.h (get_available_features): Pass
	0x19 to __cpuid for bit_AESKLE.  Enable FEATURE_AESKLE only if
	bit_AESKLE is set.
This commit is contained in:
H.J. Lu 2022-03-21 06:50:14 -07:00
parent 24d51e7495
commit d0363a8069

View file

@ -779,11 +779,11 @@ get_available_features (struct __processor_model *cpu_model,
/* Get Advanced Features at level 0x19 (eax = 0x19). */
if (max_cpuid_level >= 0x19)
{
set_feature (FEATURE_AESKLE);
__cpuid (19, eax, ebx, ecx, edx);
__cpuid (0x19, eax, ebx, ecx, edx);
/* Check if OS support keylocker. */
if (ebx & bit_AESKLE)
{
set_feature (FEATURE_AESKLE);
if (ebx & bit_WIDEKL)
set_feature (FEATURE_WIDEKL);
if (has_kl)