Patch "drm/amd/display: Increase sanitizer frame larger than limit when compile testing with clang" has been added to the 6.13-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/amd/display: Increase sanitizer frame larger than limit when compile testing with clang

to the 6.13-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-amd-display-increase-sanitizer-frame-larger-than.patch
and it can be found in the queue-6.13 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 2e3d7dd635ce063ba328753ed9bc7bcab19a4fdc
Author: Nathan Chancellor <nathan@xxxxxxxxxx>
Date:   Thu Dec 19 16:46:35 2024 -0700

    drm/amd/display: Increase sanitizer frame larger than limit when compile testing with clang
    
    [ Upstream commit e4479aecf6581af81bc0908575447878d2a07e01 ]
    
    Commit 24909d9ec7c3 ("drm/amd/display: Overwriting dualDPP UBF values
    before usage") added a new warning in dml2/display_mode_core.c when
    building allmodconfig with clang:
    
      drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/display_mode_core.c:6268:13: error: stack frame size (3128) exceeds limit (3072) in 'dml_prefetch_check' [-Werror,-Wframe-larger-than]
       6268 | static void dml_prefetch_check(struct display_mode_lib_st *mode_lib)
            |             ^
    
    Commit be4e3509314a ("drm/amd/display: DML21 Reintegration For Various
    Fixes") introduced one in dml2_core/dml2_core_dcn4_calcs.c with the same
    configuration:
    
      drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4_calcs.c:7236:13: error: stack frame size (3256) exceeds limit (3072) in 'dml_core_mode_support' [-Werror,-Wframe-larger-than]
       7236 | static bool dml_core_mode_support(struct dml2_core_calcs_mode_support_ex *in_out_params)
            |             ^
    
    In the case of the first warning, the stack usage was already at the
    limit at the parent change, so the offending change was rather
    innocuous. In the case of the second warning, there was a rather
    dramatic increase in stack usage compared to the parent:
    
      drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4_calcs.c:7032:13: error: stack frame size (2696) exceeds limit (2048) in 'dml_core_mode_support' [-Werror,-Wframe-larger-than]
       7032 | static bool dml_core_mode_support(struct dml2_core_calcs_mode_support_ex *in_out_params)
            |             ^
    
    This is an unfortunate interaction between an issue with stack slot
    reuse in LLVM that gets exacerbated by sanitization (which gets enabled
    with all{mod,yes}config) and function calls using a much higher number
    of parameters than is typical in the kernel, necessitating passing most
    of these values on the stack.
    
    While it is possible that there should be source code changes to address
    these warnings, this code is difficult to modify for various reasons, as
    has been noted in other changes that have occurred for similar reasons,
    such as commit 6740ec97bcdb ("drm/amd/display: Increase frame warning
    limit with KASAN or KCSAN in dml2").
    
    Increase the frame larger than limit when compile testing with clang and
    the sanitizers enabled to avoid this breakage in all{mod,yes}config, as
    they are commonly used and valuable testing targets. While it is not the
    best to hide this issue, it is not really relevant when compile testing,
    as the sanitizers are commonly stressful on optimizations and they are
    only truly useful at runtime, which COMPILE_TEST states will not occur
    with the current build.
    
    Reported-by: kernel test robot <lkp@xxxxxxxxx>
    Closes: https://lore.kernel.org/oe-kbuild-all/202412121748.chuX4sap-lkp@xxxxxxxxx/
    Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx>
    Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/amd/display/dc/dml2/Makefile b/drivers/gpu/drm/amd/display/dc/dml2/Makefile
index c4378e620cbf9..986a69c5bd4bc 100644
--- a/drivers/gpu/drm/amd/display/dc/dml2/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/dml2/Makefile
@@ -29,7 +29,11 @@ dml2_rcflags := $(CC_FLAGS_NO_FPU)
 
 ifneq ($(CONFIG_FRAME_WARN),0)
 ifeq ($(filter y,$(CONFIG_KASAN)$(CONFIG_KCSAN)),y)
+ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_COMPILE_TEST),yy)
+frame_warn_flag := -Wframe-larger-than=4096
+else
 frame_warn_flag := -Wframe-larger-than=3072
+endif
 else
 frame_warn_flag := -Wframe-larger-than=2048
 endif




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux