Re: [PATCH for 4.19] x86/cpu: Fix migration safety with X86_BUG_NULL_SEL

From: Greg KH
Date: Mon Nov 15 2021 - 12:03:54 EST


On Mon, Nov 15, 2021 at 04:30:20PM +0000, Jane Malalane wrote:
> commit 415de44076640483648d6c0f6d645a9ee61328ad upstream.
>
> Currently, Linux probes for X86_BUG_NULL_SEL unconditionally which
> makes it unsafe to migrate in a virtualised environment as the
> properties across the migration pool might differ.
>
> To be specific, the case which goes wrong is:
>
> 1. Zen1 (or earlier) and Zen2 (or later) in a migration pool
> 2. Linux boots on Zen2, probes and finds the absence of X86_BUG_NULL_SEL
> 3. Linux is then migrated to Zen1
>
> Linux is now running on a X86_BUG_NULL_SEL-impacted CPU while believing
> that the bug is fixed.
>
> The only way to address the problem is to fully trust the "no longer
> affected" CPUID bit when virtualised, because in the above case it would
> be clear deliberately to indicate the fact "you might migrate to
> somewhere which has this behaviour".
>
> Zen3 adds the NullSelectorClearsBase CPUID bit to indicate that loading
> a NULL segment selector zeroes the base and limit fields, as well as
> just attributes. Zen2 also has this behaviour but doesn't have the NSCB
> bit.
>
> [ bp: Minor touchups. ]
>
> Signed-off-by: Jane Malalane <jane.malalane@xxxxxxxxxx>
> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
> CC: <stable@xxxxxxxxxxxxxxx>
> Link: https://lkml.kernel.org/r/20211021104744.24126-1-jane.malalane@xxxxxxxxxx
> ---
> Backport to 4.19. Drop Hygon modifications.

Now queued up, thanks.

greg k-h