drm/edid: Fix crash with zero/invalid EDID
authorDouglas Anderson <dianders@chromium.org>
Mon, 4 Oct 2021 16:21:27 +0000 (09:21 -0700)
committerDouglas Anderson <dianders@chromium.org>
Wed, 6 Oct 2021 02:18:54 +0000 (19:18 -0700)
commite7bd95a7ed4e4c8aa82a33f89eb09f596cf37a4b
tree5e595f0934eaa73b559e2ac1efe6927496cf01eb
parent61bae132030af4e9aaebe801e547da4a41803d3c
drm/edid: Fix crash with zero/invalid EDID

In the commit bac9c2948224 ("drm/edid: Break out reading block 0 of
the EDID") I broke out reading the base block of the EDID to its own
function. Unfortunately, when I did that I messed up the handling when
drm_edid_is_zero() indicated that we had an EDID that was all 0x00 or
when we went through 4 loops and didn't get a valid EDID. Specifically
I needed to pass the broken EDID to connector_bad_edid() but now I was
passing an error-pointer.

Let's re-jigger things so we can pass the bad EDID in properly.

Fixes: bac9c2948224 ("drm/edid: Break out reading block 0 of the EDID")
Reported-by: kernel test robot <oliver.sang@intel.com>
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patchwork.freedesktop.org/patch/msgid/20211004092100.1.Ic90a5ebd44c75db963112be167a03cc96f9fb249@changeid
drivers/gpu/drm/drm_edid.c