Message ID | 20220726010722.1319416-1-windhl@126.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Neil Armstrong |
Headers | show |
Series | drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors() | expand |
On 26/07/2022 03:07, Liang He wrote: > In this function, there are two refcount leak bugs: > (1) when breaking out of for_each_endpoint_of_node(), we need call > the of_node_put() for the 'ep'; > (2) we should call of_node_put() for the reference returned by > of_graph_get_remote_port() when it is not used anymore. > > Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller") > Signed-off-by: Liang He <windhl@126.com> > Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> > --- > drivers/gpu/drm/meson/meson_drv.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c > index 1b70938cfd2c..bd4ca11d3ff5 100644 > --- a/drivers/gpu/drm/meson/meson_drv.c > +++ b/drivers/gpu/drm/meson/meson_drv.c > @@ -115,8 +115,11 @@ static bool meson_vpu_has_available_connectors(struct device *dev) > for_each_endpoint_of_node(dev->of_node, ep) { > /* If the endpoint node exists, consider it enabled */ > remote = of_graph_get_remote_port(ep); > - if (remote) > + if (remote) { > + of_node_put(remote); > + of_node_put(ep); > return true; > + } > } > > return false; Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Hi, On Tue, 26 Jul 2022 09:07:22 +0800, Liang He wrote: > In this function, there are two refcount leak bugs: > (1) when breaking out of for_each_endpoint_of_node(), we need call > the of_node_put() for the 'ep'; > (2) we should call of_node_put() for the reference returned by > of_graph_get_remote_port() when it is not used anymore. > > > [...] Thanks, Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-fixes) [1/1] drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors() https://cgit.freedesktop.org/drm/drm-misc/commit/?id=91b3c8dbe898df158fd2a84675f3a284ff6666f7
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c index 1b70938cfd2c..bd4ca11d3ff5 100644 --- a/drivers/gpu/drm/meson/meson_drv.c +++ b/drivers/gpu/drm/meson/meson_drv.c @@ -115,8 +115,11 @@ static bool meson_vpu_has_available_connectors(struct device *dev) for_each_endpoint_of_node(dev->of_node, ep) { /* If the endpoint node exists, consider it enabled */ remote = of_graph_get_remote_port(ep); - if (remote) + if (remote) { + of_node_put(remote); + of_node_put(ep); return true; + } } return false;