* [PATCH v2] drm/edid: Fix uninitialized variable in drm_cvt_modes()
@ 2020-11-03 22:15 Lyude Paul
2020-11-03 22:21 ` Ilia Mirkin
0 siblings, 1 reply; 2+ messages in thread
From: Lyude Paul @ 2020-11-03 22:15 UTC (permalink / raw)
To: dri-devel
Cc: Ilia Mirkin, stable, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Daniel Vetter, Kees Cook,
Leon Romanovsky, Jason Gunthorpe, Chao Yu, Kalle Valo, open list
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.
Changes since v1:
* Don't emit an error as this code isn't reachable, just mark it as such
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 | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 631125b46e04..0643b98c6383 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,8 @@ static int drm_cvt_modes(struct drm_connector *connector,
case 0x0c:
width = height * 15 / 9;
break;
+ default:
+ unreachable();
}
for (j = 1; j < 5; j++) {
--
2.28.0
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH v2] drm/edid: Fix uninitialized variable in drm_cvt_modes()
2020-11-03 22:15 [PATCH v2] drm/edid: Fix uninitialized variable in drm_cvt_modes() Lyude Paul
@ 2020-11-03 22:21 ` Ilia Mirkin
0 siblings, 0 replies; 2+ messages in thread
From: Ilia Mirkin @ 2020-11-03 22:21 UTC (permalink / raw)
To: Lyude Paul
Cc: dri-devel, # 3.9+,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Daniel Vetter, Kees Cook, Leon Romanovsky,
Jason Gunthorpe, Chao Yu, Kalle Valo, open list
On Tue, Nov 3, 2020 at 5:15 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.
>
> Changes since v1:
> * Don't emit an error as this code isn't reachable, just mark it as such
>
> 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 | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 631125b46e04..0643b98c6383 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;
The temp var doesn't do anything now right? Previously you were using
it in the print, but now you can drop these two hunks, I think?
-ilia
> + switch (cvt_aspect_ratio) {
> case 0x00:
> width = height * 4 / 3;
> break;
> @@ -3114,6 +3116,8 @@ static int drm_cvt_modes(struct drm_connector *connector,
> case 0x0c:
> width = height * 15 / 9;
> break;
> + default:
> + unreachable();
> }
>
> for (j = 1; j < 5; j++) {
> --
> 2.28.0
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-11-03 22:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-03 22:15 [PATCH v2] drm/edid: Fix uninitialized variable in drm_cvt_modes() Lyude Paul
2020-11-03 22:21 ` Ilia Mirkin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®