Print this page
OS-7125 Need mitigation of L1TF (CVE-2018-3646)
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

@@ -73,11 +73,16 @@
 #include <sys/schedctl.h>
 #include <sys/waitq.h>
 #include <sys/cpucaps.h>
 #include <sys/kiconv.h>
 #include <sys/ctype.h>
+#include <sys/ht.h>
 
+#ifndef STACK_GROWTH_DOWN
+#error Stacks do not grow downward; 3b2 zombie attack detected!
+#endif
+
 struct kmem_cache *thread_cache;        /* cache of free threads */
 struct kmem_cache *lwp_cache;           /* cache of free lwps */
 struct kmem_cache *turnstile_cache;     /* cache of free turnstiles */
 
 /*

@@ -514,12 +519,12 @@
          * is ready to run.
          */
         if (CPU->cpu_part == &cp_default)
                 t->t_cpu = CPU;
         else
-                t->t_cpu = disp_lowpri_cpu(cp_default.cp_cpulist, t->t_lpl,
-                    t->t_pri, NULL);
+                t->t_cpu = disp_lowpri_cpu(cp_default.cp_cpulist, t,
+                    t->t_pri);
 
         t->t_disp_queue = t->t_cpu->cpu_disp;
         kpreempt_enable();
 
         /*

@@ -1324,10 +1329,12 @@
         ASSERT(t->t_intr != NULL);
 
         itp = t->t_intr;                /* interrupted thread */
         t->t_intr = NULL;               /* clear interrupt ptr */
 
+        ht_end_intr();
+
         /*
          * Get state from interrupt thread for the one
          * it interrupted.
          */