RE: [PATCH V2] fsl/fman: add missing put_devcie() call in fman_port_probe()

From: Madalin Bucur (OSS)
Date: Fri Nov 06 2020 - 16:59:10 EST


> -----Original Message-----
> From: Jakub Kicinski <kuba@xxxxxxxxxx>
> Sent: 05 November 2020 03:31
> To: Yu Kuai <yukuai3@xxxxxxxxxx>
> Cc: Madalin Bucur <madalin.bucur@xxxxxxx>; davem@xxxxxxxxxxxxx; Florinel
> Iordache <florinel.iordache@xxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; yi.zhang@xxxxxxxxxx
> Subject: Re: [PATCH V2] fsl/fman: add missing put_devcie() call in
> fman_port_probe()
>
> On Tue, 3 Nov 2020 19:23:23 +0800 Yu Kuai wrote:
> > --- a/drivers/net/ethernet/freescale/fman/fman_port.c
> > +++ b/drivers/net/ethernet/freescale/fman/fman_port.c
> > @@ -1792,20 +1792,21 @@ static int fman_port_probe(struct
> platform_device *of_dev)
> > if (!fm_node) {
> > dev_err(port->dev, "%s: of_get_parent() failed\n", __func__);
> > err = -ENODEV;
> > - goto return_err;
> > + goto free_port;
> > }
> >
> > + of_node_put(port_node);
> > fm_pdev = of_find_device_by_node(fm_node);
> > of_node_put(fm_node);
> > if (!fm_pdev) {
> > err = -EINVAL;
> > - goto return_err;
> > + goto free_port;
> > }
>
> This is not right either. I just asked you fix up the order of the
> error path, not move the of_node_put() in the body of the function.
>
> Now you're releasing the reference on the object and still use it after.

If you manage to put together a v3, please also address the typo in the
subject (put_devcie).

Madalin