usbehci: avoid kproc() while holding poll lock

This commit is contained in:
cinap_lenrek 2020-05-24 02:11:37 +02:00
parent a54804ed24
commit 3869d7a843

View file

@ -2278,12 +2278,15 @@ pollcheck(Hci *hp)
if(poll->must != 0 && poll->does == 0){
lock(poll);
if(poll->must != 0 && poll->does == 0){
poll->does++;
print("ehci %#p: polling\n", ctlr->capio);
kproc("ehcipoll", ehcipoll, hp);
if(poll->must == 0 || poll->does != 0) {
unlock(poll);
return;
}
poll->does++;
unlock(poll);
print("ehci %#p: polling\n", ctlr->capio);
kproc("ehcipoll", ehcipoll, hp);
}
}