diff options
-rw-r--r-- | src/vppinfra/cpu.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/vppinfra/cpu.c b/src/vppinfra/cpu.c index c1ff7dd27b3..2da87d1bb67 100644 --- a/src/vppinfra/cpu.c +++ b/src/vppinfra/cpu.c @@ -183,12 +183,10 @@ format_cpu_model_name (u8 * s, va_list * args) static inline char const * -flag_skip_prefix (char const *flag) +flag_skip_prefix (char const *flag, const char *pfx, int len) { - if (memcmp (flag, "x86_", sizeof ("x86_") - 1) == 0) - return flag + sizeof ("x86_") - 1; - if (memcmp (flag, "aarch64_", sizeof ("aarch64_") - 1) == 0) - return flag + sizeof ("aarch64_") - 1; + if (0 == strncmp (flag, pfx, len - 1)) + return flag + len - 1; return flag; } @@ -198,13 +196,13 @@ format_cpu_flags (u8 * s, va_list * args) #if defined(__x86_64__) #define _(flag, func, reg, bit) \ if (clib_cpu_supports_ ## flag()) \ - s = format (s, "%s ", flag_skip_prefix(#flag)); + s = format (s, "%s ", flag_skip_prefix(#flag, "x86_", sizeof("x86_"))); foreach_x86_64_flags return s; #undef _ #elif defined(__aarch64__) #define _(flag, bit) \ if (clib_cpu_supports_ ## flag()) \ - s = format (s, "%s ", flag_skip_prefix(#flag)); + s = format (s, "%s ", flag_skip_prefix(#flag, "aarch64_", sizeof("aarch64_"))); foreach_aarch64_flags return s; #undef _ #else /* ! ! __x86_64__ && ! __aarch64__ */ |