On 09.10.25 17:06, Ard Biesheuvel wrote: > From: Ard Biesheuvel <[email protected]> > > 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.
If I'm not completely mistaken that is actually an issue on basically all architectures, at least x86 is affected as well if I'm not completely mistaken. > Cc: Austin Zheng <[email protected]> > Cc: Jun Lei <[email protected]> > Cc: Harry Wentland <[email protected]> > Cc: Leo Li <[email protected]> > Cc: Rodrigo Siqueira <[email protected]> > Cc: Alex Deucher <[email protected]> > Cc: "Christian König" <[email protected]> > Cc: [email protected] > Cc: [email protected] > Signed-off-by: Ard Biesheuvel <[email protected]> Anyway, patch looks sane to me but I'm not so deep in the DC code to fully judge. Fell free to add Acked-by: Christian König <[email protected]>, but Harry and Leo need to take a look. Thanks, Christian. > --- > drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.h | 8 ++++++++ > drivers/gpu/drm/amd/display/dc/os_types.h | 2 -- > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.h > b/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.h > index b8275b397920..4e921632bc4e 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.h > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.h > @@ -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__ */ > diff --git a/drivers/gpu/drm/amd/display/dc/os_types.h > b/drivers/gpu/drm/amd/display/dc/os_types.h > index 782316348941..6af831710489 100644 > --- a/drivers/gpu/drm/amd/display/dc/os_types.h > +++ b/drivers/gpu/drm/amd/display/dc/os_types.h > @@ -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 */ > > /*
