On Thu, Aug 10, 2023 at 10:06:39PM +0800, Xiang Yang wrote: > From: Xiang Yang <xiangyang3@xxxxxxxxxx> > > The reference of pdev->dev is taken by of_find_device_by_node, so > it should be released when not need anymore. > > Fixes: 7dc54d3b8d91 ("net: pcs: add Renesas MII converter driver") > Signed-off-by: Xiang Yang <xiangyang3@xxxxxxxxxx> > --- Reviewed-by: Vladimir Oltean <olteanv@xxxxxxxxx> > drivers/net/pcs/pcs-rzn1-miic.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-miic.c > index e5d642c67a2c..97139c07130f 100644 > --- a/drivers/net/pcs/pcs-rzn1-miic.c > +++ b/drivers/net/pcs/pcs-rzn1-miic.c > @@ -314,15 +314,21 @@ struct phylink_pcs *miic_create(struct device *dev, struct device_node *np) > > pdev = of_find_device_by_node(pcs_np); > of_node_put(pcs_np); > - if (!pdev || !platform_get_drvdata(pdev)) > + if (!pdev || !platform_get_drvdata(pdev)) { > + if (pdev) > + put_device(&pdev->dev); > return ERR_PTR(-EPROBE_DEFER); > + } > > miic_port = kzalloc(sizeof(*miic_port), GFP_KERNEL); > - if (!miic_port) > + if (!miic_port) { > + put_device(&pdev->dev); > return ERR_PTR(-ENOMEM); > + } > > miic = platform_get_drvdata(pdev); > device_link_add(dev, miic->dev, DL_FLAG_AUTOREMOVE_CONSUMER); > + put_device(&pdev->dev); > > miic_port->miic = miic; > miic_port->port = port - 1; > -- > 2.34.1 > >