perfmon: fix perfmon start type argument 06/38506/2
authorMaxime Peim <mpeim@cisco.com>
Thu, 16 Mar 2023 16:10:00 +0000 (16:10 +0000)
committerDamjan Marion <dmarion@0xa5.net>
Tue, 25 Apr 2023 15:21:25 +0000 (15:21 +0000)
When trying to start perfmon with a bundle that has a unique type while
specifying that type as argument, the command fails
(e.g. perfmon start bundle branch-mispred type node).
This error occurs because the returned value of
unformat_perfmon_active_type is actually a perfmon_bundle_type_t, but
it was treated as a perfmon_bundle_type_flag_t by a test in the CLI
function.

However, this test is useless and thus can just be removed.

Type: fix
Signed-off-by: Maxime Peim <mpeim@cisco.com>
Change-Id: I5d8b9815871621e8ee7b935586f4cedbc0e7a53d

src/plugins/perfmon/cli.c

index 0cdc4db..2c59ddd 100644 (file)
@@ -68,7 +68,7 @@ unformat_perfmon_active_type (unformat_input_t *input, va_list *args)
     }
 
   vec_free (str);
-  return bundle_type ? 1 : 0;
+  return 1;
 }
 
 uword
@@ -560,11 +560,9 @@ perfmon_start_command_fn (vlib_main_t *vm, unformat_input_t *input,
       if (!bundle_type)
        return clib_error_return (0, "please specify a valid type");
     }
-  else /* otherwise just use the default  */
+  /* otherwise just use the default  */
+  else if (!bundle_type)
     {
-      if (bundle_type && !(b->type_flags & bundle_type))
-       return clib_error_return (0, "please specify a valid type");
-
       bundle_type =
        (perfmon_bundle_type_t) count_trailing_zeros (b->type_flags);
     }