OSDN Git Service

drm/edid: Document why we don't bounds check the DispID CEA block start/end
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 24 Jan 2020 20:02:28 +0000 (22:02 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 14 Feb 2020 21:38:46 +0000 (23:38 +0200)
After much head scratching I managed to convince myself that
for_each_displayid_db() has already done the bounds checks for
the DispID CEA data block. Which is why we don't need to repeat
them in cea_db_offsets(). To avoid having to go through that
pain again in the future add a comment which explains this fact.

Cc: Andres Rodriguez <andresx7@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200124200231.10517-5-ville.syrjala@linux.intel.com
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
drivers/gpu/drm/drm_edid.c

index 8ba5347..61f7737 100644 (file)
@@ -4017,6 +4017,10 @@ cea_db_offsets(const u8 *cea, int *start, int *end)
         *   no non-DTD data.
         */
        if (cea[0] == DATA_BLOCK_CTA) {
+               /*
+                * for_each_displayid_db() has already verified
+                * that these stay within expected bounds.
+                */
                *start = 3;
                *end = *start + cea[2];
        } else if (cea[0] == CEA_EXT) {