diff options
Diffstat (limited to 'module/spl')
-rw-r--r-- | module/spl/spl-taskq.c | 2 | ||||
-rw-r--r-- | module/spl/spl-thread.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/module/spl/spl-taskq.c b/module/spl/spl-taskq.c index a39f94e4c..69d591ff7 100644 --- a/module/spl/spl-taskq.c +++ b/module/spl/spl-taskq.c @@ -28,6 +28,7 @@ #include <sys/taskq.h> #include <sys/kmem.h> #include <sys/tsd.h> +#include <linux/simd.h> int spl_taskq_thread_bind = 0; module_param(spl_taskq_thread_bind, int, 0644); @@ -853,6 +854,7 @@ taskq_thread(void *args) sigfillset(&blocked); sigprocmask(SIG_BLOCK, &blocked, NULL); flush_signals(current); + kfpu_initialize(); tsd_set(taskq_tsd, tq); spin_lock_irqsave_nested(&tq->tq_lock, flags, tq->tq_lock_class); diff --git a/module/spl/spl-thread.c b/module/spl/spl-thread.c index d441ad65f..c4977bcf2 100644 --- a/module/spl/spl-thread.c +++ b/module/spl/spl-thread.c @@ -27,6 +27,7 @@ #include <sys/thread.h> #include <sys/kmem.h> #include <sys/tsd.h> +#include <linux/simd.h> /* * Thread interfaces @@ -54,6 +55,7 @@ thread_generic_wrapper(void *arg) args = tp->tp_args; set_current_state(tp->tp_state); set_user_nice((kthread_t *)current, PRIO_TO_NICE(tp->tp_pri)); + kfpu_initialize(); kmem_free(tp->tp_name, tp->tp_name_size); kmem_free(tp, sizeof (thread_priv_t)); |