On Thu, Oct 22, 2020 at 12:55 PM Lyude Paul lyude@redhat.com wrote:
Noticed this when trying to compile with -Wall on a kernel fork. We potentially don't set width here, which causes the compiler to complain about width potentially being uninitialized in drm_cvt_modes(). So, let's fix that.
Signed-off-by: Lyude Paul lyude@redhat.com
Cc: stable@vger.kernel.org # v5.9+ Fixes: 3f649ab728cd ("treewide: Remove uninitialized_var() usage") Signed-off-by: Lyude Paul lyude@redhat.com
drivers/gpu/drm/drm_edid.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 631125b46e04..2da158ffed8e 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -3094,6 +3094,7 @@ static int drm_cvt_modes(struct drm_connector *connector,
for (i = 0; i < 4; i++) { int width, height;
u8 cvt_aspect_ratio; cvt = &(timing->data.other_data.data.cvt[i]);
@@ -3101,7 +3102,8 @@ static int drm_cvt_modes(struct drm_connector *connector, continue;
height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 4) + 1) * 2;
switch (cvt->code[1] & 0x0c) {
cvt_aspect_ratio = cvt->code[1] & 0x0c;
switch (cvt_aspect_ratio) { case 0x00: width = height * 4 / 3; break;
@@ -3114,6 +3116,10 @@ static int drm_cvt_modes(struct drm_connector *connector, case 0x0c: width = height * 15 / 9; break;
default:
What value would cvt->code[1] have such that this gets hit?
Or is this a "compiler is broken, so let's add more code" situation? If so, perhaps the code added could just be enough to silence the compiler (unreachable, etc)?
-ilia