Re: [PATCH] net: cpsw_new: unregister devlink on port registration failure

From: Guangshuo Li

Date: Thu Jun 04 2026 - 00:23:15 EST


Hi,

Thank you for your review and comments.

On Thu, 4 Jun 2026 at 00:58, Sverdlin, Alexander
<alexander.sverdlin@xxxxxxxxxxx> wrote:
>
> Hi Guangshuo,
>
> On Wed, 2026-06-03 at 22:07 +0800, Guangshuo Li wrote:
> > cpsw_probe() registers devlink before registering the CPSW ports.
> >
> > If cpsw_register_ports() fails, the error path only unregisters the
> > notifiers and then releases the lower level resources. It does not undo
> > the successful cpsw_register_devlink() call, leaving the devlink instance
> > and its parameters registered after probe has failed.
> >
> > Add a devlink cleanup label for the path where devlink registration has
> > already succeeded, and use it when port registration fails.
> >
> > Fixes: ed3525eda4c4 ("net: ethernet: ti: introduce cpsw switchdev based driver part 1 - dual-emac")
> > Signed-off-by: Guangshuo Li <lgs201920130244@xxxxxxxxx>
>
> thanks for the patch! Apart from the issue Andrew mentioned, the fix itself
> looks good to me,
>
> Reviewed-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxxxx>
>
> > ---
> > drivers/net/ethernet/ti/cpsw_new.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ethernet/ti/cpsw_new.c b/drivers/net/ethernet/ti/cpsw_new.c
> > index 7f42f58a4b03..95b3b58db6e0 100644
> > --- a/drivers/net/ethernet/ti/cpsw_new.c
> > +++ b/drivers/net/ethernet/ti/cpsw_new.c
> > @@ -2050,7 +2050,7 @@ static int cpsw_probe(struct platform_device *pdev)
> >
> > ret = cpsw_register_ports(cpsw);
> > if (ret)
> > - goto clean_unregister_notifiers;
> > + goto clean_unregister_devlink;
> >
> > dev_notice(dev, "initialized (regs %pa, pool size %d) hw_ver:%08X %d.%d (%d)\n",
> > &ss_res->start, descs_pool_size,
> > @@ -2062,6 +2062,8 @@ static int cpsw_probe(struct platform_device *pdev)
> >
> > return 0;
> >
> > +clean_unregister_devlink:
> > + cpsw_unregister_devlink(cpsw);
> > clean_unregister_notifiers:
> > cpsw_unregister_notifiers(cpsw);
> > clean_cpts:
>
> --
> Alexander Sverdlin
> Siemens AG
> www.siemens.com
I will address Andrew's feedback and send a v2 with the subject updated
accordingly. I will also target net-next and drop the Fixes tag.

Thanks,
Guangshuo