pseries: Small cleanup to H_CEDE implementation
The H_CEDE hypercall implementation for the pseries machine doesn't trigger quite the right path in the main cpu exec loop. We should set exit_request to pop up one extra level and recheck state, and we should set the exception_index to EXCP_HLT (H_CEDE is roughly equivalent to the hlt instruction on x86). In practice, this doesn't really matter except for KVM, and KVM implements H_CEDE internally so we never hit this code path. But we might as well get it right, just in case it matters some day. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
256b408abe
commit
1dd088946c
@ -544,6 +544,8 @@ static target_ulong h_cede(CPUPPCState *env, sPAPREnvironment *spapr,
|
||||
hreg_compute_hflags(env);
|
||||
if (!cpu_has_work(env)) {
|
||||
env->halted = 1;
|
||||
env->exception_index = EXCP_HLT;
|
||||
env->exit_request = 1;
|
||||
}
|
||||
return H_SUCCESS;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user