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 <[email protected]> wrote: > > On Mon, 12 Oct 2026, Avi Weiss <[email protected]> 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 <[email protected]> > > --- > > 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
