diff -Naur kernel.orig/arch/arm/vfp/vfpmodule.c kernel/arch/arm/vfp/vfpmodule.c
--- kernel.orig/arch/arm/vfp/vfpmodule.c	2015-02-03 01:44:24.000000000 +0000
+++ kernel/arch/arm/vfp/vfpmodule.c	2015-04-06 15:38:59.721782562 +0000
@@ -589,12 +589,6 @@
 	 * entry.
 	 */
 	hwstate->fpscr &= ~(FPSCR_LENGTH_MASK | FPSCR_STRIDE_MASK);
-
-	/*
-	 * Disable VFP in the hwstate so that we can detect if it gets
-	 * used.
-	 */
-	hwstate->fpexc &= ~FPEXC_EN;
 	return 0;
 }
 
@@ -607,12 +601,8 @@
 	unsigned long fpexc;
 	int err = 0;
 
-	/*
-	 * If VFP has been used, then disable it to avoid corrupting
-	 * the new thread state.
-	 */
-	if (hwstate->fpexc & FPEXC_EN)
-		vfp_flush_hwstate(thread);
+	/* Disable VFP to avoid corrupting the new thread state. */
+	vfp_flush_hwstate(thread);
 
 	/*
 	 * Copy the floating point registers. There can be unused
