On Mar 20, 2021, at 14:25, Thomas Gleixner <t...@linutronix.de> wrote: > > And you could have changed the existing table just so: > > static unsigned short xsave_cpuid_features[] __initdata = { > [XFEATURE_FP] = X86_FEATURE_FPU, > [XFEATURE_SSE] = X86_FEATURE_XMM, > [XFEATURE_YMM] = X86_FEATURE_AVX, > [XFEATURE_BNDREGS] = X86_FEATURE_MPX, > [XFEATURE_BNDCSR] = X86_FEATURE_MPX, > [XFEATURE_OPMASK] = X86_FEATURE_AVX512F, > [XFEATURE_ZMM_Hi256] = X86_FEATURE_AVX512F, > [XFEATURE_Hi16_ZMM] = X86_FEATURE_AVX512F, > [XFEATURE_PT_UNIMPLEMENTED_SO_FAR] = X86_FEATURE_INTEL_PT, > [XFEATURE_PKRU] = X86_FEATURE_PKU, > [XFEATURE_PASID] = X86_FEATURE_ENQCMD, > }; > > and the implementation to: > > for (i = 0; i < ARRAY_SIZE(xsave_cpuid_features); i++) { > - if (xsave_cpuid_features[i] || > !boot_cpu_has(xsave_cpuid_features[i])) > + if (xsave_cpuid_features[i] || > !boot_cpu_has(xsave_cpuid_features[i])) > xfeatures_mask_all &= ~BIT_ULL(i); > > Even with the gaps for XTILE the table is smaller, the code is simpler…
True, I will follow your suggestion. Maybe follow-up with a new patch before posting v5. Thank you for the suggestion. Chang