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@xxxxxxxxxx> > Cc: Rob Clark <robdclark@xxxxxxxxx> > Signed-off-by: Johan Hovold <johan@xxxxxxxxxx> Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> 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 > -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html