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

Mmmh. Right, very few places actually check for
drm_edid_connector_update() return value, or do anything about 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

-- 
Jani Nikula, Intel

Reply via email to