Message ID | 20220531144818.26943-2-linmq006@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Neil Armstrong |
Headers | show |
Series | [1/2] drm/meson: encoder_cvbs: Fix refcount leak in meson_encoder_cvbs_init | expand |
Hello, first of all: thank you for spotting this and sending a patch! On Tue, May 31, 2022 at 4:49 PM Miaoqian Lin <linmq006@gmail.com> wrote: [...] > diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/meson/meson_encoder_hdmi.c > index 5e306de6f485..f3341458f8b7 100644 > --- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c > +++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c > @@ -363,6 +363,7 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) > } > > meson_encoder_hdmi->next_bridge = of_drm_find_bridge(remote); > + of_node_put(remote); further down in the same function remote is used again: pdev = of_find_device_by_node(remote); My understanding is that we should only use of_node_put() once we don't need to access the node (in this case the variable is "remote") anymore. Best regards, Martin
diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/meson/meson_encoder_hdmi.c index 5e306de6f485..f3341458f8b7 100644 --- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c +++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c @@ -363,6 +363,7 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) } meson_encoder_hdmi->next_bridge = of_drm_find_bridge(remote); + of_node_put(remote); if (!meson_encoder_hdmi->next_bridge) { dev_err(priv->dev, "Failed to find HDMI transceiver bridge\n"); return -EPROBE_DEFER;
of_graph_get_remote_node() returns remote device nodepointer with refcount incremented, we should use of_node_put() on it when done. Add missing of_node_put() to avoid refcount leak. Fixes: e67f6037ae1b ("drm/meson: split out encoder from meson_dw_hdmi") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- drivers/gpu/drm/meson/meson_encoder_hdmi.c | 1 + 1 file changed, 1 insertion(+)