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(-)