Page MenuHomeFreeBSD

D42299.1792465968.diff
No OneTemporary

Size
858 B
Referenced Files
None
Subscribers
None

D42299.1792465968.diff

diff --git a/sys/amd64/vmm/amd/svm.c b/sys/amd64/vmm/amd/svm.c
--- a/sys/amd64/vmm/amd/svm.c
+++ b/sys/amd64/vmm/amd/svm.c
@@ -1720,6 +1720,10 @@
int vector, need_intr_window;
int extint_pending;
+ if (vcpu->caps & (1 << VM_CAP_MASK_HWINTR)) {
+ return;
+ }
+
state = svm_get_vmcb_state(vcpu);
ctrl = svm_get_vmcb_ctrl(vcpu);
@@ -2441,6 +2445,10 @@
vlapic = vm_lapic(vcpu->vcpu);
vlapic->ipi_exit = val;
break;
+ case VM_CAP_MASK_HWINTR:
+ vcpu->caps &= ~(1 << VM_CAP_MASK_HWINTR);
+ vcpu->caps |= (val << VM_CAP_MASK_HWINTR);
+ break;
case VM_CAP_RFLAGS_TF: {
uint64_t rflags;
@@ -2524,6 +2532,9 @@
case VM_CAP_RFLAGS_TF:
*retval = !!(vcpu->caps & (1 << VM_CAP_RFLAGS_TF));
break;
+ case VM_CAP_MASK_HWINTR:
+ *retval = !!(vcpu->caps & (1 << VM_CAP_MASK_HWINTR));
+ break;
default:
error = ENOENT;
break;

File Metadata

Mime Type
text/plain
Expires
Tue, Oct 20, 3:12 AM (4 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30536570
Default Alt Text
D42299.1792465968.diff (858 B)

Event Timeline