diff mbox series

arm64/sve: Add compile time checks for SVE hooks in generic functions

Message ID 20210415121742.36628-1-broonie@kernel.org (mailing list archive)
State New, archived
Headers show
Series arm64/sve: Add compile time checks for SVE hooks in generic functions | expand

Commit Message

Mark Brown April 15, 2021, 12:17 p.m. UTC
The FPSIMD code was relying on IS_ENABLED() checks in system_suppors_sve()
to cause the compiler to delete references to SVE functions in some places,
add explicit IS_ENABLED() checks back.

Fixes: ef9c5d09797db874a2 (arm64/sve: Remove redundant system_supports_sve() tests)
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 arch/arm64/kernel/fpsimd.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Catalin Marinas April 15, 2021, 1:06 p.m. UTC | #1
On Thu, 15 Apr 2021 13:17:42 +0100, Mark Brown wrote:
> The FPSIMD code was relying on IS_ENABLED() checks in system_suppors_sve()
> to cause the compiler to delete references to SVE functions in some places,
> add explicit IS_ENABLED() checks back.

Applied to arm64 (for-next/misc), thanks!

[1/1] arm64/sve: Add compile time checks for SVE hooks in generic functions
      https://git.kernel.org/arm64/c/087dfa5ca7d8
diff mbox series

Patch

diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
index f6cd89131dc3..ad3dd34a83cf 100644
--- a/arch/arm64/kernel/fpsimd.c
+++ b/arch/arm64/kernel/fpsimd.c
@@ -285,7 +285,7 @@  static void task_fpsimd_load(void)
 	WARN_ON(!system_supports_fpsimd());
 	WARN_ON(!have_cpu_fpsimd_context());
 
-	if (test_thread_flag(TIF_SVE))
+	if (IS_ENABLED(CONFIG_ARM64_SVE) && test_thread_flag(TIF_SVE))
 		sve_load_state(sve_pffr(&current->thread),
 			       &current->thread.uw.fpsimd_state.fpsr,
 			       sve_vq_from_vl(current->thread.sve_vl) - 1);
@@ -307,7 +307,8 @@  static void fpsimd_save(void)
 	WARN_ON(!have_cpu_fpsimd_context());
 
 	if (!test_thread_flag(TIF_FOREIGN_FPSTATE)) {
-		if (test_thread_flag(TIF_SVE)) {
+		if (IS_ENABLED(CONFIG_ARM64_SVE) &&
+		    test_thread_flag(TIF_SVE)) {
 			if (WARN_ON(sve_get_vl() != last->sve_vl)) {
 				/*
 				 * Can't save the user regs, so current would