[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YL44d9YtVJx4xS2t@zn.tnic>
Date: Mon, 7 Jun 2021 17:18:38 +0200
From: Borislav Petkov <bp@...en8.de>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: LKML <linux-kernel@...r.kernel.org>, x86@...nel.org,
Andy Lutomirski <luto@...nel.org>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Fenghua Yu <fenghua.yu@...el.com>,
Tony Luck <tony.luck@...el.com>,
Yu-cheng Yu <yu-cheng.yu@...el.com>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
stable@...r.kernel.org
Subject: Re: [patch V2 04/14] x86/pkru: Make the fpinit state update work
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);
> }
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
Powered by blists - more mailing lists