perf tests evsel-tp-sched: Fix bitwise operator [Linux 4.9.156]

This Linux kernel change "perf tests evsel-tp-sched: Fix bitwise operator" is included in the Linux 4.9.156 release. This change is authored by Gustavo A. R. Silva <gustavo [at] embeddedor.com> on Tue Jan 22 17:34:39 2019 -0600. The commit for this change in Linux stable tree is 7231ec1 (patch) which is from upstream commit 489338a. The same Linux upstream change may have been applied to various maintained Linux releases and you can find all Linux releases containing changes from upstream 489338a.

perf tests evsel-tp-sched: Fix bitwise operator

commit 489338a717a0dfbbd5a3fabccf172b78f0ac9015 upstream.

Notice that the use of the bitwise OR operator '|' always leads to true
in this particular case, which seems a bit suspicious due to the context
in which this expression is being used.

Fix this by using bitwise AND operator '&' instead.

This bug was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <[email protected]>
Acked-by: Jiri Olsa <[email protected]>
Cc: Alexander Shishkin <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: [email protected]
Fixes: 6a6cd11d4e57 ("perf test: Add test for the sched tracepoint format fields")
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

There are 2 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 tools/perf/tests/evsel-tp-sched.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/tests/evsel-tp-sched.c b/tools/perf/tests/evsel-tp-sched.c
index 1984b3b..66b53f1 100644
--- a/tools/perf/tests/evsel-tp-sched.c
+++ b/tools/perf/tests/evsel-tp-sched.c
@@ -16,7 +16,7 @@ static int perf_evsel__test_field(struct perf_evsel *evsel, const char *name,
        return -1;
    }

-   is_signed = !!(field->flags | FIELD_IS_SIGNED);
+   is_signed = !!(field->flags & FIELD_IS_SIGNED);
    if (should_be_signed && !is_signed) {
        pr_debug("%s: \"%s\" signedness(%d) is wrong, should be %d\n",
             evsel->name, name, is_signed, should_be_signed);

Leave a Reply

Your email address will not be published. Required fields are marked *