Hi Tvrtko,

Building this patchset with clang generated the following errors:


  DESCEND objtool
  INSTALL libsubcmd_headers
CC [M] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.o drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1516:6: error: variable 'crtc' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
 1516 |         if (connector->state == NULL)
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1541:6: note: uninitialized use occurs here
 1541 |         if (crtc)
      |             ^~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1516:2: note: remove the 'if' if its condition is always false
 1516 |         if (connector->state == NULL)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 goto unlock;
      |                 ~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1492:23: note: initialize the variable 'crtc' to silence this warning
 1492 |         struct drm_crtc *crtc;
      |                              ^
      |                               = NULL
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1674:6: error: variable 'crtc' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
 1674 |         if (connector->state == NULL)
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1699:6: note: uninitialized use occurs here
 1699 |         if (crtc)
      |             ^~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1674:2: note: remove the 'if' if its condition is always false
 1674 |         if (connector->state == NULL)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 goto unlock;
      |                 ~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1650:23: note: initialize the variable 'crtc' to silence this warning
 1650 |         struct drm_crtc *crtc;
      |                              ^
      |                               = NULL
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1832:6: error: variable 'crtc' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
 1832 |         if (connector->state == NULL)
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1857:6: note: uninitialized use occurs here
 1857 |         if (crtc)
      |             ^~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1832:2: note: remove the 'if' if its condition is always false
 1832 |         if (connector->state == NULL)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 goto unlock;
      |                 ~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1808:23: note: initialize the variable 'crtc' to silence this warning
 1808 |         struct drm_crtc *crtc;
      |                              ^
      |                               = NULL
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1983:6: error: variable 'crtc' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
 1983 |         if (connector->state == NULL)
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:2003:6: note: uninitialized use occurs here
 2003 |         if (crtc)
      |             ^~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1983:2: note: remove the 'if' if its condition is always false
 1983 |         if (connector->state == NULL)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1984 |                 goto unlock;
      |                 ~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.c:1959:23: note: initialize the variable 'crtc' to silence this warning
 1959 |         struct drm_crtc *crtc;
      |                              ^
      |                               = NULL
4 errors generated.
make[6]: *** [scripts/Makefile.build:289: drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.o] Error 1 make[5]: *** [scripts/Makefile.build:548: drivers/gpu/drm/amd/amdgpu] Error 2
make[4]: *** [scripts/Makefile.build:548: drivers/gpu/drm] Error 2
make[3]: *** [scripts/Makefile.build:548: drivers/gpu] Error 2
make[2]: *** [scripts/Makefile.build:548: drivers] Error 2
make[1]: *** [/home/alexhung/develop/amd/amdgpu/Makefile:2144: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2


On 9/24/26 07:40, Tvrtko Ursulin wrote:
I had some patches in this area ages ago so I re-visited them, tweaked and
decided to re-post.

First is a clear fix while second is a serious refactor which needs a lot of
scrutiny. Mostly closing in on the desired semantics and thinking whether
changing any of the existing (incosistent) semantics is likely to break any
(hypothetical) scripts used for debugfs configuration. In it probably desirable
in principle since it removes a lot of redundant and somewhat questionable code.

Cc: Harry Wentland <[email protected]>
Cc: Leo Li <[email protected]>
Cc: Timur Kristóf <[email protected]>

Tvrtko Ursulin (2):
   drm/amd/display: Use memdup_user_nul in debugfs code
   drm/amd/display: Simplify debugfs token parsing

  .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 600 ++++--------------
  1 file changed, 130 insertions(+), 470 deletions(-)


Reply via email to