On 03/14/2018 07:40 PM, Mauricio Faria de Oliveira wrote: > From: Michael Ellerman <m...@ellerman.id.au> > > rfi_flush_enable() includes a check to see if we're already > enabled (or disabled), and in that case does nothing. > > But that means calling setup_rfi_flush() a 2nd time doesn't actually > work, which is a bit confusing. > > Move that check into the debugfs code, where it really belongs. > > Signed-off-by: Michael Ellerman <m...@ellerman.id.au> > Signed-off-by: Mauricio Faria de Oliveira <mauri...@linux.vnet.ibm.com> > --- > arch/powerpc/kernel/setup_64.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c > index c388cc3..3efc01a 100644 > --- a/arch/powerpc/kernel/setup_64.c > +++ b/arch/powerpc/kernel/setup_64.c > @@ -846,9 +846,6 @@ static void do_nothing(void *unused) > > void rfi_flush_enable(bool enable) > { > - if (rfi_flush == enable) > - return; > - > if (enable) { > do_rfi_flush_fixups(enabled_flush_types); > on_each_cpu(do_nothing, NULL, 1); > @@ -902,13 +899,19 @@ void __init setup_rfi_flush(enum l1d_flush_type types, > bool enable) > #ifdef CONFIG_DEBUG_FS > static int rfi_flush_set(void *data, u64 val) > { > + bool enable; > + > if (val == 1) > - rfi_flush_enable(true); > + enable = true; > else if (val == 0) > - rfi_flush_enable(false); > + enable = false; > else > return -EINVAL; > > + /* Only do anything if we're changing state */ > + if (enable != rfi_flush)
Hi, Mauricio. Do we need to take into account if no_rfi_flush == true? if ((enable != rfi_flush) && !no_rfi_flush) > + rfi_flush_enable(enable); > + > return 0; > } > Cheers Murilo