Commit-ID:  6d79d86f9600510e08ad45c72b9d7e664e439e62
Gitweb:     https://git.kernel.org/tip/6d79d86f9600510e08ad45c72b9d7e664e439e62
Author:     Christoph Hellwig <h...@lst.de>
AuthorDate: Tue, 4 Jun 2019 09:15:23 +0200
Committer:  Borislav Petkov <b...@suse.de>
CommitDate: Mon, 17 Jun 2019 12:19:49 +0200

x86/fpu: Simplify kernel_fpu_begin()

Merge two helpers into the main function, remove a pointless local
variable and flatten a conditional.

Signed-off-by: Christoph Hellwig <h...@lst.de>
Signed-off-by: Borislav Petkov <b...@suse.de>
Acked-by: Sebastian Andrzej Siewior <bige...@linutronix.de>
Cc: Dave Hansen <dave.han...@intel.com>
Cc: "H. Peter Anvin" <h...@zytor.com>
Cc: Ingo Molnar <mi...@redhat.com>
Cc: Nicolai Stange <nsta...@suse.de>
Cc: Rik van Riel <r...@surriel.com>
Cc: Thomas Gleixner <t...@linutronix.de>
Cc: x86-ml <x...@kernel.org>
Link: https://lkml.kernel.org/r/20190604071524.12835-3-...@lst.de
---
 arch/x86/kernel/fpu/core.c | 36 ++++++++++++------------------------
 1 file changed, 12 insertions(+), 24 deletions(-)

diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
index 8e046068d20f..3f92cfad88f0 100644
--- a/arch/x86/kernel/fpu/core.c
+++ b/arch/x86/kernel/fpu/core.c
@@ -43,12 +43,6 @@ static DEFINE_PER_CPU(bool, in_kernel_fpu);
  */
 DEFINE_PER_CPU(struct fpu *, fpu_fpregs_owner_ctx);
 
-static void kernel_fpu_disable(void)
-{
-       WARN_ON_FPU(this_cpu_read(in_kernel_fpu));
-       this_cpu_write(in_kernel_fpu, true);
-}
-
 static bool kernel_fpu_disabled(void)
 {
        return this_cpu_read(in_kernel_fpu);
@@ -88,32 +82,26 @@ bool irq_fpu_usable(void)
 }
 EXPORT_SYMBOL(irq_fpu_usable);
 
-static void __kernel_fpu_begin(void)
+void kernel_fpu_begin(void)
 {
-       struct fpu *fpu = &current->thread.fpu;
+       preempt_disable();
 
        WARN_ON_FPU(!irq_fpu_usable());
+       WARN_ON_FPU(this_cpu_read(in_kernel_fpu));
 
-       kernel_fpu_disable();
+       this_cpu_write(in_kernel_fpu, true);
 
-       if (!(current->flags & PF_KTHREAD)) {
-               if (!test_thread_flag(TIF_NEED_FPU_LOAD)) {
-                       set_thread_flag(TIF_NEED_FPU_LOAD);
-                       /*
-                        * Ignore return value -- we don't care if reg state
-                        * is clobbered.
-                        */
-                       copy_fpregs_to_fpstate(fpu);
-               }
+       if (!(current->flags & PF_KTHREAD) &&
+           !test_thread_flag(TIF_NEED_FPU_LOAD)) {
+               set_thread_flag(TIF_NEED_FPU_LOAD);
+               /*
+                * Ignore return value -- we don't care if reg state
+                * is clobbered.
+                */
+               copy_fpregs_to_fpstate(&current->thread.fpu);
        }
        __cpu_invalidate_fpregs_state();
 }
-
-void kernel_fpu_begin(void)
-{
-       preempt_disable();
-       __kernel_fpu_begin();
-}
 EXPORT_SYMBOL_GPL(kernel_fpu_begin);
 
 void kernel_fpu_end(void)

Reply via email to