On Sun, Jun 06, 2021 at 01:47:46AM +0200, Thomas Gleixner wrote:
@@ -120,6 +121,8 @@ void __init check_bugs(void) arch_smt_update();
- pkru_propagate_default();
I guess this fits better at the end of identify_boot_cpu(), which is pretty close to here, in the boot order.
Regardless, that function check_bugs() needs cleaning up as it has collected a lot more stuff than just checking the bugs nasty.
+void pkru_propagate_default(void) {
- u32 init_pkru_value_snapshot = READ_ONCE(init_pkru_value);
- struct pkru_state *pk;
- if (!boot_cpu_has(X86_FEATURE_OSPKE))
cpu_feature_enabled()
/*return;
* Override the PKRU state that came from 'init_fpstate'
* with the baseline from the process.
* Force XFEATURE_PKRU to be set in the header otherwise
* get_xsave_addr() does not work and it needs to be set
*/* to make XRSTOR(S) load it.
- write_pkru(init_pkru_value_snapshot);
- init_fpstate.xsave.header.xfeatures |= XFEATURE_MASK_PKRU;
- pk = get_xsave_addr(&init_fpstate.xsave, XFEATURE_PKRU);
- pk->pkru = READ_ONCE(init_pkru_value);
}