On Wed,  1 Jul 2020 17:32:45 +0300 Ido Schimmel wrote:
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c 
> b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
> index 2bd610fafc58..3af4e7397263 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
> @@ -691,6 +691,9 @@ static void bnxt_dl_params_unregister(struct bnxt *bp)
>  
>  int bnxt_dl_register(struct bnxt *bp)
>  {
> +     struct devlink_port_attrs attrs = {};
> +     const unsigned char *switch_id;
> +     unsigned char switch_id_len;
>       struct devlink *dl;
>       int rc;
>  
> @@ -719,9 +722,13 @@ int bnxt_dl_register(struct bnxt *bp)
>       if (!BNXT_PF(bp))
>               return 0;
>  
> -     devlink_port_attrs_set(&bp->dl_port, DEVLINK_PORT_FLAVOUR_PHYSICAL,
> -                            bp->pf.port_id, false, 0, bp->dsn,
> -                            sizeof(bp->dsn));
> +     attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
> +     attrs.phys.port_number = bp->pf.port_id;
> +     switch_id = bp->dsn;
> +     switch_id_len = sizeof(bp->dsn);

Why do you create those local variables everywhere?

> +     memcpy(attrs.switch_id.id, switch_id, switch_id_len);
> +     attrs.switch_id.id_len = switch_id_len;
> +     devlink_port_attrs_set(&bp->dl_port, &attrs);
>       rc = devlink_port_register(dl, &bp->dl_port, bp->pf.port_id);
>       if (rc) {
>               netdev_err(bp->dev, "devlink_port_register failed\n");

Reply via email to