On Thu, Oct 22, 2020 at 12:55 PM Lyude Paul <lyude@xxxxxxxxxx> 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@xxxxxxxxxx> > > Cc: <stable@xxxxxxxxxxxxxxx> # v5.9+ > Fixes: 3f649ab728cd ("treewide: Remove uninitialized_var() usage") > Signed-off-by: Lyude Paul <lyude@xxxxxxxxxx> > --- > 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