mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-23 09:47:44 +00:00
hv: Do not reset vcpu thread's stack when reset_vcpu
vcpu thread's stack shouldn't follow reset_vcpu to reset. There is also a bug here: while vcpu B thread set vcpu->running to false, other vcpu A thread will treat the vcpu B is paused while it has not been switch out completely, then reset_vcpu will reset the vcpu B thread's stack and corrupt its running context. This patch will remove the vcpu thread's stack reset from reset_vcpu. With the change, we need do init_vmcs between vcpu startup address be settled and scheduled in. And switch_to_idle() is not needed anymore as S3 thread's stack will not be reset. Tracked-On: #3813 Signed-off-by: Fengwei Yin <fengwei.yin@intel.com> Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
This commit is contained in:
committed by
ACRN System Integration
parent
3072b6fc6d
commit
f85106d1ed
@@ -21,11 +21,6 @@ void vcpu_thread(struct thread_object *obj)
|
||||
int32_t ret = 0;
|
||||
|
||||
do {
|
||||
/* If vcpu is not launched, we need to do init_vmcs first */
|
||||
if (!vcpu->launched) {
|
||||
init_vmcs(vcpu);
|
||||
}
|
||||
|
||||
if (!is_lapic_pt_enabled(vcpu)) {
|
||||
CPU_IRQ_DISABLE();
|
||||
}
|
||||
|
Reference in New Issue
Block a user