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;
}