| From e4ee39eebaa9cfdf2abf7f93ffbb313ad10db9c5 Mon Sep 17 00:00:00 2001 |
| From: Solomon Tan <solomonbobstoner@gmail.com> |
| Date: Fri, 22 Mar 2019 13:22:55 +0800 |
| Subject: perf cs-etm: Add missing case value |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| [ Upstream commit c8fa7a807f3c5f946bd92076fbaf7826edb650dc ] |
| |
| The following error was thrown when compiling `tools/perf` using OpenCSD |
| v0.11.1. This patch fixes said error. |
| |
| CC util/intel-pt-decoder/intel-pt-log.o |
| CC util/cs-etm-decoder/cs-etm-decoder.o |
| util/cs-etm-decoder/cs-etm-decoder.c: In function |
| ‘cs_etm_decoder__buffer_range’: |
| util/cs-etm-decoder/cs-etm-decoder.c:370:2: error: enumeration value |
| ‘OCSD_INSTR_WFI_WFE’ not handled in switch [-Werror=switch-enum] |
| switch (elem->last_i_type) { |
| ^~~~~~ |
| CC util/intel-pt-decoder/intel-pt-decoder.o |
| cc1: all warnings being treated as errors |
| |
| Because `OCSD_INSTR_WFI_WFE` case was added only in v0.11.0, the minimum |
| required OpenCSD library version for this patch is no longer v0.10.0. |
| |
| Signed-off-by: Solomon Tan <solomonbobstoner@gmail.com> |
| Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> |
| Cc: Jiri Olsa <jolsa@redhat.com> |
| Cc: Mathieu Poirier <mathieu.poirier@linaro.org> |
| Cc: Namhyung Kim <namhyung@kernel.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Robert Walker <robert.walker@arm.com> |
| Cc: Suzuki K Poulouse <suzuki.poulose@arm.com> |
| Cc: linux-arm-kernel@lists.infradead.org |
| Link: http://lkml.kernel.org/r/20190322052255.GA4809@w-OptiPlex-7050 |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Sasha Levin (Microsoft) <sashal@kernel.org> |
| --- |
| tools/build/feature/test-libopencsd.c | 4 ++-- |
| tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 1 + |
| 2 files changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/tools/build/feature/test-libopencsd.c b/tools/build/feature/test-libopencsd.c |
| index d68eb4fb40cc..2b0e02c38870 100644 |
| --- a/tools/build/feature/test-libopencsd.c |
| +++ b/tools/build/feature/test-libopencsd.c |
| @@ -4,9 +4,9 @@ |
| /* |
| * Check OpenCSD library version is sufficient to provide required features |
| */ |
| -#define OCSD_MIN_VER ((0 << 16) | (10 << 8) | (0)) |
| +#define OCSD_MIN_VER ((0 << 16) | (11 << 8) | (0)) |
| #if !defined(OCSD_VER_NUM) || (OCSD_VER_NUM < OCSD_MIN_VER) |
| -#error "OpenCSD >= 0.10.0 is required" |
| +#error "OpenCSD >= 0.11.0 is required" |
| #endif |
| |
| int main(void) |
| diff --git a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c |
| index 8c155575c6c5..2a8bf6b45a30 100644 |
| --- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c |
| +++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c |
| @@ -374,6 +374,7 @@ cs_etm_decoder__buffer_range(struct cs_etm_decoder *decoder, |
| break; |
| case OCSD_INSTR_ISB: |
| case OCSD_INSTR_DSB_DMB: |
| + case OCSD_INSTR_WFI_WFE: |
| case OCSD_INSTR_OTHER: |
| default: |
| packet->last_instr_taken_branch = false; |
| -- |
| 2.19.1 |
| |