selftests/powerpc: Return false instead of -1 in require_paranoia_below()
authorPeter Senna Tschudin <peter.senna@gmail.com>
Wed, 9 Nov 2016 08:55:04 +0000 (09:55 +0100)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 14 Nov 2016 09:06:00 +0000 (20:06 +1100)
Returning a negative value for a boolean function seem to have the
undesired effect of returning true. require_paranoia_below() is a
boolean function, but the variable used to store the return value is an
integer, receiving -1 or 0. This patch converts rc to bool, replaces -1
by false, and 0 by true.

mpe: This wasn't exhibiting in practice because the common case, where
we do the comparison of the desired level vs the current value, was
being compiled into a computation based on the result of the comparison,
ie. it wasn't using the default -1 value at all. However that was just
luck and the code is still wrong.

Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
Signed-off-by: Andrew Shadura <andrew.shadura@collabora.co.uk>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
tools/testing/selftests/powerpc/pmu/lib.c

index 8b992fa..5bf5dd4 100644 (file)
@@ -193,9 +193,9 @@ bool require_paranoia_below(int level)
        long current;
        char *end, buf[16];
        FILE *f;
-       int rc;
+       bool rc;
 
-       rc = -1;
+       rc = false;
 
        f = fopen(PARANOID_PATH, "r");
        if (!f) {
@@ -218,7 +218,7 @@ bool require_paranoia_below(int level)
        if (current >= level)
                goto out_close;
 
-       rc = 0;
+       rc = true;
 out_close:
        fclose(f);
 out: