summaryrefslogtreecommitdiffstats
path: root/sys/amd64/vmm
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2015-04-16 22:44:51 +0000
committerneel <neel@FreeBSD.org>2015-04-16 22:44:51 +0000
commit4fe75f186071555dfd14233ef4f7690285598706 (patch)
treef6a0c0ee6d9c23c54990caf63dd07d695b4dfaca /sys/amd64/vmm
parent01e375543f2cca888435d33af45404f00296ca0c (diff)
downloadFreeBSD-src-4fe75f186071555dfd14233ef4f7690285598706.zip
FreeBSD-src-4fe75f186071555dfd14233ef4f7690285598706.tar.gz
Relax the check on which vectors can be delivered through the APIC. According
to the Intel SDM vectors 16 through 255 are allowed to be delivered via the local APIC. Reported by: Leon Dang (ldang@nahannisys.com) MFC after: 2 weeks
Diffstat (limited to 'sys/amd64/vmm')
-rw-r--r--sys/amd64/vmm/vmm_lapic.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/amd64/vmm/vmm_lapic.c b/sys/amd64/vmm/vmm_lapic.c
index 15a995e..6bccd32 100644
--- a/sys/amd64/vmm/vmm_lapic.c
+++ b/sys/amd64/vmm/vmm_lapic.c
@@ -57,7 +57,11 @@ lapic_set_intr(struct vm *vm, int cpu, int vector, bool level)
if (cpu < 0 || cpu >= VM_MAXCPU)
return (EINVAL);
- if (vector < 32 || vector > 255)
+ /*
+ * According to section "Maskable Hardware Interrupts" in Intel SDM
+ * vectors 16 through 255 can be delivered through the local APIC.
+ */
+ if (vector < 16 || vector > 255)
return (EINVAL);
vlapic = vm_lapic(vm, cpu);
OpenPOWER on IntegriCloud