Print this page
10924 Need mitigation of L1TF (CVE-2018-3646)
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Peter Tribble <peter.tribble@gmail.com>

@@ -27,10 +27,11 @@
  * All rights reserved.
  */
 /*
  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  * Copyright 2013 Pluribus Networks, Inc.
+ * Copyright 2018 Joyent, Inc.
  */
 
 #include <sys/processor.h>
 #include <sys/time.h>
 #include <sys/psm.h>

@@ -64,10 +65,11 @@
 #include <sys/dditypes.h>
 #include <sys/sunddi.h>
 #include <sys/x_call.h>
 #include <sys/reboot.h>
 #include <sys/apix.h>
+#include <sys/ht.h>
 
 static int apix_get_avail_vector_oncpu(uint32_t, int, int);
 static apix_vector_t *apix_init_vector(processorid_t, uchar_t);
 static void apix_cleanup_vector(apix_vector_t *);
 static void apix_insert_av(apix_vector_t *, void *, avfunc, caddr_t, caddr_t,

@@ -801,10 +803,13 @@
         if (vecp->v_type == APIX_TYPE_FIXED && apic_level_intr[vecp->v_inum])
                 mem->av_flags |= AV_PENTRY_LEVEL;
 
         vecp->v_share++;
         vecp->v_pri = (ipl > vecp->v_pri) ? ipl : vecp->v_pri;
+
+        ht_intr_alloc_pil(vecp->v_pri);
+
         if (vecp->v_autovect == NULL) { /* Nothing on list - put it at head */
                 vecp->v_autovect = mem;
                 return;
         }