Re: [PATCH 3/9] EDAC/versalnet: Move platform_set_drvdata() to mc_probe()
From: Pandey, Radhey Shyam
Date: Mon Jul 27 2026 - 04:40:11 EST
On 7/24/2026 10:49 PM, Shubhrajyoti Datta wrote:
Move platform_set_drvdata() out of init_one_mc() and into mc_probe()
so that the driver data is set once during probe rather than being
redundantly set on each memory controller initialization.
The pdev parameter in init_one_mc() and init_versalnet() is no longer
referenced. Remove it from both function signatures.
Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xxxxxxx>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xxxxxxx>
Thanks!
---
drivers/edac/versalnet_edac.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/edac/versalnet_edac.c b/drivers/edac/versalnet_edac.c
index 05dc34504cc2..03b6e0958f17 100644
--- a/drivers/edac/versalnet_edac.c
+++ b/drivers/edac/versalnet_edac.c
@@ -777,7 +777,7 @@ static void remove_one_mc(struct mc_priv *priv, int i)
edac_mc_free(mci);
}
-static int init_one_mc(struct mc_priv *priv, struct platform_device *pdev, int i)
+static int init_one_mc(struct mc_priv *priv, int i)
{
u32 num_chans, rank, dwidth, config;
struct edac_mc_layer layers[2];
@@ -849,8 +849,6 @@ static int init_one_mc(struct mc_priv *priv, struct platform_device *pdev, int i
priv->mci[i] = mci;
priv->dwidth = dt;
- platform_set_drvdata(pdev, priv);
-
return 0;
err_unreg:
@@ -863,12 +861,12 @@ static int init_one_mc(struct mc_priv *priv, struct platform_device *pdev, int i
return rc;
}
-static int init_versalnet(struct mc_priv *priv, struct platform_device *pdev)
+static int init_versalnet(struct mc_priv *priv)
{
int rc, i;
for (i = 0; i < NUM_CONTROLLERS; i++) {
- rc = init_one_mc(priv, pdev, i);
+ rc = init_one_mc(priv, i);
if (rc) {
while (i--)
remove_one_mc(priv, i);
@@ -914,6 +912,7 @@ static int mc_probe(struct platform_device *pdev)
goto err_alloc;
}
+ platform_set_drvdata(pdev, priv);
amd_rpmsg_id_table[0].driver_data = (kernel_ulong_t)priv;
rc = register_rpmsg_driver(&amd_rpmsg_driver);
@@ -928,7 +927,7 @@ static int mc_probe(struct platform_device *pdev)
priv->mcdi->r5_rproc = rp;
- rc = init_versalnet(priv, pdev);
+ rc = init_versalnet(priv);
if (rc)
goto err_init;