On Tue, Aug 4, 2026 at 12:11 AM Jernej Skrabec <[email protected]> wrote: > > Two references are leaked every time the display pipeline is walked: > the output port node in sun4i_drv_traverse_endpoints(), which was never > released since the driver was introduced, and each node taken out of > the endpoint fifo in sun4i_drv_probe(), which stopped being released > when the fifo was introduced. The latter is still safe to drop right > after processing, since drm_of_component_match_add() takes its own > reference. > > Fixes: 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support") > Fixes: 8b11aaface2b ("drm/sun4i: Implement endpoint parsing using kfifo") > Signed-off-by: Jernej Skrabec <[email protected]>
Acked-by: Chen-Yu Tsai <[email protected]> > --- > drivers/gpu/drm/sun4i/sun4i_drv.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c > b/drivers/gpu/drm/sun4i/sun4i_drv.c > index 8a409eee1dca..e9baca360160 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_drv.c > +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c > @@ -289,6 +289,8 @@ static void sun4i_drv_traverse_endpoints(struct > endpoint_list *list, > > kfifo_put(&list->fifo, remote); > } > + > + of_node_put(port); > } > > static int sun4i_drv_add_endpoints(struct device *dev, > @@ -394,6 +396,7 @@ static int sun4i_drv_probe(struct platform_device *pdev) > /* process this endpoint */ > ret = sun4i_drv_add_endpoints(&pdev->dev, &list, &match, > endpoint); > + of_node_put(endpoint); > > /* sun4i_drv_add_endpoints can fail to allocate memory */ > if (ret < 0) > -- > 2.43.0 >
