Re: [PATCH] powerpc/64s: Enhance the information in cpu_show_spectre_v1()

From: Christophe Leroy
Date: Tue May 29 2018 - 11:28:14 EST




On 05/29/2018 02:46 PM, Michal SuchÃnek wrote:
On Tue, 29 May 2018 16:13:49 +0200
Christophe LEROY <christophe.leroy@xxxxxx> wrote:

Le 28/05/2018 Ã 15:19, Michal Suchanek a ÃcritÂ:
We now have barrier_nospec as mitigation so print it in
cpu_show_spectre_v1 when enabled.

Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx>
---
arch/powerpc/kernel/security.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/security.c
b/arch/powerpc/kernel/security.c index 0239383c7e4d..a0c32d53980b
100644 --- a/arch/powerpc/kernel/security.c
+++ b/arch/powerpc/kernel/security.c
@@ -120,7 +120,10 @@ ssize_t cpu_show_spectre_v1(struct device
*dev, struct device_attribute *attr, c if
(!security_ftr_enabled(SEC_FTR_BNDS_CHK_SPEC_BAR)) return
sprintf(buf, "Not affected\n");
- return sprintf(buf, "Vulnerable\n");
+ if (barrier_nospec_enabled)

+ return sprintf(buf, "Mitigation: __user pointer
sanitization\n");
+ else
+ return sprintf(buf, "Vulnerable\n");

Checkpatch would tell you that an else is unneeded after a return. So
just leave it as it was before.

Where did you get your copy of checkpatch? The one in Linux tree does
not do that.

Strange, it should, as checkpatch.pl includes the following code:

# check indentation of any line with a bare else
# (but not if it is a multiple line "if (foo) return bar; else return baz;")
# if the previous line is a break or return and is indented 1 tab more...
if ($sline =~ /^\+([\t]+)(?:}[ \t]*)?else(?:[ \t]*{)?\s*$/) {
my $tabs = length($1) + 1;
if ($prevline =~ /^\+\t{$tabs,$tabs}break\b/ ||
($prevline =~ /^\+\t{$tabs,$tabs}return\b/ &&
defined $lines[$linenr] &&
$lines[$linenr] !~ /^[ \+]\t{$tabs,$tabs}return/)) {
WARN("UNNECESSARY_ELSE",
"else is not generally useful after a break or return\n" . $hereprev);
}
}


Anyway, you should remove that 'else' in your patch.
And the other sprintf line is over 80 characters.

Christophe


Thanks

Michal