public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Michael Ellerman <mpe@ellerman.id.au>
To: stable@vger.kernel.org, gregkh@linuxfoundation.org
Cc: linuxppc-dev@ozlabs.org, diana.craciun@nxp.com,
	msuchanek@suse.de, christophe.leroy@c-s.fr
Subject: [PATCH stable v4.9 35/35] powerpc/security: Fix spectre_v2 reporting
Date: Thu, 11 Apr 2019 21:46:30 +1000	[thread overview]
Message-ID: <20190411114630.4042-36-mpe@ellerman.id.au> (raw)
In-Reply-To: <20190411114630.4042-1-mpe@ellerman.id.au>

commit 92edf8df0ff2ae86cc632eeca0e651fd8431d40d upstream.

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>
Reviewed-by: Michael Neuling <mikey@neuling.org>
Reviewed-by: Diana Craciun <diana.craciun@nxp.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 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 43ce800e73bf..30542e833ebe 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 {
-- 
2.20.1


  parent reply	other threads:[~2019-04-11 11:47 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-11 11:45 [PATCH stable v4.9 00/35] powerpc spectre backports for 4.9 Michael Ellerman
2019-04-11 11:45 ` [PATCH stable v4.9 01/35] powerpc: Fix invalid use of register expressions Michael Ellerman
2019-04-11 11:45 ` [PATCH stable v4.9 02/35] powerpc/64s: Add barrier_nospec Michael Ellerman
2019-04-11 11:45 ` [PATCH stable v4.9 03/35] powerpc/64s: Add support for ori barrier_nospec patching Michael Ellerman
2019-04-11 11:45 ` [PATCH stable v4.9 04/35] powerpc: Avoid code patching freed init sections Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 05/35] powerpc/64s: Patch barrier_nospec in modules Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 06/35] powerpc/64s: Enable barrier_nospec based on firmware settings Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 07/35] powerpc: Use barrier_nospec in copy_from_user() Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 08/35] powerpc/64: Use barrier_nospec in syscall entry Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 09/35] powerpc/64s: Enhance the information in cpu_show_spectre_v1() Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 10/35] powerpc64s: Show ori31 availability in spectre_v1 sysfs file not v2 Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 11/35] powerpc/64: Disable the speculation barrier from the command line Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 12/35] powerpc/64: Make stf barrier PPC_BOOK3S_64 specific Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 13/35] powerpc/64: Add CONFIG_PPC_BARRIER_NOSPEC Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 14/35] powerpc/64: Call setup_barrier_nospec() from setup_arch() Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 15/35] powerpc/64: Make meltdown reporting Book3S 64 specific Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 16/35] powerpc/fsl: Add barrier_nospec implementation for NXP PowerPC Book3E Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 17/35] powerpc/fsl: Sanitize the syscall table for NXP PowerPC 32 bit platforms Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 18/35] powerpc/asm: Add a patch_site macro & helpers for patching instructions Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 19/35] powerpc/64s: Add new security feature flags for count cache flush Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 20/35] powerpc/64s: Add support for software " Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 21/35] powerpc/pseries: Query hypervisor for count cache flush settings Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 22/35] powerpc/powernv: Query firmware " Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 23/35] powerpc/fsl: Add infrastructure to fixup branch predictor flush Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 24/35] powerpc/fsl: Add macro to flush the branch predictor Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 25/35] powerpc/fsl: Fix spectre_v2 mitigations reporting Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 26/35] powerpc/fsl: Emulate SPRN_BUCSR register Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 27/35] powerpc/fsl: Add nospectre_v2 command line argument Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 28/35] powerpc/fsl: Flush the branch predictor at each kernel entry (64bit) Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 29/35] powerpc/fsl: Flush the branch predictor at each kernel entry (32 bit) Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 30/35] powerpc/fsl: Flush branch predictor when entering KVM Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 31/35] powerpc/fsl: Enable runtime patching if nospectre_v2 boot arg is used Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 32/35] powerpc/fsl: Update Spectre v2 reporting Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 33/35] powerpc/fsl: Fixed warning: orphan section `__btb_flush_fixup' Michael Ellerman
2019-04-11 11:46 ` [PATCH stable v4.9 34/35] powerpc/fsl: Fix the flush of branch predictor Michael Ellerman
2019-04-11 11:46 ` Michael Ellerman [this message]
2019-04-11 15:25 ` [PATCH stable v4.9 00/35] powerpc spectre backports for 4.9 Sasha Levin
2019-04-12  2:28   ` Michael Ellerman
2019-04-12 14:04     ` Sasha Levin

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=20190411114630.4042-36-mpe@ellerman.id.au \
    --to=mpe@ellerman.id.au \
    --cc=christophe.leroy@c-s.fr \
    --cc=diana.craciun@nxp.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=msuchanek@suse.de \
    --cc=stable@vger.kernel.org \
    /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