]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Permit DC_FP_START/END only in non-FP compilation units
authorArd Biesheuvel <ardb@kernel.org>
Thu, 9 Oct 2025 15:06:21 +0000 (17:06 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 8 Dec 2025 18:56:37 +0000 (13:56 -0500)
[WHAT]
Test the existing CPP macro _LINUX_FPU_COMPILATION_UNIT, which is set
when building source files that are permitted to use floating point,
in the implementation of DC_FP_START/END so that those are only usable
in non-FP code. This is a requirement of the generic kernel mode FPU
API, as some architectures (i.e., arm64) cannot safely enable FP codegen
in arbitrary code.

Cc: Austin Zheng <austin.zheng@amd.com>
Cc: Jun Lei <jun.lei@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Rodrigo Siqueira <siqueira@igalia.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: amd-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Suggested-by: Christian König <christian.koenig@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.h
drivers/gpu/drm/amd/display/dc/os_types.h

index b8275b39792058f1c0af037a11e78b957b57cb64..4e921632bc4e92dcd3e64bc6337dc9bc4a173d23 100644 (file)
@@ -31,4 +31,12 @@ void dc_assert_fp_enabled(void);
 void dc_fpu_begin(const char *function_name, const int line);
 void dc_fpu_end(const char *function_name, const int line);
 
+#ifndef _LINUX_FPU_COMPILATION_UNIT
+#define DC_FP_START()  dc_fpu_begin(__func__, __LINE__)
+#define DC_FP_END()    dc_fpu_end(__func__, __LINE__)
+#else
+#define DC_FP_START()  BUILD_BUG()
+#define DC_FP_END()    BUILD_BUG()
+#endif
+
 #endif /* __DC_FPU_H__ */
index 782316348941b378d8e38ccacb3e1ce3b4d6e40d..6af831710489ea67ff8b865118e761484c3b53d4 100644 (file)
@@ -55,8 +55,6 @@
 
 #if defined(CONFIG_DRM_AMD_DC_FP)
 #include "amdgpu_dm/dc_fpu.h"
-#define DC_FP_START() dc_fpu_begin(__func__, __LINE__)
-#define DC_FP_END() dc_fpu_end(__func__, __LINE__)
 #endif /* CONFIG_DRM_AMD_DC_FP */
 
 /*