On 11/8/2023 4:34 PM, Gregory Etelson wrote:
> Indirect actions list arguments parser was configured to place target
> number into 64bit value, while the code provided 32bits memory.
> 

Hi Gregory,

Can you please give more details why 'id' needs to be 64 bits, with
callstack or usecase etc?
And please describe what is the observed problem with current code?


Inside 'parse_indlst_id2ptr()',
'parse_int()' can work or 32bits and 64bits variables, so that one is OK.
But both 'port_action_handle_get_by_id()' &
'indirect_action_list_conf_get()' gets 'id' as parameter and they get
32bits argument, when 'id' is 64bit won't it will be cast to 32bits and
loose data, should those functions needs to be updated as well.



> The patch updated variable size for translation results.
> 
> Fixes: 72a3dec7126f ("ethdev: add indirect flow list action")
> Signed-off-by: Gregory Etelson <getel...@nvidia.com>
> ---
>  app/test-pmd/cmdline_flow.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> index 0d521159e9..cf1ca33208 100644
> --- a/app/test-pmd/cmdline_flow.c
> +++ b/app/test-pmd/cmdline_flow.c
> @@ -11331,7 +11331,7 @@ parse_indlst_id2ptr(struct context *ctx, const struct 
> token *token,
>       struct rte_flow_action *action = ctx->object;
>       struct rte_flow_action_indirect_list *action_conf;
>       const struct indlst_conf *indlst_conf;
> -     uint32_t id;
> +     uint64_t id;
>       int ret;
>  
>       if (!action)
> @@ -11350,7 +11350,8 @@ parse_indlst_id2ptr(struct context *ctx, const struct 
> token *token,
>       action_conf->handle = (typeof(action_conf->handle))
>                               port_action_handle_get_by_id(ctx->port, id);
>               if (!action_conf->handle) {
> -                     printf("no indirect list handle for id %u\n", id);
> +                     printf("no indirect list handle for id %"PRIu64"\n",
> +                            id);
>                       return -1;
>               }
>               break;

Reply via email to