On Sat 11 Sep 03:13 CDT 2021, Bixuan Cui wrote: > Add missing of_node_put() in qcom_iris_probe() before return. > > Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> > Signed-off-by: Bixuan Cui <cuibixuan@xxxxxxxxxx> > --- > drivers/remoteproc/qcom_wcnss_iris.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/remoteproc/qcom_wcnss_iris.c b/drivers/remoteproc/qcom_wcnss_iris.c > index 09720ddddc85..f77ab49a9cae 100644 > --- a/drivers/remoteproc/qcom_wcnss_iris.c > +++ b/drivers/remoteproc/qcom_wcnss_iris.c > @@ -140,6 +140,7 @@ struct qcom_iris *qcom_iris_probe(struct device *parent, bool *use_48mhz_xo) > ret = device_add(&iris->dev); > if (ret) { > put_device(&iris->dev); > + of_node_put(of_node); We store "of_node" in iris->dev, so put_device() will invoke qcom_iris_release() which of_node_put(iris->dev.of_node); So I think this is a false alarm, but please correct me if I'm wrong. Thanks, Bjorn > return ERR_PTR(ret); > } > > @@ -192,10 +193,12 @@ struct qcom_iris *qcom_iris_probe(struct device *parent, bool *use_48mhz_xo) > > *use_48mhz_xo = data->use_48mhz_xo; > > + of_node_put(of_node); > return iris; > > err_device_del: > device_del(&iris->dev); > + of_node_put(of_node); > > return ERR_PTR(ret); > } > -- > 2.17.1 >