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++) {
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
Hi Lyude,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on drm-tip/drm-tip drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next linus/master v5.10-rc2 next-20201103] [cannot apply to drm/drm-next] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Lyude-Paul/drm-edid-Fix-uninitializ... base: git://anongit.freedesktop.org/drm-intel for-linux-next config: x86_64-randconfig-a011-20201104 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/ca77ba73371e528e2bb9e631817c614717b4... git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Lyude-Paul/drm-edid-Fix-uninitialized-variable-in-drm_cvt_modes/20201104-061621 git checkout ca77ba73371e528e2bb9e631817c614717b4f794 # save the attached .config to linux build tree make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot lkp@intel.com
All warnings (new ones prefixed by >>):
drivers/gpu/drm/drm_edid.o: warning: objtool: do_cvt_mode() falls through to next function drm_mode_std.isra.0()
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
linux-stable-mirror@lists.linaro.org