Merge remote-tracking branch 'lsk/v3.10/topic/aosp' into linux-linaro-lsk-android
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / kernel / fpsimd.c
index 093bee27e527610268355bcd0aebd3e310ae83e1..845fae3aeb26fb2aecbdb8e56011e4dd47942b1d 100644 (file)
@@ -17,6 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <linux/cpu_pm.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/sched.h>
@@ -154,6 +155,7 @@ void fpsimd_thread_switch(struct task_struct *next)
 
 void fpsimd_flush_thread(void)
 {
+       preempt_disable();
        memset(&current->thread.fpsimd_state, 0, sizeof(struct fpsimd_state));
        set_thread_flag(TIF_FOREIGN_FPSTATE);
 }
@@ -312,6 +314,8 @@ static int __init fpsimd_init(void)
        else
                elf_hwcap |= HWCAP_ASIMD;
 
+       fpsimd_pm_init();
+
        return 0;
 }
 late_initcall(fpsimd_init);