[PATCH v4 1/1] drm/bridge: lt8912b: Fix issues found during static analysis

Dan Carpenter dan.carpenter at oracle.com
Wed Mar 31 14:39:23 UTC 2021


On Wed, Mar 31, 2021 at 02:57:31PM +0200, Andrzej Hajda wrote:
> >   
> >   	if (!of_device_is_compatible(port_node, "hdmi-connector")) {
> >   		dev_err(lt->dev, "%s: Failed to get hdmi port\n", __func__);
> > +		of_node_put(port_node);
> >   		ret = -EINVAL;
> > +		goto err_free_host_node;
> 
> Maybe better would be to put of_node_put(port_node) after 
> err_free_host_node label - of_node_put(NULL) does nothing.
> 

I prefer this style for several reasons:
1) I kind of hate no-op puts
2) The port_node is not part of the wind up in the sense that we don't
   leave hold the reference on the success path.  It's the same with
   locking, I prefer if unlock happens before the goto.  Sometimes
   people do an unlock as part of the unwind but this style only works
   for the first label in the unwind path.
3) I like when you can copy and paste the unwind code to create the
   release function, lt8912_put_dt() in this example.  Normally you have
   to add one more release function because most times the last failure
   path is an allocation but in this case the release is just
   of_node_put(lt->host_node);

But, yeah, putting the of_node_put() after the label isn't bug so
whatever...

regards,
dan carpenter



More information about the dri-devel mailing list