LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Neuling <mikey@neuling.org>
To: Michael Ellerman <mpe@ellerman.id.au>, linuxppc-dev@ozlabs.org
Cc: diana.craciun@nxp.com, msuchanek@suse.de,
	andrew.donnellan@au1.ibm.com, dja@axtens.net
Subject: Re: [PATCH] powerpc/security: Fix spectre_v2 reporting
Date: Thu, 21 Mar 2019 17:29:11 +1100	[thread overview]
Message-ID: <1385fa307b4d21e18879b4bf962e2ce240363a15.camel@neuling.org> (raw)
In-Reply-To: <20190321042433.20454-1-mpe@ellerman.id.au>

On Thu, 2019-03-21 at 15:24 +1100, Michael Ellerman wrote:
> When I updated the spectre_v2 reporting to handle software count cache
> flush I got the logic wrong when there's no software count cache
> enabled at all.
> 
> The result is that on systems with the software count cache flush
> disabled we print:
> 
>   Mitigation: Indirect branch cache disabled, Software count cache flush
> 
> Which correctly indicates that the count cache is disabled, but
> incorrectly says the software count cache flush is enabled.
> 
> The root of the problem is that we are trying to handle all
> combinations of options. But we know now that we only expect to see
> the software count cache flush enabled if the other options are false.
> 
> So split the two cases, which simplifies the logic and fixes the bug.
> We were also missing a space before "(hardware accelerated)".
> 
> The result is we see one of:
> 
>   Mitigation: Indirect branch serialisation (kernel only)
>   Mitigation: Indirect branch cache disabled
>   Mitigation: Software count cache flush
>   Mitigation: Software count cache flush (hardware accelerated)
> 
> Fixes: ee13cb249fab ("powerpc/64s: Add support for software count cache flush")
> Cc: stable@vger.kernel.org # v4.19+
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

LGTM

Reviewed-by: Michael Neuling <mikey@neuling.org>

> ---
>  arch/powerpc/kernel/security.c | 23 ++++++++---------------
>  1 file changed, 8 insertions(+), 15 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/security.c b/arch/powerpc/kernel/security.c
> index 9b8631533e02..b33bafb8fcea 100644
> --- a/arch/powerpc/kernel/security.c
> +++ b/arch/powerpc/kernel/security.c
> @@ -190,29 +190,22 @@ ssize_t cpu_show_spectre_v2(struct device *dev, struct device_attribute *attr, c
>  	bcs = security_ftr_enabled(SEC_FTR_BCCTRL_SERIALISED);
>  	ccd = security_ftr_enabled(SEC_FTR_COUNT_CACHE_DISABLED);
>  
> -	if (bcs || ccd || count_cache_flush_type != COUNT_CACHE_FLUSH_NONE) {
> -		bool comma = false;
> +	if (bcs || ccd) {
>  		seq_buf_printf(&s, "Mitigation: ");
>  
> -		if (bcs) {
> +		if (bcs)
>  			seq_buf_printf(&s, "Indirect branch serialisation (kernel only)");
> -			comma = true;
> -		}
>  
> -		if (ccd) {
> -			if (comma)
> -				seq_buf_printf(&s, ", ");
> -			seq_buf_printf(&s, "Indirect branch cache disabled");
> -			comma = true;
> -		}
> -
> -		if (comma)
> +		if (bcs && ccd)
>  			seq_buf_printf(&s, ", ");
>  
> -		seq_buf_printf(&s, "Software count cache flush");
> +		if (ccd)
> +			seq_buf_printf(&s, "Indirect branch cache disabled");
> +	} else if (count_cache_flush_type != COUNT_CACHE_FLUSH_NONE) {
> +		seq_buf_printf(&s, "Mitigation: Software count cache flush");
>  
>  		if (count_cache_flush_type == COUNT_CACHE_FLUSH_HW)
> -			seq_buf_printf(&s, "(hardware accelerated)");
> +			seq_buf_printf(&s, " (hardware accelerated)");
>  	} else if (btb_flush_enabled) {
>  		seq_buf_printf(&s, "Mitigation: Branch predictor state flush");
>  	} else {


  reply	other threads:[~2019-03-21  6:30 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-21  4:24 [PATCH] powerpc/security: Fix spectre_v2 reporting Michael Ellerman
2019-03-21  6:29 ` Michael Neuling [this message]
2019-03-21  9:59 ` Diana Madalina Craciun
2019-03-22 12:21 ` Michael Ellerman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1385fa307b4d21e18879b4bf962e2ce240363a15.camel@neuling.org \
    --to=mikey@neuling.org \
    --cc=andrew.donnellan@au1.ibm.com \
    --cc=diana.craciun@nxp.com \
    --cc=dja@axtens.net \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=msuchanek@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox