Re: [PATCH] drm/exynos: hdmi: free EDID on connector update failure
From: Avi Weiss
Date: Tue Oct 20 2026 - 01:10:41 EST
Hi Jani,
This complicates the if (!drm_edid) a bit further down, so might not
be worth it.
What do you think? Leave it, or should I try to rework it?
Cheers,
Avi
On Mon, 19 Oct 2026 at 16:38, Jani Nikula <jani.nikula@xxxxxxxxx> wrote:
>
> On Mon, 12 Oct 2026, Avi Weiss <thnkslprpt@xxxxxxxxx> wrote:
> > If drm_edid_connector_update() fails, hdmi_get_modes() returns
> > without freeing the EDID allocated by drm_edid_read_ddc(). It's
> > an unlikely error path but nevertheless possible and should be
> > cleaned up fully.
> >
> > Free the EDID before returning, while keeping the existing return
> > value of 0.
> >
> > Fixes: f6e4f57fd90dc ("drm/exynos: hdmi: convert to struct drm_edid")
> > Signed-off-by: Avi Weiss <thnkslprpt@xxxxxxxxx>
> > ---
> > drivers/gpu/drm/exynos/exynos_hdmi.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
> > index d4fce39c2b61..386557a7f5e8 100644
> > --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> > +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> > @@ -893,8 +893,10 @@ static int hdmi_get_modes(struct drm_connector *connector)
> > drm_edid = drm_edid_read_ddc(connector, hdata->ddc_adpt);
> >
> > ret = drm_edid_connector_update(connector, drm_edid);
>
> You could just move the drm_edid_free() call here to avoid duplicating
> it.
>
> > - if (ret)
> > + if (ret) {
> > + drm_edid_free(drm_edid);
> > return 0;
> > + }
> >
> > cec_notifier_set_phys_addr(hdata->notifier, info->source_physical_address);
> >
> >
> > base-commit: 24a19b953e2a3d0ea5a8c4951a0ab8f32720c907
>
> --
> Jani Nikula, Intel