On 8/28/2017 1:53 PM, Andrew Rybchenko wrote:
> From: Ivan Malov <ivan.ma...@oktetlabs.ru>
> 
> efx_rx_scale_tbl_set() takes the number of entries in the scale table
> to be set, not the size of the table in bytes; currently this bug does
> not make any damage since the size argument is used to wrap the loop
> on the input table when filling in an MCDI request in case if the table
> size in the MCDI request is larger then one provided by the user,
> and MCDI scale table size is the same as the size of the table provided
> by the driver; this patch brings a fix for the bug
> 
> Fixes: 4ec1fc3ba881 ("net/sfc: add basic stubs for RSS support on driver 
> attach")
> Cc: sta...@dpdk.org
> 
> Signed-off-by: Ivan Malov <ivan.ma...@oktetlabs.ru>
> Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com>
> ---
>  drivers/net/sfc/sfc_rx.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
> index 1bf8644..364f718 100644
> --- a/drivers/net/sfc/sfc_rx.c
> +++ b/drivers/net/sfc/sfc_rx.c
> @@ -1068,7 +1068,7 @@ struct sfc_dp_rx sfc_efx_rx = {
>                       goto finish;
>  

It is not shown in this patch, but there is "sizeof(sa->rss_key)" usage
here, since its type is uint8_t, it is not wrong, but it can be good to
change that one too to RTE_DIM() both to show the intent and to be safe
if in the future type updated... But this is your call to update or not.

>               rc = efx_rx_scale_tbl_set(sa->nic, sa->rss_tbl,
> -                                       sizeof(sa->rss_tbl));
> +                                       RTE_DIM(sa->rss_tbl));

There are more sizeof(sa->rss_tbl) usage in sfc_ethdev.c [1], can you
please check them too? malloc and memcpy ones look suspicious.

[1]
$ git grep "sizeof(sa->rss_tbl)"
drivers/net/sfc/sfc_ethdev.c:   rss_tbl_new = rte_zmalloc("rss_tbl_new",
sizeof(sa->rss_tbl), 0);
drivers/net/sfc/sfc_ethdev.c:   rte_memcpy(rss_tbl_new, sa->rss_tbl,
sizeof(sa->rss_tbl));
drivers/net/sfc/sfc_ethdev.c:           rte_memcpy(sa->rss_tbl,
rss_tbl_new, sizeof(sa->rss_tbl));
drivers/net/sfc/sfc_rx.c:
sizeof(sa->rss_tbl));

>       }
>  
>  finish:
> 

Reply via email to