Re: [PATCH 08/13] drm/sun4i: crtc: Propagate layer initialization error
Chen-Yu Tsai <[email protected]> Tue, 4 Aug 2026 01:02:39 +0800
| Newsgroups | dev.linux.lists.linux-sunxi,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAGb2v66yVbzTSu6sb4ryuD-djcH+vaCtamuhtY=xnq93_ZvKog@mail.gmail.com> |
On Tue, Aug 4, 2026 at 12:11=E2=80=AFAM Jernej Skrabec <jernej.skrabec@gmai=
l.com> wrote:
>
> sun4i_crtc_init() returns plain NULL when layer initialization fails,
> while all its other error paths return an error pointer. The only
> caller, sun4i_tcon_bind(), checks the result with IS_ERR() and happily
> continues with tcon->crtc set to NULL. sun4i_rgb_init() and
> sun4i_lvds_init() then dereference it in drm_crtc_mask(), which
> oopses.
>
> Return the error pointer instead.
>
> Fixes: dcd215801b02 ("drm/sun4i: Drop primary layer pointer from sun4i_dr=
v")
> Signed-off-by: Jernej Skrabec <[email protected]>
Acked-by: Chen-Yu Tsai <[email protected]>
> ---
> drivers/gpu/drm/sun4i/sun4i_crtc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/s=
un4i_crtc.c
> index c2f7f69baf75..3fa1f4fda0f0 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_crtc.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c
> @@ -208,7 +208,7 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device =
*drm,
> planes =3D sunxi_engine_layers_init(drm, engine);
> if (IS_ERR(planes)) {
> dev_err(drm->dev, "Couldn't create the planes\n");
> - return NULL;
> + return ERR_CAST(planes);
> }
>
> /* find primary and cursor planes for drm_crtc_init_with_planes *=
/
> --
> 2.43.0
>
>