diff options
author | grehan <grehan@FreeBSD.org> | 2013-09-07 03:33:36 +0000 |
---|---|---|
committer | grehan <grehan@FreeBSD.org> | 2013-09-07 03:33:36 +0000 |
commit | 0fa52a8a31d8983b774c9ddeb6ed7cf21e303a78 (patch) | |
tree | 6bf8605564f1f416d6842fde48f9f027be0e340d /sys/amd64 | |
parent | 3b61a48b9f5477a16200438661adf4f782eec118 (diff) | |
download | FreeBSD-src-0fa52a8a31d8983b774c9ddeb6ed7cf21e303a78.zip FreeBSD-src-0fa52a8a31d8983b774c9ddeb6ed7cf21e303a78.tar.gz |
Mask off the vector from the MSI-x data word.
Some o/s's set the trigger-mode level bit which
results in an invalid vector and pass-thru interrupts
not being delivered.
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/vmm/io/ppt.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/amd64/vmm/io/ppt.c b/sys/amd64/vmm/io/ppt.c index 5aedaf2..878bf8a 100644 --- a/sys/amd64/vmm/io/ppt.c +++ b/sys/amd64/vmm/io/ppt.c @@ -568,7 +568,7 @@ ppt_setup_msix(struct vm *vm, int vcpu, int bus, int slot, int func, return (ENXIO); ppt->msix.arg[idx].pptdev = ppt; - ppt->msix.arg[idx].vec = msg; + ppt->msix.arg[idx].vec = msg & 0xFF; ppt->msix.arg[idx].vcpu = (addr >> 12) & 0xFF; /* Setup the MSI-X interrupt */ |