Sasha Levin <Alexander.Levin@xxxxxxxxxxxxx> writes: > From: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > > This patch has been added to the 4.1 stable tree. If you have any > objections, please let us know. This commit back ports cleanly to v4.1 but doesn't actually work because the generic support it depends on has not been back ported AFAICS. We need at least this commit in v4.1: 87590ce6e373 ("sysfs/cpu: Add vulnerability folder") cheers > =============== > > [ Upstream commit fd6e440f20b1a4304553775fc55938848ff617c9 ] > > The recent commit 87590ce6e373 ("sysfs/cpu: Add vulnerability folder") > added a generic folder and set of files for reporting information on > CPU vulnerabilities. One of those was for meltdown: > > /sys/devices/system/cpu/vulnerabilities/meltdown > > This commit wires up that file for 64-bit Book3S powerpc. > > For now we default to "Vulnerable" unless the RFI flush is enabled. > That may not actually be true on all hardware, further patches will > refine the reporting based on the CPU/platform etc. But for now we > default to being pessimists. > > Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxxxx> > --- > arch/powerpc/Kconfig | 1 + > arch/powerpc/kernel/setup_64.c | 8 ++++++++ > 2 files changed, 9 insertions(+) > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index cffaeeee0d3e..a55a246fc784 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -133,6 +133,7 @@ config PPC > select GENERIC_SMP_IDLE_THREAD > select GENERIC_CMOS_UPDATE > select GENERIC_TIME_VSYSCALL_OLD > + select GENERIC_CPU_VULNERABILITIES if PPC_BOOK3S_64 > select GENERIC_CLOCKEVENTS > select GENERIC_CLOCKEVENTS_BROADCAST if SMP > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c > index a3993ac21b50..1555778adb9c 100644 > --- a/arch/powerpc/kernel/setup_64.c > +++ b/arch/powerpc/kernel/setup_64.c > @@ -907,5 +907,13 @@ void __init setup_rfi_flush(enum l1d_flush_type types, bool enable) > if (!no_rfi_flush) > rfi_flush_enable(enable); > } > + > +ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, char *buf) > +{ > + if (rfi_flush) > + return sprintf(buf, "Mitigation: RFI Flush\n"); > + > + return sprintf(buf, "Vulnerable\n"); > +} > #endif /* CONFIG_PPC_BOOK3S_64 */ > #endif > -- > 2.14.1