kernel: use MF_KCALL_RESUME instead of RTS_VMREQUEST for memcopy retry.
solves tracker item 499, submitted by Roman Ignatov.
This commit is contained in:
@@ -570,6 +570,8 @@ PRIVATE void vm_suspend(struct proc *caller, const struct proc *target,
|
||||
*/
|
||||
assert(!RTS_ISSET(caller, RTS_VMREQUEST));
|
||||
assert(!RTS_ISSET(target, RTS_VMREQUEST));
|
||||
assert(!(caller->p_misc_flags & MF_KCALL_RESUME));
|
||||
assert(!(target->p_misc_flags & MF_KCALL_RESUME));
|
||||
|
||||
RTS_SET(caller, RTS_VMREQUEST);
|
||||
|
||||
@@ -819,9 +821,8 @@ int vmcheck; /* if nonzero, can return VMSUSPEND */
|
||||
if(vm_running) {
|
||||
int r;
|
||||
|
||||
if(caller && RTS_ISSET(caller, RTS_VMREQUEST)) {
|
||||
if(caller && (caller->p_misc_flags & MF_KCALL_RESUME)) {
|
||||
assert(caller->p_vmrequest.vmresult != VMSUSPEND);
|
||||
RTS_UNSET(caller, RTS_VMREQUEST);
|
||||
if(caller->p_vmrequest.vmresult != OK) {
|
||||
return caller->p_vmrequest.vmresult;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user