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