pc: initiate machine reset only from boot processors in mpshutdown()
in vmware, mpshutdown() used to hang in i8042reset() when not called from the boot processor, so instead of reseting from first cpu that acquires the shutdown lock, we park all application processors and let the boot processor do the reset.
This commit is contained in:
parent
aa125d37e9
commit
215f6cc64a
1 changed files with 4 additions and 3 deletions
|
@ -620,9 +620,10 @@ mpintrenable(Vctl* v)
|
|||
void
|
||||
mpshutdown(void)
|
||||
{
|
||||
static Lock shutdownlock;
|
||||
|
||||
if(active.rebooting || !canlock(&shutdownlock)){
|
||||
/*
|
||||
* Park application processors.
|
||||
*/
|
||||
if(active.rebooting || m->machno != 0){
|
||||
splhi();
|
||||
arch->introff();
|
||||
idle();
|
||||
|
|
Loading…
Reference in a new issue