usbehci: avoid kproc() while holding poll lock
This commit is contained in:
parent
a54804ed24
commit
3869d7a843
1 changed files with 7 additions and 4 deletions
|
@ -2278,12 +2278,15 @@ pollcheck(Hci *hp)
|
||||||
|
|
||||||
if(poll->must != 0 && poll->does == 0){
|
if(poll->must != 0 && poll->does == 0){
|
||||||
lock(poll);
|
lock(poll);
|
||||||
if(poll->must != 0 && poll->does == 0){
|
if(poll->must == 0 || poll->does != 0) {
|
||||||
poll->does++;
|
unlock(poll);
|
||||||
print("ehci %#p: polling\n", ctlr->capio);
|
return;
|
||||||
kproc("ehcipoll", ehcipoll, hp);
|
|
||||||
}
|
}
|
||||||
|
poll->does++;
|
||||||
unlock(poll);
|
unlock(poll);
|
||||||
|
|
||||||
|
print("ehci %#p: polling\n", ctlr->capio);
|
||||||
|
kproc("ehcipoll", ehcipoll, hp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue