From: Subbaraya Sundeep <sbha...@marvell.com> Memory for driver private structure rvu_devlink is also allocated during devlink_alloc. Hence use the allocated memory by devlink_alloc and access it by devlink_priv call.
Fixes: fae06da4("octeontx2-af: Add devlink suppoort to af driver") Signed-off-by: Subbaraya Sundeep <sbha...@marvell.com> Signed-off-by: Hariprasad Kelam <hke...@marvell.com> Signed-off-by: Sunil Kovvuri Goutham <sgout...@marvell.com> --- drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c index 10a98bc..d88ac90 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c @@ -1380,14 +1380,9 @@ int rvu_register_dl(struct rvu *rvu) struct devlink *dl; int err; - rvu_dl = kzalloc(sizeof(*rvu_dl), GFP_KERNEL); - if (!rvu_dl) - return -ENOMEM; - dl = devlink_alloc(&rvu_devlink_ops, sizeof(struct rvu_devlink)); if (!dl) { dev_warn(rvu->dev, "devlink_alloc failed\n"); - kfree(rvu_dl); return -ENOMEM; } @@ -1395,10 +1390,10 @@ int rvu_register_dl(struct rvu *rvu) if (err) { dev_err(rvu->dev, "devlink register failed with error %d\n", err); devlink_free(dl); - kfree(rvu_dl); return err; } + rvu_dl = devlink_priv(dl); rvu_dl->dl = dl; rvu_dl->rvu = rvu; rvu->rvu_dl = rvu_dl; -- 2.7.4