Messages in this thread | | | Date | Wed, 15 Nov 2017 22:17:09 -0800 | From | Bjorn Andersson <> | Subject | Re: [PATCH] soc: qcom: smsm: fix child-node lookup |
| |
On Wed 15 Nov 03:07 PST 2017, Johan Hovold wrote:
> Fix child-node lookup during probe, which ended up searching the whole > device tree depth-first starting at the parent rather than just matching > on its children. > > Note that the original premature free of the parent node has already > been fixed separately. > > Also note that this pattern of looking up the first child node with a > given property is rare enough that a generic helper is probably not > warranted. >
I agree.
> Fixes: c97c4090ff72 ("soc: qcom: smsm: Add driver for Qualcomm SMSM") > Fixes: 3e8b55411468 ("soc: qcom: smsm: fix of_node refcnting problem") > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > Cc: Rob Clark <robdclark@gmail.com> > Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Thanks, Bjorn
> --- > drivers/soc/qcom/smsm.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/soc/qcom/smsm.c b/drivers/soc/qcom/smsm.c > index 403bea9d546b..50214b620865 100644 > --- a/drivers/soc/qcom/smsm.c > +++ b/drivers/soc/qcom/smsm.c > @@ -496,8 +496,10 @@ static int qcom_smsm_probe(struct platform_device *pdev) > if (!smsm->hosts) > return -ENOMEM; > > - local_node = of_find_node_with_property(of_node_get(pdev->dev.of_node), > - "#qcom,smem-state-cells"); > + for_each_child_of_node(pdev->dev.of_node, local_node) { > + if (of_find_property(local_node, "#qcom,smem-state-cells", NULL)) > + break; > + } > if (!local_node) { > dev_err(&pdev->dev, "no state entry\n"); > return -EINVAL; > -- > 2.15.0 >
| |