Message ID | 20180716113525.9335-1-niklas.cassel@linaro.org |
---|---|
Headers | show |
Series | regulator: qcom_spmi: fix Bad of_node_put() splat | expand |
Hi Niklas, On Mon, Jul 16, 2018 at 01:35:22PM +0200, Niklas Cassel wrote: > For of_find_node_by_name(), you typically pass what the previous call > returned. Therefore, of_find_node_by_name() increases the refcount of > the returned node, and decreases the refcount of the node passed as the > first argument. > > However, in this case we don't pass what the previous call returned, > so we have to increase the refcount of the first argument to compensate. I don't think this is the right fix. of_find_node_by_name() should generally not be used by drivers in the first place as it searches the entire tree and can end up matching an entirely unrelated node. I haven't looked at the device-tree binding in question, but you probably want to use something like of_get_child_by_name() instead. Johan -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Jul 16, 2018 at 02:01:34PM +0200, Johan Hovold wrote: > Hi Niklas, > > On Mon, Jul 16, 2018 at 01:35:22PM +0200, Niklas Cassel wrote: > > For of_find_node_by_name(), you typically pass what the previous call > > returned. Therefore, of_find_node_by_name() increases the refcount of > > the returned node, and decreases the refcount of the node passed as the > > first argument. > > > > However, in this case we don't pass what the previous call returned, > > so we have to increase the refcount of the first argument to compensate. > > I don't think this is the right fix. of_find_node_by_name() should > generally not be used by drivers in the first place as it searches the > entire tree and can end up matching an entirely unrelated node. > > I haven't looked at the device-tree binding in question, but you > probably want to use something like of_get_child_by_name() instead. > Hello Johan, of_find_node_by_name() will only search the whole tree if the first argument is NULL, which isn't the case here. However, of_get_child_by_name() is indeed better suited here. Will send out a v2. Thank you for your feedback, it is much appreciated :) Kind regards, Niklas -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html