On 07/01/2022 09:18, Miaoqian Lin wrote: > The reference taken by 'of_find_device_by_node()' must be released when > not needed anymore. > Add the corresponding 'put_device()' in the error handling path. > > Fixes: e7f3c5481035 ("[media] coda: use VDOA for un-tiling custom macroblock format") > Signed-off-by: Miaoqian Lin <linmq006@xxxxxxxxx> > --- > drivers/media/platform/coda/coda-common.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c > index 0e312b0842d7..579849082488 100644 > --- a/drivers/media/platform/coda/coda-common.c > +++ b/drivers/media/platform/coda/coda-common.c > @@ -405,9 +405,13 @@ static struct vdoa_data *coda_get_vdoa_data(void) > goto out; > > vdoa_data = platform_get_drvdata(vdoa_pdev); > - if (!vdoa_data) > + if (!vdoa_data) { > vdoa_data = ERR_PTR(-EPROBE_DEFER); > + goto put; Why the goto put? Just drop the goto... > + } > > +put: ...and this label. > + put_device(&vdoa_pdev->dev); This is the real fix :-) Regards, Hans > out: > of_node_put(vdoa_node); >