On 9/15/2023 8:24 AM, Edgecombe, Rick P wrote:
On Thu, 2023-09-14 at 02:33 -0400, Yang Weijiang wrote:
+static void __init init_kernel_dynamic_xfeatures(void)
+{
+ unsigned short cid;
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(xsave_kernel_dynamic_xfeatures);
i++) {
+ cid = xsave_kernel_dynamic_xfeatures[i];
+
+ if (cid && boot_cpu_has(cid))
+ fpu_kernel_dynamic_xfeatures |= BIT_ULL(i);
+ }
+}
+
I think this can be part of the max_features calculation that uses
xsave_cpuid_features when you use use a fixed mask like Dave suggested
in the other patch.
Yes, the max_features has already included CET supervisor state bit. After use
fixed mask, this function is not needed.