diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
index c15d064ce43e2ead0fdf665bdcc575e008a48bb4..176f69b24358257aab468574cdb122c2205ea615 100644
--- a/arch/x86/kernel/fpu/core.c
+++ b/arch/x86/kernel/fpu/core.c
@@ -390,11 +390,11 @@ void fpu__clear(struct task_struct *tsk)
 	if (!use_eager_fpu()) {
 		/* FPU state will be reallocated lazily at the first use. */
 		drop_fpu(fpu);
-		fpstate_free(&tsk->thread.fpu);
+		fpstate_free(fpu);
 	} else {
 		if (!fpu->fpstate_active) {
 			/* kthread execs. TODO: cleanup this horror. */
-		if (WARN_ON(fpstate_alloc_init(fpu)))
+			if (WARN_ON(fpstate_alloc_init(fpu)))
 				force_sig(SIGKILL, tsk);
 			user_fpu_begin();
 		}