]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
perf cs-etm: Mute enumeration value warning
authorLeo Yan <leo.yan@arm.com>
Wed, 22 Oct 2025 14:28:49 +0000 (15:28 +0100)
committerNamhyung Kim <namhyung@kernel.org>
Fri, 24 Oct 2025 01:59:13 +0000 (18:59 -0700)
When the OpenCSD library introduces a new enumeration value (for example,
in the v1.7.1 release), the perf build fails with an error:

  util/cs-etm-decoder/cs-etm-decoder.c:600:10: error: enumeration value 'OCSD_GEN_TRC_ELEM_ITMTRACE' not explicitly handled in switch [-Werror, -Wswitch-enum]
    600 |         switch (elem->elem_type) {
|                 ^~~~~~~~~~~~~~~
  1 error generated.

Convert to if-else sentences to mute the enumeration value warning,
which can avoid build failures whenever the lib is updated.

No functional change.

Suggested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
Reviewed-by: James Clark <james.clark@linaro.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/cs-etm-decoder/cs-etm-decoder.c

index b85a8837bddcda2c8f757d9e3d2f7f302adc21bc..3050fe2126665b00c77ba3ac6b6f74324100f26b 100644 (file)
@@ -588,6 +588,7 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
                                const ocsd_generic_trace_elem *elem)
 {
        ocsd_datapath_resp_t resp = OCSD_RESP_CONT;
+       ocsd_gen_trc_elem_t type;
        struct cs_etm_decoder *decoder = (struct cs_etm_decoder *) context;
        struct cs_etm_queue *etmq = decoder->data;
        struct cs_etm_packet_queue *packet_queue;
@@ -597,52 +598,29 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
        if (!packet_queue)
                return OCSD_RESP_FATAL_SYS_ERR;
 
-       switch (elem->elem_type) {
-       case OCSD_GEN_TRC_ELEM_UNKNOWN:
-               break;
-       case OCSD_GEN_TRC_ELEM_EO_TRACE:
-       case OCSD_GEN_TRC_ELEM_NO_SYNC:
-       case OCSD_GEN_TRC_ELEM_TRACE_ON:
+       type = elem->elem_type;
+
+       if (type == OCSD_GEN_TRC_ELEM_EO_TRACE ||
+           type == OCSD_GEN_TRC_ELEM_NO_SYNC ||
+           type == OCSD_GEN_TRC_ELEM_TRACE_ON)
                resp = cs_etm_decoder__buffer_discontinuity(etmq, packet_queue,
                                                            trace_chan_id);
-               break;
-       case OCSD_GEN_TRC_ELEM_INSTR_RANGE:
+       else if (type == OCSD_GEN_TRC_ELEM_INSTR_RANGE)
                resp = cs_etm_decoder__buffer_range(etmq, packet_queue, elem,
                                                    trace_chan_id);
-               break;
-       case OCSD_GEN_TRC_ELEM_EXCEPTION:
+       else if (type == OCSD_GEN_TRC_ELEM_EXCEPTION)
                resp = cs_etm_decoder__buffer_exception(etmq, packet_queue, elem,
                                                        trace_chan_id);
-               break;
-       case OCSD_GEN_TRC_ELEM_EXCEPTION_RET:
+       else if (type == OCSD_GEN_TRC_ELEM_EXCEPTION_RET)
                resp = cs_etm_decoder__buffer_exception_ret(etmq, packet_queue,
                                                            trace_chan_id);
-               break;
-       case OCSD_GEN_TRC_ELEM_TIMESTAMP:
+       else if (type == OCSD_GEN_TRC_ELEM_TIMESTAMP)
                resp = cs_etm_decoder__do_hard_timestamp(etmq, elem,
                                                         trace_chan_id,
                                                         indx);
-               break;
-       case OCSD_GEN_TRC_ELEM_PE_CONTEXT:
+       else if (type == OCSD_GEN_TRC_ELEM_PE_CONTEXT)
                resp = cs_etm_decoder__set_tid(etmq, packet_queue,
                                               elem, trace_chan_id);
-               break;
-       /* Unused packet types */
-       case OCSD_GEN_TRC_ELEM_I_RANGE_NOPATH:
-       case OCSD_GEN_TRC_ELEM_ADDR_NACC:
-       case OCSD_GEN_TRC_ELEM_CYCLE_COUNT:
-       case OCSD_GEN_TRC_ELEM_ADDR_UNKNOWN:
-       case OCSD_GEN_TRC_ELEM_EVENT:
-       case OCSD_GEN_TRC_ELEM_SWTRACE:
-       case OCSD_GEN_TRC_ELEM_CUSTOM:
-       case OCSD_GEN_TRC_ELEM_SYNC_MARKER:
-       case OCSD_GEN_TRC_ELEM_MEMTRANS:
-#if (OCSD_VER_NUM >= 0x010400)
-       case OCSD_GEN_TRC_ELEM_INSTRUMENTATION:
-#endif
-       default:
-               break;
-       }
 
        return resp;
 }