If we fail to emulate a vm86 trap in kernel mode, then we use

vm86_trap() to return to the calling program directly.  vm86_trap()
doesn't return, thus it was never returning to trap() to release
Giant.  Thus, release Giant before calling vm86_trap().
This commit is contained in:
John Baldwin 2000-12-13 18:57:15 +00:00
parent 5dfa801a91
commit 05f9877c15
3 changed files with 3 additions and 0 deletions

View File

@ -467,6 +467,7 @@ trap(frame)
/*
* returns to original process
*/
mtx_exit(&Giant, MTX_DEF);
vm86_trap((struct vm86frame *)&frame);
goto out;
}

View File

@ -467,6 +467,7 @@ trap(frame)
/*
* returns to original process
*/
mtx_exit(&Giant, MTX_DEF);
vm86_trap((struct vm86frame *)&frame);
goto out;
}

View File

@ -467,6 +467,7 @@ trap(frame)
/*
* returns to original process
*/
mtx_exit(&Giant, MTX_DEF);
vm86_trap((struct vm86frame *)&frame);
goto out;
}