Commit 5df290e7 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by David S. Miller

bnxt_en: Register devlink instance at the end devlink configuration

Move devlink_register() to be last command in devlink configuration
sequence, so no user space access will be possible till devlink instance
is fully operable. As part of this change, the devlink_params_publish
call is removed as not needed.

This change fixes forgotten devlink_params_unpublish() too.
Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cf530217
...@@ -745,14 +745,10 @@ static int bnxt_dl_params_register(struct bnxt *bp) ...@@ -745,14 +745,10 @@ static int bnxt_dl_params_register(struct bnxt *bp)
rc = devlink_params_register(bp->dl, bnxt_dl_params, rc = devlink_params_register(bp->dl, bnxt_dl_params,
ARRAY_SIZE(bnxt_dl_params)); ARRAY_SIZE(bnxt_dl_params));
if (rc) { if (rc)
netdev_warn(bp->dev, "devlink_params_register failed. rc=%d\n", netdev_warn(bp->dev, "devlink_params_register failed. rc=%d\n",
rc); rc);
return rc; return rc;
}
devlink_params_publish(bp->dl);
return 0;
} }
static void bnxt_dl_params_unregister(struct bnxt *bp) static void bnxt_dl_params_unregister(struct bnxt *bp)
...@@ -792,9 +788,8 @@ int bnxt_dl_register(struct bnxt *bp) ...@@ -792,9 +788,8 @@ int bnxt_dl_register(struct bnxt *bp)
bp->hwrm_spec_code > 0x10803) bp->hwrm_spec_code > 0x10803)
bp->eswitch_mode = DEVLINK_ESWITCH_MODE_LEGACY; bp->eswitch_mode = DEVLINK_ESWITCH_MODE_LEGACY;
devlink_register(dl);
if (!BNXT_PF(bp)) if (!BNXT_PF(bp))
return 0; goto out;
attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL; attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
attrs.phys.port_number = bp->pf.port_id; attrs.phys.port_number = bp->pf.port_id;
...@@ -811,6 +806,8 @@ int bnxt_dl_register(struct bnxt *bp) ...@@ -811,6 +806,8 @@ int bnxt_dl_register(struct bnxt *bp)
if (rc) if (rc)
goto err_dl_port_unreg; goto err_dl_port_unreg;
out:
devlink_register(dl);
return 0; return 0;
err_dl_port_unreg: err_dl_port_unreg:
...@@ -824,10 +821,10 @@ void bnxt_dl_unregister(struct bnxt *bp) ...@@ -824,10 +821,10 @@ void bnxt_dl_unregister(struct bnxt *bp)
{ {
struct devlink *dl = bp->dl; struct devlink *dl = bp->dl;
devlink_unregister(dl);
if (BNXT_PF(bp)) { if (BNXT_PF(bp)) {
bnxt_dl_params_unregister(bp); bnxt_dl_params_unregister(bp);
devlink_port_unregister(&bp->dl_port); devlink_port_unregister(&bp->dl_port);
} }
devlink_unregister(dl);
devlink_free(dl); devlink_free(dl);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment