The code that checks the RTLA_NO_BPF environment variable calls
getenv() twice and uses strncmp() with a length of 2 to compare
against the single-character string "1". This is inefficient and
the comparison length is unnecessarily long.

Store the result of getenv() in a local variable to avoid the
redundant call, and replace strncmp() with strncmp_static() for
the exact match comparison. This follows the same pattern
established in recent commits that improved string comparison
consistency throughout the rtla codebase.

Signed-off-by: Wander Lairson Costa <[email protected]>
---
 tools/tracing/rtla/src/timerlat.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/tracing/rtla/src/timerlat.c 
b/tools/tracing/rtla/src/timerlat.c
index 84577daadd668..91f15f86e78d4 100644
--- a/tools/tracing/rtla/src/timerlat.c
+++ b/tools/tracing/rtla/src/timerlat.c
@@ -28,12 +28,13 @@ int
 timerlat_apply_config(struct osnoise_tool *tool, struct timerlat_params 
*params)
 {
        int retval;
+       const char *const rtla_no_bpf = getenv("RTLA_NO_BPF");
 
        /*
         * Try to enable BPF, unless disabled explicitly.
         * If BPF enablement fails, fall back to tracefs mode.
         */
-       if (getenv("RTLA_NO_BPF") && strncmp(getenv("RTLA_NO_BPF"), "1", 2) == 
0) {
+       if (rtla_no_bpf && strncmp_static(rtla_no_bpf, "1") == 0) {
                debug_msg("RTLA_NO_BPF set, disabling BPF\n");
                params->mode = TRACING_MODE_TRACEFS;
        } else if (!tep_find_event_by_name(tool->trace.tep, "osnoise", 
"timerlat_sample")) {
-- 
2.53.0


Reply via email to