On Wed, 14 Mar 2018 10:14:11 +1100 Michael Ellerman <m...@ellerman.id.au> wrote:
> When running virtualised the powerpc kernel is able to run the system > in "compat mode" - which means the kernel and hardware are pretending > to userspace that the CPU is an older version than it actually is. > > AT_BASE_PLATFORM is an AUXV entry that we export to userspace for use > when we're running in that mode, which tells userspace the "platform" > string for the real CPU version, as opposed to the faked version. > > Although we don't support compat mode when using DT CPU features, and > arguably don't need to set AT_BASE_PLATFORM, the existing cputable > based code always sets it even when we're running bare metal. That > means the lack of AT_BASE_PLATFORM is a user-visible artifact of the > fact that the kernel is using DT CPU features, which we don't want. > > So set it in the DT CPU features code also. > > This results in eg: > $ LD_SHOW_AUXV=1 /bin/true | grep "AT_.*PLATFORM" > AT_PLATFORM: power9 > AT_BASE_PLATFORM:power9 > > Signed-off-by: Michael Ellerman <m...@ellerman.id.au> Thanks, I missed this one. Seems fine to me. Reviewed-by: Nicholas Piggin <npig...@gmail.com> > --- > arch/powerpc/kernel/dt_cpu_ftrs.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/powerpc/kernel/dt_cpu_ftrs.c > b/arch/powerpc/kernel/dt_cpu_ftrs.c > index 945e2c29ad2d..0bcfb0f256e1 100644 > --- a/arch/powerpc/kernel/dt_cpu_ftrs.c > +++ b/arch/powerpc/kernel/dt_cpu_ftrs.c > @@ -720,6 +720,9 @@ static void __init cpufeatures_setup_finished(void) > cur_cpu_spec->cpu_features |= CPU_FTR_HVMODE; > } > > + /* Make sure powerpc_base_platform is non-NULL */ > + powerpc_base_platform = cur_cpu_spec->platform; > + > system_registers.lpcr = mfspr(SPRN_LPCR); > system_registers.hfscr = mfspr(SPRN_HFSCR); > system_registers.fscr = mfspr(SPRN_FSCR);