mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-21 18:06:50 +00:00
vbox6: fix TPR handling
This commit is contained in:
parent
e5b828ae8f
commit
4a87fcc4cf
@ -554,7 +554,7 @@ typename Sup::Vcpu_impl<T>::Current_state Sup::Vcpu_impl<T>::_handle_irq_window(
|
|||||||
_irq_window = false;
|
_irq_window = false;
|
||||||
|
|
||||||
/* request current tpr state from guest, it may block IRQs */
|
/* request current tpr state from guest, it may block IRQs */
|
||||||
APICSetTpr(pVCpu, state.tpr_threshold.value());
|
APICSetTpr(pVCpu, state.tpr.value());
|
||||||
|
|
||||||
if (!TRPMHasTrap(pVCpu)) {
|
if (!TRPMHasTrap(pVCpu)) {
|
||||||
|
|
||||||
@ -567,16 +567,15 @@ typename Sup::Vcpu_impl<T>::Current_state Sup::Vcpu_impl<T>::_handle_irq_window(
|
|||||||
|
|
||||||
uint8_t irq;
|
uint8_t irq;
|
||||||
int rc = PDMGetInterrupt(pVCpu, &irq);
|
int rc = PDMGetInterrupt(pVCpu, &irq);
|
||||||
Assert(RT_SUCCESS(rc));
|
if (RT_SUCCESS(rc)) {
|
||||||
|
rc = TRPMAssertTrap(pVCpu, irq, TRPM_HARDWARE_INT);
|
||||||
rc = TRPMAssertTrap(pVCpu, irq, TRPM_HARDWARE_INT);
|
Assert(RT_SUCCESS(rc));
|
||||||
Assert(RT_SUCCESS(rc));
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TRPMHasTrap(pVCpu)) {
|
if (!TRPMHasTrap(pVCpu)) {
|
||||||
/* happens if APICSetTpr (see above) mask IRQ */
|
/* happens if APICSetTpr (see above) mask IRQ */
|
||||||
state.inj_info.charge(VMX_ENTRY_INT_INFO_NONE);
|
state.inj_info.charge(VMX_ENTRY_INT_INFO_NONE);
|
||||||
Genode::error("virq window pthread aaaaaaa while loop");
|
|
||||||
return PAUSED;
|
return PAUSED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user