Re: [PATCH] drm/amd/display: Fix sanitizer check for the DML frame size limit

From: Alex Deucher

Date: Sun Sep 27 2026 - 15:26:55 EST


Applied. Thanks. Will include this in my -fixes PR later this week.

Alex

On Sun, Sep 27, 2026 at 12:26 PM Sasha Levin <sashal@xxxxxxxxxx> wrote:
>
> Building x86_64 allmodconfig with clang fails:
>
> .../dml2_0/dml21/src/dml2_core/dml2_core_dcn4_calcs.c:10491:13:
> error: stack frame size (3128) exceeds limit (3072) in
> 'dml_core_mode_programming' [-Werror,-Wframe-larger-than]
>
> That config enables both KASAN and UBSAN, and should get the 4096
> byte limit meant for clang COMPILE_TEST sanitizer builds. The check
> in the dml and dml2_0 Makefiles concatenates the three symbols with
> no separator:
>
> ifeq ($(filter y,$(CONFIG_KASAN)$(CONFIG_KCSAN)$(CONFIG_UBSAN)),y)
>
> KASAN and KCSAN cannot be enabled together, so before UBSAN was
> added the string was at most "y". UBSAN can be enabled alongside
> either of them, and with both set the string becomes "yy",
> $(filter y,yy) is empty, and the build falls through to the
> non-sanitizer limit of 3072. Adding UBSAN to the check therefore
> lowered the limit for the most heavily instrumented builds instead
> of raising it.
>
> Separate the symbols with spaces so that $(filter) sees individual
> words, and test for a non-empty result. Only the configs with two
> sanitizers enabled change behaviour.
>
> Found by KernelCI builds of the linus-next tree.
>
> Fixes: ebf8b0fd8508 ("drm/amd/display: Relax DML frame limit with UBSAN")
> Assisted-by: LLM
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> ---
> drivers/gpu/drm/amd/display/dc/dml/Makefile | 2 +-
> drivers/gpu/drm/amd/display/dc/dml2_0/Makefile | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile b/drivers/gpu/drm/amd/display/dc/dml/Makefile
> index 91465ac05c971..eb4ce5b1ecfbb 100644
> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
> @@ -29,7 +29,7 @@ dml_ccflags := $(CC_FLAGS_FPU)
> dml_rcflags := $(CC_FLAGS_NO_FPU)
>
> ifneq ($(CONFIG_FRAME_WARN),0)
> - ifeq ($(filter y,$(CONFIG_KASAN)$(CONFIG_KCSAN)$(CONFIG_UBSAN)),y)
> + ifneq ($(filter y,$(CONFIG_KASAN) $(CONFIG_KCSAN) $(CONFIG_UBSAN)),)
> ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_COMPILE_TEST),yy)
> frame_warn_limit := 4096
> else
> diff --git a/drivers/gpu/drm/amd/display/dc/dml2_0/Makefile b/drivers/gpu/drm/amd/display/dc/dml2_0/Makefile
> index e8bd061be05c1..2181079c89d0e 100644
> --- a/drivers/gpu/drm/amd/display/dc/dml2_0/Makefile
> +++ b/drivers/gpu/drm/amd/display/dc/dml2_0/Makefile
> @@ -28,7 +28,7 @@ dml2_ccflags := $(CC_FLAGS_FPU)
> dml2_rcflags := $(CC_FLAGS_NO_FPU)
>
> ifneq ($(CONFIG_FRAME_WARN),0)
> - ifeq ($(filter y,$(CONFIG_KASAN)$(CONFIG_KCSAN)$(CONFIG_UBSAN)),y)
> + ifneq ($(filter y,$(CONFIG_KASAN) $(CONFIG_KCSAN) $(CONFIG_UBSAN)),)
> ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_COMPILE_TEST),yy)
> frame_warn_limit := 4096
> else
> --
> 2.53.0
>