WARN_ON(!system_supports_fpsimd());
        WARN_ON(!have_cpu_fpsimd_context());
 
-       if (!test_thread_flag(TIF_FOREIGN_FPSTATE)) {
-               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
-                                * re-enter user with corrupt state.
-                                * There's no way to recover, so kill it:
-                                */
-                               force_signal_inject(SIGKILL, SI_KERNEL, 0, 0);
-                               return;
-                       }
-
-                       sve_save_state((char *)last->sve_state +
-                                               sve_ffr_offset(last->sve_vl),
-                                      &last->st->fpsr);
-               } else
-                       fpsimd_save_state(last->st);
+       if (test_thread_flag(TIF_FOREIGN_FPSTATE))
+               return;
+
+       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
+                        * re-enter user with corrupt state.
+                        * There's no way to recover, so kill it:
+                        */
+                       force_signal_inject(SIGKILL, SI_KERNEL, 0, 0);
+                       return;
+               }
+
+               sve_save_state((char *)last->sve_state +
+                                       sve_ffr_offset(last->sve_vl),
+                              &last->st->fpsr);
+       } else {
+               fpsimd_save_state(last->st);
        }
 }