diff options
author | neel <neel@FreeBSD.org> | 2015-04-16 22:44:51 +0000 |
---|---|---|
committer | neel <neel@FreeBSD.org> | 2015-04-16 22:44:51 +0000 |
commit | 4fe75f186071555dfd14233ef4f7690285598706 (patch) | |
tree | f6a0c0ee6d9c23c54990caf63dd07d695b4dfaca /sys/amd64 | |
parent | 01e375543f2cca888435d33af45404f00296ca0c (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/amd64/vmm/vmm_lapic.c | 6 |
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); |