acrn-hypervisor/hypervisor/common
Shuo A Liu ea849177a5 hv: fix interrupt lost when do acrn_handle_pending_request twice
One cycle of vmexit/vmentry might lost interrupts.
This is the scenario,
  1) vmexit, vmexit_handlers
  2) softirq & disable interrupt
  3) acrn_handle_pending_request
  4) schedule if needed, then back to 1) and loop again.
  5) vmentry

The step 3) might be executed twice. The problem is at the second
execution of acrn_handle_pending_request, we might overwrite
VMX_ENTRY_INT_INFO_FIELD of current vmcs, which cause guest lost
interrupts.

The fix is moving 4) prior to 3), then we will handle the pending
requests and vmentry directly.

Tracked-On: #3374
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
2019-07-09 09:23:12 +08:00
..
hv_main.c hv: fix interrupt lost when do acrn_handle_pending_request twice 2019-07-09 09:23:12 +08:00
hypercall.c HV: Fix OVMF hang issue when boot with lapic_pt 2019-06-19 08:40:48 +08:00
ptdev.c hv: ptdev: refine ptdev active flag 2019-07-03 17:44:45 +08:00
schedule.c HV: remove one lock for ctx->flags operation. 2019-05-22 16:35:26 +08:00
softirq.c HV: Add prefix 'p' before 'cpu' to physical cpu related functions 2019-04-24 10:50:28 +08:00
trusty_hypercall.c hv:remove some unnecessary includes 2019-05-07 09:10:13 +08:00
vm_load.c HV: misra fix for patch set of Zephyr enabling 2019-06-06 09:40:52 +08:00